(But Not For The Throttler)
Once you get through this article, check out the follow-on article that slightly refines these settings a bit further.
The subject of what settings to use when programming a BBSHD comes up now and again. Its a question with a fairly complicated answer that does not lend itself to your typical Facebook 2-sentence post. So here is the long version. I have my own suite of settings that suit my personal riding style. I am primarily a pedal-pusher: I want to get exercise when I ride, so I seldom use the throttle. But if you try to take that throttle away, you’ll have to pry it from my cold, dead thumb.
So I want pedal assist that does the following:
- Doesn’t lug the motor. All that does is turn electricity into heat.
- Conserves power and extends range. See above.
- Keeps me working, but not too hard … unless thats what I want, and then it has to let me do that, too.
Interestingly, with both my Mongoose Envoy Project and Surly Big Fat Dummy Project, I found what worked great for me on other BBSHD-equipped bikes was completely ineffective on a cargo bike. I frankly haven’t figured out why this is, but I think it may be because my older builds were just that: Older. Something maybe changed in the firmware. My PAS settings that conserved major amounts of power while pedaling wound up being totally inadequate. I needed to step up some settings, which I will describe below. While my settings then vs. now are quite different, I don’t see any real penalty in range.
Feel free to tinker using both and see for yourself what happens to your own motor.
How do you program a BBSHD?
Strictly speaking, you don’t. As a for-reals programmer who for most of his life made his living writing code, I have to point out this is not programming even if everyone calls it that. The BBSxx line of motors have a quasi-hidden settings interface. With the right software you can gain access to those settings and simply change them, resulting in big differences in behavior.
Myself, I am using the Black Box sold by Luna Cycles (available here). The Black Box makes it much easier to go on a ride, tweak as you go and get things just right after only one or two rides. Also, I literally have a half-dozen bikes now with one of these motors. The initial expense of the tool is a lot easier to justify if you are sharing it across the Pacific Fleet.
The other way to do this is to spend about US$18 and buy a laptop cable. Then you use your existing Windows laptop to host the app that you will use to make the aforementioned changes. Here is one place to get that Windows app. I started out doing it this way, but as laptop operating systems evolved I found it increasingly difficult to get Windows to accept the cable’s right to exist. I don’t miss fighting with it one bit.
If there is such a thing as a bible on how to program your BBSHD, its Karl Gesslein’s blog post on the subject (read it here).
If you want to know everything about programming your motor, you should read the blog post linked above. That post is the definitive tutorial on the interwebs, despite its age. All I am doing here is calling out some of the things I have done that deviate from the norm, work for me and why it seems that is. So I will not be explaining things as if you have never seen any of the BBSHD settings screens before. This article assumes you have at least read the above blog post and familiarized yourself with the screens and settings.
I am not showing original factory settings. Your motor may have settings your vendor considers proprietary. So I am showing screens I have altered and then calling out the bits I consider important.
The BBSHD’s settings are presented on three separate screens: Basic, Pedal Assist and Throttle.
The Pedal Assist Screen (2 of 3)
Yes I know. I’m starting out of order. Its easier to understand this way.
Much of what is on this screen… you shouldn’t mess with. I’ll just hit the high points.
Regardless of what you see here on my own screen, I strongly suggest you leave the first three settings alone unless you know exactly what you are doing.
The lower you set this number, the more gentle it is on the controller and your drivetrain. Experimenting with lower numbers will make life easier on your rear freewheel pawls, and chain. Setting this number low is especially helpful if you are running a cargo bike under load and want to be extra careful. Setting this to lower numbers may also be too little startup assist – remember the purpose of the motor is to help you get off from a standing start. This setting only applies to pedal-assist power delivery.
A typical default number here is higher; often around 10. I have found kicking it down just a bit more is much better for your drivetrain if you have a heavy (cargo) bike; especially one that is loaded. Even if its not a cargo bike, how bad can it be to beat on your drivetrain less? Remember you can always mash the throttle if you want <clarkson> power </clarkson>.
UPDATE (10 May 2021): No more messing around: I now use a setting of 5 here to match the same setting on the Throttle Screen below. The reduced wear and tear on your drivetrain is well worth it and there's no downside to a smooth startup.
Slow Start Mode
This setting determines how gentle the ramp-up is on your power on start. Starting up too fast can kill your motor’s controller so beware. I am using the lowest setting published in the article I linked above. Here again, why create a situation where you could end up blowing your controller or chewing up your chainrings? I stay on the conservative side.
A common complaint on the BBSxx motors is that you can stop pedaling and the motor keeps going for what feels like a full second. Its a valid concern. 5 is the lowest safe number for the BBSHD so thats where mine is. This setting effectively means your motor stops when you stop pedaling.
BUT it also leaves a hair of rotation which you can use to your advantage when shifting gears: Stop pedaling and in that instant execute your shift. The shadow of remaining power and rotation will be enough to gently complete the shift (SRAM gears will shift in about 1/4 rotation) and you can start pedaling again almost instantly. I call this a ‘stutter step’ in my cadence and I personally prefer it to using a Gear Sensor which automates the process. Tomato-tomahto. Depends on how you learned to use the drive as to which you like better.
This is a big one. Current decay helps decide when your motor cuts power based on your cadence. A huge complaint about cadence sensing is it causes the bike to run away from you and the rider is just spinning the cranks… its called ‘ghost pedaling’. This is part of a complete solution to that problem.
My philosophy is (and plenty of people disagree with this) if I can pedal at a high cadence I don’t need power assist, since I can spin the cranks. By cutting the power back when I start spinning (a.k.a. “clown pedaling”), I not only reduce power consumption and increase range, I also create a scenario where I either keep going on increased amounts of muscle power (which a high cadence demonstrates I can pull off), or I decide to shift to a higher gear, thereby naturally slowing my cadence and telling the motor to give me back some power.
This in turn has the effect of letting me ramp my cadence back up and increase my speed. Done right, this is much closer to a natural cycling experience and either lets me a) haul ass to my destination on the streets or b) get a hard workout. Or both.
Why would anyone disagree on this point? Easy: If you are running a powered bike on singletrack, and you hit a steep hill that is all muddy and root-strewn, you need to spin to keep yourself going up that hill. If the bike gently ramps back power on you, well thats a dirty trick indeed. So… remember what I am describing here is maybe the magic elixir for street riding; but not for an eMTB running hard singletrack.
This is another setting that helps govern how fast the motor shuts off when you stop pedaling. Zero milliseconds sounds good to me. Stop Delay determines how fast a motor begins its shutdown after you stop pedaling. Stop Decay determines how fast it fully shuts down after the shutdown begins.
This is another companion to Current Decay. When Current Decay decides to cut back power, this percentage determines how much power you keep. So by setting mine to 40%, I am getting a 60% power cut when I spin my legs past the Current Decay threshold. And my Current Decay setting determines how steep the offramp is down to the lower power level.
Here again remember what a bad idea this can be on an eMTB. This is for city riding and commuting, where you want the benefits of boost but you also want the option of getting some exercise and your terrain is reasonably predictable.
The Basic Screen (1 of 3)
The BBSHD is capable of supporting up to 9 assist levels. Actually its 10 since there is a Level 0, but that level is (nowadays) a special case that you pretty much have to leave at a special setting and can’t adjust.
Each level is defined with two numbers. A Current % Limit and a Speed % Limit. They are, in a word, opaque in terms of what they do, and not easy to understand.
Also I have achieved great results in entirely different ways on different bikes. I’m going to show multiple screens.
Note the Level 0 setting of ‘4’ with a speed cutoff of 30%. The intent there was I never really want zero power on pedal-assist and Level 0 provided a very mild bump for times when I am pedaling slowly and going slow… like when on an oceanside bike path loaded with tourist pedestrians, and I am just barely exceeding walking speed.
This one is apportioning quite a bit of additional power, level by level. On the newer motors, this is what it takes. The 25a power reduction shown on this screen is specific to this bike and not something you should read anything into. Just know that the Current box is where you limit the amps for regulatory or other reasons (i.e. this is your maniac child’s bike).
Whats with the Assist 0 setting of 1 and 1 above? Its a requirement of newer BBSHD motors. If you set it to anything besides 1 and 1, you wind up disabling pedal assist. This is far from my preferred setting as you can see above. I originally used Assist 0 for sort of a crawl mode when wending my way through tourist-laden sidewalks, where I’m going just a bit faster than a walk and don’t want to run anyone over, but still want a touch of power. Bafang’s release firmware is a moving target so if this changes I’ll amend this note.
- Current % is when the power cuts out based on road speed.
- Speed % is when the power cuts out based on motor rpms
Whats this ‘cut out’ stuff? Well, remember the ‘decay’ and ‘keep’ stuff we described when going over in the previous screen? These settings help determine when that kicks in. Clear as mud? You’re not alone. ‘Counterintuitive’ is the name of the game when messing with your Bafang motor settings.
Screen 3 of 3: Throttle
So… the pedal assist levels are on the Basic page. Makes perfect sense. Strangely, the throttle settings are on the Throttle screen.
There are only two things that, really, you should be fooling with here.
Generally this stops at ’35’ or 3.5v. What that gives you is, effectively, a throttle that has two speeds: Completely Off and Full Blast. Not really but it will feel like it.
Instead, if you set End Voltage to ’42’ (4.2v) the result will be a smooth, linear throttle where it will be easy to, say, blip out only 200w of throttle-based assist to your motor while you are struggling to get going after a stop. Being able to dribble out just a bit of power is something your cassette pawls – and your wallet – will appreciate after a few thousand applications. No more clanging noises coming from your poor, soon-to-die rear hub.
Hey waitaminute… we had Start Current on another screen too! Yes we did. But that one was Start Current for pedal assist. This one is Start Current for when you mash the throttle.
If you set this to, say, 10%, that means the initial beat-down given to your cassette body by the cluster (that gets jerked forward by the equally unhappy chain) is only 10% max the power of the motor. The rest of the power you asked for gets poured on a split second after that. But the initial shock to the system is reduced by this setting, which has obvious benefits. For a heavily loaded bike where you want a smooth startup on throttle, setting this down to 5 (or less!) should be considered.
UPDATE (10 May 2021): Having done some experimentation, with the wider throttle delivered by the End Voltage setting of 42, a Start Current of 5 is much better. Set to 10, the least throttle I can deliver is about 150w or about 1-1.5a (using an 860C display set to display both values simultaneously). Set Start Current to 5 and that minimum value is about 50w and 0.5a.
Wrapping it all up…
So there you have it. This is FAR from a comprehensive tutorial on the subject. Remember also that everything done here is done for a BBSHD that is running a 14S/52v power system, so if you are, lets say, running 48v… its possible you may want to jigger some of the assist levels a bit upwards. But now you can do it with a starting point.
The settings above are my personal settings. Starting from a stop, my assist will not kick in until crossing 5 mph or roughly 8km/h. If I want assist from a standing stop thats what I use the throttle for. Remember: All this pedal assist sturm und drang is wiped away if you just use the throttle and make it go.