AM32 configurator: every AM32 setting and firmware update
FlySpark's AM32 configurator reads the settings of every AM32 ESC on your quad, lets you change them together or one ESC at a time, and updates AM32 to a newer release, all through the flight controller. You never need to open the quad or solder to the ESC.
It runs in Chrome or Edge on a computer and in the FlySpark app for Android, with Bluetooth and Wi-Fi bridges also supported in the app on Android and iPhone. Take the propellers off, connect the flight controller, plug in the battery, and each ESC appears with its AM32 version and hardware target, such as FLYCOLOR_F051.
Free. Hardware connections need Chrome or Edge on a computer; phones use the FlySpark app.
- Free
- Nothing to install
- Demo without hardware

In short
AM32 is ESC firmware for 32-bit ARM speed controllers. FlySpark's AM32 configurator reads all 23 AM32 settings through a Betaflight or INAV flight controller, writes and verifies them, and updates AM32 to the release built for each ESC's target, in Chrome, Edge or the FlySpark app.
Key facts
- All 23 AM32 settings are editable, including direction, input protocol, timing advance, motor KV and poles, PWM frequency (24 to 48 kHz), sine startup, braking, current and temperature limits and low-voltage cutoff.
- Every write is read back from the ESC and compared byte by byte.
- Settings location is known for STM32F051 ESCs and for the 64 KB G071, AT32F421 and GD32 class.
- Firmware comes from the am32-firmware/AM32 GitHub releases as AM32_<TARGET>_<version>.hex, picked from the target stored on the ESC, e.g. FLYCOLOR_F051.
- Startup melody: a 128-byte tune in Bluejay format, edited in the app and written to the ESC.
- The AM32 bootloader is never overwritten; a blank ESC first needs a bootloader installed with an ST-LINK, GD-LINK, CMSIS-DAP or AT-LINK programmer (AM32 docs).
- AM32 supports DShot 300 and 600, bidirectional DShot and variable PWM frequency (AM32 project README).
- BLHeli_32 ESCs are reported as BLHeli_32 and left untouched.
Betaflight
INAV
ArduPilot
PX4- BLHeli_S
Bluejay
AM32
ExpressLRS
EdgeTX
DroneCAN
MAVLink
AM32
Features
- 01
All 23 AM32 settings
Motor direction, input protocol, timing advance, startup power, motor KV and poles, PWM, sine startup, brakes, protections, low-voltage cutoff, beep volume and telemetry.
- 02
AM32 updates by target
FlySpark reads the target name stored in each ESC and offers recent AM32 releases from the project's GitHub, downloading AM32_<target>_<version>.hex for you.
- 03
Chip check before flashing
A file for a different microcontroller is never written. A different target on the same chip is shown and needs your confirmation.
- 04
Settings kept on update
Your AM32 settings are written back after the new firmware, and AM32 updates its stored version on the next power-up.
- 05
Per-ESC or all at once
Settings shared by every ESC are changed together; values that differ show as Mixed. Pick a single ESC to change only that one.
- 06
Startup tunes
AM32 plays Bluejay-format startup melodies. Write one from RTTTL text, the keyboard or a preset, or remove it to get the default three beeps.
- 07
BLHeli_32 told apart
AM32 and BLHeli_32 share ARM hardware. FlySpark checks the bootloader's signal pin and only edits ESCs that really run AM32.
- 08
Demo AM32 ESCs
The ESC demo is a simulated quad with four AM32 ESCs, so you can try every setting in the browser with nothing connected.
What AM32 is
AM32 is firmware for 32-bit ARM brushless ESCs. It runs on several microcontroller families, including STM32F051, STM32G071, Artery AT32F421 and GigaDevice GD32E230, and it is the main alternative to BLHeli_32 on 32-bit hardware. Many ESCs ship with it, and many earlier BLHeli_32 boards can be converted by installing an AM32 bootloader.
AM32 releases are built per hardware target. A target name like FLYCOLOR_F051 or WRAITH32_F421 describes the board design and ends with the chip family. The target often does not match the brand on the box, which is why reading it from the ESC is safer than guessing from a product listing.
How FlySpark reaches AM32 ESCs
AM32 has a bootloader that understands the same 4-way passthrough as BLHeli. When you open the ESC configurator, FlySpark asks your Betaflight or INAV flight controller to enter passthrough and connects to each motor output in turn. For each ESC it reads the chip signature, the signal pin the bootloader uses, the 192-byte AM32 settings block and the target name stored just before it.
The settings block lives at the end of flash, and its address depends on the chip. FlySpark knows it for the STM32F051 family and for the 64 KB G071, AT32F421 and GD32 class. If an AM32 ESC reports another chip, FlySpark shows the chip code and says the settings location is unknown instead of guessing.
AM32 settings explained
Timing advance runs from 0 to 30 degrees. Higher timing suits high-KV motors but runs hotter. ESCs flashed with old AM32 releases that stored timing in four steps (0, 7.5, 15 and 22.5 degrees) are shown with those four choices. Startup power runs from 50 to 150 percent; raise it only if motors stutter when starting. Motor KV and motor poles are used for the startup ramp and RPM limits, and most 5-inch motors have 14 poles.
Complementary PWM is active freewheeling, best left on unless the ESC maker says otherwise. Variable PWM frequency raises the PWM frequency with RPM; with it off, the fixed PWM frequency setting (24 to 48 kHz) is used. Sinusoidal startup gives a smooth, quiet start at very low throttle; sine mode range sets the throttle point where it hands over to normal running, and sine mode power sets its strength from 1 to 10.
Brake on stop holds the motor when the throttle is at zero, with brake strength from 1 to 10. Running brake brakes while the throttle drops; 10 means off. Stuck rotor protection cuts power when a motor is blocked. Stall protection is meant for crawlers and slow props, so keep it off on quads. The temperature limit reduces power above 70 to 140 °C (the top value means off), and the current limit needs a current sensor on the ESC. Low voltage cutoff turns on a per-cell cutoff voltage, settable from 2.50 to 3.50 V.
Input protocol Auto lets AM32 detect the signal itself; you can instead fix it to DShot, Servo PWM, Serial or EDT ARM. Beep volume runs from 0 to 11. Telemetry every interval sends ESC telemetry continuously instead of only when asked.
Updating AM32 firmware with the AM32 configurator
In the Firmware card, Download firmware lists recent AM32 releases for the targets on your quad. FlySpark downloads the file for each target, checks that the chip suffix matches, and flashes every matching ESC. The AM32 bootloader in the first 4 KB of flash is never written, so an interrupted update can be retried.
Before writing, FlySpark marks the settings so that a half-finished flash is visible, then writes and verifies the firmware, then puts your settings back with the version cleared. The ESC tile reads AM32 · power-cycle to finish until you unplug and replug the battery; AM32 then writes its new version number on its first start. If you choose a .hex yourself, a file for another target on the same chip can be flashed with Flash anyway; a file for another chip never is.
What FlySpark does not do for AM32
A blank ESC, or one that still runs BLHeli_32, has no AM32 bootloader. Installing that bootloader needs a debug probe such as an ST-Link or AT-Link wired to the ESC's programming pads, and the AM32 project documents it per chip. FlySpark cannot install bootloaders. Once the bootloader is on, FlySpark can flash and configure the ESC through the flight controller.
At a glance
AM32 compatibility in FlySpark
| Chips with known settings address | STM32F051 family; 64 KB G071, AT32F421 and GD32 class |
|---|---|
| Firmware versions offered | Recent AM32 releases from the AM32 GitHub project, newest first |
| File naming | AM32_<TARGET>_<version>.hex, picked from the target stored on each ESC |
| Settings | 23 fields, all editable, written back and verified |
| Startup melody | 128-byte Bluejay-format tune |
| Bootloader | Never overwritten; installing one on a blank ESC is not supported |
| BLHeli_32 ESCs | Detected and reported, not read, edited or flashed |
| 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
AM32 configuration options compared
| Feature | FlySpark | esc-configurator.com |
|---|---|---|
| Reads AM32 through the flight controller | Yes | Yes |
| Downloads AM32 releases for the ESC's target | Yes | Yes |
| Startup melody editor | Yes | Yes |
| Runs in Chrome or Edge on a computer | Yes | Yes |
| Android app over USB OTG | Yes | No |
| Flight controller configurator in the same tool | Yes | No |
AM32
How to configure AM32 ESCs through the flight controller
Remove propellers
Take every propeller off.
Connect
Open the ESC configurator and connect the Betaflight or INAV flight controller.
Power the ESCs
Plug in the battery; FlySpark reads each AM32 ESC with its version and target.
Change and write
Change the settings and press Write, or update the firmware from the Firmware card.
Guide 01
Update AM32 through the flight controller
Keep the battery connected throughout. Props off.
Open the ESC configurator in Chrome or Edge, or in the FlySpark app, and connect the flight controller.
Plug in the battery. Each ESC tile shows AM32 with its version and target name.
In the Firmware card choose Download firmware. AM32 is selected and the sheet shows the targets it found.
Pick a version (newest first) and press Download.
Check that every ESC in the confirmation shows a tick, then press Flash.
When it finishes, the tiles read AM32 · power-cycle to finish. Unplug and replug the battery, reconnect, and check the new version.
Guide 02
Set AM32 motor direction
AM32 stores direction in each ESC. Props off.
Connect to the ESCs with the battery in.
Tap the tile of the ESC that needs changing.
Choose Normal, Reversed, Bidirectional (3D) or Bidirectional reversed. The rotor on the tile turns the new way.
Press Write. FlySpark writes and reads the block back to verify it.
Check with a motor test before fitting props. For 3D flight the flight controller must also be set up for 3D.
Guide 03
Set the AM32 PWM frequency
AM32 lets you choose a fixed PWM frequency or let it rise with RPM.
Connect to the ESCs.
In the settings card, turn Variable PWM frequency off if you want a fixed value.
Set PWM frequency between 24 and 48 kHz.
Press Write to all ESCs, then test on the bench with props off before flying.
Guide 04
Smooth, quiet low-throttle starts
Useful for cinematic quads and crawlers.
Turn Sinusoidal startup on.
Set Sine mode range to the throttle percentage where normal running should take over.
Raise Sine mode power slowly if the motor hesitates, and write the change.
Troubleshooting
Common problems and fixes
Problem
"BLHeli_32: closed settings format, use BLHeliSuite32"
Fix
This ARM ESC's bootloader uses a signal pin AM32 does not, so it runs BLHeli_32. Use BLHeliSuite32 for settings, or Motors › ESC spin direction in FlySpark's Betaflight configurator for direction.
Problem
"AM32 on MCU 0x....: settings location unknown"
Fix
The ESC runs AM32 on a chip whose settings address FlySpark does not know. Use another AM32 configurator for this ESC.
Problem
"AM32 ESC with no settings stored. Flash AM32 again to restore them."
Fix
The settings block is empty, usually after an earlier flash stopped part way. Flash AM32 for the ESC's target from a .hex file, then power-cycle.
Problem
Tile reads "AM32 · power-cycle to finish"
Fix
Normal after an update. Unplug and replug the battery; AM32 writes its version on the first start.
Problem
Download firmware is greyed out for an AM32 ESC
Fix
The ESC has no target name stored, which happens with old AM32 builds. Download the right AM32_<target>_<version>.hex yourself and use Choose a .hex file.
Problem
"wrong chip (...); never flashed"
Fix
The file's chip suffix, such as F051 or F421, differs from the ESC's. Pick the file whose target ends in the same chip.
Problem
"Verification failed at byte ..." after writing settings
Fix
The ESC did not store what was sent. Check the battery is still connected, reconnect and write again.
Problem
Motors stutter on startup after changing settings
Fix
Raise Startup power a little, check Motor poles matches your motor, and try sinusoidal startup.
Glossary
Glossary of terms
- Target
- The AM32 build name for one ESC hardware design, ending in the chip family, for example FLYCOLOR_F051.
- Complementary PWM
- Driving both MOSFETs of a phase in turn so current freewheels actively; smoother and cooler on most ESCs.
- Variable PWM
- PWM frequency that rises with motor speed instead of staying fixed.
- Sinusoidal startup
- Driving the motor with a sine wave at very low throttle for a smooth, quiet start.
- Running brake
- Active braking while the throttle is falling, which speeds up deceleration.
- Stuck rotor protection
- Cuts power when the motor should be turning but is not, to protect the ESC and motor.
- EDT
- Extended DShot telemetry, extra data sent back over bidirectional DShot. AM32's input protocol list includes an EDT ARM option.
FAQ
Frequently asked questions
Can I configure AM32 ESCs on Android?
Yes. The FlySpark Android app reaches AM32 ESCs through the flight controller on a USB OTG cable, a Bluetooth UART module or a Wi-Fi MSP bridge.
How do I find my AM32 target?
Connect to the ESCs. FlySpark reads the target name stored on each ESC and shows it on the ESC tile, so you do not need to guess from the brand.
Will updating AM32 erase my settings?
No. FlySpark writes your settings back after the new firmware. Power-cycle once so AM32 records its new version.
Can FlySpark flash AM32 onto a BLHeli_32 ESC?
No. That needs an AM32 bootloader installed with a debug probe first. After that, FlySpark can flash and configure it.
What is the best AM32 PWM frequency?
There is no single best value. Leave variable PWM on if you are unsure; set a fixed frequency between 24 and 48 kHz if your ESC maker or your testing suggests one.
Does AM32 support bidirectional DShot for the RPM filter?
Yes, AM32 sends RPM telemetry over bidirectional DShot. Turn it on in the Motors tab of the Betaflight configurator and set the motor poles there too.
Why do my ESCs show Mixed for a setting?
The ESCs hold different values. Choose a value to set them all the same, or pick one ESC to edit it on its own.
Can I play a custom startup tune on AM32?
Yes. AM32 plays Bluejay-format tunes. Use the music note in the ESC screen; removing the tune brings back the three default beeps.
Do I need the battery connected?
Yes. The ESCs need battery power to answer. Keep it connected while writing or flashing.
Can I try the AM32 configurator without hardware?
Yes. The ESC demo runs four simulated AM32 ESCs in your browser.
References
Sources
The official documentation behind the background facts on this page.
- AM32 ESC firmwareAM32 project (GitHub) · github.com
- AM32 releasesAM32 project (GitHub) · github.com
- AM32 ConfiguratorAM32 · am32.ca
- ESC FirmwareBetaflight · betaflight.com
- ESC Configurator - for Bluejay, BLHeli_S and AM32ESC Configurator · esc-configurator.com



