SmartPort Telemetry Via SoftSerial (BetaFlight)

Smart port telemetry requires an inverted serial signal, but many flight controllers only include hardware inversion on the SBUS connector.  So if you want to use SmartPort telemetry on your Frsky receiver it can sometimes be a pain.  The easiest way to overcome this is to simply use soft serial which emulates the inverter via software.  This guide will show you how to do this on just about any flight controller.

In this guide we will be using the omnibus F4 V6 as the flight controller, but this article can be applied to just about any flight controller.  We have a Frsky XSR-M receiver connected to it.  And we have connected the smartport telemetry to a spare TX pad on UART1.  A diagram of this is shown below.  Lets get started.

  • Assuming you are connecting it as per the diagram above, we will need to enable softserial on TX1 (since we have connected it to UART1). The first thing we need to do is to find what pin the TX1 is connected to so we can enable softserial on that pin.
  • The first thing to do is to enable the softserial feature on the configuration tab
  • Now we need to tell the flight controller what pins we want to use for softserial
  • In the CLI and type resource to get a list of pins, look for TX1
  • In this example, TX1 is assigned to A09. This is the case for most flight controllers, but sometimes it can be different.
  • Now we will enable softserial 1 on pin A09. In the CLI type the following command:
resource SERIAL_TX 11 A09
💡 Port 11 is for softserial 1, and port 12 is for softserial 2. So if you wanted to assign softserial 2 to another pin (such as UART6, or the LED pin), you could assign port 12 to the corresponding pin you got from the resource command. If you wanted to assign A09 to softserial 2, you would use the command resource SERIAL_TX 12 A09 
  • Now when you go back to the ports tab in BetaFlight (after your FC reboots), you will now see a new line called SOFTSERIAL 1
  • Simply enable SmartPort telemetry on this port and you should now have Frsky telemetry working on your receiver.
  • If you cant get it working, you may need to try using the CLI again to turn inversion on and off using the following commands.
set tlm_halfduplex = on
set tlm_inverted = off
  • If off does not work, try again with tlm_inverted = on.

Thanks for reading and I hope this helps.  If you have any questions be sure to ask on our friendly forums,