Unlock your BAFANG motor's full potential. This guide shows you how to flash custom firmware, tune assist levels, and dial in your perfect ride feel.

One of the BAFANG BBS02/BBSHD's biggest advantages over competing motors is its programmability. Using a free tool called BafangConfigTool (BCT) and a $15 USB programming cable, you can customize nearly every parameter of how your motor behaves — assist levels, throttle response, speed limits, current limits, and more.

This guide covers everything you need to know to program your BAFANG motor safely. We'll cover the hardware you need, the software installation, the most useful parameters to change, and the mistakes to avoid. Even if you're not technical, the process is approachable — set aside an hour and follow along.

What You Need

Hardware:
- BAFANG BBS02 or BBSHD motor (any firmware version)
- USB programming cable (search Amazon for 'Bafang programming cable' — about $15)
- Windows laptop (BCT is Windows-only; Mac users need a VM or Boot Camp)

Software:
- BafangConfigTool (BCT) — free download from various e-bike forums. Search for 'BafangConfigTool 1.2.0' or newer.
- FTDI USB drivers (usually included with the cable, but download the latest from FTDI's website)

Alternative software:
- Stefan's Bafang Configurator (web-based, works on Mac/Linux via browser)
- Freedomersion Open Source firmware (advanced — replaces the stock firmware entirely)

For most users, BCT is the right tool. It's free, well-documented, and lets you change every parameter without replacing the firmware.

Installation & First Connection

  1. Install FTDI drivers on your Windows laptop.
  2. Install BafangConfigTool.
  3. Connect the programming cable to your laptop's USB port.
  4. Connect the other end to your motor's programming port (a small 3-pin connector on the motor harness, usually near the controller).
  5. Turn on your battery and display.
  6. Open BCT and click 'Connect.'

If BCT can't connect, the most common causes are: wrong COM port (try different ones in the dropdown), missing FTDI drivers, or the motor isn't powered on. The motor MUST be powered for programming.

Once connected, click 'Read' to download your motor's current settings. Save this as a 'stock' profile — you'll want it as a backup if you ever want to return to factory settings.

The Most Useful Parameters to Change

BCT shows dozens of parameters. Here are the most useful ones to customize:

Assist Levels (Basic tab):
- Each of your 9 assist levels (0-9) has a 'Current Limit' setting (in amps, 0-100).
- Stock settings are typically 10%, 20%, 35%, 50%, 65%, 80%, 90%, 95%, 100% of max current.
- A popular custom tune: 5%, 15%, 25%, 40%, 55%, 70%, 85%, 95%, 100%. This gives more granular low-end control for cruising and more headroom at the top.

Throttle (Basic tab):
- 'Throttle Start Current' — minimum throttle position to engage motor. Set to 5-10% to prevent accidental engagement.
- 'Throttle End Current' — current at full throttle. Set to 50-80% of max to prevent wheelies and conserve battery.
- 'Throttle Mode' — 'Speed' or 'Current.' Speed mode maintains a target speed; Current mode delivers proportional power. Most riders prefer Current mode.

Speed Limits (Basic tab):
- 'Speed Limit' — top speed in km/h. Set to 32 km/h (20mph) for street-legal Class 2, or 45 km/h (28mph) for street-legal Class 3.
- 'Speed Limit Mode' — 'Hard' (cuts motor entirely at limit) or 'Soft' (tapers power near limit). Soft feels more natural.

Pedal Assist (Basic tab):
- 'PAS Type' — 'Cadence' or 'Torque' (cadence for BBS02/BBSHD).
- 'PAS Startup' — current at startup. Set low (10-20%) to prevent lurching.
- 'PAS Stop Delay' — how long motor runs after you stop pedaling. Set to 100-200ms for natural feel; stock is often 500ms+ which feels laggy.

Advanced (Advanced tab — be careful):
- 'Max Current' — overall current limit. Don't exceed 30A on BBS02 or 35A on BBSHD.
- 'Low Voltage Cutoff' — set to 39V for 48V batteries, 42V for 52V batteries.
- 'Slow Start Mode' — current ramp-up time. 1.5 seconds is a good balance.

Recommended Custom Profiles

Here are three proven profiles for different riding styles. To use these, enter the values in BCT and click 'Write.'

Conservative Commuter (max range, smooth power):
- Assist levels: 5%, 10%, 20%, 30%, 40%, 55%, 70%, 85%, 100%
- Throttle: Start 8%, End 50%, Current mode
- Speed limit: 32 km/h (20mph), Soft
- PAS startup: 15%, Stop delay: 150ms
- Max current: 22A (well below BBS02's 30A limit)
Result: ~30% more range than stock, smoother power delivery.

Sport Rider (responsive, sporty):
- Assist levels: 10%, 20%, 35%, 50%, 65%, 80%, 90%, 95%, 100%
- Throttle: Start 5%, End 70%, Current mode
- Speed limit: 45 km/h (28mph), Soft
- PAS startup: 20%, Stop delay: 100ms
- Max current: 28A
Result: Snappier acceleration, still street-legal Class 3.

Off-Road / Private Property (maximum performance):
- Assist levels: 20%, 40%, 60%, 75%, 85%, 90%, 95%, 100%, 100%
- Throttle: Start 5%, End 100%, Current mode
- Speed limit: Off (or 80 km/h if forced)
- PAS startup: 25%, Stop delay: 100ms
- Max current: 30A (BBS02) or 35A (BBSHD)
Result: Maximum performance. NOT street-legal — off-road/private property only.

Risks & What NOT to Change

Programming your BAFANG motor carries some risk. Here's what to avoid:

  1. Don't set Max Current above the motor's rating. BBS02 = 30A max. BBSHD = 35A max. Exceeding these will overheat the controller and shorten motor life.
  1. Don't set Low Voltage Cutoff too low. Below 39V on a 48V battery will damage the cells. The stock 40V is safe; don't go lower.
  1. Don't disable thermal protection. BCT has a setting for thermal cutoff — leave it enabled. Without it, the motor will overheat on long climbs and fail.
  1. Don't flash firmware you don't understand. The 'Freedomersion' open-source firmware is excellent but technical. If you don't know what you're doing, stick with stock firmware and BCT parameter changes.
  1. Don't change parameters you don't understand. BCT has dozens of settings, and most should stay at stock values. If a parameter doesn't have a clear explanation in this guide, leave it alone.
  1. Always save your stock profile. Before making any changes, click 'Read' and save the current settings as 'stock.bin.' If anything goes wrong, you can restore these settings and return to a known-good state.
  1. Test changes in a safe area. After every programming change, test in an empty parking lot before riding in traffic. A misconfigured throttle or assist level can be dangerous.