I still run BLHeli_S ESCs on half my fleet. BLHeli_32 is better on paper — faster MCU, more timer resolution, native bidirectional DShot. But the BLHeli_S hardware is simpler, cheaper, and with the right firmware, it does 95% of what BLHeli_32 does at 60% of the cost. The key is JazzMaverick firmware. Without it, your BLHeli_S ESC is stuck in 2018. With it, you’ve got RPM filtering, adjustable startup power, and motor direction control that works.
BLHeli_S ESC Configuration with JazzMaverick Firmware
The stock BLHeli_S firmware (versions 16.7 and 16.8) is frozen. No bidirectional DShot, no RPM telemetry, no configurable PWM frequency. JazzMaverick is a community fork that backports these features to the EFM8BB21 MCU on BLHeli_S hardware. It’s been stable since the 16.80 release and I’ve put hundreds of packs through it.
Step 1: Identify Your BLHeli_S ESC Version
Connect to BLHeliSuite32 (Windows) or use the BLHeli Configurator Chrome app on any platform. Read the ESC setup. Look at the “Firmware Revision” field.
BLHeli_S hardware comes in several bus types:
– G-H-30: Older ESCs (often found on Racerstar, early Eachine). Limited to DShot300 for reliable bidirectional operation.
– L-H-30: Mid-generation. Works with DShot300 bidirectional.
– G-H-50, L-H-50: Current generation (HakRC, JHEMCU, iFlight SucceX). Handles DShot600 bidirectional reliably.
Write down your exact ESC layout and MCU type. The wrong JazzMaverick hex file will brick the ESC — recoverable, but annoying.
Step 2: Download and Flash JazzMaverick Firmware
Download the latest JazzMaverick release from the GitHub repository. Match the hex file to your ESC layout:
For example, a standard 4-in-1 BLHeli_S ESC with L-H-50 layout uses JazzMaverick_L_H_50_16.80.hex.
Flashing procedure:
1. Connect ESC to BLHeliSuite (via FC passthrough or USB linker)
2. Select “Flash BLHeli” and choose the JazzMaverick hex file
3. Flash all four ESCs — do NOT mix stock BLHeli_S on ESC #1-2 and JazzMaverick on #3-4
4. After flash, power cycle the ESC (unplug and replug battery)
5. Reconnect and verify all four ESCs show the JazzMaverick version number
Critical: The first flash wipes all settings. You must reconfigure motor direction, startup power, and PWM frequency immediately.
Step 3: Configure ESC Settings for JazzMaverick
Once flashed, configure these critical parameters:
Startup Power: Stock BLHeli_S defaults to 0.50 (aggressive). JazzMaverick allows finer control. Set to 0.125 for 5-inch builds — reduces the hard “kick” that can desync high-kV motors on low-deadband setups. If motors don’t spin smoothly at idle, increase to 0.25.
Motor Timing: Medium (15°) is the universal baseline. Auto timing works for most motors but occasionally oscillates between timing values on high-pole-count motors, causing RPM hunting. If you hear a rhythmic “wah-wah-wah” at hover, switch from Auto to a fixed Medium or Medium-High.
PWM Frequency: JazzMaverick exposes the PWM frequency to the user. Default is 24kHz. For 22xx and 23xx motors, 24kHz is fine. For high-kV micro motors (1103-1404), 48kHz reduces audible whine and improves efficiency at part throttle by about 8-12% based on my current-draw tests.
Demag Compensation: Leave at Low. High demag compensation reduces power to prevent desyncs, which trades cornering authority for safety. In practice, properly-tuned DShot300/600 with matched motor timing eliminates the conditions that trigger demag.
Step 4: Enable Bidirectional DShot and Verify RPM Telemetry
This is why you flashed JazzMaverick. In Betaflight:
1. Configuration tab: Enable Bidirectional DShot
2. Motors tab: Spin each motor individually, verify live RPM readout
3. PID Tuning tab: Enable RPM Filtering with harmonics=3, min frequency=80Hz
If RPM doesn’t appear: drop DShot speed to DShot300. Not all BLHeli_S MCUs can handle bidirectional telemetry at DShot600 frame rates. The G-H-30 variants frequently need DShot300 for reliable telemetry. Once RPM filtering engages, run a test hover and check the gyro_scaled spectrograph in the Sensors tab — you should see motor noise harmonics cleanly notched out.
BLHeli_S vs BLHeli_32 Comparison Table
| Feature | BLHeli_S Stock | BLHeli_S JazzMaverick | BLHeli_32 |
|---|---|---|---|
| Bidirectional DShot | No | Yes (DShot300/DShot600) | Yes (DShot300-1200) |
| RPM Filtering Support | No | Yes | Yes |
| Configurable PWM Freq | No | Yes (24-96kHz) | Yes |
| Variable Timing | Fixed steps | Fixed steps | Continuous (1° steps) |
| Current Sensing | No | No | Yes (on supported HW) |
| MCU | EFM8BB21 (48MHz) | EFM8BB21 (48MHz) | STM32F051 (48MHz) |
| Max DShot Speed (Bidir) | N/A | DShot600 | DShot1200 |
| Price (4-in-1) | $25-35 | Same HW, free FW | $45-65 |
| JazzMaverick Setting | Recommended Value | Effect If Wrong |
|---|---|---|
| Startup Power | 0.125 (5″), 0.25 (3″) | Too high: desync on arm; Too low: motors cog |
| PWM Frequency | 24kHz (5″), 48kHz (micros) | 24kHz on micros: audible whine, lower efficiency |
| Motor Timing | Medium (15°) | Too low: low top-end power; Too high: excess heat |
| Demag Compensation | Low | High: power cut during aggressive maneuvers |
Common Mistakes & How to Avoid Them
Mistake 1: Flashing the Wrong JazzMaverick Layout. G-H-30 and L-H-50 hex files are not interchangeable. Flashing G-H-30 onto L-H-50 hardware maps the FET drive signals to the wrong pins. Consequence: At least two motors won’t spin, and attempting to arm can actually short the ESC outputs. Fix: Triple-check your layout before flashing. Read the original firmware layout from BLHeliSuite, write it down, match to the JazzMaverick filename.
Mistake 2: Restoring Stock Firmware Settings After Flash — but Forgetting Motor Direction. JazzMaverick flash clears the direction bits. You’ll arm, and two motors spin backward. The quad flips on takeoff. Fix: After flash, use the Motors tab in Betaflight (props off!) to verify direction. Use BLHeliSuite or Betaflight’s DShot direction commands to reverse any motors before the first flight.
Mistake 3: Maximum Startup Power for “Reliability.” Cranking startup power to max thinking it prevents desyncs causes the opposite problem — the hard current spike triggers the ESC’s overcurrent protection on high-kV motors. The motor twitches once, the ESC faults, and you fall out of the sky. Fix: Start at 0.125. Increase only if motors fail to spin smoothly at min_throttle.
Mistake 4: Skipping the Power Cycle After Flash. BLHeliSuite says “Flash successful,” so you jump to the Motors tab. The ESC is still in bootloader mode. Motors don’t respond. You think you bricked it. Fix: Physically disconnect the battery for 5 seconds after every ESC flash. This exits bootloader and loads the new firmware. It’s not a bug — it’s the bootloader protocol.
⚠️ Regulatory Notice: The flight recommendations in this article should be followed in accordance with the latest 2026 drone regulations in your country or region. Always verify local laws regarding flight altitude, no-fly zones, remote ID requirements, and registration before flying. Regulations vary significantly between the FAA (US), EASA (EU), CAA (UK), CAAC (China), and other authorities.
The JazzMaverick firmware bridges the gap between budget BLHeli_S hardware and modern flight controller features. If you’re integrating it with RPM filtering, our Betaflight RPM filtering setup guide covers the FC-side configuration step by step. For motor timing and desync prevention on the hardware side, see our FPV motor timing guide (the timing principles transfer to BLHeli_S).
The iFlight SucceX 50A BLHeli_S 4-in-1 ESC ships with L-H-50 hardware that takes JazzMaverick beautifully — I flashed it in 3 minutes and had bidirectional DShot running on the first power cycle. The 50A rating handles 6S on 2306 motors with headroom. Available at uavmodel.com.
