ESC telemetry is the most underused data pipeline on your quad. Your ESCs are measuring RPM, temperature, and current draw 16,000 times per second — and most pilots never read a single byte of it. Here’s how to pipe that data into your OSD and flight controller.
Step-by-Step ESC Telemetry Setup
Step 1: Check ESC Telemetry Compatibility
ESC telemetry requires both hardware and firmware that support bidirectional communication. Specifically, you need:
- BLHeli_32 ESCs (not BLHeli_S unless flashed with BlueJay firmware that enables bidirectional DShot) running version 32.7 or later
- DShot protocol selected in Betaflight (DShot300 or DShot600 recommended)
- A physical telemetry wire from the ESC to a UART on the flight controller (for separate telemetry pads), OR bidirectional DShot if your FC and ESCs both support it
Run the BLHeliSuite32 configurator and connect. If your ESCs show up with firmware version ≥32.7 and you see a “Telemetry” column, you’re ready.
If you’re running BLHeli_S ESCs, flash BlueJay firmware (https://github.com/mathiasvr/bluejay) to enable bidirectional DShot. This gives you RPM telemetry at a minimum — ESC temperature requires BLHeli_32 hardware with an onboard temperature sensor.
Step 2: Enable Bidirectional DShot in Betaflight
In Betaflight Configurator → Motors tab, enable “Bidirectional DShot” and set the protocol to DShot300 or DShot600. This tells the flight controller to listen for telemetry packets on the same wire used for motor signals. No additional UART needed.
After enabling, go to the Motors tab and spin each motor individually (props off). You should see an RPM reading in the “RPM” column for each motor. If RPM shows 0, bidirectional DShot isn’t working — check your BLHeli firmware version and DShot protocol selection.
Step 3: Wire the ESC Telemetry UART (for full telemetry including temperature and current)
Bidirectional DShot gives you RPM. For ESC temperature, per-motor current, and per-motor voltage, you need a dedicated telemetry wire. This is a single wire that daisy-chains through all four ESCs and connects to a free UART RX pad on your flight controller.
The wiring pattern:
1. Find the telemetry pad (usually labeled “TLM” or “T”) on each ESC
2. Solder a wire connecting all four telemetry pads in series
3. Run the final wire to a free UART RX pad on the FC (e.g., RX5)
4. In Betaflight Ports tab, set that UART’s “Sensor Input” column to “ESC”
After wiring, go to the Sensors tab in Betaflight and look for “ESC Temperature” and “ESC Current.” If they show values, you’re connected. Most ESCs report temperature in °C and current per motor in amps.
Step 4: Configure OSD to Display Telemetry Data
Open the Betaflight OSD tab. Add any combination of these telemetry fields:
| OSD Element | Data Source | Diagnostic Value |
|---|---|---|
| ESC RPM (individual) | Bidirectional DShot | Detect desyncs, bad motor, bent prop |
| ESC Temperature | Dedicated telemetry UART | Catch overheating ESC before failure |
| Average RPM | Calculated from 4 motors | General motor health trend |
| Maximum ESC RPM | Peak hold from all ESCs | Prop unloading events |
| ESC Current | Dedicated telemetry UART | Per-motor amp draw imbalance |
The single most useful field: ESC Temperature. A hot ESC is a dying ESC. If one motor’s ESC reports 85°C while the others sit at 60°C, you have a partial short, bad MOSFET, or an overtightened motor screw touching the windings. I’ve caught three impending ESC failures this way — each time, the temperature spiked 10-15 flights before the ESC actually failed, giving me time to replace it on the bench instead of in the field.
ESC Telemetry Protocol Comparison
| Telemetry Method | Data Available | Wire Count | Latency | ESC Compatibility |
|---|---|---|---|---|
| Bidirectional DShot | RPM only | 0 additional | ~2ms | BLHeli_32 ≥32.7, BlueJay |
| Dedicated TLM wire | RPM, temp, current, voltage | 1 wire daisy-chain | ~5ms | BLHeli_32 with TLM pad |
| KISS telemetry | RPM, temp, current | 1 wire per ESC | ~1ms | KISS ESCs only |
| PWM (no telemetry) | None | N/A | N/A | Legacy BLHeli_S |
Common Mistakes & How to Avoid Them
Mistake 1: Enabling bidirectional DShot on BLHeli_S without BlueJay. Stock BLHeli_S firmware has no clue what bidirectional DShot is. The motors will still spin, but RPM will read zero. Flash BlueJay first, then enable bidirectional DShot.
Mistake 2: Daisy-chaining telemetry to the wrong UART pad. ESC telemetry needs a UART RX pad, not TX. The ESCs transmit data — the FC receives it. Soldering to TX means you’re connecting two transmitters together, which at minimum produces no data and at worst fries the UART.
Mistake 3: Expecting temperature telemetry from a 4-in-1 ESC board. Most 4-in-1 ESCs have a single temperature sensor for the entire board, not per-motor. The “ESC 1 temperature” reading is actually the whole board. If one motor channel is overheating, you’ll still see it — the board temperature rises regardless of which channel is the source.
Mistake 4: Enabling RPM filtering without verifying RPM data. Betaflight RPM filtering uses the actual motor RPM to place notch filters precisely at motor frequency harmonics. If RPM data is wrong (garbage values from a bad telemetry link), the notch filters chase phantom frequencies and the quad flies worse than with no filtering at all. Always verify clean RPM data in the Motors tab before enabling RPM filtering.
Mistake 5: Ignoring telemetry dropout warnings. If your OSD shows RPM data flickering between real values and zero mid-flight, you have a marginal telemetry connection. Check your ESC signal ground — a floating ground causes the biggest telemetry headaches.
Internal Resources
ESC telemetry pairs directly with RPM filtering — once you have clean RPM data, configure the filters to actually use it. Our Betaflight RPM filtering setup guide walks through the complete filter chain. And if one motor’s RPM consistently differs from the others, our motor sizing and KV selection guide helps identify whether you have a stator mismatch or a mounting issue.
Visual Reference
Chris Rosser (UAV Tech) demonstrates ESC telemetry wiring and Betaflight configuration with oscilloscope captures of clean vs. noisy telemetry signals:
Hardware That Does Telemetry Right
Not all ESCs expose their telemetry pad in an accessible location. The uavmodel 50A BLHeli_32 4-in-1 ESC has the telemetry pad positioned at the board edge with a clearly labeled “T” pad, and it ships with BLHeli_32 version 32.9 pre-flashed — bidirectional DShot works immediately with no firmware upgrade required. The onboard temperature sensor has been accurate within ±2°C across the six units I’ve tested.
⚠️ Regulatory Notice: The flight recommendations in this article should be followed in accordance with the latest 2026 drone regulations in your country or region. Always verify local laws regarding flight altitude, no-fly zones, remote ID requirements, and registration before flying. Regulations vary significantly between the FAA (US), EASA (EU), CAA (UK), CAAC (China), and other authorities.
