Skip to content

Fast Lua tools (20 ms)

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Oct 11:43
· 0 commits to 726974f8291088dd41aca0788ac3d99e6fa4cd11 since this release

Fast Lua tools: color radio firmware

Made for StickTime, the FPV sim that runs
on your radio, but every Lua tool gets faster. In the zip, flash the file named after
your radio the usual way (bootloader or EdgeTX Buddy).

EdgeTX main plus faster Lua tools (SYS > Tools), from branch fast-lua-20ms:

  • while a Lua tool is open, the UI loop runs every 20 ms instead of 50 ms and each
    frame goes to the screen as soon as the tool has drawn it
  • new: a full screen tool's frames go straight to the display instead of being
    copied into LVGL's frame buffers first: three frames in turn (one on the display,
    one waiting for the display's next refresh, one being drawn), so on most radios the
    tool doesn't wait for the display either. On the radios with a screen mounted upside down
    (TX16S, T16, X10, X10 Express, H17, older F16) the frame is turned around straight
    into the display's buffer, one pass instead of three. EdgeTX's own screens (a
    dialog, a message, an error) take over the display whenever they need it
  • new: large fills (lcd.clear(), big rectangles) go through DMA2D instead of
    the CPU
  • the tool's solid lines, rectangles and filled triangles go straight into its
    canvas instead of through one LVGL canvas call each, and the H7 radios no longer
    flush the whole data cache on every lcd.drawLine
  • the tool gets TOOL_RUN_US and TOOL_SHOW_US: how long its last run() and
    putting that frame on the screen took
  • STM32H750 radios (targets tx16smk3, tx15, gx15, t15pro, t15h7, t22, pa01, st16,
    c14, h17, v12, v15): the Lua interpreter and the drawing code behind it run from
    ITCM instead of from SDRAM through the instruction cache
  • HelloRadioSky V12 and Flysky PA01 (SPI screens): frames go to the display in the
    background (started at the display's vertical blank); the PA01 is untested so far
  • new: V12: the DMA reads two pixels at a time, so a frame goes out in 13 ms,
    within one refresh of the V12's 74 Hz panel: Lua tools reach 50 fps (before, every
    frame took two refreshes: 37-42 fps). V12 and PA01: no more transfers dropped a few
    times a second (a clock read with interrupts off looked like a timeout)

With no tool open the radio runs like stock main (the V12's and PA01's background
display transfer is always on). SYS > Version shows -fastlua.

Commit: 025e1a3
Built: 2026-10-12 19:22:23 UTC

These are test builds of a development branch: back up your SD card first.

fast-lua is my fork of EdgeTX, and EdgeTX itself takes donations on Open Collective. If you like it, you can buy me a coffee on Ko-fi.