ESC Telemetry Masterclass: Wiring, Protocols, EdgeTX Setup, and Custom LUA Automation

A comprehensive technical guide detailing how modern Electronic Speed Controllers (ESCs) transmit real-time telemetry metrics to RadioMaster and OpenTX/EdgeTX transmitters, why this feature transforms pilot safety, how signal protocols operate, and how to write custom LUA scripts to act automatically on live telemetry triggers.

1. What is ESC Telemetry and Why Is It Essential for Beginners?

Historically, pilots relied on mechanical timers mapped to their throttle stick to estimate remaining flight time. However, fixed timers cannot account for aggressive pitch pumps, ambient temperature drops, battery pack degradation, or unexpected headspeed changes.

ESC Telemetry allows the Electronic Speed Controller to measure live physical data directly from its internal MOSFETs and current sense shunts, feeding these metrics back over the radio link directly to your RadioMaster transmitter screen or voice audio alerts.

Key Beginner Benefits:

  • Preventing Over-Discharge: Receive real-time cell voltage and total capacity consumed in milliamp-hours (mAh), allowing you to land precisely when 80% of pack capacity is depleted rather than guessing based on a timer.
  • Thermal Protection: Monitor internal ESC temperature in real time. A beginner hovering a fully faired scale fuselage or learning basic pitch pumps can be alerted to thermal saturation before destroying expensive ESC power stages.
  • Headspeed Tracking: Motor RPM metrics allow beginners to verify governor loop performance without needing an external handheld optical tachometer.
  • Early Mechanical Warning: Abnormally high continuous current draw (A) in a steady hover immediately signals mechanical binding, bad gear mesh, tight belt tension, or failing motor bearings.

2. Hardware Wiring and Telemetry Signal Architecture

An ESC requiring telemetry feedback relies on two separate signal paths running to your Flight Controller (FC) or receiver:

  1. Throttle Signal Wire (PWM / DShot): A unidirectional wire carrying control commands from the receiver/FC to the ESC.
  2. Telemetry Output Wire: A dedicated single signal wire (often yellow, blue, or white) running from the ESC's auxiliary telemetry port to a hardware RX UART pad on your flight controller (such as a Rotorflight or Betaflight board) or directly into a telemetry-capable receiver port.
Wiring Rule: Ground references must be shared across the system. Ensure the signal ground of the ESC telemetry loom shares a common ground with the flight controller or receiver to prevent signal corruption caused by floating voltage references.

3. Signal Protocols: How the Telemetry Wire Functions

The signal wire carries high-speed digital asynchronous serial communication. Depending on the brand of ESC and flight software, several protocols govern this single wire:

Protocol Baud Rate / Nature Common ESC Ecosystems Description
KISS / Auto-Telemetry 115,200 baud, 8N1 Uninverted Serial Flycolor, YGE, BLHeli_32, APD Streams continuous binary data frames containing voltage, current, consumption, temperature, and RPM at fixed intervals without needing polling requests.
Hobbywing V4/V5 Protocol 19,200 baud Serial Hobbywing Platinum / FlyFun Sends custom binary frames containing RPM, voltage, current, and MOSFET temperature. Requires decoding via FC software or dedicated telemetry converters.
Castle Creations Live Pulse-Width Modulation / Serial Castle Talon / Phoenix Edge Uses high-frequency bit-banging down a single wire to stream telemetry packets to external receivers or flybarless units.
Hott / Futaba / Jeti Telemetry Bi-directional half-duplex serial Scorpion Tribunus, Kontronik Interactive bus protocols allowing both live telemetry reporting and active parameter configuration directly from the radio transmitter.

Once the flight controller receives this raw serial stream, it packages the metrics into standard CRSF (Crossfire) or FrSky S.Port telemetry frames and passes them wirelessly to your RadioMaster transmitter over your ExpressLRS or Multi-Protocol radio link.

4. Discovering and Configuring Telemetry Metrics on RadioMaster (EdgeTX)

  1. Step 1: Power the System & Establish Link

    Power up your RadioMaster transmitter first, then connect the flight battery to your model. Ensure your radio link shows solid connection status.

  2. Step 2: Access the Telemetry Menu

    Press the MODEL button on your RadioMaster, page over to the TELEMETRY screen, and scroll down to the sensor list.

  3. Step 3: Execute "Discover New Sensors"

    Highlight and click Discover New Sensors. Within 2–3 seconds, your transmitter will discover populating metrics sent from the ESC loop:

    • Capa — Consumed capacity in milliamp-hours (mAh).
    • Curr — Real-time current draw in Amperes (A).
    • VBat / RxBt — Live main battery pack voltage.
    • EscT / Temp — Real-time ESC MOSFET temperature (°C).
    • RPM — Motor or main rotor rotational speed.

    Click Stop Discover Sensors once the list stabilizes to save processor cycles.

  4. Step 4: Configure Voltage & Capacity Alarms

    Page over to Logical Switches and Special Functions in EdgeTX to set automated voice prompts (e.g., "Battery Low" when Capa exceeds 3,800 mAh on a 5,000 mAh pack, or "ESC Overheating" when EscT exceeds 85°C).

5. Automating Safety with Custom LUA Scripts

EdgeTX and OpenTX radios allow pilots to run background LUA scripts. Instead of simple static alarms, a custom LUA script continuously evaluates incoming ESC telemetry and executes advanced programmatic decisions (such as triggering haptic feedback, announcing dynamic warnings, or forcing automated audio calls during critical thermal spikes).

Sample LUA Background Script: ESC Thermal & Consumption Monitor

Save the following script as esc_mon.lua in your transmitter's /SCRIPTS/FUNCTIONS/ directory and assign it to run as a Special Function (Background / LUA Script):

-- EdgeTX / OpenTX LUA Script for Active ESC Telemetry Monitoring
          -- File: /SCRIPTS/FUNCTIONS/esc_mon.lua
          
          local function run()
            -- Fetch Telemetry Sensor Field IDs
            local tempSensorId = getFieldInfo('EscT') and getFieldInfo('EscT').id
            local capaSensorId = getFieldInfo('Capa') and getFieldInfo('Capa').id
          
            -- Verify sensors exist before reading
            if tempSensorId and capaSensorId then
              local escTemp = getValue(tempSensorId)   -- Temperature in Celsius
              local mahUsed = getValue(capaSensorId)   -- Capacity in mAh
          
              -- THRESHOLD 1: ESC Thermal Safety Overwrite (e.g., > 90°C)
              if escTemp > 90 then
                -- Play critical audio alert and vibrate transmitter
                playFile("/SOUNDS/en/esc_hot.wav")
                playHaptic(25, 5, 2) -- Duration, pause, repeat count
              end
          
              -- THRESHOLD 2: Capacity Consumption Alert (e.g., > 4000 mAh consumed)
              if mahUsed > 4000 then
                playFile("/SOUNDS/en/land_now.wav")
              end
            end
            return 0
          end
          
          return { run=run }
          
How This Script Enhances Safety: Rather than relying on static transmitter menus, this LUA script executes every 30 milliseconds in the background. If your ESC temperature spikes past 90°C during an extended hover, the transmitter instantly buzzes the haptic feedback motor and commands the audio engine to broadcast a voice warning, giving you time to land safely before thermal shutdown occurs.

6. Summary

Connecting ESC telemetry via a single serial wire converts your RadioMaster transmitter into a powerful, real-time ground control station. By routing hardware UART data into EdgeTX sensor discovery and deploying custom LUA background scripts, pilots transition from blind timer-based flying to proactive, data-driven flight management.