How to Change PID and Betaflight Settings with Taranis LUA Script

You can now adjust a lot of Betaflight settings from your Taranis TX with Betaflight using LUA script and Smart Port, including PID, rates, looptime, filters and VTX settings . In this tutorial we are going to show you how to set it up.

This article is originally created by guest writer Artur Banach, last updated by Oscar.

Hardware Requirement

  • F3/F4 Flight Controller with Betaflight 3.2 or later installed
  • Frsky Taranis X9D-Plus or QX7 transmitter with OpenTX 2.2 or newer
  • X4R-SR, XSR or R-XSR receivers (Smart Port required)
  • A spare UART ports for SmartPort

First of all, set up SmartPort. Here is a tutorial on how to setup Smart Port in Betaflight. How do I know if SmartPort is working? Check if you get the value for VFAS (battery voltage on your quad).

For VTX control, SmartAudio port from TBS Unify Pro (or Telemetry port from Tramp) also needs to be connected to one of the spare UART TX. Here is a detailed tutorial on how to setup VTX Control. If you don’t need VTX control you can simply ignore it.

This following image is an example connection of the Betaflight F3 flight controller.

Update Taranis OpenTX Firmware

Your Taranis TX has to be updated to the latest OpenTX firmware (we tested V2.2 RC14 successfully). The process is simple, and it’s covered here:

Access the SD card in Your Taranis

To gain access to the SD card inside the Taranis TX, you can use one of the following 2 methods:

  • Put Taranis in Bootloader mode, then plug in the USB cable
  • Or simply take the SD card out of the Taranis

I prefer the first way because I am lazy :) To put Taranis in Bootloader mode, simply push both of the Yaw and Roll trim buttons towards the centre, and power on the TX, the screen should now say it’s in bootloader mode.

Now if you connect the USB cable, an external drive should appear on your computer, that’s the SD card in the Taranis.

Download LUA Script for Betaflight

The latest LUA script for Betaflight can be downloaded here:

The zip file contains 2 folders: BF and SCRIPTS. Open the folder SCRIPTS.

Now you have two folders inside: BF and TELEMETRY:

  1. Copy bf.lua file in TELEMETRY folder to /SCRIPTS/TELEMETRY/ folder in your Taranis SD Card
  2. Copy the whole BF folder to /SCRIPTS/ folder in the SD card. These are the script interface files needed to make it work (there are scripts for different TX models, don’t worry just copy the whole folder, your Taranis will pick the correct script automatically)

Betaflight Configurator Settings

Many settings in the LUA script only works properly in Betaflight 3.2 or newer firmware, so make sure you update your FC too.

First of all, make sure SmartPort is setup properly:

  1. In Betaflight configurator, PORTS tab, find the UART where you have connected S.PORT to, then select SmartPort as the Telemetry Output
  2. Enable option TELEMETRY in Configuration tab

Extra Steps for VTX Control (Ignore if you don’t use VTX Control)

If you have TBS Unify Pro or ImmersionRC Tramp, go to PORTS tab, find the UART you connected the VTX to, and choose which VTX you have under Peripherals.

For example on my LUX V2 FC (screenshot below), I am using SmartPort in UART1, TBS SmartAudio in UART2, and SBUS in UART4.

Choice of VTX, and Blackbox logging under Peripherals.

Don’t forget to hit “Save and Reboot” when you finish.

Setting up LUA script on telemetry page

We are almost there!

Go to page 13, DISPLAY in your Taranis.

Here you can configure which telemetry screen to execute the LUA script we just copied over. In Screen 1, choose Script as the first parameter value, and then select the bf Lua script in the 2nd parameter value.

Now, you should be able to activate the BF LUA script by holding down the PAGE button.

Page 1 of the script is for PID settings.

2nd and 3rd pages are for rates, expo, TPA, Anti-Gravity gain, DTerm Set point etc…

4th page is for filters.

5th page is for PWM settings, ESC protocol and even Looptime!

6th page is for RX receiver settings.

And finally the last page is for VTX settings.

To save the changes, hold down the MENU button for 3 seconds, a dropdown list should appear, and you can select “Save Settings”.

That’s it!! I hope you find it useful. Have fun tuning PID and changing FC settings from your Taranis in the field! :)


“Script Syntax Error”

Your OpenTX version is probably too old, try updating it to the latest OpenTX firmware.

Update History

  • 06 Apr 2017 – Tutorial created.
  • 03 Dec 2017 – Updated instructions for Betaflight TX Lua Script V1.01

39 thoughts on “How to Change PID and Betaflight Settings with Taranis LUA Script

  1. Aaron Lavigne

    Hello Oscar, maybe you can help me. I put LUA script on my taranis x9d and I’m receiving telemetry. Unfortunately, when I access the LUA script I don’t get any values on any of the pages. I don’t know if this is because I might have deleted or misplaced a file.

    1. Oscar Post author

      First, make sure your RX has the latest firmware.
      And make sure your LUA script are properly installed on the TX.

  2. Khrash Pad FPV

    Can you update these instructions for the new (1.0) Lua scripts?
    They are no longer accurate, there is just one zip now with different subs for the radios. Can you explain which directory to copy where?

    1. Andrew

      Okay not using SmartAudio or tramp, but have iflight force vt5804 vtx with sbus input for use to control vtx from radios switches thru Channel 6 of rx. Only thing is iflights maanual is use might as well be in Chinese no explanation of the setup in the radio of choice, they don’t have instructions online, and good offended on the Facebook page when I asked for what the one page manual was lacking, full instructions and setup not just explanation on the functions that are available on the vtx if your clarvoyent and can channel a Chinese tech for info

    1. Oscar Post author

      You can use Betaflight OSD to change PID and VTx settings, but you won’t be able to use LUA script, because XM plus doesn’t do Smart Port.
      You will need the R-XSR to do that.

      1. spencer (canyons fpv)

        would all this work with a crosfire micro rx? i have smart audio, do i need smartport tele to use the luas?

  3. Romain

    Thanks for this tutorial Oscar, so to my understanding, I cannot do this and use the Tramp SmartAudio on an SP Racing F3 as the UART1 is for USB, UART 2 for SBUS and UART 3 for XSR telemetry… right ?

    Best Regards

  4. Gice

    I also am still not seeing anything on these screens with an R-XSR. I flashed it with the latest firmware, still no dice. I have a Matek VTX-HV (which supposedly runs Tramp) and a Kakute F4 AIO.

  5. Martin

    Hi, I get — on all values in Taranis. Telemetry showing many sensors VFAS etc. XSR receiver, F3 flightcontroller, Taranis X9D+

  6. ZeLaus

    I’m using an R-XSR Receiver and get no PID, RATES and VTX on LUA. Telemetry is working as I’ve got 10 sensors showing up.
    Runnig X9D+ with OpenTX 2.2.0, LUA X9 from BetaFlight github.
    FC is an Omnibus F4 with SoftSerial set to Telemetry/Smartport.
    There’s only one FW for that receiver.

    Any help appreciated.


      1. ZeLaus

        Everything working with newest firmware on normal XSR. OmnibusF3 AND F4 (with SoftSerial)
        Not even to wire anything different…

        I believe, it’s a firmware thing with the R-XSR.

    1. Oscar Post author

      Unfortunately I don’t have a R-XSR to test this yet. But I guess it could be the RX that is causing this problem. Hopefully a future firmware release might fix this.

    2. Bk9

      I have a similar situation,
      Two different omnibus f3 boards :
      One with inav 1.7 and working well with the lua.
      Another with bet a flight 3.2 and doesn’t work. Though I’m pretty sure it did work a few weeks ago.

      A dys f4 build running BF 3.2 works fine.
      Couldn’t find why the one omnibus isn’t working..

      All running xsr’s

  7. Ruben

    Hi Oscar,

    Just to let it known: the Betaflight Lua script also worked in following situation:

    – Naze32 (rev5) FC flashed with CLEANFLIGHT 2.1.0.
    – X4R-SB receiver (with SBus and Smart Port) –> thx to your other post (*
    – Taranis XD9+ with 2.2.0 (RC18)

    * I have noticed that for Cleanflight 2.1.0. the setting “tlm_inversion” is not present any more. Instead you will find “tlm_inverted”. I had to set tlm_inverted = OFF to get telemetry working.

  8. Manish

    I was able to resolve the issue of no PID or VTX values on the FrSky Taranis Q X7 screen. If you are using the TBS Unify Pro HV VTX along with the FrSky XSR receiver and Betaflight F3 board, here is what you need to do.

    Flash the “Beta” firmware for the XSR receiver onto the XSR.

    Then download the latest firmware version of Betaflight (3.1.7) onto your Betaflight F3 board. Ensure you have the LUA script running on your X7 after you flash the new firmware and it should work.

  9. Manish

    I’m getting PID value’s on screen but no VTX values. I am using TBS Unify Pro HV VTX, Betaflight F3 board and Taranis XSR receiver. Could this be a problem with the firmware in the receiver?

  10. J. V brecht

    Same problem as number if people above.
    Just — in the screen. Latest version Betaflight and latest version taranis x9d+ firmware. When i power up the flightcontroller i get values 1time. It wont refresh or load the other scripts. Any suggestions?

  11. Jodi

    Did somebody try it with final opentx 2.2? I have a final 2.2 in my taranis and I’m not able to read / set values. Telemetry works, but script does not show any value. Just “–” and also I’m not able to switch next page (rates or vtx).

    1. Oscar Post author

      This is only possible with OpenTX 2.2 or newer, so it should work.
      According to your info, it sounds like your FC side isn’t working. Do you have the latest Betafilght installed? Or maybe the script hasn’t been installed properly, please repeat the process again and follow instruction carefully.

      1. Jodi

        I have latest BF 3.1.7 on both copters. I think wiring is OK, because telemetry works fine. Using XSR with s.port connected to TX on UART.2. I already tried v2 and v3 of that script, but with same result. It worked for me, I think, month ago, but not now. I think it was on some 2.2 RC version.

      2. Jodi

        Oh I remembered, I also updated XSR FW to newest version 170605. There could be also problem.

  12. Brad

    I recently installed a xsr on my Martian. And I can’t for the life of me get this script to work with my taranis qx7. Fury f3 flight controller, smart port on uart tx enabled on betaflight. Sbus on sbus pins. When I discover new sensors I only see three show up. Any thoughts, ideas? Thank you in advance.

  13. maciek


    i used OTX 2.2 GA release (the latest)

    i get Script Syntax Error message when going the to Screen1

  14. Curtis Farr

    Is there any way to default pit mode to off.? I am getting tired of having to reset pit mode to off every time I unplug the battery

  15. Supe

    i get the pids page up but cant get any values…i am running a a hyperlite f4…i get all my other telem data but not values for the pids….any ideas running a taranis 9

      1. Marcin

        I have exactly the same situation.
        My setup:
        – FC F3,
        – receiver XSR-M with NON-EU FW, but in D16 mode,
        – Taranis 9D with FW 2.2-RC14 with LUA,
        I see RSSI, A2, RxBT sensors but not telem from FW, UART set, telemetry enabled, I can see some data when connecting logic analyze to uart connected with smart port.

        BTW instruciont is not complete, there is no information that I need to discover any sensors, but in LUA code there is check that when there is no RSSI discovered then screen will show mesage “No telemetry”.

      2. Theo

        Just received a new XSR-M receiver. Replaced an old X4r-sb on a quad with Betaflight F3 FC and Tramp HV, where everything worked, telemetry, lua script, including PID and VTX settings. Latest betaflight and opentx.
        With the new XSR-M telemetry did not work at all initially until I flashed the latest firmware (dated 06-09). However, the lua script does not work any more. Only dashes are displayed, for both PID and VTX settings. I am starting to think that it is related to that particular receiver?

  16. Brad

    I still can’t get this to work in Betaflight using a revolt V2. Can’t seem to find the 3rd UART (UART 6 in BF). Any idea?

    1. Artur

      Yes, all works as normal. You can set another screen to show the telemetry values. If you set up alarms it will remain exactly the same.


Leave a Reply

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

Are you Robot? *

I only check blog comments once or twice a week, if you want a quick reply you can post your question on this forum You might get a faster response from me there (multirotor related only).