I thought Id put this together, since many may find this handy. Programming your bafang motor controller is going to improve the efficiency and performance with your specific bike and battery by setting battery Low voltage cutoff, Max Current, wheel size, PAS settings, throttle, etc. Usually the stock bafang settings are overpowered and not smooth, especially for a new user. So do it, but carefully! The BBSHD and BBS02 are programmed the same way, with the BBS02 capped at 25 Amps.
0. When you have a Windows PC or laptop ready, a bafang programming cable (about 20$), and your bafang motor in vicinity, you are ready. Head over to https://edrivenet.com/bafang-programming/ to grab the bafang config utility and windows driver from the main links at the top of the page (but I advise to follow this guide since their suggested settings are NOT recommended). Install the driver first, and run the utility which is portable. Connect the bafang programming cable to your laptop USB port, and to your main bafang display cable running back to the motor, with the ebike battery powered on.
1. Launch the Bafang Config utility. If everything is connected and installed right you should see a COM port show up, click connect, and your motor controller settings should appear at bottom right. Before you begin changing settings, take a backup of the stock controller profile by going to File -> Save As, to save the profile. It voids your warranty if they discover you changed the controller settings. Have no fear. Its worth it, just do it carefully (no typos!). Ill try to upload the profile here (it wont allow me to, so you can input the values, double and triple check them before writing each tab's settings to the controller!).
Basic Tab
2. Set the battery Low voltage protection in volts accordingly, IMPORTANT:
41 Volts for 48V batteries, and 43 Volts for 52V batteries.
3. Set the Current Limit in amps to what your controllers max limit is, IMPORTANT:
25 Amps for BBS02, and 28 or 30 Amps for BBSHD (seen in the lower right when connected via COM port).
4. Set your wheel diameter below, leave other settings default except for the PAS levels if you're advanced and understand how to change them. Another guide with more detailed explanation is here: https://electricbike-blog.com/2015/06/26/a-hackers-guide-to-programming-the-bbs02/
(example here using a 52v battery and 30 amp controller, with 29 inch wheels. Other values are default em3ev black values, except my PAS1 setting for extra efficiency and power saving for easy flat riding)
5. The main Pedal Assist (PAS) levels 0-9 explanation: For each PAS level you can set the motor's allowable current draw and motor rpms based on a %. I realized PAS 0 is best set to 0s, its meant for downhill stretches when you dont want power to the motor but to still track mileage and keep the system at ready. Also unless the values are set to at least 1, the throttle wont work in PAS0 - this is GOOD as a safety feature, handy in case you dont want to bump the throttle, which is easier than you might think (Ive done it many times), and could get you injured depending on where you are. Be smart, keep PAS0 at 0. PAS1 I have recently added, an extra light level for power saving efficiency on flat and very easy inclines. I found I never used nearly all 9 PAS levels, so added a lighter one on the front end. All other values derive from the Em3Ev Black profile, which ramp up incrementally from 52% current 44% rpms to 100% for both values at PAS 9. Later, on the Throttle Tab you set PAS 9 to the throttle's designated PAS setting, so you can reach up to full power on the motor with a full depress of the throttle.
PedalAssist Tab
6. Not a whole lot to say here, just trust the settings if you want max efficiency, and you should. The stock settings put you at 20% Start Current which can make it jerky, a bit erratic feeling. 10% is more gradual and smooth, which is ideal, and easier on the drivetrain over time. Also 60% Keep Current adds greater battery efficiency than 80%, but your legs will do a tad more work maintaining current at max speed for that PAS level, its worth it, I hardly notice it. Efficiency hence gaining extra range is key to me, while still having access to full power with throttle or ramping up PAS levels.
Throttle Tab
7. Simple here, set them like this, should mostly be defaults, make sure the Start Current is 10, and set your throttle Designated Assist Level to 9 for PAS9, or 100% power - just use with caution! DownPAS to PAS0 when you are idle, taking a break, cleaning the chain, or showing your friends - to avoid accidents, the throttle is disabled in PAS0 as per the settings above.
8. Once you have double, triple checked that your bikes battery, controller, and wheel size and the other values above match those in your software, you can then click WRITE on all 3 tabs to write the settings to the controller. Be careful that you have the correct values, not my fault if you mess it up :) Click Read Flash after you've written the new tab's settings to make sure they all took. Click Disconnect when done.
9. Almost there. Now you want your Bafang display settings to match those in the controller. Reconnect your display to the motor main display cable. Go through every setting in the Bafang display, and make sure they match. I use the 500c display. I simply go through, select Imperial, Voltage, 52v, 29inch in the advanced settings - leave the other settings alone unless you know what youre doing. I used the code 1919 to get to advanced settings. Other displays may vary.
Thats it. Youve hopefully followed instructions without error and successfully programmed the BBS02 or BBSHD. One big pro of these motors is the ability to fine tune the programming to maximize efficiency and performance for your bike. With my new PAS1 I was able to cut the wattage draw in about half and extend the range significantly that way. Im usually only using PAS1-3 levels, and as terrain changes the on demand power changes per PAS level is very nice to be able to mostly ghost pedal as the bike does most of the work, maybe 90-95%, while I give the motor a bit of leg wattage, have a light cardio workout while riding 20-30 mile loops in the mountains. Gotta love it. Cheers.
Fitz
When discussing Bafang controller programming, it’s essential to ensure accuracy to avoid voiding warranties. If you're looking for detailed technical guides, this thread provides an excellent overview. Additionally, when considering clear technical writing for reports or guides, this essay on report writing can offer useful strategies for presenting detailed, accurate instructions. Good writing can make a difference in explaining complex processes like Bafang programming!
For people with only a 3 or 5 level assist display, e.g. a DPC 18, it's useful to know what actual assist levels they use, If you have a 3-level assist display, it uses: 1, 5 and 9. If you have a 5-level assist display, it uses 1,3,5,7 and 9. Also, if you have ECO and SPORT Mode, ECO Mode is 80% of the power of SPORT Mode in all power settings.