First Time Flashing
First-time flashing procedure for an EFM8BB21F16G-based ESC using BLHeli_S.
Equipment Required
- Arduino Uno or Arduino Nano, used as the programmer
- New ESC with EFM8BB21F16G MCU
- USB cable for the Arduino
- 4× female-to-female Dupont jumper wires
- Battery disconnected from the ESC
Critical safety note: Keep the battery disconnected during first-time flashing.
Step 1: Install Software
-
Download BLHeli Suite v4.2.1 or newer:
- Extract BLHeli Suite to disk.
- Do not install or extract it inside
Program Files.
-
Install CH340 drivers for the Arduino if needed:
Step 2: Flash the Arduino as a Programmer
- Connect the Arduino to the PC via USB.
- Open BLHeli Suite.
- Go to Make interfaces in the left panel.
- Select your Arduino board and COM port:
Board Selection: Arduino Uno or Arduino Nano
COM Port: COM3, or the COM port assigned by your system
- Click Arduino 4way-interface.
- Wait for BLHeli Suite to upload the programmer sketch to the Arduino.
- This usually takes about 5–10 seconds.
- The Arduino LED should blink after programming.
After this step, the Arduino is configured as the ESC programmer.
Step 3: Connect the Arduino to the ESC
Critical: Disconnect the battery before connecting the programmer.
Use the following wiring:
| Arduino Pin | ESC Pin | Notes |
|---|
| GND | GND | Black wire |
| 3.3 V | 3.3 V | Red wire; use 3.3 V only |
| Pin 12 / MOSI | C2D | Yellow wire |
| Pin 11 / SCK | C2CK | Green wire |
On an EFM8BB21 board, the programming pads are usually marked near the microcontroller:
┌──────────────┐
│ C2D C2CK │
│ 3.3V GND │
└──────────────┘
Important: Use 3.3 V, not 5 V. The EFM8 is a low-voltage device.
Step 4: Flash the ESC with BLHeli
- In BLHeli Suite, click ESC Setup.
- Select the programming interface and COM port:
Interface: SILABS C2 (4way if)
COM Port: COM3, or the same COM port used by the Arduino
- Click Read Setup or Connect.
- If the connection is successful, the ESC information should appear.
- If it does not connect, check the wiring and COM port.
- Click Flash BLHeli.
- Select the BLHeli firmware type:
Select BLHeli Version:
○ A type
○ B type
● C type recommended
○ D type
○ E type
- Choose C type.
- This is the recommended option for this custom ESC.
- Click Flash.
- Wait for the flashing process to complete.
- Do not disconnect anything during flashing.
- Flashing usually takes about 10–20 seconds.
A successful flash should show messages similar to:
✓ Flash completed successfully
✓ BLHeli bootloader installed
✓ BLHeli firmware installed
Step 5: Verify the Flash
After successful flashing, confirm that:
- The ESC has the BLHeli bootloader installed.
- The ESC has BLHeli firmware installed.
- The ESC can use the 1-wire interface through the PWM pin.
- The ESC can be flashed later through a flight controller using passthrough mode.
Future Flashing
After the first-time flash, the ESC can be updated through the 1-wire interface instead of the C2 programming pads.
Typical future flashing path:
- Connect the ESC to a flight controller.
- Use BLHeli Suite passthrough mode.
- Flash or configure the ESC through the PWM/signal wire.