Link Search Menu Expand Document

Qualcomm Flight RB5 External Flight Controller

Repurpose J12 as a UART

Summary

Normally, PX4 uses the J12 connector’s UART (3.3V TTL) for an RC input. But, if you want to use an external flight controller you can instead use this UART as a means to communicate using something like MAVLink.

Disable PX4 from Running on DSP

First, you need to disable PX4 from running on target.

systemctl disable rb5-px4-start

Reboot the system.

Create a Cable

This is the J12 pinout.

Pin#SignalNotes/Usage
1VREG_3P3V_RC3.3V Switchable Power Output *
2RC_UART_TX (Output)APPS_QUP_13, 3.3V signal levels
3RC_UART_RX (Input)APPS_QUP_13, 3.3V signal levels
4GNDGND

Interface with In Linux

This UART shows up as /dev/ttyHS1. Here’s a simple Python example.

import serial

uart_dev='/dev/ttyHS1'

uart = serial.Serial(uart_dev, 115200, xonxoff=False, rtscts=False, dsrdtr=False)
while True:
	bytes = uart.read_all()
	if len(bytes) > 0:
		print(bytes)

Repurpose J19 as a UART

Summary

Similar to above, on RB5 Flight, J19 has a UART that is typically used for GNSS/PX4. This can be used similar as above using /dev/ttyHS2.

Pin#SignalNotes/Usage
1VDC_5V_LOCAL5V protected Power Output *
2GNSS UART TX (output)APPS_QUP_18, 3.3V signal levels
3GNSS UART RX (input)APPS_QUP_18, 3.3V signal levels
4MAG I2C SCLSSC_QUP_0, 3.3V signal levels, 2.2K Pullup to VREG_3P3V_LOCAL
5MAG I2C SDASSC_QUP_0, 3.3V signal levels, 2.2K Pullup to VREG_3P3V_LOCAL
6GNDGND