BBS02B - my look at driver settings

I would probably agree that the Bafang controller is not the latest and greatest but it seems satisfactory for the task. If you have priced some of the other controllers it looks a great deal.

I would ask that you consider a little experiment.
Set you global speed limit to 32 - assuming you have speed limit set to by display command in the pedal setting you can just change it in the display.
Set a PAS Limited Speed (%) to 75 and say a Limited Current % of 50 - or use one you already know.
Do you see power cut at about 24? (or an equivalent speed)
Try different gears and see if anything changes.
Don't get me wrong... I'm loving my BBS02B.
Ok... I'll see what I come up with on my next ride.
But one test I did do is set my global top speed to 26mph and in PAS 4 (60%) and in 4th gear the motor stopped assisting at 13.8mph. I then changed my global top speed to 36mph and performed the test again in the same PAS and gear and the motor stopped assisting at 13.8mph. No change.
I know for certain with no change in PAS if I go up in gear it will stop at a faster road speed and if I go down in gear it will stop assisting at a slower road speed.
Though not the same as you requested I do believe it yields the same answer.
 
Last edited:
Yes I believe that it is by cadence as you demonstrate in your second paragraph... But what I will add is don't think of in absolutes. I believe the loaded max rpm is 130 so 50% would be approximately a cadence of 65. They're are other things done by the controller that are not explained and I do believe road speed does play into to some degree. How much is anyone's guess. Another example is that raising the max speed setting doesn't raise the speed reached at any particular PAS. Again leaving me to think it is cadence, not road speed. So as far as I can tell cadence affects the setting more than road speed and my example of going faster in the same PAS but higher gear holds true. Using this approach has helped me tune it as I need.
This device is not state of the art and as far as I know, no one has obtained a detailed sequence of operation from Bafang.
I have just read through your long posting on Stop Delay and see that you have done a great deal of experimentation on the BBS02 controller and are likely confident in your understanding. I think I now understand what it meant by 'smoothness'. It is essentially the degree of control about the setpoint. Now we may disagree on what the setpoint is (cadence vs road speed) but I sure do agree that the better the control about the setpoint the better the riding experience. I believe many of the parameters - like stop delay - are controller tuning parameters that affect how power is modulated around the setpoint. I think much of the confusion arises from how they are named. The ideal controller will control its output (current in our case) to maintain the setpoint exactly based on the inputs (cadence and road speed). In practice, this is very difficult to achieve and there is a degree of variation about the setpoint. Our task is to tune the controller using the available parameters to best meet our application. Setting all speed values to 100% as I have seen on some profiles essentially turns the controller into a multiposition power switch - not something of interest to me. My application seeks to duplicate my natural riding style - riding at a more or less fixed cadence. As my capabilities have diminished with age I am how able to add some power and ride with a speed that makes 100km a reasonable goal again. I generally ride at about 25kmh using 5-6 wh/km on mostly flat country roads (battery 48v/17.5ah tested capacity at 680wh to 42v). My goal in tuning is to reduce the variation about the setpoint. Now it ranges from 22-25 - not a problem but I would like to see it tighter and smoother. I will be taking a good look at Stop Depay now.
 
Don't get me wrong... I'm loving my BBS02B.
Ok... I'll see what I come up with on my next ride.
But one test I did do is set my global top speed to 26mph and in PAS 4 (60%) and in 4th gear the motor stopped assisting at 13.8mph. I then changed my global top speed to 36mph and performed the test again in the same PAS and gear and the motor stopped assisting at 13.8mph. No change.
I know for certain with no change in PAS if I go up in gear it will stop at a faster road speed and if I go down in gear it will stop assisting at a slower road speed.
Though not the same as you requested I do believe it yields the same answer.
I missed this! Thanks for having a look. Interesting results. I just tried now using my 500C display. I find that the Eggrider does not write changes at times. The 500C is very simple and I can confirm that changing the global speed limit most definitely changes the control road speed as expected based on the PAS setting. I can not explain your results other than suggesting that the speed limit was not actually changed or something strange is going on with the different controllers.

And I do know that you like the BBS02. It is obvious based on the effort you make to further improve its operation. I along with all BBS02 user appreciate your work.
 
Fun watching this! I am SO glad whatever led up to the fact consumers can have the degree of control that we enjoy is MUCH appreciated here.

It's so disappointing that Bafang couldn't have kept this feature, and have decided to go with the CANbus lock down.
 
I missed this! Thanks for having a look. Interesting results. I just tried now using my 500C display. I find that the Eggrider does not write changes at times. The 500C is very simple and I can confirm that changing the global speed limit most definitely changes the control road speed as expected based on the PAS setting. I can not explain your results other than suggesting that the speed limit was not actually changed or something strange is going on with the different controllers.

And I do know that you like the BBS02. It is obvious based on the effort you make to further improve its operation. I along with all BBS02 user appreciate your work.
One thing that might be happening is that the controller can take the setting either way and that eggrider uses road speed. The reason I say this is the SPEEED app gives you the choice... though I've always used % (edit) as that was the method I started with on a PC. And now I like the % setting in that I really don't care about road speed to the extent I do cadence as that's what I try to maintain during a ride.
 

Attachments

  • Screenshot_20220812-095327.jpg
    Screenshot_20220812-095327.jpg
    66.5 KB · Views: 236
  • Screenshot_20220812-095335.jpg
    Screenshot_20220812-095335.jpg
    60.2 KB · Views: 258
Last edited:
I would be very surprised to find that the controller could interpret data in more than one way. I believe that the Eggrider or the Speeed application are simply reading and writing various data streams to the controller. I suspect that the controller firmware is stored in some sort of programmable memory. Once powered on it responds according to the values that are in memory. The normal display has ability to send certain data - like global speed limits and wheel size - which it does at powerup. Once running it reads operating data and writes PAS changes to the controller but it can not make changes to the profile. The Eggrider and Speeed application are different in that they can read and write many more data fields as occurs when a Read or Write operation is requested
I suspect that the Speeed application does a simple speed to % translation based on the global speed limit but sends the same data as the Eggrider or the computer program.
I will continue to experiment with some of the other parameters...
 
Fun watching this! I am SO glad whatever led up to the fact consumers can have the degree of control that we enjoy is MUCH appreciated here.

It's so disappointing that Bafang couldn't have kept this feature, and have decided to go with the CANbus lock down.
I'm sure you can see the problem that Bafang faces - if you allow users to make changes all sort of bad things can and will happen. Sure, the users reading these posts will be fine but many others - especially those that are interested only in speed - will end up with problems that ultimately affect Bafang or its dealers. Based on the rich history of BBSXX 'programming' I do expect that eventually users will gain access to the new CANBUS controllers - there is too much history and momentum out there...
 
I would be very surprised to find that the controller could interpret data in more than one way. I believe that the Eggrider or the Speeed application are simply reading and writing various data streams to the controller. I suspect that the controller firmware is stored in some sort of programmable memory. Once powered on it responds according to the values that are in memory. The normal display has ability to send certain data - like global speed limits and wheel size - which it does at powerup. Once running it reads operating data and writes PAS changes to the controller but it can not make changes to the profile. The Eggrider and Speeed application are different in that they can read and write many more data fields as occurs when a Read or Write operation is requested
I suspect that the Speeed application does a simple speed to % translation based on the global speed limit but sends the same data as the Eggrider or the computer program.
I will continue to experiment with some of the other parameters...
I concur.. and assume as you say that the SPEEED app is doing the translation.
But we are having two very different experiences. Perhaps we have different firmware versions on our controllers... not that Bafang ever provides this type of information either.
I guess one way to test would be for me to try using mph and see what happens with one of the test mentioned earlier. But since I'm pretty happy and pretty much done experimenting for now... You're more than welcome to try % 🤣
 
I took a 50km ride today and had a good chance to check a few things out. I think I am convinced that moving Stop Decay to 100 (1000 ms) improved control around the setpoint, It is no worse that plus/minus 1kmh now. It is not day or night different but it is a little smoother. I don't expect any difference in efficiency and expect it would be difficult do measure but certainly it is no worse. Efficiency was about 5.2 wh/km which is about normal for this ride. A big thank you to whoever came up with this idea!

With respect to the road speed vs engine speed issue I can only say in all tests I performed the setpoint varied precisely as expected based on road speed. This was confirmed at 2 global speed settings and several PAS levels.
 
I took a 50km ride today and had a good chance to check a few things out. I think I am convinced that moving Stop Decay to 100 (1000 ms) improved control around the setpoint, It is no worse that plus/minus 1kmh now. It is not day or night different but it is a little smoother. I don't expect any difference in efficiency and expect it would be difficult do measure but certainly it is no worse. Efficiency was about 5.2 wh/km which is about normal for this ride. A big thank you to whoever came up with this idea!

With respect to the road speed vs engine speed issue I can only say in all tests I performed the setpoint varied precisely as expected based on road speed. This was confirmed at 2 global speed settings and several PAS levels.
Thanks...
As far as I can tell I was the first to set this above 20 (200ms) (where's the self pat on the back emoji 😜) as most feel this is wrongly tied to Stop Delay
I feel that it is a bit more efficient eliminating some of the heavy lurches forward which draw hi current and additionally much easier on the drive train as well. Obviously your other settings come in to play so ymmv.
 
Thanks...
As far as I can tell I was the first to set this above 20 (200ms) (where's the self pat on the back emoji 😜) as most feel this is wrongly tied to Stop Delay
I feel that it is a bit more efficient eliminating some of the heavy lurches forward which draw hi current and additionally much easier on the drive train as well. Obviously your other settings come in to play so ymmv.
Interesting that even after many years the BBSXX still has its mysteries. One more piece perhaps... I disconnected the speed sensor as a test. I was expecting the current at the PAS level to be maintained unaffected by crank speed if road speed was the only contributor. This is NOT what I got. Current was reduced but at significantly higher road speeds indicating that motor speed was also variable. So cadence definitely comes into the control strategy somewhere for sure. Anyway, not really sure where this is heading but I think I will just concentrate on riding,...
 
Interesting that even after many years the BBSXX still has its mysteries. One more piece perhaps... I disconnected the speed sensor as a test. I was expecting the current at the PAS level to be maintained unaffected by crank speed if road speed was the only contributor. This is NOT what I got. Current was reduced but at significantly higher road speeds indicating that motor speed was also variable. So cadence definitely comes into the control strategy somewhere for sure. Anyway, not really sure where this is heading but I think I will just concentrate on riding,...
Hmmm...never tried that but I'd of thought with the speed sensor disconnected that the controller would produce an error.
Anywho.. this systems is called a cadence sensor PAS with the primary input senor of the same name so it does make sense that it comes into play. And yeah there's definitely some logic going on that Bafang hasn't provided and no one has been able to nail down precisely. But I do think we have enough information to be dangerous and have some fun. I'm at a similar point as well where I'm done tinkering for a while and just want to enjoy the ride.
That said... I'm contemplating a Tongsheng TSDZ build over the winter to see what all the torque sensor fuss is all about.
 
A clarification - I just moved the speed sensor so that it was still powered but not getting any signal. Interesting though, the display must use the speed input for determining status as the display powered down after the auto shutoff interval. I will be interested to watch your TSDZ project should it happen. Good luck.
 
sorry to be bringing up an old thread but i wanted to share my experiences with these settings just in case anyone else comes here looking for more info (like i did). i have a longtail cargo bike i just finished building, with a Nexus 8 internal hub. my main goals for programming are similar to @khuuhkrr, meaning i don't mind breaking a sweat and i'm not trying to go insanely fast. the difference is that i am using a cargo bike in the Netherlands, so everything is on flat roads with no hills or dirt. my biggest priority is mainly longevity of the hub gears, i want to keep as little power going through it as i can in order to hopefully extend it's life. the Nexus 8 is strong compared to the other models in the line but with cargo weight + mid drive torque it's experiencing some trauma i'm afraid it was probably not designed for.

when i first built the bike i was using what i believe is sort of the "kepler" programming approach as shown in this guide and discussed in this thread on endless sphere, which is speed at 100% on every level and the power incrementing by 10 through 9 levels of PAS. like this:

top speed = 70km/h
max current = 18A
start current = 5%
keep current = 60%
slow start mode = 4
startup degree = 4
current decay = 8
time of stop = 250ms
stop decay = 0ms

current limit | speed limit
10%|100%
20%|100%
30%|100%
40%|100%
50%|100%
60%|100%
70%|100%
80%|100%
90%|100%
100%|100%

i use an eggrider which records the data for my rides, and when using these settings i was getting cruising power of 580W, with peaks staying below 700W and a max speed of 33km/h. i felt like i was controlling my speed using the hub gears just like i do on my non electric bike, but then i used the PAS levels to decide how much extra sauce the motor gives. it wasn't the smoothest ride however, particularly when starting from a dead stop, which is what lead me here.

i tweaked the settings to incorporate the speed values as OP made a convincing point about their usage, so the speed limit goes up in increments of 5 between 55-100%, alongside the increments of 10 on the current limit. the top speed was reduced to 40km/h. everything else is basically the same except the stop decay which got moved to 1000ms. the changes look like:

top speed = 40km/h
max current = 18A
start current = 10%
keep current = 60%
slow start mode = 3
startup degree = 4
current decay = 8
time of stop = 250ms
stop decay = 1000ms

current limit | speed limit
10%|55%
20%|60%
30%|65%
40%|70%
50%|75%
60%|80%
70%|85%
80%|90%
90%|95%
100%|100%

when biking the same route through the neighborhood i am now getting cruising power of 640W with peaks up to 750W. the kicker is my max speed was 6km/h slower (27km/h).
i am a bit confused as to why it was working so much harder. the starting and stopping felt smoother but once i got up to speed it felt like the motor continued to put too much power out, which is what i wanted to avoid.
i'm guessing this has to do with the speed limit being related to the rpm of the motor. when i ride, i try to keep my cadence as high as i comfortably can. i make full use of gears 1 through 5 to get me from a dead stop to cruising speed, and then the top 3 gears are mostly reserved for long stretches of flat road where i can really get moving.
i think because i tend to pedal with a really high cadence even in lower gears, i had to put the bike into a higher PAS than i was used to so that the power wouldn't completely trail off. for example in my old configuration i would never dare to go above 50-60% current limit (PAS 4 and 5) when riding with no cargo because the bike would try to run away from me, whereas with these new settings i was definitely giving it 80-90% (PAS 7 and 8) just to get going the same speed.

i ended up landing on a configuration that was kind of in between the two, like this:

top speed = 70km/h
max current = 18A
start current = 10%
keep current = 60%
slow start mode = 2
startup degree = 4
current decay = 8
time of stop = 250ms
stop decay = 1000ms

current limit | speed limit
10%|100%
15%|100%
20%|100%
30%|100%
40%|100%
50%|100%
60%|100%
75%|100%
85%|100%
100%|100%

this gives me the power i need when i need it, and allows me to more comfortably use my full range of gears which is super important when carrying passengers or cargo. it also helps to keep me from getting knocked off balance when i am coming from a dead stop in a low gear. i am now keeping my average power at around 500W even with a passenger on board going 25-30km/h.

i think khuuhkrr has a really smart approach and it was an enjoyable read, it probably didn't work for me because i have a big heavy cargo bike and they are using a more nimble mountain bike.

(also there are no settings for throttle because i don't use one, why would you lol)
 
I wonder if a modded throttle like a wah-wah pedal , basically a rotary switch would alleviate at least on the throttle side the 0-1000 throttle response of most bafang throttles? Where you just sneeze on it and it's 0-1000 right away.

Certainly could be a semester challenge for engineering students. This way you could avoid all the programming hassles and leave the motor wide open , only now on the throttle side at least it's a more gentle power curve while still retaining the max power.
Certainly the door is wide open for such an engineering challenge to solve.
Still the problem remains for pedal assist. But controlling the motor on the throttle side could be a more user friendly approach that would appease the more novice market.
 
sorry to be bringing up an old thread but i wanted to share my experiences with these settings just in case anyone else comes here .

i ended up landing on a configuration that was kind of in between the two, like this:

top speed = 70km/h
max current = 18A
start current = 10%
keep current = 60%
slow start mode = 2
startup degree = 4
current decay = 8
time of stop = 250ms
stop decay = 1000ms

current limit | speed limit
10%|100%
15%|100%
20%|100%
30%|100%
40%|100%
50%|100%
60%|100%
75%|100%
85%|100%
100%|100%

this gives me the power i need when i need it, and allows me to more comfortably use my full range of gears which is super important when carrying passengers or cargo. it also helps to keep me from getting knocked off balance when i am coming from a dead stop in a low gear. i am now keeping my average power at around 500W even with a passenger on board going 25-30km/h.

i think khuuhkrr has a really smart approach and it was an enjoyable read, it probably didn't work for me because i have a big heavy cargo bike and they are using a more nimble mountain bike.

(also there are no settings for throttle because i don't use one, why would you lol)
Well done! John, Kepler, is a brilliant engineer. I imagine you’ve already discovered that. IME a most important value running BBS02 motors is motor temperature. Electricbike blog has a good tutorial on a temp gauge mod. It’s especially important with a BBSxx series motor on a working bike.
 
BTW, it was a temp reading that led me to ditching 52T chainrings.
 
BTW, it was a temp reading that led me to ditching 52T chainrings.

Yeah 52T is overkill for most bbs02 bikes with wheels above 20inches. Even then you have to be careful to not use the smaller cogs on steep inclines.
Do you sell fully built mid-drive bikes?
 
Back