core: ardupilot-manager: support non-USB serial autopilot connections
Current behaviour
Flight controllers can currently only have a serial connection to the Raspberry Pi via a USB port. This unnecessarily prevents connecting an autopilot via a UART using the GPIO pins, which can be useful for space-saving, as well as general accessibility (more available interfaces -> higher chance of at least one of them being appropriate for a given application).
Issue first realised in this forum post.
Expected or desired behaviour
- Ideally: all serial ports should be considered as potential autopilot candidates - not just the ones identified as USB
- Initial attempt in #1580, although as per discussion there, that approach may only partially resolve the issue
- Minimally: support manual overrides, for users who know the path/name for the serial port their device is connected to
Prerequisites
- [X] I have checked to make sure that a similar request has not already been filed or fixed.
Also raised in this forum post.
This is more important than we seem to have realised, because some firmwares apparently correlate USB power with being on the bench, and disable some failsafes as a result.
Some comments here on a recommended approach for adding a serial override option.
Are there any updates on this? Has there been any progress on a minimal override implementation?
Hi @MrVoorakkara which flight controller do you want to use and how ?
@patrickelectric I'm using a Holybro P6X running with a CM4 on their Pixhawk RPi CM4 Baseboard. Internally the autopilot is connected to the CM4 via Serial, Telem2 is connected to the Pi as below:
CM4 GPIO14 ↔ FMU TXD TELEM2
CM4 GPIO15 ↔ FMU RXD TELEM2
CM4 GPIO16 ↔ FMU CTS TELEM2
CM4 GPIO17 ↔ FMU RTS TELEM2
I would like BlueOS to leverage the available internal connection instead of having to use an external cable to connect the two, something which is space inefficient and unnecessarily takes up IO ports.
I see, thanks! We are going to look into it.