FlySpark logo
AM32 logoAM32Hardware and linksUpdated

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

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

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 addressSTM32F051 family; 64 KB G071, AT32F421 and GD32 class
Firmware versions offeredRecent AM32 releases from the AM32 GitHub project, newest first
File namingAM32_<TARGET>_<version>.hex, picked from the target stored on each ESC
Settings23 fields, all editable, written back and verified
Startup melody128-byte Bluejay-format tune
BootloaderNever overwritten; installing one on a blank ESC is not supported
BLHeli_32 ESCsDetected and reported, not read, edited or flashed
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

AM32 configuration options compared

FeatureFlySparkesc-configurator.com
Reads AM32 through the flight controllerYesYes
Downloads AM32 releases for the ESC's targetYesYes
Startup melody editorYesYes
Runs in Chrome or Edge on a computerYesYes
Android app over USB OTGYesNo
Flight controller configurator in the same toolYesNo

AM32

How to configure AM32 ESCs through the flight controller

  1. Remove propellers

    Take every propeller off.

  2. Connect

    Open the ESC configurator and connect the Betaflight or INAV flight controller.

  3. Power the ESCs

    Plug in the battery; FlySpark reads each AM32 ESC with its version and target.

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

  1. Open the ESC configurator in Chrome or Edge, or in the FlySpark app, and connect the flight controller.

  2. Plug in the battery. Each ESC tile shows AM32 with its version and target name.

  3. In the Firmware card choose Download firmware. AM32 is selected and the sheet shows the targets it found.

  4. Pick a version (newest first) and press Download.

  5. Check that every ESC in the confirmation shows a tick, then press Flash.

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

  1. Connect to the ESCs with the battery in.

  2. Tap the tile of the ESC that needs changing.

  3. Choose Normal, Reversed, Bidirectional (3D) or Bidirectional reversed. The rotor on the tile turns the new way.

  4. Press Write. FlySpark writes and reads the block back to verify it.

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

  1. Connect to the ESCs.

  2. In the settings card, turn Variable PWM frequency off if you want a fixed value.

  3. Set PWM frequency between 24 and 48 kHz.

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

  1. Turn Sinusoidal startup on.

  2. Set Sine mode range to the throttle percentage where normal running should take over.

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

  1. AM32 ESC firmwareAM32 project (GitHub) · github.com
  2. AM32 releasesAM32 project (GitHub) · github.com
  3. AM32 ConfiguratorAM32 · am32.ca
  4. ESC FirmwareBetaflight · betaflight.com
  5. ESC Configurator - for Bluejay, BLHeli_S and AM32ESC Configurator · esc-configurator.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.