How to Change PID and Betaflight Settings with Taranis LUA Script

You can change Betaflight settings from your Taranis TX using LUA script. Adjustable parameters including PID, rates, looptime, filters and VTX settings . In this tutorial I will show you how to set it up step by step.

Table of Contents

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.


Betaflight Configurator Settings

Many settings in the LUA script only work properly in Betaflight 3.2 or newer firmware, so we recommend to update your FC to the latest version.

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.


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: https://oscarliang.com/flash-opentx-firmware-taranis/.

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: https://github.com/betaflight/betaflight-tx-lua-scripts/releases

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)

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! :)

FAQ

“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 by guest writer Artur Banach.
  • 03 Dec 2017 – Updated instructions for Betaflight TX Lua Script V1.01

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

  1. Jason O.

    Hi Oscar,

    I’m having a very perplexing issue when I try to set this up for my TBS Crossfire Micro module on the Taranis X9D plus, using a Nano receiver… Updated to OpenTx 2.2.2 and most recent update for the Micro Crossfire module as well.

    Every time I transfer the files to my SD card following your instructions here, it corrupts my Crossfire and EEPROM folders on the SD card, which in turn keeps giving me syntax errors. I then have to have windows recover and fix any errors that have occurred on my SD card. It also caused on of my Quadcopters to unbind to the transmitter.

    I would greatly appreciate any help you could offer, thank you!

    Reply
  2. Adrian Persson

    Hello

    I have a question, on my Taranis. I can change the Pids, but The info for the vtx doesnt show up. it just says “-”
    Do you know what the problem can be?

    Reply
      1. Oscar Post author

        Flashwith 2.2.1 in TX and installed LUA script v1.0.1.
        This should fix your problem.

  3. Krotow

    Betaflight scripts does support IRC/Tramp VTX control as well. Have Matek VTX-HV connected to Matek F405 AIO under Betaflight 3.2 (VTX TX to TX3, XSR with uninverted SmartPort wire to TX5) and same VTX to Holybro Kakute F4 V2 (VTX TX to TX6, SmartPort from RX S.port connector to SP pad) under Betaflight 3.3 RC2. Transmitter is Taranis QX7 with OpenTX 2.2.1 and BF script version 1.0.1. Both XSR RX flashed with 170619 firmware. Works like charm.

    Reply
  4. Chry sBurge

    I am currently on Open TX 2.2.0 and BF scripts V0.3.
    BF scripts are running on (2) Naze F1 boards and (1) F3 RMRC Dodo board.
    If I upgrade to the newest BF scripts, V1.0.1, do you think they will still work on these boards? More concered with the F1 boards.

    Reply
  5. 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.

    Reply
    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.

      Reply
      1. Sean sepulveda

        yea, I had the same issue.
        What worked for me was, updating all my TX’s on all my quads and it finally worked just like Oscar wrote in this blog.
        It worked for my Betaflight quads and also my Kiss quads. Thank you so much (Oscar) for taking the time out of your day to help people like me.
        I’m not very computer smart and some of this stuff is super confusing. :)

  6. 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?

    Reply
    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

      Reply
    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.

      Reply
      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?

  7. 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

    Reply
  8. 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.

    Reply
  9. Martin

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

    Reply
  10. ZeLaus

    Hoi,
    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.

    greetz,
    ZeLaus

    Reply
      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.

      Reply
    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

      Reply
  11. 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 (https://oscarliang.com/sbus-smartport-telemetry-naze32/#f1)*
    – 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.

    Reply
  12. 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.

    frsky-rc.com/download/view.php?sort=&down=313&file=Beta%20Firmware-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.

    Reply
  13. 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?

    Reply
    1. Robbo

      I have same problem, the PIDs and Rate control works in the Taranis LUA, and the VTX work through the OSD, but not the VTX in the LUA script??? F4 OMNIBUS board, XSR (170619 FW) and Tramp HV.

      Did you get this working Manish? Any other suggestions?

      Reply
  14. 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?

    Reply
  15. 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).

    Reply
    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.

      Reply
      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.

  16. 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.

    Reply
  17. maciek

    hi,

    i used OTX 2.2 GA release (the latest)

    i get Script Syntax Error message when going the to Screen1

    Reply
  18. 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

    Reply
  19. 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

    Reply
      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?

  20. 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?

    Reply
    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.

      Reply

Leave a Reply

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

Are you Robot? *

For prompt technical support, please use our forum IntoFPV.com. I check blog comments weekly.