Setup Reliable Low Voltage Alarm on Taranis using Logical Switch

by Oscar

If you use Telemetry and voltage warning on your Taranis TX, you might notice the frequent false alarms due to voltage fluctuation, e.g. sudden drop in voltage due to punch-outs. In this tutorial we will show you how to set up Logical switches to make a more reliable voltage alarm.

Some of the links on this page are affiliate links. I receive a commission (at no extra cost to you) if you make a purchase after clicking on one of these affiliate links. This helps support the free content for the community on this website. Please read our Affiliate Link Policy for more information.

For beginners, we recommend you to take a look at this guide on how to setup a simple voltage alarm to gain a basic understanding how this work.

Also check out this list for more awesome Taranis hacks and tricks.

Disclaimer: There are million ways to achieve the same thing, this might or might not be the best or most efficient way, but it works great for me. Please let me know in the comment if you have different ideas.

Why set up voltage alarm on the Taranis?

There are many ways to monitor your battery voltage, such as using OSD and voltage alarm buzzer. But my favourite way is to use the Taranis for low voltage warning.

You can make a low voltage alarm easily in the Taranis using simple logical switches, but the amount of false alarms can be both annoying and confusing.

So in this article I will show you how I setup a more reliable and sophisticated low voltage alarm.


Step 1 – Setting up Logical Switches

Logical switches are just virtual switches, they can be activated when certain conditions are met.

We can use these switches to create audio and visual feedback both on the Taranis and on your quad. For example, to play a warning, or read out the battery voltage :)

On your Taranis, go to the page “Logical Switches” by pressing the [MENU] button once, and press the [PAGE] button to skip to the next page.

The following screenshot shows the logical switches on my Taranis.

They might look a bit daunting, but they are actually quite simple! i will explain the purpose of each of these Logical Switches.

NOTE: VFAS is battery voltage in Frsky, in Crossfire it’s RxBt

Logical Switch Conditions Info
L01 a<x   VFAS   14V   L02 This is our primary logical function, it will activate when VFAS (our battery voltage) gets below 14V and when L02 is on (you can set it to any voltage you want, 14V is a good value for 4S LiPo batteries)
L02 a>x   VFAS   0   L03 This switch is used to avoid false alarms when we are just powering on the Taranis TX. When Smart Port is initiating, VFAS will read 0V. This switch is only on when L03 is on.
L03 a>x RSSI 0dB This switch is also used to avoid false alarms, when Telemetry connection is lost.
L04 Edge   L01   [4.0:<<] Battery voltage on our mini quad can jump up and down a lot, and the edge switch is there to prevent false alarms caused by voltage fluctuation.
It will only activate when L01 has been activated more than 4 seconds, i.e. it will only turn on when voltage is below 14V for 4 seconds or longer. The switch will not activate when L01 suddenly deactivates before the 4-second is reached, i.e. voltage is recovered above 14V.
L05 a>x   VFAS   14V This switch is used by the next switch, it simply checks if the battery voltage is recovered above our threshold voltage
L06 Stcky   L04   L05   L07 This is the switch we will use in our Special Function.
The Sticky switch activates when the first parameter is activated (L04) and it turns off when the second parameter is on (L05). This switch stays on or off until the one of the parameters changes state, thus the name “sticky switch”.
L07 Timer   6.0   0,1 Without this timer switch, the voltage warning will only trigger once, if that’s what you want you can simply remove this switch. Using this timer switch, the warning can every 6 seconds (you can change to whatever duration you prefer). Beware this switch is added to the “AND” function of L06.

To summarize what we have so far… L06 is only activated when the voltage drops below 14V for more than 4 seconds (L04), and L06 is disabled when the voltage rises above 14V (voltage sag recovers or new LiPo attached). The timer switch will ensure the warning is triggered every 6 seconds.

Step 2 – Setting up the warning

There are more than 1 way to inform yourself of low voltage, you can choose to:

  • Play an audio track, that says “Warning, voltage is getting low, please land ASAP” or something like that :)
  • Or simply read out the voltage

I personally prefer to just know the actual battery voltage, so in the next page, “Special Functions”, assign L06 to a function, and select “Play Value” and “VFAS”.

That’s all! Now the Taranis will keep telling you your battery voltage every 6 seconds when it’s below 14V, most importantly you should get the minimum amount of false alarm.

If you have any questions, feedback or improvements to this script feel free to share them in the comments.

Edit History

  • Jun 2016 – Article was first created by guest writer, Salih Ergezen
  • Nov 2017 – Updated Logical switches for the latest OpenTX 2.2 and some improvements were made

Leave a Comment

By using this form, you agree with the storage and handling of your data by this website. Note that all comments are held for moderation before appearing.


ReviewD 11th February 2024 - 6:41 pm

Anyone knows how to stop the alarm after removing the battery from a quad besides rebooting the ? Thanks!

Domenico La Marte 15th March 2024 - 3:22 pm

Man, I’ve been trying everything to avoid the low battery alarm while changing the lipo… I haven’t found a solution yet.

IhateOpenTX 12th June 2023 - 1:31 am

Well, I can`t do it, I can`t een get through the first part of the first step, it doesn`t look the same on the x-lite screen, and I have no idea how to make L01 a<x VFAS L02, this is the worst math class I have ever been to.
Why do I need a PhD in advanced physics to know my model voltage, WHY isn`t this just a standard activated feature of OpenshitinmymouthTX, WHY can`t I just bind a model and see its voltage on the screen..
"telemitry-model voltage-display voltage (yes/no), set low model voltage alarm (yes/no)

ReviewD 11th February 2024 - 4:08 pm

..and that’s why DJI is so popular for a “little” extra money you get all the convince and simplicity out of the box. FPV came out and it still at its root a DIY hobby. Once this is a default expectation, it is becoming less stressful to deal with complexity and learning.
The steps above work well for both OpenTX and EdgeTX equally.

PaulFPV 3rd May 2022 - 5:55 pm

My little change to stop the warning after disconnecting the battery is just to edit L07 (timer) and set “AND switch” to L03. Done… now it works perfectly.

doraymon 24th May 2024 - 11:37 pm

You are my idol! Thanks!

Robert Gluckman 21st January 2022 - 4:48 am

I have Oscars setup identical in my radio. Can someone help me make a Logical Switch to turn off all alarms when below 5% throttle. When I land the quad the low battery alarm plays over and over. Would love for it to turn off when throttle is off.

Greg Hladky 29th September 2021 - 5:57 pm

Thanks! Big help. If only OpenTx defined Duration to mean the more obvious “when condition x is true for ‘duration’, then logical switch is On” rather than less obvious (to me) “when condition x is true, then logical switch is On for ‘duration’.” That would simplify things quite a bit!

Robert 1st November 2020 - 4:08 pm

Radiomaster TX16s – OpenTX 2.3.9 – followed Oscar’s recipe and it works wonders with telemetry back from a FrSky R-XSR receiver with RXSR_LBT_ACCST_191112.frk firmware. Thanks a lot.

F.P. 9th September 2020 - 10:07 am

Ok, I didn’t miss a line, apparently it’s the formatting that changes my comment?

“L05 ax RxBt 0.0V L07”
“L07 a>x RQly 0%”

Hope it worked now, here’s an image: (starts at L05)

F.P. 8th September 2020 - 5:42 pm

Much better solution, thanks to Antoine!

Oscar’s method didn’t work for me, it kept announcing the voltage after losing telemetry.

This worked for me: (I’ve used RxBat instead of VFAS cause VFAS isn’t selectable for me for some reason, same for RQly instead of RSSI, I’m using Crossfire)

L05 ax RxBt 0.0V L07 — —
L07 a>x RQly 0% — — —

Then on the Special Functions page:

L05 Play Track lowbat 9s
L05 Play Value RxBt 9s

Tells me every 9 seconds that the battery is low and what the voltage is once it’s below 21.5V, and stops once the link quality is 0%, or when I disconnect the battery.

F.P. 8th September 2020 - 1:32 pm

VFAS is not available to select on the Logical Switches page. There’s BATT, BAT_, BAT_-, BAT_+ and lots of others, however. I’m using a T-Motor F7 FC with DJI and Crossfire, if that info is helpful.

Any idea what I’m missing?

Oscar 29th September 2020 - 10:24 pm

VFAS is Frsky. For Crossfire it’s RxBt.

Damien 20th November 2022 - 5:24 am

Hi Oscar. I’m using Frsky with a Mobula7 whoop. I have VFAS and RxBt available to select from. VFAS always reads 0.2V below RxBt. Any idea why? Which is more correct? Thank you

fskill 2nd August 2020 - 10:20 am

I suppose it goes without saying, but being completely new to R/C, I learned the hard way… To get voice output working, I had to add an SD-Card into my Taranis QX7S with contents downloaded from the FrSky website. I also had to tweak the Timer switch a bit because it kept reading the value without any delay.

Carlos Mario 24th May 2019 - 1:07 pm

Thanks for this guide, Oscar.
I have a question, whenever I power on the radio it reads “Zero volts” just once, ia there a way to stop it from happening? I did followed all the steps in your guide on my Xlite.

lettuce 11th February 2019 - 1:07 am

Is it possible to setup these alarms as a LUA script instead of a bunch of switches?

Geraldo 20th May 2018 - 8:01 pm

Thanks for the tutorial, when the quad battery is below 14V and I disconnect the battery (telemetry lost) the warning continues to be triggered every 6 seconds, is there a way to fix it? Thanks!

Oscar 22nd May 2018 - 3:21 pm

are you missing L03?

Geraldo 30th May 2018 - 3:40 am

Thanks for the answer… No i’m not, my L03 is the L07. So it doesn’t happen to you, it may be something related to the logical switches ordering, I will try to put them first like yours, mine is like this:

Benoit 6th June 2018 - 3:03 pm

L03 will not be checked by the sticky function to switch it off.

When there is no ‘AND’ parameter defined in the sticky switch, the sticky function will only change from False to True when the ‘ON’ parameters transitions from False to True. The value of the ‘OFF’ parameter is not looked at. Once the sticky is true the value of the ‘ON’ parameter doesn’t matter anymore (that is why it works with the Edge function which is only on for a very brief time). For the transition of the sticky from True to False it is comparable. It will only go to false when the ‘OFF’ parameter gets true, whatever the value of the ‘ON’ parameter. It is important to note that what is triggering a change in state of the sticky is a transition of the ‘ON’ or ‘OFF’ parameter from False to True (not the actual state of the parameter). So if sticky is True and the ‘ON’ parameter is also true, it will switch off if the ‘OFF’ parameter goes from False to True. It will only switch back to true when the ‘ON’ parameter gets from False to True (so it will have to switch from True to False and back to True to activate the sticky).

When an ‘AND’ parameter is added to the sticky, the True state changes to a ‘potentially True’ state, from which the value depends on the value of the ‘AND’ parameter, if the ‘AND’ parameter is True it will be True if not it will be False. This ‘potentially True’ state further behaves exactly as described above for the True state without ‘AND’ parameters.

So, in your script the only event switching the sticky off is defined in L05 and thus the alarm will switch off only when VFAS gets bigger than 14V. If VFAS doesn’t get above 14V after the flight the alarm will stay on. As the telemetry data for VFAS is not updated anymore on loosing telemetry or removing the battery (it doesn’t go to 0 but stays at the last value), it will stay on…

It all sounds very complicated, but it is easy to test by assigning 3 switches to the ‘ON’, ‘OFF’ and ‘AND’ parameter. That is what I did to understand it…

Geraldo 24th June 2018 - 11:55 pm

Thanks Benoit, I understood it… Basically I need a transition from false to true to disable the sticky… I’m trying to create it, thanks!

Geraldo 25th June 2018 - 12:23 am

I found a possible solution, if I use a function like “VFAS>14 XOR RSSI=0” to turn the sticky function off it would work (I think) but when the telemetry is lost my RSSI value freezes =(

Antoine 9th March 2018 - 12:32 am

I just have to post because it is wayyyyyyyy to complicated for no reason . I i like oscarliang website and i rarely comment so i have to do something about this.

Remove/Delete L04
Remove/Delete L05
Remove/Delete L06
Add delay “4.0” to L1 (last option in the line in opentTX)
Change VFAS to A4 (only available on newers version of cleanflight/betaflight i think , surely was not there some time ago i clearly remember)
Change 14V to 3.5V (or any suitable value for you) 3.5 X 4 = 14V read bellow
–>> this way you can have ANY CELL COUNT , the alarm will ALWAYS be adapted
–>> A4 is the calculated voltage of 1 cell by the Flight controller
AUTODETECT cell count when you plug battery , very reliable , not a false count in thousand of flight
In special fonction replace L06 by L01
It will do EXACTLY the same behaviour as previously

Remove/Delete L07
In special fonction replace “1x” by “6s” (repeat every 6 second like L07 before)

We can easily add Throttle stick Level to avoid alarm after landing (normaly if you land fast enough the voltage will go up and the alarm will stop)
L04 a<x Thr -95
in L01 add L04 after 3.5V

Regarding L02 and L03 i dont see any use either , i dont use them for more than maybe something like 2 years and never have a false positive.
SmartPort data is empty when i power my TX , not "0" and so L01 is not activated.
tested with openTX 2.0 dont remember, 2.1 sure , 2.2 sure

Regards , have a nice flight

monster 2nd May 2018 - 7:53 pm

This is pretty slick. Amazing open TX work – i’d like to impliment it on a model – but the oscar ling way sounds like it will work a little better with all platforms raceflight / and kiss in mind. Betaflight already has such a fancy OSD i dont really need to set this up but the fact that you can shows why BF is so amazing.

Robert Gluckman 21st January 2022 - 3:15 am

Hey Bud. Would love to see your Logical Switch page for all of this so I have it correct. Are you on FB? Could I send to a message?

Brad 4th March 2018 - 9:23 pm

Question: I use both 3S and 4S batteries. How would one go about setting a switch to change the alarm voltage?

Antoine 9th March 2018 - 12:33 am

I replied , it will be on soon

Ed Scott 20th November 2017 - 12:02 am

Instead of L1 checking L02 (Above 0) and L03 (RSSI) why not just check that the ARM Switch is High, mine is SG. This will also prevent avoid false alarms when we are just powering and saves 2 steps.

Oscar 28th November 2017 - 1:53 pm

Some people still use stick to arm though :)

Chris lowe 5th December 2017 - 3:54 am

I like the way this works over any of the throttle position based setups. However I am having an issue I haven’t found the solution to yet. Once the alarm trips and i land. If the voltage did not climb above 14v before I unplugged the quad. The sticky is still updating and warning every 6 seconds. I either have to turn my transmitter off, or plug in a new battery to stop it. How can I get it to recognize that it’s unplugged and disable the sticky? Can I trigger it based off arm status, or have it look for rssi below a threshold?

Oscar 12th December 2017 - 1:43 pm

okay, maybe we can add another logic in there with throttle level, or arm status like you said (switch position), but I think throttle level is better. When you’ve landed, throttle level should be lower than 5% or something… i will revisit this when i have time.

Rob 21st January 2022 - 4:57 am

Hey Bud. Did you ever figure this out? With Throttle To turn off alarms? I sent you a pm on Facebook too.

Beeb 7th September 2017 - 5:41 pm

For OpenTX 2.2, the Edge switch must have the following time constraint: [3.5:<<]. Otherwise, the switch will wait until L1 is false to trigger.

Oscar 18th November 2017 - 7:22 pm

thanks! you are right, we have updated the script now.

Frank 23rd June 2017 - 10:51 pm

Please ignore the former post.
Confirmed working on OpenTx 2.2 and with a certain elegancy:
L01 as above
L02 as above
L03 a>x RSSI 5 dB —- 0,0 0,0
L04 SRFF L01 L02 L03 0,0 3,5

Best regards, Frank

cahe 21st May 2017 - 9:15 pm

This doesn’t work anymore. Please update according to changes to Edge switch in recent opentx releases.

Oscar 18th November 2017 - 7:21 pm

Yes the old version was outdated, we have just updated the script for OpenTX 2.2.
Everything should be working now.

Roberto 19th February 2018 - 9:38 pm

Oscar, Where is this updated script available for opentx 2.2
pleasse help out.

my taransi keeps reading the voltage after battery disconnect.

Thx a lot

Rigo Torres 27th August 2016 - 4:57 am

Hi Oscar,

Thanks for the writeup, very useful. I’m new to the Taranis, got it last night. Everything is set up but I did find the voltage warnings annoying on punchouts.

Quick question though, what if we wanted to add two warnings one for battery low and one for battery critical? Would it be a matter of copying the first 4 switches again with different values?

I think I’m missing a step somewhere so that it stops giving me low battery and to just give me battery critical after it drops under a certain threshold.

Thanks Oscar :)

Gela 16th July 2016 - 8:21 pm

Nice info, 10x

Edgar 8th June 2016 - 5:30 am

I added one more switch that there is no alarm if the voltage is below 1V. I did this to avoid the annoying warnings if my main battery is not connected i.e. if I configure CleanFlight.

Aaron 7th June 2016 - 7:06 pm

Wow gonna try this. Im wondering why my Taranis warns me at the right time battery is critical . Battery voltage is reading back correctly on the screen . But she says 3volts all the time 3v , 3v, 3v. no matter what the voltage is.

Mark 11th June 2016 - 12:35 am

Sounds like you have updated your firmware on your taranis. Believe it or not you need to download a new sound pack. I had this problem, i also have a custom sound pack, I solved it by getting the new pack and looking at the differences and found the sound files for decimal numbers and added those to the radio, works as advertised now.

TomDrone 29th June 2016 - 10:37 pm


It doesn’t really work in my case. I have all new sound pack (including sounds for decimal numbers) but it doesn’t work as you write. I’m facing the same problem as Aaron when amber is saying 3 volts all the time.

Whichever forum or facegruup I ask the question about it I got the same answer – update sound pack to newest one which is not really a solution.

Oscar – this might be something for you ;-)

Daniel 14th August 2016 - 9:22 pm

I had the same issue and did these steps for decimal numbers to work
1) delete all the “old” Amber audio files on my Taranis
2) replace them with the updated files located here


Adriano 7th June 2016 - 1:19 pm

Liked your solutuon! And learned some new functions, thanks!
Just sharing how Its mine…
I use only one function (like yours L1), addind the seconds on duration and delay columns (last 2 columns)…
This function triggers a playtrack like you do.
I don’t use feedback to the quad, as the tx is always near (and “singing”). I also have a channel/switch to activate beep on flight control (used only as a beacon when crash).

Mark 11th June 2016 - 12:36 am

Yeah i’m not sure if i’m missing a benefit to using “edge” over the delay feature in every single logical switch!

Bedu 7th June 2016 - 12:14 pm

Which version of Open TX it is?
Thank you

David Kyjovský 7th June 2016 - 11:39 am

I use a similar system – except instead of using a delay, I suppress the alarm IF my throttle is above certain threshold (like 20% above mid throttle). Works great.

Raz 7th June 2016 - 2:42 am

This is SUUPER complicated for no reason, just add a delay of 3.5 seconds on L1 row and you’re done

Sketch 7th June 2016 - 2:39 am

I used the throttle stick to avoid false battery warnings on punch outs, a lot less complicated. Instructions in this video.


Oscar 13th June 2016 - 2:50 pm

thank you that’s cool :)

Paullex 7th June 2016 - 2:03 am

Hi Oscar, your Battery source is A4? If I am using X4r-sb, using smartport, should I be using Vfas as source and instead of individual cells (3.6 etc) I use the full pack voltage (ex. 14.6)?

Oscar 13th June 2016 - 2:49 pm

yes VFAS for Smart Port :) there are many ways of doing it to achieve the same result :)