Refine this doc
Ask about this doc
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
  1. Download BLHeli Suite v4.2.1 or newer:
  2. Extract BLHeli Suite to disk.
    • Do not install or extract it inside Program Files.
  3. Install CH340 drivers for the Arduino if needed:
Step 2: Flash the Arduino as a Programmer
  1. Connect the Arduino to the PC via USB.
  2. Open BLHeli Suite.
  3. Go to Make interfaces in the left panel.
  4. Select your Arduino board and COM port:

Text


Board Selection: Arduino Uno or Arduino Nano
COM Port: COM3, or the COM port assigned by your system
  1. Click Arduino 4way-interface.
  2. 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:

Table


Arduino PinESC PinNotes
GNDGNDBlack wire
3.3 V3.3 VRed wire; use 3.3 V only
Pin 12 / MOSIC2DYellow wire
Pin 11 / SCKC2CKGreen wire
On an EFM8BB21 board, the programming pads are usually marked near the microcontroller:

Text


┌──────────────┐
│ 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
  1. In BLHeli Suite, click ESC Setup.
  2. Select the programming interface and COM port:

Text


Interface: SILABS C2 (4way if)
COM Port: COM3, or the same COM port used by the Arduino
  1. Click Read Setup or Connect.
  2. If the connection is successful, the ESC information should appear.
    • If it does not connect, check the wiring and COM port.
  3. Click Flash BLHeli.
  4. Select the BLHeli firmware type:

Text


Select BLHeli Version:
○ A type
○ B type
● C type recommended
○ D type
○ E type
  1. Choose C type.
    • This is the recommended option for this custom ESC.
  2. Click Flash.
  3. 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:

Text


✓ 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:
  1. Connect the ESC to a flight controller.
  2. Use BLHeli Suite passthrough mode.
  3. Flash or configure the ESC through the PWM/signal wire.
  • Equipment Required

  • Step 1: Install Software

  • Step 2: Flash the Arduino as a Programmer

  • Step 3: Connect the Arduino to the ESC

  • Step 4: Flash the ESC with BLHeli

  • Step 5: Verify the Flash

  • Future Flashing