BLHeli_S configurator in your browser and on Android
FlySpark is a BLHeli_S configurator that needs no Windows PC and no USB linker. It reaches BLHeli_S ESCs through your Betaflight or INAV flight controller, reads every ESC in one go, and lets you change motor direction, timing, demag compensation, startup power, protections and beeps. It can also reflash BLHeli_S 16.7 or move the ESCs to Bluejay.
Open it in Chrome or Edge on a computer, or in the FlySpark app on an Android phone with a USB OTG cable; the app also connects over a Bluetooth UART module or a Wi-Fi MSP bridge. It even reads older BLHeli 14 ESCs with Atmel chips.
Free. Hardware connections need Chrome or Edge on a computer; phones use the FlySpark app.
- Free
- Nothing to install
- Demo without hardware

In short
BLHeli_S is ESC firmware for 8-bit SiLabs EFM8 chips. FlySpark reads and edits 10 BLHeli_S settings on every ESC through a Betaflight or INAV flight controller, and can reflash BLHeli_S 16.7 or switch the ESCs to Bluejay, in Chrome, Edge or the FlySpark app.
Key facts
- 10 settings edited: direction, timing, demag compensation, startup power, temperature protection, low RPM power protection, brake on stop, beep strength, beacon strength and beacon delay.
- Choices: 4 direction modes, 5 timing levels, 3 demag levels and 13 startup power steps from 0.031 to 1.50.
- Temperature protection is Off or 80 to 140 °C in 10 °C steps; beacon delay is 1, 2, 5 or 10 minutes, or Never.
- Flashing installs BLHeli_S 16.7 for each ESC's own layout, taken from the bitdump/BLHeli repository, on EFM8BB1 and EFM8BB2 chips.
- The 512-byte settings page is rewritten whole, so bytes FlySpark does not edit survive, then read back to verify.
- Older BLHeli 14 ESCs on Atmel ATmega chips can be read and edited but not flashed.
- Betaflight lists BLHeli_S MCUs as BusyBee BB1 (L), BB21 (H) and BB51 (X), and recommends Bluejay for 8-bit ESCs (Betaflight docs).
Betaflight
INAV
ArduPilot
PX4- BLHeli_S
Bluejay
AM32
ExpressLRS
EdgeTX
DroneCAN
MAVLink
ESC
Features
- 01
Ten BLHeli_S settings
Motor direction, motor timing, demag compensation, startup power, temperature protection, low RPM power protection, brake on stop, beep strength, beacon strength and beacon delay.
- 02
Edit all ESCs together
Shared settings change on every ESC at once. Values that differ show as Mixed until you set them.
- 03
Direction on the ESC tiles
Each ESC tile shows its version, layout and a rotor spinning the current way. Tap to choose normal, reversed or one of the bidirectional modes.
- 04
Reflash BLHeli_S 16.7
Downloads the latest BLHeli_S release for each ESC's layout from the BLHeli repository and flashes it through the flight controller.
- 05
Switch to Bluejay
The same Firmware card offers Bluejay for the same layout, so you can move to bidirectional DShot without other tools.
- 06
Layout and chip checks
Before flashing a .hex, FlySpark compares its layout and MCU tags with each ESC. A wrong chip is never flashed.
- 07
Old BLHeli on Atmel
BLHeli 14 ESCs with ATmega chips keep settings in EEPROM. FlySpark reads and edits the settings that mean the same in every BLHeli 14 multirotor build.
- 08
Verified writes
Every settings write is read back byte by byte, and FlySpark tells you which ESC and byte did not match if one fails.
What BLHeli_S is
BLHeli_S is the firmware that shipped on most 8-bit ESCs for small and mid-size quads: 4-in-1 boards on whoops, toothpicks and many 5-inch builds. It runs on SiLabs EFM8 microcontrollers, the EFM8BB1 and the faster EFM8BB2, and understands DShot as well as older analog protocols. Development ended with version 16.7, so any BLHeli_S ESC you buy today runs 16.7 or an earlier 16.x.
What BLHeli_S never got is bidirectional DShot, the RPM telemetry Betaflight's RPM filter uses. That is why many pilots move these ESCs to Bluejay, which runs on the same hardware. If that is your goal, the Bluejay configurator page walks through it. If you want to keep BLHeli_S and just tune it, this page covers every setting FlySpark changes.
Connecting a BLHeli_S configurator without a linker
Years ago, configuring BLHeli ESCs meant a separate USB linker clipped onto the signal wire. Today the flight controller does that job: Betaflight and INAV have a passthrough mode, the BLHeli 4-way interface, that bridges the USB port to every ESC's signal pad. FlySpark switches the flight controller into this mode when you open the ESC configurator, reads each ESC, and switches it back when you press Done.
The ESCs only answer when powered, so connect the flight battery after USB. Use DShot or Multishot as the motor protocol, keep the drone disarmed, and leave the CLI before opening the ESC screen. The flight controller pauses its normal MSP connection while you edit; FlySpark reconnects to it automatically afterwards.
BLHeli_S settings explained
Motor timing has five steps from Low to High. Higher timing suits high-KV motors but runs hotter; Medium is the usual starting point. Demag compensation, Off, Low or High, helps prevent desyncs on hard throttle punches, the stutter or sudden motor stop you sometimes hear on aggressive flying. If a motor desyncs, raising demag is one of the first things to try.
Startup power sets how hard the ESC pushes to start the motor, from 0.031 to 1.50. Raise it only if motors stutter on startup. Low RPM power protection limits power at low RPM; the BLHeli_S manual notes it may need to be off to reach full power with low-KV motors on low voltage. Temperature protection cuts power above a threshold from 80 to 140 °C, or can be turned off.
Brake on stop actively holds the motor when the throttle is at zero. Beep strength sets how loud the ESC beeps, beacon strength sets the volume of the lost-model beacon, and beacon delay sets how long the quad must sit still before the beacon starts: 1, 2, 5 or 10 minutes, or never. Motor direction offers normal, reversed, bidirectional (3D) and bidirectional reversed.
Flashing BLHeli_S 16.7
BLHeli_S files are published per layout, such as A_H_15_REV16_7.HEX, in the BLHeli repository. FlySpark reads each ESC's layout and fetches the matching file, so a mixed set of ESCs gets the right file each. Flashing works on EFM8BB1 and EFM8BB2 ESCs and never touches the ESC's bootloader. The settings shared by the old and new firmware are written back afterwards.
Reflashing 16.7 is useful after an ESC was flashed with the wrong layout, after a failed flash, or to return from Bluejay. Before it starts, FlySpark writes **FLASH*FAILED** into the ESC's name field and points the reset address at the bootloader, and it erases the settings page last. If the flash is interrupted, the ESC starts in its bootloader, normally still reports its layout, and can be flashed again; the name tells other tools too that the flash did not finish.
BLHeli 14 on Atmel and SiLabs
Older ESCs ran the original BLHeli, version 14 and earlier. On Atmel ATmega chips it keeps its settings in EEPROM, and FlySpark reads and edits the fields that mean the same in every BLHeli 14 multirotor build: direction (normal, reversed or bidirectional), timing, demag, startup power, temperature protection on or off, low RPM protection, brake on stop and the beep settings. Only the bytes you changed are written.
Old BLHeli on SiLabs F-series chips stores its settings in a place that differs per chip, so those ESCs are identified by chip but not edited. FlySpark does not flash firmware to Atmel or SiLabs F-series ESCs.
At a glance
BLHeli_S support in FlySpark
| BLHeli_S chips read and edited | SiLabs EFM8BB1, EFM8BB2 |
|---|---|
| BLHeli_S flashing | Version 16.7 for each ESC's layout, on EFM8BB1 and EFM8BB2 |
| Settings edited | Direction, timing, demag, startup power, temperature protection, low RPM protection, brake on stop, beep, beacon strength, beacon delay |
| Old BLHeli 14 (Atmel ATmega) | Settings read and edited, not flashed |
| Old BLHeli (SiLabs F-series) | Identified, not edited or flashed |
| Startup melody | Not available on BLHeli_S |
| Flight controller firmware | Betaflight or INAV with ESC passthrough |
| Connection | USB (Web Serial in Chrome or Edge, USB OTG on Android), Bluetooth UART module, or Wi-Fi MSP bridge in the app |
| Platforms | Chrome or Edge on a computer; FlySpark app on Android and iPhone (Bluetooth or Wi-Fi on iPhone) |
Compare
BLHeli_S configurators compared
| Feature | FlySpark | BLHeliSuite | esc-configurator.com |
|---|---|---|---|
| Runs on | Chrome or Edge, Android, iPhone | Windows | Chrome or Edge |
| Through flight controller passthrough | Yes | Yes | Yes |
| Every BLHeli_S setting | Ten common settings | Yes | Yes |
| Flash BLHeli_S 16.7 | Yes | Yes | Yes |
| Flight controller configurator in the same tool | Yes | No | No |
ESC
How to configure BLHeli_S ESCs in the browser
Remove propellers
Take every propeller off.
Connect the flight controller
Open the ESC configurator in Chrome or Edge, or the FlySpark app, and connect over USB.
Power the ESCs
Plug in the battery so FlySpark can read every BLHeli_S ESC.
Edit and write
Change timing, demag, startup power or direction, then press Write.
Guide 01
Change BLHeli_S settings on all four ESCs
The settings card edits every ESC that runs the same firmware.
Remove the propellers.
Open the ESC configurator and connect the flight controller over USB, Bluetooth or Wi-Fi.
Plug in the battery. Wait until each tile shows BLHeli_S with its version and layout.
Change the settings you need, for example Demag compensation to High.
Press Write at the bottom. Changed ESCs are written and read back one by one.
Press Done to give the link back to the flight controller.
Guide 02
Fix one motor spinning the wrong way
Direction is set per ESC on the tiles, not in the shared settings.
Connect with props off and the battery in.
Tap the ESC tile for the wrong motor.
Choose Reversed, or Normal if it is already reversed.
Press Write, then Done, and confirm with a motor test before fitting props.
Guide 03
Recover a BLHeli_S ESC after a failed flash
The BLHeli_S bootloader survives a failed flash, so the ESC can be reflashed through the flight controller.
Reconnect with the flight battery plugged in. The ESC that failed still answers from its bootloader.
If its tile shows a layout, choose Download firmware, pick BLHeli_S 16.7 (or Bluejay) and flash it again.
If the tile shows Unknown firmware, the settings page was erased and FlySpark cannot check a file against it. Use a tool that lets you choose the layout by hand, such as BLHeliSuite, with the layout the other ESCs on the board report.
Power-cycle and reconnect to check the version.
Troubleshooting
Common problems and fixes
Problem
"The ESCs did not answer."
Fix
Plug in the flight battery, check the motor protocol is DShot or Multishot and that the ESCs run BLHeli_S, Bluejay or AM32.
Problem
"Leave the CLI first"
Fix
Passthrough can't start while the CLI is open. Close the CLI and open the ESC screen again.
Problem
"no ESC on that motor output"
Fix
The flight controller has fewer motors mapped than ESCs fitted, or an output is remapped. Check the mixer and motor resources.
Problem
"checksum error on the link"
Fix
Data was corrupted on the passthrough link. FlySpark retries once; if it keeps happening, try a better USB cable and keep the battery connected.
Problem
"None of these ESCs can be flashed with this file."
Fix
The file is not BLHeli_S or Bluejay for these ESCs, or the ESCs use a chip FlySpark does not flash (only EFM8BB1 and EFM8BB2). Use Download firmware so the file is picked for you.
Problem
"built for X, this ESC is Y" in the flash dialog
Fix
The file is for a different layout on the same chip. Only use Flash anyway if you are sure; the wrong dead time can damage an ESC.
Problem
"The flight controller did not come back after the ESC session"
Fix
Some boards restart badly after passthrough. Unplug USB and battery, plug back in and reconnect.
Glossary
Glossary of terms
- Demag compensation
- Protection against motor stalls caused by the winding taking too long to demagnetise after a commutation step.
- Motor timing
- How early the ESC switches to the next phase. Higher suits high-KV motors but adds heat.
- Startup power
- The maximum power used while the motor starts turning.
- Beacon
- A loud repeating beep from the motors after the quad has been still for the beacon delay, to help find it after a crash.
- EFM8BB1 / EFM8BB2
- The SiLabs 8-bit chips BLHeli_S runs on; L layouts use BB1, H layouts use BB2.
- Passthrough
- Flight controller mode that connects the configurator straight to the ESCs over the motor signal wires.
FAQ
Frequently asked questions
Can I use a BLHeli_S configurator without BLHeliSuite?
Yes. FlySpark reads and writes BLHeli_S settings through the flight controller in Chrome, Edge or the FlySpark app, with no Windows program.
Which BLHeli_S version is the latest?
16.7 is the latest BLHeli_S release. FlySpark flashes 16.7 for your ESC's layout.
Does BLHeli_S support bidirectional DShot?
No. For RPM telemetry flash Bluejay, which runs on the same hardware and can be flashed from the same screen.
What timing should I use on BLHeli_S?
Start at Medium. Go higher only for high-KV motors if they desync, and watch motor temperature.
What does demag compensation do?
It helps prevent desyncs during hard throttle changes. If a motor stutters or stops on punch-outs, try High.
Can I change BLHeli_S settings from my phone?
Yes, in the FlySpark app on Android over USB OTG, Bluetooth or Wi-Fi, and on iPhone over Bluetooth or Wi-Fi.
Can I set a startup tune on BLHeli_S?
No, BLHeli_S has no melody storage. Bluejay and AM32 do.
Why is one ESC listed as Unknown firmware?
Its settings page is blank or unreadable, often after an interrupted flash. Reflash BLHeli_S or Bluejay for its layout.
Do I need to remove props?
Yes, always. Writing settings and flashing can make motors beep or twitch, and you will test direction afterwards.
Can I try the BLHeli_S configurator without a drone?
Yes. The ESC configurator's demo connects to a simulated flight controller with BLHeli_S ESCs.
References
Sources
The official documentation behind the background facts on this page.
- BLHeli, BLHeli_S and BLHeli_32 code and hex filesBLHeli (GitHub) · github.com
- ESC FirmwareBetaflight · betaflight.com
- Bluejay: digital ESC firmware for multirotorsBluejay project (GitHub) · github.com
- ESC Configurator - for Bluejay, BLHeli_S and AM32ESC Configurator · esc-configurator.com
- DShot RPM FilteringBetaflight · betaflight.com



