Hi everyone,
I’m running into an issue with Lua scripting on a QioTek Zealot H743 board running ArduPlane. I’ve tried both the Stable version 4.6.2 (1ebd4d99) and the latest Beta (as of late October 2025), and the problem persists on both.
My Setup:
- I have two ESCs connected.
- I’m using serial ESC telemetry with both ESC TX wires combined and connected to the RX pin of UART1.
- Core ESC telemetry is working correctly: When armed (props off), I can see valid data for
esc1_rpm,esc1_volt,esc2_rpm, andesc2_voltin the Mission Planner Status tab. - Relevant parameters are set:
SERIAL1_PROTOCOL = 16SERVO_BLH_MASK = 3SERVO_BLH_OTYPE = 6(Using DShot output type, as setting it to 0 strangely disables the serial telemetry reading, even though control is PWM/DShot and telemetry is serial)SCR_ENABLE = 1RPM1_TYPE = 0
The Problem: Any Lua script I try to run that needs to access ESC data fails.
- A script containing a check like
if not esc then ...immediately reportsESC Telemetry library not present!. - If I remove that check, the script fails later when trying to use the
escobject (e.g., callingesc:get_feedback(0)), giving an error likeattempt to index a nil value (global 'esc')or'esc' binding is nil!.
Troubleshooting Steps Taken:
- Confirmed
SCR_ENABLEis set to1. - Confirmed the Lua script file is correctly placed in
/APM/scripts/on the SD card. - Tried multiple official firmware versions (Stable 4.6.2, latest Beta).
- Tried multiple different, newly formatted (FAT32) SD cards.
- Double-confirmed that the core ArduPilot system is receiving and displaying the ESC telemetry correctly in Mission Planner – the data is available, just not accessible via Lua.
My Goal: I’m trying to write a simple Lua script to read individual ESC RPMs using esc:get_feedback(index):get_rpm(), process them (e.g., make one negative), and output the result via rpm:set_rpm() for logging/display purposes.
It seems the Lua binding for the esc library is missing or broken specifically in the ArduPlane firmware builds for the QioTek Zealot H743 board.
Could the developers please investigate this? Is this a known issue, or could there be a configuration error I’m missing?
I can provide my full parameter file and logs if needed.
Thanks for your help!