Autopilot Connections

There are two connections between the Flight Controller and the Pi. USB and Serial.

USB

The Pi CM4 has one USB 2.0 OTG interface. It is muxed between the external micro USB port for flashing and a built in USB hub. The USB hub connects to the flight controller, USB C port, and the two USB JST-GH ports.

The USB connection to the autopilot is muxed with the external Pi micro USB port. When a micro USB cable is connected, the autopilot is disconnected from the Pi and the USB port on the Pi switches from host to device mode. After the micro USB cable is disconnected, a reboot is required to switch the USB port back to a host and connect to the autopilot and external ports.

For the USB port to be enabled on the ARKV6X flight controller, the VBUS_SENSE pin must be driven high from the Pi. It is connected to pin GPIO27. There is a helper python script in ark_companion_scripts to drive the pin high.

UART

The UART connection between Pi and the autopilot is on Pi UART4 which appears as /dev/ttyAMA4 in Linux. This goes to Telem2 on the Flight Controller. This connection has been tested to 3Mbps.

Flow control needs to be set to "Force Off" when using Telem2 for MAVLINK. MAV_X_FLOW_CTRL set to "0".

Flight Controller Reset

The flight controller can be hard reset using the reset signal connected to Pi pin GPIO25. The Pi cannot reset the flight controller while it is armed. The reset signal is gated by the nARMED signal from the flight controller.

There are a couple of helper scripts to reset the flight controller. One to drive the VBUS_SENSE pin high before the reset to wait in the bootloader for 5 seconds. This is useful when updating the flight controller firmware and a hard reboot is needed. The other fast reset script drives the VBUS_SENSE pin low before the reset to avoid the wait.

Last updated