SBUS protocol sends data over a UART pin configured at 100 000 bps and using 8-E-2 framing. It also uses inverted signal levels. This makes it impossible for most USB UART converters to read the signal directly - the signal must first be inverted.
There are several options:
-
Use Arduino. This is by far the most convenient method since it combines the signal inversion with the USB UART converter in the Arduino itself. Arduino Nano is perfect for the job - it is cheap and compact.
Simply flash this sketch, power your receiver from the Arduino board, make the connections shown below and that's it. Start vJoySerialFeeder, choose the Arduino's COM port, selectSBUS
protocol and clickConnect
.SBUS Receiver Pin Arduino Pin +5V +5V GND GND SBUS D3 Snille has created a 3D printable box for the Arduino Nano and FrSky R-XSR Receiver. Check it out: https://www.thingiverse.com/thing:2852557
-
Most receivers have a dedicated inverter component on their boards. If we can tap at the signal before inversion, we can send it to the UART converter. OscarLiang.com has info about the location of the uninverted signal for different receivers. See here.
Once you have found the uninverted pad, you can refer to the FlySky/IBUS How-to with the only difference being that you use the uninverted SBUS signal instead of IBUS and you have to select theSBUS
protocol in vJoySerialFeeder. -
Use hardware inverter (example) between the receiver the UART converter. Other than that, everything is the same as FlySky/IBUS How-to with the only difference being that you use the hardware inverted SBUS signal instead of IBUS and you have to select the
SBUS
protocol in vJoySerialFeeder.