Smartport telemetry for Betaflight

Smartport telemetry for Betaflight

With their latest transmitters and receivers FrSky changed telemetry protocol. XJT module, Taranis radios, X8R, X4R and X4RSB are using SmartPort telemetry protocol. And that creates few problems. First of all, SmartPort is a serial protocol. That means, flight controller has to have free serial port to connect S.Port device. Second of all, TX and RX lines shares the same wire. The work in half-duplex mode. Third of all, SmartPort signal levels are inverted: logical 0 is in HIGH state, logical 1 is in high state. All of that combined, connecting SmartPort receiver to flight controller and sending telemetry data is not so easy to archive. Specially on FCs without hardware inverters. That applies to most popular STM32F1 devices like Naze32 and Flip32. Not only numer of UARTs there is limited, but also they lack hardare inverters.

Luckily, there is simpler solution for Betaflight that uses SoftSerial and does not require any hardware hacks besides special wire. Requirements:

  • Betaflight capable flight controller (STM32F1 or STM32F4),
  • SmartPort enabled receiver: FrSky X8R, X6R, X4R, X4RSB,
  • Possibility to enable SoftSerial. Depending on FC type, different fetures like Parallel PWM, Sonar, LED Strip or Current Meter collides with SoftSerial functionality. Check documentation first.

Next, we have to make a special cable that will bridge together TX and RX lines from flight controller and connect them to S.Port data line. Do not worry, it’s OK to bridge those pins together. Nothing will be broken, it’s just like forcing logical state on pin. Electrical diagram looks like this:

S.Port telemetry cable schema

You do not have to connect +5V and GND lines. They are already there with RC signal.

When this is done, let’s configure Betaflight.

Open CLI tab end ensure telemetry inversion is enabled by typing set telemetry_inversion = ON. Then type save to reboot flight controller

Open Configuration tab and enable SoftSerial

Open Ports tab and enable SmartPort telemetry on selected SoftSerial port with Auto baud rate

Enable SmartPort telemetry in ports tab

Save settings

Open Configuration tab and enable Telemetry

Enable telemetry

Save settings

Starting from now, Betaflight will be sending telemetry data back to receiver. So, let’s configure it there. In case of OpenTX or EdgeTX it would look like this:

Power up flight controller and radio

Goto OpenTX/EdgeTX Telemetry screen

Select and enter Discover new sensors

Discover new sensors

Because Betaflight does not sends all data when disarmed, arm flight controller. Be sure to remove propellers before you do it. Safety first!

More sensors should appear

Hit Stop discovery

Done. From now on, Taranis can start showing you the data you need, report voltage, etc.


Posted

in

by

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *