A Hacker’s Guide To Programming The BBS02 & BBSHD

BBS01 Controller1-500x500

One way that the BBS02 middrive unit shines over other competition like the Bosch is the ability to program the controller yourself. Although the process of programming the controller will void any warranty that you got with the unit, to many people the risk of voiding their warranty is outweighed by the possibility of getting more performance or having the PAS settings more to their liking. There are 3 settings that most reputable resellers of the BBS02 will set for you.

  • Low Voltage Shutoff (in Volts)
  • Limited Current (in Amps)
  • Speed Limit

Update: The BBSHD is programmed the exact same way as the BBS02 with the exception of the Limited Current (Amps) which should be set to 30 not 25.

Many US vendors will be resistant to remove the 20mph speed limit as that may make them liable for any accident you are in with their motor. The BBS02 at 750Watts is really only powerful enough for about 25mph or so on level ground, although with a 52T chainring on a downhill stretch I have reached 40mph. At higher speeds your batteries get used up very fast.

It can be somewhat confusing as many of the settings on the drive controller have a setting of ‘By Display’s Command‘ which means the controller on the drive until will defer that setting to whatever the display is set to. There are 3 different displays which all have different settings on them and ways to set different variables like wheel diameter, speed limit and PAS levels. For instruction manuals for all three display types look here. The C965 and C963 are generally set to 5 PAS levels, although the C961 is easily set to 9. You can also adjust the C965 PAS levels up to 9. The last page after the Password has been entered is the PAS page, it can be adjusted up to setting “0-9”.

Your controller will have silicone all over the connectors and will be far less pretty than this one.

Your controller will have silicone all over the connectors and will be far less pretty than this one (notice I didn’t say ugly, I hated being called ugly when I was a kid).

Before you start programming your controller, here are some important quotes from Paul at em3ev.

  • “The PAS functions like a switch, it either assists at a certain speed and current percentage or it doesn’t. It is on or off. The motor does not know how hard or how soft you are pedaling, it is not assisting you, it is not reacting to your behavior. It only knows that you are pedaling or you are not. The only change in the so-called assistance, is because the motor has been moved to a different point on the motors power curve and that is not a programmable parameter, it is just a case of pedaling that bit closer to the no load speed of the motor/controller combination, where the motor will deliver less torque and therefore less power. That is why the PAS settings are best left pretty much like they come from the factory, with gradually increasing speed and corresponding increases in current values too, as you go from steps 1 through to 9”
  • “Users can change the LVC, change the current level (reduce it preferably)”
  • “Users can also change the speed limit to be controlled by the display (but that does leave the kit more liable to blow).”
  • “Setting the throttle to 100% and without speed limit is what everyone wants, but is also a good way to blow the controller.”
  • “Once anything is increased, or the response is made faster, the controller is more liable to blow. Setting every PAS level to 100% is a terrible idea.”
Comes in a wide variety of colors, I recommend black for stealth. You don't want to draw attention to the drive unit.

A smaller chainring is critical for singletrack riding controller conservation. I prefer the 34T Raceface narrow\wide ring.

The biggest problem with the BBS02 is when it is turning under too much load at too low of a speed. The best way to keep the motor spinning fast is to get a smaller chain-ring and to make sure you are in the right gear for any hills you want to climb. The surest way to blow your controller is to use full throttle in too high of a gear on a hill where the pedals are turning too slowly. If you use a large chain-ring on your commuter (mine is a 52T because I like to go fast) make sure you shift down into a lower gear before coming to a stop even on level ground so you are not repeatedly trying to start moving in too low of a gear. Your pedaling cadence should always feel normal to fast, especially on hills.

Another strong recommendation for not frying your controller is to install a temperature probe. Instructions on how to do this are here and it takes about 7 minutes to do and costs $2 shipped.

IMAG2729

A $2 temp probe can save your $80 controller and a lot of headaches.

In order to program your BBS02 you will need a windows PC with a USB port, a programming cable (from Empowered Cycles) and the software. More info on those three items can be found in this article.

Clicking READ FLASH or WRITE FLASH buttons changes or reads values from all 3 tabs at the same time. You should always click READ FLASH, then FILE->SAVE as a .el to make a back up copy before making any changes to your current settings.

There are 3 pages of programming variables. You can click READ for each page but it will only load the current settings on the controller on that page before you change them. Sometimes the serial connection is unreliable and a variable will have a totally wrong setting or garbage in it. I suggest clicking the READ button twice before you start changing the settings to make sure it read the controller settings correctly. I’ve never had garbage persist through 2 READ clicks, it always seems to get it right on the 2nd try. When you edit the variables you want you will then need to click the WRITE button for each page you change or WRITE FLASH for all pages. I would click the READ button again on each page after waiting a few seconds to make sure that the settings you changed were actually written to the controller firmware when you clicked WRITE.

Looks Ghetto and is oh-so-short but it works every time.

Programming cable that plugs into the display port of the BBS02 from Matt at EMPowered Cycles

Variables are color coded based on how safe they are to modify

  • Green variables are safe to change
  • Orange variables can be changed but there is some risk
  • Red variables should never be changed unless you know something that I don’t

The color of the variables are what defaults from various drive units as well as the .el configuration file for each vendor. You must save the file to your drive then rename it from .doc to .el then FILE->LOAD it directly into the Bafang program. All variables will be automatically set on all three pages and you need only to WRITE FLASH to write it to the controller.

  • Black is for em3ev settings. .el File is here
  • Blue is for Lectric Cycles e-RAD settings.
  • Brown variables and text is EMPowered Cycles settings & quotes. .el File is here
  • Purple variables and text is Kepler from Endless-sphere’s settings & quotes. .el File is here
  • Aqua variables and text is Karl’s special sauce, which are pretty much the only settings I ever use. The .el file for the BBS02 is located here and the BBSHD is located here.

These .el files are designed for the BBS02 but work just as well for the BBSHD. If you use them with a BBSHD make sure to change the Limited Current(A) on the first page to 30 amps. You do not need to lower the amps on the BBSHD, it can do 30 amps all day long without breaking a sweat.

BASIC TAB

Special Sauce Basic Settings

Special Sauce Basic Settings for the BBS02, the BBSHD would want 30 Amps

Listed below are the settings and what little we’ve learned about them. This article will be updates as we experiment more.

Low Battery Protect(Volts): 41/41/41/41 to 43/41 – This number will change based on the pack size and configuration. Most likely your battery will have a BMS that will shut off power when it gets too low. This setting is mostly useful when you are running a battery setup without a BMS which is not advised. Kepler notes,

“I use 43V on my 14S 4P 18650 pack setup”

If you are running a 48v nominal pack you’ll want to set this a lot lower (like 38v) to keep the drive from shutting off when the pack still has a little juice in it.

Limited Current(Amps): 25/25/18/18 to 20/25 This sets the power level that the drive unit will pull from the battery pack. Be aware that just because it is set lower, does not mean that it will not draw more amps for brief periods. If you don’t want to stress the BMS you may want to set this number lower than you think it should be by 2-3 amps then slowly increase it over time if your $15 watt meter shows that it is not pulling too much power on a regular basis. This variable will be set lower than 25 if you have a BBS01 or a BBS02 with a lower power level rating than 750W. If this is set lower than 25 from the factory you CANNOT RAISE it safely unless you are sure it is a 750 Watt unit & controller and your battery can handle the draw (it should say on the bottom of the unit). Matt from Empowered Cycles has this to say:

 “I recommend 18 amps in most cases.  You still get amazing performance, prolonged controller life, more charge cycles from your pack, more range on your rides. If you have an internally geared hub, I recommend 15 amps and changing the “start current” on pedal assist and throttle all the way down to the lowest setting of 1. Even at 18 amps the 750 watt motor keeps up with an 8T geared MAC hub motor that is pulling 1500 watts. You do not need 25 amps for this motor to perform.”

Kepler has this to say

“ I agree that 18 amps is a good all-round setting.  I then rely on the Limit Current Assist level to fine tune the max power best suited to bike.”

If you have a BBSHD make sure that this is set to 30 and no lower.

Asst0 Limit Current(%): 1/0/0/100/1 – This is the setting for the PAS at level 0. The throttle might not work in PAS 0 unless this is set to 1 on more recent controllers. You must set limit speed to 1 as well as well as setting the Designated Assist to 9 on the throttle page.

Asst0 Limit Spd(%): 1/0/0/1/1 – At power level 0 causes the controller to lower current gently to maintain motor rpm when 44% of speed limit is hit. Speed limiting is done based on motor RPMs not road speed. The throttle might not work in PAS 0 unless this is set to at least 1, it is really nice to have a hand throttle setting without any PAS intervention.

Asst1 Limit Current(%): 52/20/52/10/52 – Power cut based on road speed at power level 1.

Asst1 Limit Spd(%): 44/44/36/100/44 – Power cut based on motor RPM speed at power level 1.

Asst2 Limit Current(%): 58/20/58/20/58 – Power cut based on road speed at power level 2 if set to 9 power levels.

Asst2 Limit Spd(%): 51/51/44/100/51 – Power cut based on motor RPM speed at power level 2 if set to 9 power levels.

Asst3 Limit Current(%): 64/30/64/30/64 – Power cut based on road speed at power level 3 if set to 9 power levels.

Asst3 Limit Spd(%): 58/58/52/100/58 -Power cut based on motor RPM speed at power level 3 if set to 9 power levels.

Asst4 Limit Current(%): 70/40/70/40/70 – Power cut based on road speed at power level 4 if set to 9 power levels.

Asst4 Limit Spd(%): 65/65/60/100/65 -Power cut based on motor RPM speed at power level 4 if set to 9 power levels.

Asst5 Limit Current(%): 76/50/76/50/76 – Power cut based on road speed at power level 5 if set to 9 power levels.

Asst5 Limit Spd(%): 72/72/68/100/72 -Power cut based on motor RPM speed at power level 5 if set to 9 power levels.

Asst6 Limit Current(%): 82/60/82/60/82 – Power cut based on road speed at power level 6 if set to 9 power levels.

Asst6 Limit Spd(%): 79/79/76/100/79– Power cut based on motor RPM speed at power level 6 if set to 9 power levels.

Asst7 Limit Current(%): 88/70/88/70/88 – Power cut based on road speed at power level 7 if set to 9 power levels.

Asst7 Limit Spd(%): 86/86/84/100/86 – Power cut based on motor RPM speed at power level 7 if set to 9 power levels.

Asst8 Limit Current(%): 94/80/94/85/94 – Power cut based on road speed at power level 8 if set to 9 power levels.

Asst8 Limit Spd(%): 93/93/92/100/93– Power cut based on motor RPM speed at power level 8 if set to 9 power levels.

Asst9 Limit Current(%): 100/100/100/100/100– Power cut based on road speed at power level 9 if set to 9 power levels.

Asst9 Limit Spd(%): 100/100/100/100/100– Power cut based on motor RPM speed at power level 9 if set to 9 power levels.

A quick note on power levels. If your display is set to only use 3 power levels then the controller uses settings for Asst1, Asst5 and Asst9 and ignores all the rest. If it is set to 5 levels than it ignores every other power level setting (but uses Asst1\3\5\7\9). On the C963 display I have still not figured out how to set the display to 9 power levels, so you may be stuck with only 5 PAS power levels with that unit.

Wheel Diamter(Inch): 26/26/26/26/18 – Set this to whatever your wheel diameter is. I always set this number so that if the display is set to show kph that it really shows mph instead. For a 26″ fatbike tire that is about 18″.

Speed Meter Model: ExternalWheelMeter / ExternalWheelMeter  ExternalWheelMeter / ExternalWheelMeter / ExternalWheelMeter – As far as I know this is the only speed sensor that is set up for the BBS02

SpdMeter Signal: 1/1/1/1/1

PEDAL ASSIST TAB

 

passpecial sauce

Special Sauce PAS settings, the Bafang factory settings are unusable & dangerous

 

This page is for the Pedal Assist Settings. Change conservatively, make small incremental changes and test rather than large ones.

Pedal Type: DoubleSignal-24 \ DoubleSignal-24 \ DoubleSignal-24DoubleSignal-24 \ DoubleSignal-24 – Unknown

Disignated Assist: By Display’s Command \ By Display’s Command \ By Display’s CommandBy Display’s Command \ By Display’s Command – This setting if set will override the Limit Speed setting on the Basic Tab and also overrides the speed limited on the Basic Tab.

Speed Limited: By Display’s Command \ By Display’s Command \ By Display’s CommandBy Display’s Command By Display’s Command Cuts power when the road speed from the mag sensor hits the number set here. If set to By Display’s Command then it uses the Display’s set speed limit.

Start Current (%): 10\50\40\30\10 -This variable is vital for not killing the controller. The lower the Start Current is set the less power is directed to the PAS system upon startup, this will create less strain on the controller when starting from a standstill, especially if you are in a gear that is too high. 100% Start Current will peak at well over 1kW draw. With Kepler’s settings this should be set to 30% or less. This can be set all the way down to 1, very useful for IGH bikes and for people wanting a more gentle start

Slow-Start Mode(1-8): 3\4\5\6\4 -Controls how quickly the power ramps and how much it overshoots. If this variable is set too high the PAS start will be jerky, if set too low you risk blowing the controller as with Start Current above. If you are in too low of a gear to start and this variable is set too low it can blow the controller.

Startup Dgree(Signal No.): 4\4\4\4\2 – The number of sensor steps before the start up commences. The maximum accepted is 20. 24 is a full pedal revolution. Too few makes start-up occur with too slight a pedal movement. Lower number is less pedal movement to start the motor. Does not work properly with 1 or 0.

Work Mode (angular Speed of Pedal/wheel*10): Undeterminated \ Undeterminated \10\10 \ Undeterminated — Adjusts the amount of power that can be applied to each pedal rotation. The higher the number the greater the power applied to each rotation. This might affect at what rpm peak power sits in PAS operation, changing it doesn’t seem to be noticeable so we advise to leave it alone.

Time of Stop(x10ms): 25\25\25\25\10This affects how quickly the drive stops after you stop pedaling. Some people report that setting this lower (as low as 5) may affect the startup delay on the throttle. If you set it to 0 the PAS system ceases to work. 25 is probably too high. This setting disables the PAS if it is set less than 5. I strongly recommend setting this to 5, especially if you want to use the PAS system without using ebrakes. If you set this less than 10 on the v2 of the BBS02 controllers then your PAS will not work properly at all. On the older BBS02v1 controllers and the BBSHD controllers you can set this as low as 5 before you start having issues with the PAS.

Current Decay(1-8): 4\8\6\8\8 – Determines how high up the pedal cadence rpm range it starts to reduce power, 8 being the highest. There is no detail on actual rpm speeds for the Current Decay setting. The lower this setting is the sooner the drive unit will start cutting back on the power as you pedal faster.

Stop Decay(x10ms): 0\0\0\20\0 – The amount of time the system takes to cut after pedaling stops. Lower is faster. Kepler says, 

“I prefer a smooth stop transition.  It is still quite quick to shut the drive down when you stop pedaling”

Current Decay settings mapped vs Power. Image from Ken Taylor on ES

Current Decay settings mapped vs Power. Image from Ken Taylor on Endless Sphere

Keep Current(%): 60\60\60\60\80– What this setting does when set at 60% is ramp the current down to 60% of the PAS level selected based on pedal cadence rpm, so at low pedal cadence you get 100% of the level selected but as your pedal cadence increases the power is reduced down to 60%. As you pedal faster the motor does less work down to whatever this number is set to (60% of max current or 15 amps on 25 Amp system).

THROTTLE HANDLE TAB

Special Sauce Throttle Settings. Kid tested, mother approved.

Special Sauce Throttle Settings. Kid tested, mother approved.

Start Voltage(x100mv): 11\11\11\11\11 – The is the throttle input starting voltage, the point at which the controller responds to input is at 1.1 volts, so set value to 11 which = 1.1 volts. As you begin to roll on the throttle the voltage moves up from zero and when it reaches 1.1v the motor begins to turn. Best to leave between 10 and 15. Too low and the display will throw an error as the motor will want to run continuously. If you change the throttle you will need to find the new lowest setting.

End Voltage(x100mV): 35\35\42\35\35 – You can set the max range to 42 which is the max input the controller accepts from throttle input 4.2v. If you set lower than this value your throttle response is not as linear or smooth as it could be. Matt suggests you set start voltage to 11 and end voltage to 4.2 for a wider range of throttle response and smoother control of motor output. If you use an aftermarket throttle you will need to test to see what voltage the hall sensor throttle is giving off at full throttle and set this number slightly lower than that voltage shown on the meter (times 10).

Mode: Current\Speed\Speed\Current\Speed – Switching this to Current Mode (instead of Speed mode) has an improvement in the throttle response smoothness. If you change this then set the Start Current % on this page to 10 or less. Personally I prefer the intensity of the speed setting, although setting this to Current will be much easier on your controller. Some users of the newer BBS02’s say that the CURRENT setting can cause jerkyness with the throttle, in which case you should set it to SPEED mode.

Designated Assist: 9\9\9\9\9 – If you disable the PAS system (step 5 here) then this will give you the same number of levels of throttle power as PAS settings. If you don’t disable the PAS system then you should probably set this to 9. If your bike is in a rental fleet and don’t want to deal with fried controllers then you should set it to something much lower like 6. This setting if set will override the Limit Speed setting on the Basic Tab and also overrides the speed limited on the Basic Tab. If you set this to 9 be aware that you can and will fry your controller if you are in too high of a gear on too steep of a hill and you peg the throttle.

Speed Limited: By Display’s Command\40KmH\40KmH\40KmH\40KmH – Cuts power when the road speed from the mag sensor hits the number set here. If set to By Display’s Command then it uses the Display’s set speed limit. However this setting can sometimes cause severe Throttle lag in PAS0 so if you set it to 40km/hr the 2-3 second throttle lag should disappear.

The speed limit only applies to the PAS and in ignored by throttle input, so in other words, if you want to go past the speed limit, just use the throttle. This is a setting that allows the rider to set a pace or cadence when using pedal assist for a comfortable steady pace. Almost like cruise control, when you begin to go past the speed, the motor cuts out to maintain a lower speed.  It is a useful way to extend range. The max speed limit of the display is 45 mph.

Start Current(%) : 10\10\10\10 to 20\10 – Percentage current of available when throttle initially applied. Unwise to raise beyond 20, but fine to lower, however motor will give less power when the throttle is engaged. If you set the throttle Mode to Current (which I think you should) you will want to lower this number substantially or it will be very jerky on startup. 5-10 gives a much smoother startup. This can be set all the way down to 1, great for IGH bikes and smoothing out power delivery.

So what do you recommend?

For smooth throttle control and less delay the Current Mode on the Throttle Handle Tab is the way to go, but you should keep the Start Current % low (below 10 is safe) otherwise the throttle is far too jerky and wheelie prone. If you want max power and torque then set the Throttle Handle to Speed Mode.

I have 8 BBS02 controllers from various manufacturers and I’ve only had one controller failure from the first one I bought from elifebike. The two I have bought from Lectric Cycles and all the ones I have bought from Paul and Doug at California-Ebikes (which both use em3ev’s settings) have given my absolutely no problems. The Lectric Cycles settings has a jumpy throttle and a little throttle delay which could be corrected by switching the Throttle Mode to Current. I have hundreds of hours beating the living piss out of my drive units with em3ev’s and Lectric Cycles settings with no complaints and no controller failures. At this point I’ve set all my drive units to the “Karl’s Special Sauce” settings which is the only way to fly if you want max throttle power without blowing your controller and PAS that actually is usable.

There are plenty of people who say Kelper’s settings are very reliable, but I have not tried them yet so I cannot say. I would not advise using Kepler’s settings at a full 25 Amps, as you are asking for trouble. 100% Limit Speed at every PAS level at is going to put a serious load on the cheap-ass controller mosfets.

In some ways it’s great that we can get into the software and change so many of the settings for the BBS02. Along with this flexibility comes taking responsibility for the controllers and drive units we end up destroying by tweaking the settings. This guide is a way to share information that others have discovered the hard way, but by no means is definitive. All the information here could be wildly inaccurate as no one that I know of has gotten any real technical guidance from Bafang on how to program these units at all.

IMAG2509

It broke, I fixed it with mosfets that didn’t totally suck. You can too if you visit here and are good at following instructions and soldering.

Program at your own risk. Don’t program your controller, fry it, then try to get it replaced under warranty pleading innocence. If you fry your own controller then have the common decency to spend the time and energy to fix it yourself or just suck it up and buy another one. Paul has had so many problems with people ripping him off by custom programming and frying their controllers and then trying to get free warranty replacements that he no longer warranties the individual controllers. Can you really blame him?

This article is the culmination of many hours of work and was contributed to by Paul(cellman) from em3ev, Matt from Empowered Cycles, kepler and drprox from Endless-Sphere and this insanely long 37+ page thread on ES. Many thanks to everyone who contributed. I could have done it without you but the results would have been really laughable.

Ride On.

UPDATE: A hacker from Norway named Penoff used the source code and completely rewrote the Bafang programming software. All the settings are the same but the software that Penoff has written fixes a lot of the annoying bugs (like the com ports not showing up properly) and works the way the original Bafang software SHOULD have worked. I’ve tested it pretty extensively and emailed back and forth with Penoff who seems to be a stand up guy. If you want to download his application you can do it through his website here. You won’t be disappointed.

164 thoughts on “A Hacker’s Guide To Programming The BBS02 & BBSHD

  1. I want to build a fat tire bike with the BBSHD paired with a 3 speed IGH for use in somewhat hilly terrain which can also be muddy. I mostly want to use it in a throttle only mode not expecting to get high top end speed nor a large range. What chainring tooth differential would be best for this?

    Like

    • Error 30 – communications/controller error. Most likely a display problem, a wiring harness or the controller. If possible troubleshoot with another display (if you have access to one) …..
      check your wiring harness for damage or bent pins…
      check if you have extensions for the brake levers, throttle or gear sensor. Unplug everything before testing, then test by plugging each component individually in and power cycling the system.
      check that you are not pinching the wiring leaving the controller, or the installation is causing the wiring to be pulling out of the wiring exiting the controller.
      Unplug all plugs in the controller as shown here, then plug them back in.

      Like

  2. Pingback: Electric Bikes – Yuba Mundo eV4 – first rides | Signs of Success Ltd

  3. Hi Karl, Just want to thank you for all the fantastic information on the bafang unit .i have installed
    The BBSHD on my bike and would be lost with out your helpful forum on programming! I have gone through all the safe steps as advised and very satisfied with the PAS Settings from One to nine ,But I just thought at PAS 0 I would be able to cycle the bike as normal and bring on the power at what ever level I chose no matter what the speed or cadence I was doing! The problem is the second I start to turn the pedals the trottle control disapears,stop pedalling and I have full smooth control again.i have gone over the settings many times and have not been able to get this to work no matter what I change in the basic/pedal assist/trottle groups,also you have advised to set the trottle to Current and when I do that I lose any smooth control with the trottle and had to leave it on the speed setting.should I be able to get smooth power control from the trottle on PAS 0
    No matter how hard or fast I am actually cycling or did I get something very wrong on how the control works,I would be very grateful of any advise as to why or how I can get the controller to operate as mentioned.Many thanks Tom.

    Like

    • Hi Thomas,
      I guess your motor has a dedicated gear sensor. I have a BBS02 which was manufactured last year july, it was perfect until I decided to give it to my friend and buy my self a new BBS02 with dedicated gear sensor. The problem is not solvable, Bafang’s new programming made the pas override the throttle, except when the throttle is 100% which is not smooth at all and may destroy the internal parts. It just feels wrong, I want to pedal with the motor in pas 0 in a smooth way. I just replaced the controller to my old one, and it solved my problem :D.

      Like

      • Cheers D, I think you may be onto the reasons why I am not getting that smooth acceleration with the throttle on PAS 0.I purchased the full BBS03 kit (April 2017) and after programming the advisable settings ,was happy with the performance of the PAS 1-9 . I would have hoped the PAS 0 setup for throttle would have been smoother and have tried different settings and even changed to a new twist type throttle as some people have reported the standard shipped thumb throttle was poor.The strange thing is when I have the bike on the bike stand and testing the throttle on pas o with the programme setting on SPEED rather than Current as advise on some of the blogs, I actually have
        Perfect smooth speed control of motor with throttle ,back on the bike and cycling on on flat ground with appropriate gear set, and then when I apply the throttle i get this this jerky/ jumpy output from the motor and know this is not good for lifetime of the unit and release throttle immediately ,I was hoping to cycle bike on occasions in normal mode and get that help with the throttle power when I wanted it ,but maybe this is not possible with cadence/ speed sensors etc built in.But looking at some of the utube clips that doesn’t appear to be the case for them! Anyway thanks for your info and I will keep on researching .T

        Like

      • I have been trying to get to the bottom of this issue for the last two months. After working with 4 different BBS02B controllers I am quite sure it has nothing to do with the dedicated gear sensor. The two controllers manufactured in 2016, one with a gear sensor cable and one without the gear sensor cable, both work like the old BBS02A controllers. The two controllers manufactured in 2017, one with a gear sensor cable and one without the gear sensor cable both have the Pedal/Throttle issue. Using a programming cable and the Penoff software all settings were the same on all four controllers during the tests, as well as many other tests with various settings. Since they all have the same hardware version and firmware version I now think there must be a “new” setting or attribute that the Penoff software was not programmed for, but Luna doesn’t have an answer, and Bafang hasn’t answered my question. Luna did find a used BBS02B controller that works “right” and swapped it for the one that was on my kit, which made me happy. But I still have a controller on the shelf that I would like to “fix”.

        Like

      • After chasing this throttle/pedal issue on the BBS02 for the last 8 months I have made a simple but difficult change to my 2017 controller so that it operates the same as the earlier controllers. The change is documented on ES (Endless-Sphere forum:

        http://www.endless-sphere.com/forums/viewtopic.php?f=28&t=93977&p=1375813&sid=1ba2675afbcf9f5094b1027fbdfb0bc3#p1375813

        I don’t know if the change will cause any other problems, and it would void any warantee, and I still believe Bafang, along with their dealers should be able to provide a programming fix.

        The simple description of the problem is that in the earlier models PAS was disabled when the throttle was used, and in the 2017 controllers the throttle is disabled when the pedals (crank) are turned.

        Like

      • Yup, that sounds like Bafang. Sorry you got stuck with a crappy controller setup, I’ve heard others have the same issue, at least now there is a fix. Thanks for that.

        Like

      • Brilliant Peter and well done on not giving up on the issues with the throttle on the BBS02 or BBSHD 2017 controller .I had given up and was very disappointed with not to having the control on the throttle that we were supposed to have and thanks to your investigation’s I know now that it was the controller sold post 2016 (mine 2017) had these issues! I actually only ever used the PAS as I had tried ever setting change possible and with Karl’s help and advice still could not understand why only my throttle was reacting this way.Bfang help is nonexistent and a waste of time ,which is a pity as apart from this problem it’s a pretty good e-bike conversion unit on the market.Anyway when I get the nerve I will be making the modification you have posted and if you get time you might let us know if all is well on your controller since you made the change.Thanks again.Tommy

        Like

    • There is one solution! If I wasn’t able to switch back to the last years controller, I would definitely disable the pas system completely as Karl suggested in an another article through pulling the gray wire From the controller, then i will have smooth throttle management. Pas system is nice to have when commuting 50+ km to keep power consumption to the minimum, but 98% of my commuting is within 20km per day, therefore I would disable the pas in a newer controller.

      Like

      • Spot on Abd!!!! We are definitely on the same train of thought as to how we would like to have this
        Great kit to work on the bike.I Read Karl’s article on disabling that grey sensor wire and said yeah that’s the way to sort this out ,but first wanted to try and fully understand how this controller is programmed and the way it responds to those Settings from all you experienced e-bikers who I must say pass on invaluable info to us newbee’s.My intended bike to work journey is about 30k to and back, so for now I think I will stay on PAS only and maybe will be brave enough to cut that Grey wire eventually.Thanks again Abd /Karl and will update you on any new changes or findings.T

        Like

      • Good suggestion Roy, but it means flipping another switch when you just need to add a little throttle along with pedaling when more power or speed is needed for a short time while cruising along using PAS. Also, I alternate between two trikes and when the same system works differently on each it can be a pain, which is where I was until Luna swapped controllers with me.

        Like

    • You say to make sure to set current on BBSHD to no lower than 30. Why is this? What adverse effects would occur if it were set to, say, 25A?

      Thanks, Karl!

      Like

      • Amazing thread Karl so thank you for all your testing. I have a bbhd and have been playing with different amps from 18-25. I ride single track and use the throttle a fair amount with 48v 21ah backpack. My observations are the higher the amps you set the higher the torque/power and the faster the battery will draw down. If you are happy with your settings raising the amps can throw off your settings and make the throttle jerky and the integrated feel go away. Plus the battery goes soft so half way through your aggressive ride and you may not have the same type of power as what you started with. I love the idea of more power but in the technical riding it can be a burden and not useful. Hope that helps. I have settled around 20-21 amps for single track.

        Like

      • True that. I just get a bigger battery. I ride with a custom built 24Ah 52v pack and it works great for about an hour of really hard riding through deep snow with a 50 amp controller. If i want more than that I bring two batteries and ride back to the car to swap them out.

        Like

  4. Hi,
    I configured by BBS02 350W according to this article (it’s great!).
    It’s been almost a year now – the set is working OK but I noticed
    something strange after finally adding amp meter to my bike.

    I limited the controller to 18A and expected this value as the max current
    on the meter. Here is what I saw (riding on flat surface):

    1. When I pedal realy slowly (let’s say 1 turn every 2 seconds, just to
    keep motor running, without giving any help to the motor) the amp meter
    is showing 18A.

    2. When I pedal faster (but still without any resistance, the motor does
    all the job) the meter shows around 10A.

    The behaviour of bike confirms those numbers – it goes faster/stronger when
    I pedal slowly (assuming I give no power from my legs in both cases).

    Can it be related to one of the settings mentioned in the article?

    Thanks for help.

    Kris, Poland

    Like

    • Hi Kris, yes I expect you are experiencing the same effect that I did with my 36v 500w motor. The faster you pedal the lower output from the motor. This feels very odd for a cyclist, less so for someone who is perhaps not so fit and prefers to pedal under 60RPM. This is due to the Limit Speed settings. Limit Speed detects crank RPM, not rear wheel speed. So the faster you pedal, the less help the motor provides. I have now Limited the current to 16A, (previously 25A) to increase battery range and put less load on the battery/motor/controller and set increasing Limit Current settings (%) in each PAS Setting. Starting at 22% in PAS 1 to 100% in PAS 9. I then set Limit Speed to 100% in all PAS levels 1-9. You should also set the start current to a lower figure, say 20% to avoid overloading the controller.

      I assume you’ve also changed the 25kph speed restriction to a higher speed. I set mine to 50KPH (the highest my display allows. The bike will now reach 50kph in PAS 7+.

      I’ve run this for over 12 months and done 3000km without any trouble.

      Like

      • Hi,

        this would mean that if I want the controller to give max power
        and pedal hard at the same time I would have to choose high
        gear to keep RMP low. I’m trying to avoid it as it’s one of basic
        rules for BBS02 to keep it turning at high rate.

        All the other settings you mentioned are basically the same in my case.

        By the way – you mentioned overloading the controller – does
        it have to exposed to too high burden for a longer time to get overloaded
        or it might happen in a short time (like couple of seconds)?

        Kris.

        Like

    • Look at your “Keep Current(%):” I set mine to 60 – What this setting does when
      set at 60% is ramp the current down to 60% of the PAS level selected
      based on pedal cadence rpm, so at low pedal cadence you get 100% of
      the level selected but as your pedal cadence increases the power is
      reduced down to 60%. As you pedal faster the motor does less work
      down to whatever this number is set to. (60% of max current or 18
      amps on 30 Amp system).

      Like

  5. if “Startup Degree(Signal No.):” is put to 4 it does not only make the motor engage with slight touch to pedals, but more annoyingly it does so when backpedaling! when moving the bike etc. have now fixed this issue by changing it to 2. if you could add the issue with backpedaling, which happens automatically when reversing. if kept at 4 and trying to back off a tree only to have the bike suddenly launch towards it the second time lol.

    Like

  6. After trying lots of different configurations on my BBSHD (52V) and my brother-in-law’s BBS02 (48V) we’ve finally settled on Kepler’s config with a few minor tweaks.
    What can I say, absolutely brilliant!
    No more surging!
    I usually go out with my brother-in-law and we always struggled to synch our speed, either I’d be a little too fast or he would. The motor was always kicking in (often too strongly) or not giving enough help. Now it’s constant, whatever speed (within reason) or gear I’m in.
    I’ve set the first five levels with smaller increments. 5% which gives about 1Amp of constant power (with very minor fluctuations), then 10%/2Amps, 15%/3Amps, 20%/4Amps, 25%/5Amps, 35%, 50%, 75% & 100%.
    We normally ride (on fairly flat trails) between 18 & 25 kph, occasionally 30kph (if it’s getting dark and we’re further from home than we’d thought!) I usually ride in level 1 or 2, boosting as necessary on hills or difficult terrain.
    In the lower levels of assist it’s like riding a normal bike (but with stronger legs!). I’ve also tweaked the voltage so it comes in more gradually and configured the pedalec so that it shuts off as quickly as possible. It no longer feels artificial and I’m enjoying it much more than before. I have access to maximum throttle in all levels and use as needed (up to 32Amps).
    I also find these settings to be far more efficient than the previous ones.

    Like

  7. This is my brother-in-law’s file BBS02 48V20A 26″ wheel:
    https://drive.google.com/file/d/0B9urC3H28uzqempCQnhPcDdBOFk/view?usp=sharing

    This is my config, BBSHD 48V30A (using a 52V battery) 29″ wheel:
    https://drive.google.com/file/d/0B9urC3H28uzqaUw5cE9NczdNaWs/view?usp=sharing

    They’re both working fine on our bikes with a good few hundred km under the belt, but I take no responsability for any possible damage caused. As always, do your homework before applying any changes and man/woman up if you fry anything! 8)

    Just wish I’d set this config three years ago!

    Like

  8. Hello I’m new to this motor hacking but not new to computers. i just wanted to know though. Isn’t it the same thing to just change wheel size from 29″ to 18 inch and change mph to km/h. that seems to remove the top speed limitation. correct me if i’m wrong. as i purchased my kit with the programming cable together so i have the cable ready

    Like

  9. I recently purchased a bafang 1000Watt e-motor from china. I also included the color display. On the display and when I choose to edit the settings I only see metric and imperial as the selections in the settings. Does anyone know how I can either flash the device to include miles per hour?

    Like

  10. Hello,
    I have a new BBS02B and I experience a problem when starting with PAS.
    When I start pedaling, the motor power is not continuous and smooth.
    Motor power goes on and off for few seconds before stabilizing.
    There is no problem with throttle start.
    Anyone familiar with such behavior? Can it be fixed by controller programming?
    Is this guide and programming software also applicable for BBS02B?
    Thanks,
    Yaron.

    Like

  11. Pingback: I Void Warranties : Hacking The Bafang Ultra Max Mid-Drive Ebike Drive | ElectricBike-Blog.com

  12. I am looking for someone somewhat close to Watkins Glen, NY that could program my bbs02 for me. I need it to have a much more gradual throttle control. It is way too aggressive for off road. My cel is 607-339-9387 to text.

    Thanks, Mike

    Like

  13. Hey everyone 😉 First of i would like to thank Karl for this epic article, makeing all them bafangs out there better 😀 I was wondering if anyone of you have any experience with the throttle in pas 0. Ive programmed my bbs02b after Karls special sauce settings, and tryed both current and speed setting. The throttle works without any jerkyness but the problem is: When there is no load on the bike the throttle is responsive and quite variable depending on throttle input, but as soon as i put load on the bike ( myself roughly 75kg ) the throttle acts like a 0 or 100% regarding of throttle input. Anyone of you have a simmilar experience ? Is it suppose to act like this ?

    Like

  14. Great blog Karl! Really appreciate having so much information in one place saving loads of time for newbies to the electric bike world like myself. I have one query though. I ride a hand cycle and have installed the BBSHD which is awesome!! As I’m using my arms to crank/pedal I have set the Assist Level Speed Limit % to 56 to give me a max cadence of around 84 rpm on most of the PAS levels with varying Current Limit % for the power. However, I have noticed that with a Speed Limit % of 56, this also limits the road speed to 56 % of the speed limit on the display where the motor assists ie. Display is set to 35km/h, motor assists to 20km/h.
    Is this correct? I thought that with the motor speed limited ie. cadence, and that the top road seed wouldn’t be affected. A work around is setting the display speed higher to 50km/hr where my road speed would be 28km/h with the Speed Limit % at 56. Although when I have PAS Level 9 selected with 100% Current & 100% Speed Limit, it is a rocket.
    Any advice would be greatly appreciated.

    Like

    • That is not entirely correct. There is no setting on and BBSxx that pays any attention to the speed of the bike. When it talks about speed limit it is limiting the speed of the MOTOR not the bike. You can set the speed limit to 100% on any power level (like Kepler’s settings) but you run the risk of blowing the mosfets if your current limit is too low.

      Glad you like the blog.

      Like

      • Thanks for that. I need to do a little more playing around with it.

        I initially tried Keplers settings however, the motor speed ran too fast for my arms to keep up. I’m trying to set it up so the motor speed ie. cadence at the crank is around 84 rpm max, but still get my top speed set by the display 35km/h, by using the gears.

        Like

  15. Thanks for that. I need to do a little more playing around with it.

    I initially tried Keplers settings however, the motor speed ran too fast for my arms to keep up. I’m trying to set it up so the motor speed ie. cadence at the crank is around 84 rpm max, but still get my top speed set by the display 35km/h, by using the gears.

    Like

  16. Hello good sir,
    First off I have to say that I am very much a newby when it comes to blogs and e-bikes. I am however an avid mountain biker and I have recently decided to join the ranks of e- stardom. I am researching now in hopes of coming up with a good mid size motor selection for my Green Mobber Machine (2007 Santa Cruz bullet). I am really considering the BBSHD. So for my question to you seeing as how it sounds like you have lots of time with these motors and mountain bikes/fat bikes. Do you expereince a high rate of failure on your chains and cog sets/ rearhubs?

    Like

  17. Hi i am considering visiting the BBS arena again after having the BBS02 for a while and suffering 2 controller failures. I have toyed with the idea of the Cyclone or the BBS HD. Most of my riding is 50% road and 50% park and nature trail on the way to work so i am leaning more towards the BBS HD just for the neatness of the installation. When looking at what was available to me in the UK i have come across what seem to be reprogrammed HD units which are being sold as either 1500w or 1700w versions saying they are good for 2500w :-/ Now my question is “i am interested in anyone’s opinion or information” how do they achieve this if it seems to be using the stock controller? I see they are using 52 V 15Ah batteries and it states that the unit has been reprogrammed to achieve these figures but i have looked at a few reprogramming articles and no one states this big increase in power output. Thanks for reading and i look forward to the replies 🙂

    Like

    • The only HD units that do 2500W are the Ludicrous controllers which can only be purchased with a new Lunacycle ebike. The stock HD does 1500W peak. My guess is they are using an aftermarket controller for the HD or more likely they are just exaggerating. There is no way to program a stock HD controller to do over 1500W that I know of.

      The Cyclone can do 3000W easily but the HD is a more refined drive unit. I have a cyclone, but all I ride is HD’s.

      Like

      • Thanks for the responses, i thought this would be the case. So following the hackers guide and making sure the 30amps is configured this would be the best setup for the BSS HD running 52V where the peak power would be 1500w

        Like

  18. Hi All,

    thanks a lot for the time and effort put into this blog, amazing information, well done!

    I have the “GS for REAR Derailleur” from gearsenor.com mounted on my BBS HD e-bike. the sensor is connected to the controller via the appropriate cables, Y-connections, etc.
    Every works well.

    I was wondering if any one knows how to tune the delay / timing duration between the sensor detects the user triggering the gear shift and the time when the motor kicks off again.
    I would like indeed to put more time between those 2 instants so that there is margin for the gears to shift.

    thanks,
    Olivier

    Like

  19. Hey, his is very good info. I have just purchased a BBS02 36v and am running it with a 36v 13amp battery and I think it eats thru the battery pretty quick. I am peddeling most of the time. I wanted to know is the motor pulling 25amp? Can I safley lower this to around 18amp as this article has suggested and save more battery? Thank you

    Like

    • Hello Harminder,

      I run my 500w 36v BBS02 with current restricted to 20amps. I have an 18AH battery with . I get 3hrs or 60 miles at average speed of 20mph including hills. My setup does not have a throttle. I run my own controller settings to try to make the bike feel like a bike, not a moped. I use PAS levels 3-5 most of the time.

      Like

  20. If you run assist 0 and 1 / 100% limit speed will the assist be shut off with the throttle still usable up to 100% power? If we set all the limit speeds to 100 is there greater controller risk, as someone mentioned that earlier. Its annoying that the level setting determines the total speed on the bike with the throttle engaged all the way.

    Like

  21. Pingback: Bafang BESST Service & Parts – iBikes.ro

  22. Hi, i replaced the mosfet, i have to start it at least 5 times and only works for 10-30 sek all fine. Then no response from the motor, display works fine. arrgh

    Like

      • When i suddently i get a “10” sec working random burst can i use the pedal assist, throttle or hold down (-) and motor spins slowly and then stops.

        All functions like brakes works or i got a (!) signal when i use the brakes, and KM/h read works. I have also traced all cables with a mulitmeter and finds no problems.

        The red LED on the PCB turns first solid, and then flash 5 times and shore pause and repeats. No change when the motor works and not.

        When i “revers” the bike before the mosfet change it was hard. Now revers is like a normal bike even the motor moves.
        The new transistors:
        3Pn0402
        https://datasheetspdf.com/pdf/969865/Infineon/3PN0402/3

        Like

  23. Lots of good info, one correction, a lower gear is a lower development gear, used at low speeds, and numbered lower. The lowest forward gear is 1st gear, which on a bicycle with a derailleur chain drive means the chain is on the largest cog in the rear, and the smallest chainring at the pedals (although most ebikes have only one chainring).

    As the bike is shifted into higher gears the rear derailleur moves the chain to smaller cogs increasing development. Starting out in a high gear tends to stall the motor, which then draws maximum current creating maximum heat, max motor torque, and max force on the chain, all of which tend to result in burnt motor windings and burnt FETs in a cheap Chinese motor such as the BBS02 that has very inadequate thermal design. low efficiency FETs, and lacks internal thermal protection.

    When a FET blew on my BBS02 I knew changing the FET would not fix the controller because I measured full battery voltage on all 3 terminals, gate, drain, and source without even turning the controller on. The FET was so badly shorted that battery voltage was fed into the gate drive damaging additional components. I changed the FET anyhow just to see if I could get any activity out of the controller, and while battery voltage no longer appeared on the gate there was no gate drive activity on the scope and no drive at all.

    I asked for a warranty replacement, didn’t get one, and didn’t feel even slightly bad in asking for the replacement. In fact, I think Bafang should just give away controllers upon request to make up for their inadequate design.

    I bought a replacement controller from Matt at Empowered Cycles, who is a really good guy, and the motor is running OK again. Thanks for all the info on tweaking the motor up to but hopefully not quite over the edge of destruction !-)

    Like

  24. Hey! Thank you for an excellent blog.
    I have a BBS02B 750w engine with a simple 3 level control without screen.
    My level 1 is Assist2 in the program.
    My level 2 is Assist4 in the program.
    My level 3 is Assist6 in the program.
    Which means that in default settinings my level 3 was only about 75% power.
    Now I have changed so that:
    Mitt 1, Assist2 = 10%
    Mitt 2, Assist4 = 35%
    Mitt 3, Assist6 = 100%
    The remaining Assist I have set at 0 and now it works well.
    So if you have a control that is below 9 level check what level it uses in the program.

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s