FPV Lap Timer

Tricky Sticks · for EdgeTX

Your radio calls your tricks.

Rolls, flips, power loops, spins and combos, spotted from your sticks, confirmed by telemetry, called out by an announcer and scored on your goggles’ OSD. Free, and nothing to flash.

  • Roll10
  • Front & back flip25
  • Power loop40
  • Yaw spin15
  • Orbit30
  • Matty flip50
  • Juicy flick35
  • Doubles & triples×2 ×3
  • Combosup to ×5
  • Freestyle+10
01

Pick your radio

Black-and-white radios get a telemetry screen, colour radios get a widget.

Black & white screen

Colour screen

Not listed?

Any radio running EdgeTX 2.9 or newer with an ExpressLRS module works. ✓ = tested on that radio.

02

Sound and goggles

How you want to hear about your tricks, and whether they show up in your goggles.

Announcer voice

More voices are on the way.

03

Pick your tricks

Everything’s on to start. Switch off any you don’t fly, or any that keep misfiring.

9 of 9 on

Off tricks are never looked for, so they can’t get in the way of the ones you fly.

04

Match your quad

Tricks are spotted from your sticks, so the script needs to know how fast your quad turns.

Max rates

Betaflight → Rates tab → Max Vel [deg/s]

Trick detection

How clean a trick has to be to count.

05

Download

A zip with just the folders for your radio’s SD card, with your settings built in.

Radio
—
Sound
Announcer
Goggles
OSD on
Tricks
All on
Size
—
Tricky Sticks v1.3.0

Set it up in six steps.

About ten minutes, once. Nothing to flash: it works with stock Betaflight and stock ExpressLRS.

  1. 1Computer

    Copy it to the SD card

    Plug the radio in over USB and pick USB Storage (or use a card reader). Unzip the download, then copy TRICKS and trick.lua into the matching folders on the card.

    On a Mac, don’t drag the whole SCRIPTS folder across: Finder’s “Replace” deletes the scripts already on your radio.

  2. 2Betaflight

    Show the craft name on your OSD

    In Betaflight Configurator’s OSD tab, switch on Craft name and drag it somewhere you’ll see it. That’s where your tricks and score appear.

    Leave osd_craftname_msgs off (it is by default). It writes to the craft name too.

  3. 3Radio

    Speed up ELRS telemetry

    Open the ExpressLRS script on your radio (SYS → Tools) and set Telem Ratio to 1:4 or 1:2. Slower settings can’t see a flip happen.

    Off, Race, Std and 1:64 won’t work: they send attitude too rarely, or not while armed.

  4. 4Radio

    Find the sensors

    Plug in the quad’s battery and wait for it to connect. Open the model settings (MDL on most radios) and page to TELEMETRY. Choose Discover new sensors, wait for FM, Ptch, Roll and Yaw to appear, then choose Stop discovering.

    Missing one? Check the ELRS telemetry ratio isn’t Off (step 3) and Betaflight’s Telemetry feature is on.

  5. 5Radio

    Add the trick screen

    On the same Telemetry page, under Screens, set a screen to Script → trick. Press TELE on the main screen to open it (no TELE button? Long-press PAGE).

  6. 6Fly

    Arm and send it

    Every arm starts a fresh score, and your best is saved. The radio switches to the live page when you arm and shows a flight summary when you land.

    Tricks missed? Check the STATUS page: attitude should read 5 Hz or more.

Updating? Copy the new files over the old ones, then delete every .luac file in SCRIPTS/TRICKS, SCRIPTS/TELEMETRY/trick.luac and restart the radio, so it doesn’t keep running the old compiled copies.

Questions & fixes

What does Tricky Sticks need?

An EdgeTX 2.9 or newer radio with an ExpressLRS module, and a Betaflight quad with a UART (serial) ELRS receiver. Nothing gets flashed: the script writes into Betaflight's craft name over the normal ELRS link, so it works with stock firmware on both ends.

How does it know I did a trick?

Two checks. Your sticks propose a trick when they command about 300° of rotation, then attitude telemetry from the quad has to confirm it: the quad really went upside down and came back upright. A trick shows up up to about a second late, because the script waits for that confirmation.

A clean trick says NO CONFIRM. What do I change?

First check the STATUS page on the radio: attitude should arrive at 5 Hz or more. If it's lower, set the ELRS telemetry ratio to 1:2. If it's fine, pick Forgiving trick detection here, or lower “Counts as upside down” in the advanced settings, and download again.

One trick keeps going off when I didn't fly it.

Switch it off in “Pick your tricks” and download again. A trick that's off is never looked for, so it can't get in the way of the ones you fly. Turning off Matty flips makes them count as back flips or power loops again.

Nothing shows up in my goggles.

Make sure the Craft name element is switched on in Betaflight's OSD tab and placed where you can see it, and that “Show tricks in your goggles” was on when you downloaded. The radio's STATUS page shows whether MSP writes are getting through.

I can't hear the announcer.

On the radio, open SYS → Sound and check the mode isn't Quiet and the Wav volume is up. The voice clips live in SCRIPTS/TRICKS/voice, so that folder has to be on the SD card.

The radio says “not enough memory”.

Restart the radio once. The first start after an update compiles the scripts, which needs the most memory; later starts load the smaller compiled copies.

Can I change settings later without downloading again?

Yes. Everything is in SCRIPTS/TRICKS/config.lua on the SD card, with a comment on every setting. Edit it on your computer, then re-select the model on the radio.

Will it overwrite my craft name?

Only in RAM while you're armed. On disarm the script puts your original name back, and a power cycle always restores the saved one. Just don't hit Save in Betaflight Configurator while the OSD is showing a score.

Want the source, the tests, or to record your own announcer? It’s all on GitHub. The code is MIT licensed. The announcer clips were generated with ElevenLabs and are free for non-commercial use only.

Tricks scored. Now time your laps.

FPV Lap Timer turns your phone into a camera-based lap counter for your whoop track, no transponders needed.