How to Reset Bafang BBSHD Error Codes (Simple Steps)
Quick answer
The quickest way to clear a transient error on a Bafang BBSHD is to disconnect the battery from the motor for a full 30 seconds. Reconnect, power on, and the error should be gone if it was a temporary glitch caused by a voltage spike, moisture, or connector disturbance. If the same error reappears immediately, note the code number (e.g., 07, 21, 30) – it points to a specific hardware fault that a reset won’t fix.
Code 07 means the battery voltage is below the controller’s minimum threshold (charge the battery fully). Code 21 indicates the speed sensor isn’t detecting the spoke magnet (check alignment and wire integrity). Code 30 signals a throttle problem (inspect the throttle connector and pins). A reset clears the memory but does not repair broken components, so treat the error code as a diagnostic guide, not just an annoyance to dismiss.
Tools and prerequisites
You’ll need:
- Your e-bike with the display powered off.
- The battery key (if your pack locks onto a cradle).
- A clean, dry workspace to avoid moisture during disconnection.
- Optional: a multimeter to verify battery voltage when you suspect a low-voltage error.
Know your display model. The menu path for a soft reset varies between displays. Common Bafang displays include C961, C965, DPC-18, 500C, 850C, and 860C. Check the back of the display unit for the model number – it’s often printed on a sticker or embossed in the plastic. If your display is one of the newer color screens (DPC-18, 850C, 860C), you can reset through the settings menu without disconnecting wires. Older monochrome displays (C961, C965) require a button-hold method.
Safety note: Always turn off the display before disconnecting the battery. Never pull connectors while the system is live – the controller capacitors can hold a charge for several seconds, and a spark at the connector can damage contacts.
Step-by-step plan
Method 1: Battery disconnect reset
This is the simplest and most reliable reset because it fully discharges the controller’s capacitors and clears any transient error stored in volatile memory.
1. Turn off the display using the power button. Wait for the screen to go completely dark.
2. Remove the battery. If your battery has a keyed lock, turn the key to the unlocked position first. Slide the battery off its cradle or unplug the Anderson / XT60 connector from the motor harness. Pull straight – don’t wiggle sideways, which can bend pins in the connector.
3. Wait a full 30 seconds. Start a timer. This lets the capacitors inside the controller drain completely. Even after the display is off, the controller still holds enough charge to store an error flag. Thirty seconds ensures a clean slate.
4. Reconnect the battery. Inspect the contacts on both the battery cradle and the motor cable. They should be clean, dry, and free of corrosion. Push the battery into its cradle until you hear or feel a positive click. If using Anderson connectors, press firmly until the two halves seat fully and the latch clicks. A loose connection will cause intermittent errors.
5. Turn on the display. Wait for the startup screen. If no error code appears, power the display off and back on again to double-check that the error didn’t just hide temporarily.
6. Verification ride. Pedal the bike a short distance (20–30 feet) using throttle or pedal assist. The motor should engage smoothly and not cut out. If the error returns during this ride, the underlying fault is still present and you need to investigate further.
Why 30 seconds? The BBSHD controller uses a bank of electrolytic capacitors that can hold a charge for 10–15 seconds after power is removed. Waiting 30 seconds ensures they are fully discharged, erasing any transient error flags. A shorter wait (e.g., 5 seconds) may not clear the fault.
Method 2: Display menu reset
If the error persists after the battery disconnect, the fault may be stuck in the display’s memory. Try a soft reset through the display menu. The exact steps depend on your display model:
- C961 / C965 (monochrome, button pad): Press and hold the power button for about 10 seconds until the screen turns off. Release, then press power once to turn on. The error should clear. If it doesn’t, repeat while holding the “up” arrow button instead – some firmware variants use this as a reset combination.
- DPC-18 (color display, touch or button): Press and hold the “M” or “i” button to enter the settings menu. Navigate to “System” or “Advanced” and look for “Reset” or “Clear Error.” Select and confirm. Do not use “Factory Reset” unless you want to erase all user settings.
- 500C / 850C / 860C (color displays, button pad): Hold the power button for 5–10 seconds until the screen resets. For a deeper reset, go to Settings > Advanced > Factory Reset. Warning: This wipes all user‑configured parameters (wheel size, speed limit, pedal‑assist levels, throttle ramp). After a factory reset you will need to reconfigure these from scratch. Only use this if the simple battery disconnect and soft reset both fail.
After the reset: Turn the display off, wait 5 seconds, then turn it on again. If the error code is gone, take a short ride as described in Method 1 to confirm stable operation. If the error returns, move to troubleshooting.
Troubleshooting
Error returns immediately after reset
If the same error code reappears as soon as you power on, the problem is not a memory glitch – it’s a live hardware fault. Here’s what each common code means and what to check:
Code 07 – Low voltage
The controller is not seeing enough battery voltage. On a 48 V system, the cutoff is around 30 V; on a 52 V system, around 40 V. Charge your battery fully. If you have a multimeter, measure the voltage at the battery contacts or the Anderson connector. If the reading is 0 V, the battery management system (BMS) may have entered protection mode – try plugging the charger in for 30 seconds, then unplug and measure again. If voltage remains below the cutoff even after a full charge, the battery may need servicing.
Code 08 – Hall sensor fault
The internal hall sensors in the motor are not communicating properly. This usually indicates a damaged hall sensor board, broken wiring inside the motor, or a failed controller. A reset will not fix this. You’ll need to open the motor side cover to inspect the hall sensor wiring and board. This is a job for a qualified technician – opening the motor incorrectly can let moisture in and void warranty. Contact a Bafang service center or a trusted e-bike shop.
Code 21 – Speed sensor error
The display is not receiving a signal from the speed sensor. First, check that the spoke magnet is still attached and aligned with the sensor (gap should be 5–10 mm, roughly the thickness of a pencil). Pedal the bike forward; the magnet should pass directly in front of the sensor without hitting it. If alignment is fine, inspect the sensor wire from the wheel to the controller. The wire often rubs against the frame near the dropout; look for cuts, pinches, or frayed insulation. A damaged wire will cause intermittent cutouts after a few seconds of riding.
Code 30 – Throttle error
The controller is detecting an abnormal throttle signal. Unplug the throttle connector from the motor harness. If the error disappears, the throttle unit itself is faulty – replace it. If the error persists with the throttle disconnected, the problem is in the controller’s throttle input circuit. Also check the throttle connector for bent or broken pins; a bent pin can cause a short that triggers the error.
What if the error code changes after a reset? For example, you see code 21, reset, and then code 30 appears. This usually points to a communication glitch between the display and controller. The two devices share a data line (usually a yellow wire). Disconnect both the battery and the display cable (the small cable that runs from the display to the motor controller) for a full 2 minutes. Reconnect everything in order: first the display cable, then the battery. Power on and see if the code stabilizes. If it bounces between codes again, the display or controller may need firmware reflashing.
When to stop troubleshooting
If you have tried both reset methods, inspected all visible connectors, and the same error code (especially 08 or a persistent 21/30) returns, the fault is inside the motor assembly – the hall sensor board, controller circuit board, or phase wire insulation. Opening the BBSHD motor requires a spanner or strap wrench for the side cover, plus silicone sealant to reseal the joint. A mistake can let moisture or dirt into the stator, causing permanent damage. Do not keep resetting repeatedly; a controller with a pending failure may overheat or damage the battery. Instead, contact a Bafang service center or a reputable e-bike mechanic. Tell them the exact error code and what you’ve already done. They can diagnose and repair the internal hardware.
Related Articles
- How to Install a Mid-Drive Conversion Kit: Bafang BBSHD and BBS02 Walkthrough
- How to Order a Scooty: A Simple Step-by-Step Process
- How to Reset Your Ninebot Scooter: Step-by-Step Guide
Ryan Williams has spent over 8 years testing, repairing, and writing about electric bikes. He has personally ridden and reviewed 150+ e-bike models from brands like Lectric, Aventon, Rad Power, Super73, and dozens more.
Before founding EBIKE Delight, Ryan worked as a bicycle mechanic for 5 years at independent bike shops across California, where he specialized in e-bike conversions and electrical system diagnostics. He holds a Certificate in Electric Vehicle Technology from the Light Electric Vehicle Association (LEVA).
Ryan’s work has been cited by Electric Bike Report, Electrek, and BikeRumor. When he is not testing the latest e-bike on California backroads, he is in his workshop tearing down batteries and controllers to understand what makes them tick — and what makes them fail.
Areas of Expertise
E-bike performance testing and real-world range verificationBattery diagnostics, charging best practices, and safetyBrand comparisons: Lectric, Aventon, Rad Power, Super73, and moreError code troubleshooting across major e-bike systemsE-bike laws, registration, and compliance by state
Ryan believes every rider deserves honest, hands-on information — not marketing hype.