Skip to main content

Configuring Open-Source ESC Parameters

Modern ESCs are small computers with settings of their own — motor direction, timing, braking, startup behaviour, protection limits. Changing them is worth knowing how to do, and it is less obvious than it looks, because an ESC has no USB port.

How the computer reaches the ESC

The flight controller does the relaying. It is not configuring anything itself — it just passes bytes between the computer and the four ESCs.

How a browser-based ESC configurator reaches the four ESCs through the flight controller

The protocol for that last hop is 4way-if, a single-wire serial protocol from the BLHeli project. It reuses the motor signal wire in both directions, which is why configuring an ESC needs no extra cabling — and also why it only works with ESC firmware that implements it: BLHeli_S, BLHeli_32, Bluejay and AM32.

Two ways to get a bridge

If your board runs ArduPilot, you do not need to reflash it. ArduPilot has BLHeli passthrough built in:

  1. Set SERVO_BLH_AUTO = 1 — this enables passthrough for all multicopter motor outputs.
  2. Reboot the flight controller.
  3. Open Mission Planner → Setup → Optional Hardware → BLHeli ESC Configurator.

That is the shortest path for an ArduPilot aircraft, and it covers the settings most people want. For AM32-specific settings and for firmware updates, use the dedicated AM32 configurator, which needs the Betaflight route below.

If you want the browser configurators, the board needs to be running Betaflight or INAV, because those tools speak Betaflight's protocol.

  • Betaflight — nothing to configure; passthrough works out of the box.
  • INAVenable motor output first. It is disabled by default, and with it disabled the configurator will not find the ESCs.

Flashing between firmwares: Firmware Flashing Guide.

Props off, every time

Remove the propellers before you connect. Motors can and do spin during configuration, during a motor test, and at the end of a firmware flash.

Wiring up

On an AIO board (flight controller and ESC on one board): just the USB cable — plus the battery, see below.

On a separate flight controller and 4-in-1 ESC: connect the ESC to the flight controller first, power the ESC from the flight battery, then plug USB into the flight controller.

The battery is not optional

USB powers the flight controller. It does not power the ESCs. Without the flight battery connected the configurator will connect to the flight controller happily and then find no ESCs — which reads as "the tool doesn't work" rather than "nothing is powered".

Connect with a browser configurator

Two tools, both running entirely in the browser:

ToolFirmware it handlesUse it for
esc-configurator.comBLHeli_S, Bluejay, AM32Most ESCs, including our Bluejay 4-in-1
am32.ca/configuratorAM32 onlyAM32 boards, and AM32 firmware updates

Both need a Chromium-based browser — Chrome or Edge. They use WebUSB, which Firefox and Safari do not implement.

  1. Open the tool.

  2. Click Port select at the top right, choose the flight controller's port, and click Connect.

    Selecting the port and connecting in the AM32 web configurator

  3. Click Read. The tool reads all four ESCs.

    Reading the ESCs after connecting

You should now see four panels, one per ESC.

All four ESCs read, showing their firmware and settings

Changing settings

Selection matters more than it looks. The panel border tells you the state:

BorderMeaning
GreyNot selected — changes will not be written to this ESC
GreenSelected, nothing changed
RedSelected, changed but not yet saved

Click the panels to select the ESCs you want to change — usually all four.

Motor direction. Tick or untick Reversed for the ESC concerned. Do it here rather than by swapping two motor wires: the electrical result is identical, but a software setting is visible to whoever opens the configuration next, and a swapped pair of wires is not.

Motor KV. Set it to match the motors you actually fitted. This value feeds the ESC's timing behaviour, and a figure a long way from reality can leave the ESC unable to drive the motor cleanly.

Save. With the ESCs still selected, click Save. This is the step people miss: settings changed on screen but never written are simply discarded when you disconnect, and the red border is the only warning you get.

Flashing ESC firmware

Firmware updates go through the same connection.

  1. Click Flash Firmware.
  2. Choose the version — the latest release is normally the right answer.
  3. Choose which ESCs to flash. Usually select all four.
  4. Click Start flash and wait. Four ESCs take tens of seconds.

The Flash Firmware dialog with a version selected and all four ESCs chosen

The target firmware file is normally detected automatically from the ESC; check it against the manual if you are selecting one by hand.

Do not interrupt a firmware flash

Losing power or unplugging USB mid-flash bricks the ESC. Unlike a flight controller, an ESC has no ROM bootloader to fall back on — recovery needs a hardware programmer connected to the board, which in practice means sending it back. Use a charged battery, leave the cable alone, and wait for the tool to report that it has finished.

Easily confused points

The flight controller is a bridge, not a participant. Its firmware matters only because it decides whether passthrough is available — it does not store or apply any ESC setting.

USB power is not ESC power. Connect the flight battery.

"Not selected" looks a lot like "selected". Grey versus green borders. Changes to unselected ESCs go nowhere.

Changing is not saving. Red border means unsaved. Click Save.

ArduPilot users do not have to reflash. SERVO_BLH_AUTO = 1 plus Mission Planner's BLHeli configurator handles most of it.

INAV hides the ESCs by default. Motor output is off until you enable it.

Bricking an ESC is permanent in a way bricking a flight controller is not. DFU saves flight controllers; there is no equivalent here.

Firefox and Safari cannot do this at all. WebUSB is a Chromium feature, not a browser preference you can change.

Troubleshooting

SymptomWhat to check
Tool connects, but finds no ESCsFlight battery not connected; INAV motor output disabled; ESC ribbon not seated.
No port to selectUSB cable is charge-only; another tool or browser tab holds the port; wrong browser.
Only some ESCs readThat channel's signal line — usually a solder joint on the ribbon connector or the ESC pad.
Settings do not stickThe ESCs were not selected when you clicked Save, or Save was never clicked.
Motor spins the wrong way after savingReversed was applied to a different ESC than you meant — check which panel you had selected.
Flash fails part-wayPower was interrupted. If the ESC no longer responds it needs a hardware programmer.

Written and maintained by the Robofusion engineering team.