In this post we will walk you through how to use SBUS and Smart Port telemetry on the Naze32, with Frsky X4R-SB Receiver.
This tutorial is shared with us by Marcelo Tito Farinon, a group member in our Multicopter Facebook group.
SBus and Smart ports setups are pretty similar on most flight controllers in Cleanflight, main difference is the hardware setup. Obviously Naze32 (F1 processor) requires a bit more DIY and effort to get working than the F3 Flight controllers (Tornado, Dodo etc). But it’s not impossible :)
Get your X4R-SB receiver from here.
How to Connect SBUS and Naze32
As we have already explained in the SBUS/PPM comparison article, SBUS signal on Frsky Receivers have a inverted output signal for some reason (literally just upside down), and some flight controllers just wouldn’t recognise/understand it.
There are many ways to invert the signal, such as using a signal inverter which you can build yourself.
Note that only Rev5 or older board need to do this hack, Rev6 supports SBUS without converter.
SBUS Signal Inverter
The inverter is easy to make, only requires 2 resistors (10K ohm and 4.7K ohm), 1 transistor (BC547b), and one servo cable. These are all very cheap and easy to find. It’s explained well in this video: https://www.youtube.com/watch?v=DtvID1YeSbE.
X4R-SB Hack – No need for additional Inverter
Alternatively, you can find the pins on the X4R-SB RX, and get the uninverted signal from there directly. That way you don’t need any inverter.
There is actually an inverter chip on the X4R-SB RX, that’s what causes the inverted output signal. According to this diagram above, you can find the pin for the original, uninverted signal and use that direct to your flight controller.
Some people put solder a small connector to it like so.
SBUS Connection to Naze32
Assuming you are using UART2 on the Naze32, and keeping UART1 for your USB connection to Cleanflight configurator, you will need to enable UART2 for Serial RX first in Port Tab
And choose Serial RX in Configuration Tab.
UART2 pins are RC3 (TX) and RC4 (RX). You only need to connect the SBUS output to RC4, since this is a one direction communication. RC4 is just below the negative power pin.
You can make your cable like this.
How to Connect Smart-Port and Naze32
For the telemetry, you will need to use a serial connection again. However you can’t on the Naze32, since there are only 2 hardware UARTs and you have already used one for the the SBUS. The last one should be reserved for the USB connection. Someone confirmed in the comment and in my group that this hack also works on Naze32 Rev6 boards (I can’t confirm this as I don’t have a rev6).
However, the good news is that it is possible to use SoftSerial (software serial) for Smart Port. Pin RC5 and RC6 are available for softserial on the Naze32 board.
Note: Since RGB LED strip uses RC5, that means if you enable softserial, you won’t be able to use LED_strip feature.
Also Note that you should be getting telemetry data even when you are NOT armed.
Be aware that you need to short the 2 pins together (RC5 and RC6). Marcelo made a plug that have the 2 pins soldered together. The other end of the wire is connected to the Smart Port telemetry pin on the receiver ( the green wire in the picture).
The reason being SmartPort telemetry uses a single wire for both TX and RX. It’s a half-duplex protocol. You can emulate this using soft-serial by hooking TX and RX up to the same pin on the receiver.
With D4R-II RX, you only need to connect telemetry pin to RC6 (softserial TX), but aparently X4R-SB is different, and Smart Port has to be connected to both RC5 and RC6 pins. Marcelo tried and it didn’t work if RC5 is not connected together.
In the Cleanflight you have select Telemetry and softserial on Configuration tab.
On Ports Tab select Softserial telemetry select SMART PORT, AUTO.
On CLI select FRSKY Telemetry Invert = ON or 1, depending the Cleanflight version. Latest version he changed to ON and OFF and not more 0 and 1.
And double check if you have these features enabled in CLI.
How do we know Smart Port telemetry is working?
Well, to check, Move your quad/flight controller in any direction, and look if the numbers of AccX and AccY are changing (if you haven’t disabled accelerometer, these are ACC readings). If it constantly shows 0, if either means you have disabled ACC, or your telemetry is not yet working.
For the altitude indication, to have the correct value you have to turn on first the quadcopter and then turn on the Taranis. If you turn on Taranis first it will show this wrong indications.
*note that in older version Taranis firmware, the main lipo voltage is reported through Cells, but that doesn’t work any more in new firmware, it’s changed to Vfas.
With both SBUS and Smartport connected to the Naze32, it looks like this.
So that’s it! If you have any comments please let me know!