ELRS & ESC Firmware

ExpressLRS (ELRS) is the dominant open-source radio link for FPV, offering sub-1ms latency and multi-kilometer range. Paired with modern ESC firmware, your control link and motor control are the foundation of a responsive quad.

ExpressLRS (ELRS)

ExpressLRS is an open-source radio control link operating on 900MHz or 2.4GHz. It's free, community-driven, and outperforms commercial systems in both latency and range. ELRS is now the standard for FPV drones worldwide.

Key ELRS Specs

Parameter2.4 GHz900 MHz
Packet Rate50–1000 Hz25–200 Hz
Latency~1ms (at 1000Hz)~5ms (at 200Hz)
Range (typical)5–15 km10–40+ km
Power Output25–1000 mW25–1000 mW
Best ForRacing, freestyleLong range, penetration

ELRS Setup — Step by Step

1. Flash Transmitter Module

2. Flash Receiver

Binding Without Binding Phrase

If not using a binding phrase, use the traditional bind method: power the RX 3 times quickly (plug-unplug-plug-unplug-plug) to enter bind mode, then select "Bind" in the ELRS Lua script on your radio.

Packet Rate Selection

Packet RateLatencyRangeBest Use
1000 Hz~1msShortRacing, indoor proximity
500 Hz~2msMediumFreestyle (best balance)
250 Hz~4msLongGeneral, good all-around
150 Hz~6msVery LongLong range cruising
50 Hz~15msMaximumExtreme long range

⚠️ 1000 Hz Warning

While 1000 Hz gives the lowest latency, it has significantly reduced range and can cause failsafes at distance. For most freestyle flying, 500 Hz is the sweet spot. Use 1000 Hz only for racing gates.

ELRS Lua Script

The ELRS Lua script runs on your radio (EdgeTX/OpenTX) to control ELRS settings:

ESC Firmware

ESC firmware controls your brushless motors. Modern ESCs use BLHeli_32, BLHeli_S, or AM32 firmware, configured via their respective configurator apps.

ESC Firmware Comparison

FirmwareMCU TypeProtocolFeatures
BLHeli_32STM32 (32-bit)DSHOT, PWMMost features, telemetry, braking
BLHeli_S (JESC)ATmega (8-bit)DSHOT300/600Good performance, lightweight
AM32Various 32-bitDSHOTOpen source, growing support
KISSProprietaryKISS DSHOTSmooth, KISS ESCs only

BLHeli Configurator

BLHeli_32 Configurator (or BLHeliSuite for older ESCs) lets you configure your ESCs via USB passthrough from Betaflight.

Key Settings

SettingRecommendedNotes
Motor DirectionNormal or ReversedMatch the X-frame motor layout
PWM Frequency24-48 kHzHigher = smoother, slightly more heat
Motor Timing16-23°16° for racing, 23° for smoothness
Rampup Power0.25-0.5Lower = softer throttle response
Brake on StopEnabledBetter prop braking on zero throttle
Demag CompensationHighPrevents desync on rapid throttle changes
Bidirectional DSHOTEnabledRequired for RPM filtering

RPM Filtering

Bidirectional DSHOT sends motor RPM data back to the FC. Betaflight uses this for RPM Filter — the single most impactful filter. It automatically notches out each motor's noise frequency. Enable it in Configuration → DSHOT Bidirectional = ON. This alone can clean up a noisy build dramatically.

Motor Direction Setup

Standard X-frame motor direction (props-in configuration):

PositionMotor #DirectionProp
Front RightMotor 1CW (clockwise)CW prop
Rear RightMotor 2CCW (counter-clockwise)CCW prop
Rear LeftMotor 3CW (clockwise)CW prop
Front LeftMotor 4CCW (counter-clockwise)CCW prop

To reverse a motor: use BLHeli Configurator to flip direction, or physically swap any two motor wires. BLHeli method is preferred as it's software-based and reversible.

Other Flight Firmware Options

INAV

INAV focuses on GPS navigation, autonomous flight, and fixed-wing/multirotor support. It's the go-to for:

ArduPilot

ArduPilot is the most capable open-source autopilot. It supports everything from 250mm quads to full-size helicopters.

FeatureBetaflightINAVArduPilot
Best ForFPV racing/freestyleGPS nav, fixed-wingFull autonomy
Flight Performance★★★★★★★★★☆★★★☆☆
GPS Features★★☆☆☆★★★★★★★★★★
Ease of Setup★★★★★★★★★☆★★☆☆☆
Community Size★★★★★★★★★☆★★★★☆

Next: Tools & Parts List →