Skip to content

Releases: juricabi/edgetx

Fast Lua tools (20 ms)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Oct 11:43

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.

Nightly Build

Nightly Build Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Oct 08:57
78007d0

Automated Nightly Build

Commit: 78007d0
Built: 2026-10-08 08:57:32 UTC

This is an automated nightly build of EdgeTX firmware. These builds are for testing purposes and may contain bugs. Please be sure to report any issues you encounter!

Installation

Download edgetx-firmware-nightly-78007d0f.zip and extract the firmware file for your radio model, or use EdgeTX Buddy with the "Include pre-releases" Filter option enabled so you can select the "Nightly" version.

Changes since last nightly build

🚀 Features

🎮 Firmware

  • add 'user data' section to model yaml for Lua scripts (EdgeTX#7562)

🎨 Color LCD Radio

💻 Companion

  • reorganise and refactor Edit Settings (Profile/Application/Simulator/Update) dialog  (EdgeTX#7623)

📦 Other

🐛 Bug Fixes

🎮 Firmware

  • audio logic does not use all of the available buffers (EdgeTX#7689)
  • trim not applied when mix source is inverted (EdgeTX#7779)
  • make editing date & time easier (EdgeTX#7767)
  • lua telemetry handling (EdgeTX#7773)
  • gpio_init() pin mode not applied when inlined with a constant pin (EdgeTX#7828)
  • radio may hang on startup when using exFAT file system (EdgeTX#7853)
  • debug info and CLI show incorrect free space for task stacks (EdgeTX#7856)

🖥️ Black & White Radio

  • potential Lua stack overflow in lcd.drawCombobox (EdgeTX#7775)

🎨 Color LCD Radio

  • label list may not display correctly when multiple labels are selected (EdgeTX#7756)
  • model yaml file may be needlessly saved when editing screen setup (EdgeTX#7795)
  • popup menu toolbar may be clipped if only two entries (EdgeTX#7801)
  • custom failsafe page layout and update (EdgeTX#7788)
  • labels for a model may get truncated in 'labels.yml' file (EdgeTX#7812)
  • bold font fallback for non-Latin languages (EdgeTX#7815)
  • illegal characters not excluded when renaming a label (EdgeTX#7824)
  • potential crash when closing popup menu with a menu toolbar (EdgeTX#7838)
  • model files may not import into Companion if widget name/option string, switch name, contains certain characters (EdgeTX#7831)
  • value widget text display may be clipped (EdgeTX#7852)
  • EdgeTX top bar icon may be shown incorrectly when switching models (EdgeTX#7863)
  • battery gauge shows full when below battery range (EdgeTX#7869)
  • forced window scroll when using rotary encoder may not work on all screen sizes (EdgeTX#7871)
  • mixer scripts page layout does not scale correctly for different size screens (EdgeTX#7875)

💻 Companion

  • board hardware definition not loaded for firmware objects with empty hwdefnId (EdgeTX#7744)
  • Application tab content disappearing when collapsing a section
  • TX battery voltage input collided with left-horizontal stick slot (EdgeTX#7805)
  • F16 and TX16S MK3 flex switches missing (EdgeTX#7810)
  • various fixes to preferences (EdgeTX#7791)
  • hide contrast setting for colour LCD radios (EdgeTX#7877)

📦 Other

  • audio unmute delay, module size options (EdgeTX#7778)
  • long timer announced as "1 hour 60" before hour rollover (EdgeTX#7784)
  • LSE drive strength was never applied (EdgeTX#7798) (EdgeTX#7800)
  • HoTT out-of-bounds warning byte and null sensor lookup (EdgeTX#7777)
  • no sound when recording mic on prod radio (EdgeTX#7813)
  • make build-wasm-modules.sh source dir absolute (EdgeTX#7834)
  • rotary encoder acceleration does not work correctly (EdgeTX#7827)
  • About page button overlap, AFHDS2A bind prompt, AFHDS2A on external bay (EdgeTX#7836)
  • validate multiplex, switch and curve values in insertMix / insertInput (EdgeTX#7825)
  • proper unsigned telemetry value support (EdgeTX#7066)
  • bound switch and curve lookups, fix Lua getSwitchInfo() and getFieldInfo() switches (EdgeTX#7826)
  • exFat directory handling (EdgeTX#7485)
  • add missing Bluetooth power GPIO definition (EdgeTX#7855)
  • compile failure when using exFAT option (EdgeTX#7859)
  • Hangs during flashing firmware (EdgeTX#7415)
  • reset trainer link status when trainer is stopped (EdgeTX#7847)
  • default SF to TOGGLE on T15 and T15 Pro (EdgeTX#7870)
  • hardware_defs target fails since hal.h includes generated headers (EdgeTX#7880)
  • serialGetPower/serialSetPower report power control on ports without it (EdgeTX#7879)
  • charging LED indicator regression in 2.12.x (EdgeTX#7833)

📝 Documentation

📦 Other

  • normalize luadoc annotation style for screenshot/GlobalVariableDetails (EdgeTX#7769)
  • remove fragile doc-site links from luadoc comments (EdgeTX#7770)
  • add STM32 platform support page (EdgeTX#7797)
  • revise Windows Docker build instructions (EdgeTX#7768)
  • add luadoc annotations for the LVGL Lua API (EdgeTX#7837)
  • add missing warning for lvgl.clear()

🔧 CI/CD

📦 Other

  • build and smoke-test edgetx-luac on Linux, macOS and Windows (EdgeTX#7848)
  • validate hw_defs JSON against hwdef_schema.json (EdgeTX#7872)

🔨 Refactoring

🎮 Firmware

🎨 Color LCD Radio

  • classes used to manage models and labels, improve duplication UX (EdgeTX#7739)

🧹 Chores

🎮 Firmware

🖥️ Black & White Radio

  • hide Ext. RAS row when no FrSky external module in use (EdgeTX#7840)
  • remove dead GVARS_IN_CURVES_SCREEN code (EdgeTX#7862)

🎨 Color LCD Radio

  • fix minor issues when moving controls to select a source (EdgeTX#7782)
  • replace the bitmaps in the calibration pages with generated UI (EdgeTX#7762)
  • reduce size of BOLD font data (EdgeTX#7750)
  • fix compile error if LUA_ALLOCATOR_TRACER is defined (EdgeTX#7808)
  • remove unused LV_OBJ_FLAG_ENCODER_ACCEL define. (EdgeTX#7809)
  • refactor window close / delete logic (EdgeTX#7804)
  • simplify the code for the mix line multiplex icon (EdgeTX#7820)

💻 Companion

  • rename storage format Labels to Tree (EdgeTX#7625)
  • move data model files to datamodels directory (EdgeTX#7626)

📦 Other

  • swedish 🇸🇪 translations update (EdgeTX#7772)
  • replace dfu-util with rs-dfu for STM32 flash targets (EdgeTX#7789)
  • centralize board manufacturer/model/USB identity in hw_defs JSON (EdgeTX#7786)
  • register LSM6DSO sensor ID as supported also (EdgeTX#7803)
  • group targets to prevent hitting concurrency caps
  • display exfat compile option on version screen (EdgeTX#7857)

Full Diff: 11ccd67...78007d0