This page has moved to https://docs.px4.io/master/en/tutorials/linux_sbus.html.
Click here if you are not redirected.
This topic shows how to setup a PX4 Linux-based autopilot to connect and use a supported RC receiver on any serial port.
For RC types other than S.Bus, you can just connect the receiver directly to the serial ports, or to USB via a USB to TTY serial cable (e.g. like PL2302 USB to Serial TTL converter).
For an S.Bus reciever (or encoder - e.g. from Futaba, RadioLink, etc.) you will usually need to connect the receiver and device via a signal inverter circuit, but otherwise the setup is the same.
Then Start the PX4 RC Driver on the device, as shown below.
To start the RC driver on a particular UART (e.g. in this case
rc_input start -d /dev/ttyS2
For other driver usage information see: rc_input.
S.Bus is an inverted UART communication signal.
While some serial ports/flight controllers can read an inverted UART signal, most require a signal inverter circuit between the receiver and serial port to un-invert the signal.
This circuit is also required to read S.Bus remote control signals through the serial port or USB-to-TTY serial converter.
This section shows how to create an appropriate circuit.
- 1x NPN transistor (e.g. NPN S9014 TO92)
- 1x 10K resistor
- 1x 1K resistor
Any type/model of transistor can be used because the current drain is very low.
Connect the components as described below (and shown in the circuit diagram):
- S.Bus signal → 1K resistor → NPN transistor base
- NPN transistor emit → GND
- 3.3VCC → 10K resistor → NPN transistor collection → USB-to-TTY rxd
- 5.0VCC → S.Bus VCC
- GND → S.Bus GND
The image below shows the connections on a breadboard.