Quick Answer
Flashing ESC firmware means replacing the factory software on your electronic speed controllers with an alternative like Bluejay, BLHeli_S, or AM32. You need a flight controller running Betaflight, a USB cable, and the right configurator app. The whole process takes about ten minutes per ESC.
Why Flash Custom ESC Firmware
Most FPV ESCs ship with basic firmware that works but does not unlock the hardware's full potential. Custom firmware gives you bi-directional DShot for real-time RPM data, smoother motor response, and adjustable PWM frequency and motor timing. This data feeds into Betaflight's RPM filtering, reducing prop wash and mid-throttle oscillation.
The three main options are Bluejay (adds bi-directional DShot and 48kHz PWM to BLHeli_S hardware), BLHeli_S (stable and widely supported), and AM32 (for 32-bit ARM ESCs). See our ESC firmware comparison guide for the full breakdown.
What You Need Before Flashing
Confirm your ESC is compatible. Bluejay works with BLHeli_S EFM8-based ESCs. AM32 targets ARM-based 32-bit ESCs. Flashing the wrong firmware can permanently damage your ESC, so check the label or product docs carefully.
You need: a flight controller connected to your ESCs, Betaflight Configurator, BLHeliSuite32 or the AM32 web configurator, and a USB cable. Have a Bluejay-compatible ESC or AM32-compatible ESC installed. Remove propellers before starting.
Flashing Bluejay Firmware
Bluejay is the most popular upgrade for BLHeli_S pilots wanting bi-directional DShot.
- Connect your flight controller via USB. Open Betaflight Configurator and confirm all ESCs appear on the Motors tab.
- Open BLHeliSuite32 and select the correct BLHeli_S variant. Click "Connect" and choose the right COM port.
- Read current setup by clicking "Read Setup". You should see four ESC entries with firmware version and layout.
- Select Bluejay firmware from the dropdown. Choose the correct layout for your ESC (check the silkscreen for codes like "L_6" or "H_40"). Wrong layout is the most common cause of failure.
- Flash each ESC one at a time. Wait for each progress bar to complete before moving to the next. Never disconnect USB during flashing.
- Verify by clicking "Read Setup" again. All four should show "Bluejay" with a version number.
After flashing, enable bi-directional DShot in Betaflight: set ESC/Motor protocol to DSHOT300 or DSHOT600, tick "Bi-directional DShot", save and reboot. See our Bluejay PWM frequency guide for post-flash tuning.
Flashing AM32 Firmware
AM32 targets 32-bit ARM ESCs and suits newer hardware.
- Open the AM32 configurator at esc-configurator.com.
- Connect via USB passthrough through your flight controller.
- Read current firmware to confirm the connection.
- Select the correct AM32 binary from GitHub releases. Filenames include the ESC type (for example "AM32-H_40-v1.95.hex").
- Flash all ESCs one at a time. The browser-based configurator handles passthrough directly.
Troubleshooting Common Problems
A "verify failed" error usually means wrong layout selection. Double-check your ESC silkscreen against the layout list. A poor USB cable can cause intermittent drops, so use a short, quality cable. If problems persist, power cycle and flash one ESC at a time.
An unresponsive ESC after a bad flash may need an ST-Link or SiLabs adapter soldered directly to the pads. This is a last resort. For more, see our DShot vs Multishot comparison.
FAQ
Q: Can flashing brick my ESC?
A: Rare but possible if you flash the wrong layout or lose power mid-flash. Always verify the layout first.
Q: Must all ESCs run the same firmware?
A: Yes. Mixed firmware causes sync issues and flight instability. Use the same firmware on all four.
Q: Can I flash without a flight controller?
A: Yes, using an ST-Link or similar adapter. USB passthrough through a flight controller is simpler.