FlySpark logo
ESC logoESCHardware and linksUpdated

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
ESC logo

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 logoBetaflight
  • INAV logoINAV
  • ArduPilot logoArduPilot
  • PX4 logoPX4
  • BLHeli_S
  • Bluejay logoBluejay
  • AM32 logoAM32
  • ExpressLRS logoExpressLRS
  • EdgeTX logoEdgeTX
  • DroneCAN logoDroneCAN
  • MAVLink logoMAVLink

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 editedSiLabs EFM8BB1, EFM8BB2
BLHeli_S flashingVersion 16.7 for each ESC's layout, on EFM8BB1 and EFM8BB2
Settings editedDirection, 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 melodyNot available on BLHeli_S
Flight controller firmwareBetaflight or INAV with ESC passthrough
ConnectionUSB (Web Serial in Chrome or Edge, USB OTG on Android), Bluetooth UART module, or Wi-Fi MSP bridge in the app
PlatformsChrome or Edge on a computer; FlySpark app on Android and iPhone (Bluetooth or Wi-Fi on iPhone)

Compare

BLHeli_S configurators compared

FeatureFlySparkBLHeliSuiteesc-configurator.com
Runs onChrome or Edge, Android, iPhoneWindowsChrome or Edge
Through flight controller passthroughYesYesYes
Every BLHeli_S settingTen common settingsYesYes
Flash BLHeli_S 16.7YesYesYes
Flight controller configurator in the same toolYesNoNo

ESC

How to configure BLHeli_S ESCs in the browser

  1. Remove propellers

    Take every propeller off.

  2. Connect the flight controller

    Open the ESC configurator in Chrome or Edge, or the FlySpark app, and connect over USB.

  3. Power the ESCs

    Plug in the battery so FlySpark can read every BLHeli_S ESC.

  4. 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.

  1. Remove the propellers.

  2. Open the ESC configurator and connect the flight controller over USB, Bluetooth or Wi-Fi.

  3. Plug in the battery. Wait until each tile shows BLHeli_S with its version and layout.

  4. Change the settings you need, for example Demag compensation to High.

  5. Press Write at the bottom. Changed ESCs are written and read back one by one.

  6. 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.

  1. Connect with props off and the battery in.

  2. Tap the ESC tile for the wrong motor.

  3. Choose Reversed, or Normal if it is already reversed.

  4. 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.

  1. Reconnect with the flight battery plugged in. The ESC that failed still answers from its bootloader.

  2. If its tile shows a layout, choose Download firmware, pick BLHeli_S 16.7 (or Bluejay) and flash it again.

  3. 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.

  4. 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.

  1. BLHeli, BLHeli_S and BLHeli_32 code and hex filesBLHeli (GitHub) · github.com
  2. ESC FirmwareBetaflight · betaflight.com
  3. Bluejay: digital ESC firmware for multirotorsBluejay project (GitHub) · github.com
  4. ESC Configurator - for Bluejay, BLHeli_S and AM32ESC Configurator · esc-configurator.com
  5. DShot RPM FilteringBetaflight · betaflight.com

Tools

See every FlySpark tool

Ready to try it?

Free. Hardware connections need Chrome or Edge on a computer; phones use the FlySpark app.