Zealot H743 + ArduPlane: Lua script cannot access 'esc' library ("binding is nil") despite working ESC telemetry

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, and esc2_volt in the Mission Planner Status tab.
  • Relevant parameters are set:
    • SERIAL1_PROTOCOL = 16
    • SERVO_BLH_MASK = 3
    • SERVO_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 = 1
    • RPM1_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 reports ESC Telemetry library not present!.
  • If I remove that check, the script fails later when trying to use the esc object (e.g., calling esc:get_feedback(0)), giving an error like attempt to index a nil value (global 'esc') or 'esc' binding is nil!.

Troubleshooting Steps Taken:

  • Confirmed SCR_ENABLE is set to 1.
  • 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!