BBS-FW: Open Source Firmware for BBSHD/BBS02 Controller

Hey, but are these temperatures normal/safe/induce excessive wear?

I want to thank the creator and contributors of this firmware, I'm pretty passionated about my bike/BBSHD and all this time I didn't know about this custom firmware!
Yesterday I flashed the firmware, played around with the settings and it's absolutely great, motor seems to run better and I believe it might be more energy efficient.

I was never able to check temps before, it's another cool feature, I noticed temps of around 50 - 60c during my "normal" riding 300 - 700w.

Also tried out the extra power (full 33a), so went full throttle uphill and temps went above 70 towards 80c and at that point the motor started reducing power.

Outside temperature was pretty hot 30 - 35c.

Are these normal temperatures for my BBSHD or is it something to worry about?

Oh and another question, if I would turn off "walk mode", would I still be able to check the temp by holding down -(minus) button which usually induces "walk mode"?
Motor temps depends on what sensor your bbshd has, the bbshd can have either a sensor just placed on the hall sensor pcb that effectively reads the air temp inside the motor or a sensor placed on the motor laminations which will give a more accurate reading. To figure out what one you have without opening up the motor based on my experience with the more accurate one and speaking to someone with the other I recommend getting up to say 70c on the dash. Compare the dash temp to the exterior case on the stator side. It will either be slightly cooler say 60c (this means its the air temp) or a lot cooler, in my experience I would estimate around 40c (this is the more accurate reading). If you have the air temp sensor 80c is the max I would go as that means the stator is very hot, 80c for the accurate sensor is somewhat hot but well under what I would consider concerning. I run mine to 100c and according to lunacycle in testing with their custom controller they would hit 140c and didn't have any negative affects, although they recommend not pushing past 120c as the temps can overshoot, and they tested one to 158C at which smoke poured out. I have previously talked about this with a different user a page or two back, I have no idea if Danial accounted for the two different sensors and adjusted there values to read the same which could be the case but I find that unlikely.

Due to the two different sensors and the stock firmware not using the temp sensor or displaying it to the user most people just go off the external temp, and consider above 60c to be the danger zone with the stock plastic gear inside. If you have the peek upgrade 75c is what I've seen some say is the limit

Photo to demonstrate what I mean, ignore the text: Left is the 1k ptc right is the 10k ntc
1693955335801.png
 
Last edited:
Motor temps depends on what sensor your bbshd has, the bbshd can have either a sensor just placed on the hall sensor pcb that effectively reads the air temp inside the motor or a sensor placed on the motor laminations which will give a more accurate reading. To figure out what one you have without opening up the motor based on my experience with the more accurate one and speaking to someone with the other I recommend getting up to say 70c on the dash. Compare the dash temp to the exterior case on the stator side. It will either be slightly cooler say 60c (this means its the air temp) or a lot cooler, in my experience I would estimate around 40c (this is the more accurate reading). If you have the air temp sensor 80c is the max I would go as that means the stator is very hot, 80c for the accurate sensor is somewhat hot but well under what I would consider concerning. I run mine to 100c and according to lunacycle in testing with their custom controller they would hit 140c and didn't have any negative affects, although they recommend not pushing past 120c as they don't know the true limit of the motor. I have previously talked about this with a different user a page or two back, I have no idea if Danial accounted for the two different sensors and adjusted there values to read the same which could be the case but I find that unlikely.

Due to the two different sensors and the stock firmware not using the temp sensor or displaying it to the user most people just go off the external temp, and consider above 60c to be the danger zone with the stock plastic gear inside. If you have the peek upgrade 75c is what I've seen some say is the limit

Photo to demonstrate what I mean, ignore the text: View attachment 339279

Thanks that's extremely well explained. :)

I don't have any form of device or way to measure the temp of the case. But I did put my hand on it when it reached those max temps, so according to the display I think it was 80 or close to 80. With my hand it felt "very warm", or I would even say hot, but not that hot that I couldn't keep my hand on it, I could keep my hand on it for as long as I want without discomfort. Actually I take that back, today was riding again, pretty hard for a while continuously 700 - 1000w, no problems, but when uphill a couple minutes max power (33a) and the motor started cutting back power, checked the temp 83-84c, I could touch the motor on the stator side with my fingers, but just a couple seconds, so it was pretty hot!

Not sure what that would mean in temperature numbers? I think that means I have the accurate sensor, right?

Will do some more testing, thank you.
 
Last edited:
Yeah, it can be a pain to deal with every time you stop. I did this before with a VESC controller on an old bbs02 and I ended up just using a hair band on the brake when I stopped. Ideally you'd have a switch on your throttle... but that's beyond the scope of many people :/

But however you choose to do it, it really is great to have the throttle power go directly to the drive without the big slam first :D
Do You have the Vesc config files or screenshot of your configuration please?
 
Do You have the Vesc config files or screenshot of your configuration please?
I haven't looked at this for a few years now. But I think these should be the last config files I used.
If not, let me know and I'll have another look ;)
 

Attachments

  • basic_app.xml
    8 KB · Views: 11
  • basic_motor.xml
    7.9 KB · Views: 9
Thanks that's extremely well explained. :)

I don't have any form of device or way to measure the temp of the case. But I did put my hand on it when it reached those max temps, so according to the display I think it was 80 or close to 80. With my hand it felt "very warm", or I would even say hot, but not that hot that I couldn't keep my hand on it, I could keep my hand on it for as long as I want without discomfort. Actually I take that back, today was riding again, pretty hard for a while continuously 700 - 1000w, no problems, but when uphill a couple minutes max power (33a) and the motor started cutting back power, checked the temp 83-84c, I could touch the motor on the stator side with my fingers, but just a couple seconds, so it was pretty hot!

Not sure what that would mean in temperature numbers? I think that means I have the accurate sensor, right?

Will do some more testing, thank you.
Hard to say for sure, as it depends on your tolerance to temperature. Another way to guess is the age if your bbshd, from what I've read it was somewhere around 2020-2021 they started moving the placement of the probe and even then switched from a 10k ntc to 1k ptc, the older yours is the more likely it could be the less accurate sensor although even then I've heard some say they've still seen new ones with the worse one. I personally thought when I touched the exterior of my bbshd around 60C (I would estimate if you have the "bad" sensor it would probably 65C at around 80C internal) that it was very hot but I'm 3d printing something right now and touching the bed set to 60C I can hold it for a couple of seconds. Best way to tell for sure would be a way to confirm the exterior temp, and also people have been using this method for a while so they know exactly when you should get worried. I run a fish tank thermometer that I soldered my own 10k thermistor on to glued to the top exterior of the stator and works well, I've also seen people use stick on temp gauges that change color to indicate a temp. But I also have a Infrared Thermometer I got for real cheap online. I recommend getting one of those solutions so you can know for sure.

The interesting thing to me though that makes me think that you might have the older style of sensor is that you found it very hot after hitting your max temps. When I was testing mine I could hit my at the time 90C rollback and the exterior temp would at max was 42C iirc, and I could hold my hand on that long enough that the heat didn't register in my mind. I will say though this was after taking a completely cool motor and doing a hill climb test that was over 2 minutes and then repeated at the 10 minute mark; during a longer ride my motor likely would have been more heat soaked and I could see this temp being a little higher.
 
Hard to say for sure, as it depends on your tolerance to temperature. Another way to guess is the age if your bbshd, from what I've read it was somewhere around 2020-2021 they started moving the placement of the probe and even then switched from a 10k ntc to 1k ptc, the older yours is the more likely it could be the less accurate sensor although even then I've heard some say they've still seen new ones with the worse one. I personally thought when I touched the exterior of my bbshd around 60C (I would estimate if you have the "bad" sensor it would probably 65C at around 80C internal) that it was very hot but I'm 3d printing something right now and touching the bed set to 60C I can hold it for a couple of seconds. Best way to tell for sure would be a way to confirm the exterior temp, and also people have been using this method for a while so they know exactly when you should get worried. I run a fish tank thermometer that I soldered my own 10k thermistor on to glued to the top exterior of the stator and works well, I've also seen people use stick on temp gauges that change color to indicate a temp. But I also have a Infrared Thermometer I got for real cheap online. I recommend getting one of those solutions so you can know for sure.

The interesting thing to me though that makes me think that you might have the older style of sensor is that you found it very hot after hitting your max temps. When I was testing mine I could hit my at the time 90C rollback and the exterior temp would at max was 42C iirc, and I could hold my hand on that long enough that the heat didn't register in my mind. I will say though this was after taking a completely cool motor and doing a hill climb test that was over 2 minutes and then repeated at the 10 minute mark; during a longer ride my motor likely would have been more heat soaked and I could see this temp being a little higher.

Purchased late April 2021, so I guess it could still be both.

I'm a delivery rider, so I had been riding a lot already, so the whole unit would already be warmed up, when hitting those temps.

So I guess IF it's the new sensor, I don't have much to worry about and these are "normal" temps?
I just want to know if it's in the "normal" range, because if that's not the case I guess I will have to open the motor and investigate further.
I have already ordered some heat sinks to attempt to lower the temps, I was also thinking about the grease, I used marine grease in my motor and at the nylon gear, motor runs well and silent, reopened after maybe 10k km, the grease was still in perfect condition. But different types of grease might have an effect on the temperature?

So as I understand you have set a higher temperature limit? At what temperature did you set it? If I have 100% confirmed which sensor I have, I might do that as well, because sometimes I just need that extra power without the motor cutting back on power.
 
Purchased late April 2021, so I guess it could still be both.

I'm a delivery rider, so I had been riding a lot already, so the whole unit would already be warmed up, when hitting those temps.

So I guess IF it's the new sensor, I don't have much to worry about and these are "normal" temps?
I just want to know if it's in the "normal" range, because if that's not the case I guess I will have to open the motor and investigate further.
I have already ordered some heat sinks to attempt to lower the temps, I was also thinking about the grease, I used marine grease in my motor and at the nylon gear, motor runs well and silent, reopened after maybe 10k km, the grease was still in perfect condition. But different types of grease might have an effect on the temperature?

So as I understand you have set a higher temperature limit? At what temperature did you set it? If I have 100% confirmed which sensor I have, I might do that as well, because sometimes I just need that extra power without the motor cutting back on power.
If it's the newer sensor I wouldn't worry at all, I hit 100C all the time and the guy who designed and tuned the Lunacycle ludi v2 controller (what I run) told me he tested it with a 140C limit and had no issues. I've found the highest my exterior temps get with 100C limit is 45C. Before I got my V2 I ran a shunt mod and I would get to 60C externally with no issue so I know I've got lots of room to raise the limit, I plan to test that and figure out with internally = 60C external once the heat index calms down and goes below 40C. If you have the older style sensor I would say 80C is the limit and I wouldn't push past it.

Heatsinks will help, I run a bunch on mine and I actually bought a lekkie crank extender so I can place a big heatsink on the side as well (need to order it). I also tested putting thermal paste in between the stator and case and found a slight difference, nothing large but I recommend doing it if you already have the stator removed (like when regreasing the nylon gear). I don't know if difference grease affects temps, I didn't start monitoring temps till after I regreased mine. Seriously though highly recommend getting something to figure out external temps, solutions are very cheap and the normal temp range is very well known and it will not matter what sensor you have and will help you figure out which one you have. Which will then help you figure out how to understand the dash's temp and when to be concerned.

For the record I don't run this firmware as I have an aftermarket controller, But I run a 100c rollback (so over 100c power limited) and 110c Max (power cutoff). This was the stock settings with my controller, and like I said below I believe this to be conservative and I plan to raise and test in the future. I don't want to say it's a safe temp and cause you to burn out your motor but I've had no issues with the roughly 6 months running that limit. Although again because very few people utilize the internal sensor, and there being two different ones that can read wildly differently I highly recommend you test external temps first. Like in my case I know 100c ish is around 45c externally so I know I have room to raise my limit as I previously ran to 60c external. Once you figure out how high you can raise the limit while staying below the 60c externally you can then learn how to associate the dash's temp to external temps
 
@Bengy22

I've been going through this thread and see there has been A LOT of discussion about temperatures.
Lots of information to be read, thanks to you and other members. :)
 
It's a normal BBSHD; they shipped in both 750W and 1000W variants, but as far as I know, they are hardware-identical and the 750W version exists for compliance reasons. Pretty normal and all should work just fine with BBS-FW up to 33A.

My BBSHD is stamped "MM G320.1000 09" and was shipped from the factory with a firmware limit of 28A.

Hey Daniel, BBS-FW initially listed a 32A limit in the README file, but that was updated to 33A recently - can you describe what changed?
Sorry to annoy you about a year too late, but I just got a BBSHD kit with the exact same marking (MM G320.1000 09) and I'm unable to connect to it to Read MCU or use any of the bafang (or other) config tools... I can see COM port and can see lights flashing on USB adaptor but I never get any controller info and read/write remains greyed out.

I read about the latest versions of the BBSHD are not programmable? But you seem to have managed to flash this firmware.

Is it likely I just got a faulty cable? I have ordered another to try...
 
Sorry to annoy you about a year too late, but I just got a BBSHD kit with the exact same marking (MM G320.1000 09) and I'm unable to connect to it to Read MCU or use any of the bafang (or other) config tools... I can see COM port and can see lights flashing on USB adaptor but I never get any controller info and read/write remains greyed out.

I read about the latest versions of the BBSHD are not programmable? But you seem to have managed to flash this firmware.

Is it likely I just got a faulty cable? I have ordered another to try...
Does your PC recognize the connection? Like you hear a little sound when connecting?
If you have a USB-C OTG adapter you could try the Android app "Speeed", it's only for configuration/settings, but at least you will know if the cable is good.
 
Sorry to annoy you about a year too late, but I just got a BBSHD kit with the exact same marking (MM G320.1000 09) and I'm unable to connect to it to Read MCU or use any of the bafang (or other) config tools... I can see COM port and can see lights flashing on USB adaptor but I never get any controller info and read/write remains greyed out.

I read about the latest versions of the BBSHD are not programmable? But you seem to have managed to flash this firmware.

Is it likely I just got a faulty cable? I have ordered another to try...
I know this sounds obvious but make sure the cable is pushed all the way in to the display port socket. This has caught me out a couple of times with different motors 🤦‍♂️
 
The default settings of this firmware are much tighter and safer the original with which I broke my foot.
 
Last edited:
Thanks for your responses, I tried the Android app too, still couldn't get it working. I got another cable delivered today and it's reading/writing fine now.

I forgot to take a backup of my default config though (noob mistake), although I take it that doesn't really matter if I flash this BBS-FW?

Also, Is there any easy route back to original fw if I have issues with this one? Is it readily available online?
 
OK, so my curiosity (and desire to appear legal if stopped) got the better of me. So I took the dive and flashed this firmware earlier today.

First impressions are amazing, (almost) everything works perfectly, and much better than original. The little extra power from 28A (new 52V BBSHD firmware), to 30A (haven't tried 33A yet) is def noticeable.

I did notice a few harder than usual shifts (can't remember if I was using throttle or PAS at the time), under high load. They sounded much louder and harsher on the drivetrain (I'm sure it is cutting the power due to the gear shift sensor, however, it seems it comes back on too strong), and would be better / safer to gradually ramp it back on after cutting for a gear shift.

I have lots of tweaking to do to get riding feel as I want, can't wait!

I think I understand what most of the parameters in the config tool do, although 2 parameter have me slightly confused.....

Under the System tab:

Keep Current Cadence (rpm)
(From Wiki) - Lower cadence limit for when 'Keep Current %' ramp starts, configured in rpm. When cadence gets above this value the motor current will decrease towards the current calculated using configured value of 'Keep Current %'.

and then in the Assists tab:

Max Cadence
(From Wiki) - Cadence in % of maximum. This parameter controls how fast the pedals are allowed to spin. Max cadence for BBSHD is around 150rpm. This parameter was called "speed" in the original Bafang firmware.

I can't understand what Keep Current Cadence (rpm) (When cadence gets above this value the motor current will decrease towards the current calculated using configured value of 'Keep Current %') - The description is to me exactly what Max Cadence in the Assists tab does?

Could anyone enlighten me? How do these values affect riding?

Is one the maximum limit (Max Cadence) before motor power is DECREASED?, and the other the minimum limit (Keep Current Cadence) before motor power is INCREASED? Does one override the other? Am I completely mis-understanding and it's so obvious? (probably)

I'm confused lol.

TLDR; Anyone explain exactly how Keep Current Cadence (rpm) in 'System' and Max Cadence in 'Assists' differ? How they work?

Thanks!
 
Last edited:
Good question(s), I'm also interested in these questions as I also don't really understand what they mean.

Also I've never really noticed the "Keep Current (%)" working, on my previous setting it was set to 80, but now I set it to 60, but I still don't notice anything? Maybe I'm not pedalling fast enough?
Or is the current pullback very gentle so you're not suppose to feel it?
 
Good question(s), I'm also interested in these questions as I also don't really understand what they mean.

Also I've never really noticed the "Keep Current (%)" working, on my previous setting it was set to 80, but now I set it to 60, but I still don't notice anything? Maybe I'm not pedalling fast enough?
Or is the current pullback very gentle so you're not suppose to feel it?
If I understand it correctly, the power will only decrease to 'Keep Current (%)', if you reach (exceed?) the 'Max Cadence (%)' from the current PAS level under 'Assist Levels'. (Although I think Keep Current Cadence (rpm) might have something to do with it too?)

I can def feel it happening with my config, but only when really pedalling... I haven't experimented with other numbers yet to feel a difference, but I can feel a reduction in assistance at a certain cadence speed.

I can't see anywhere the pullback strength is configurable, and it's not that gentle that you don't feel it, your legs know there is less assistance lol.
 
Last edited:
For me 'Keep current' is all about having a strong startup from stationary that doesn't run away with you when up to your comfortable pedal speed. It allows you to use a higher assist level for stronger starts but then backs off to your 'cruise' level of assist once rolling.

Can't remember offhand what my 'Keep Current Cadence' is set to but for strong pull away you don't want it too high, maybe in the 30-60rpm range is a good starting point.
 
I can't seem to get any more speed with higher amps but the motor is cutting out, do I need to change the throttle voltage values when I increase the amps?

Edit - I increased the throttle start voltage to 1100mv, the end voltage to 4200mv and the start current % to 2% and now there's no cutout and I think it feels more powerful than before. I think it must be because I'm using a 3rd party twist throttle.
 
Last edited:
A spare working C961 display I have gives the same results, so probably safe to say it's not a display issue. Time to order a new controller methinks.... :(
I got error 30 on my bbs02a when I used a c961 replacement display, when I switched back to the original c961 display there was no error 30. There's a difference between the 2 displays actually... the one that works has a white arrow on the plug and the one that doesn't has a black arrow.
 
Last edited:
Hi everyone,

I did flash the firmware, thanks again ! Perfect for enabled the two mods standard and sport.
I read all the pages.

Well, I did my best to setting PAS but I don't understand all settings very well yet.

Silly question (i'm noob at that) but Voltage battery (for soc), in this I must put the maximum voltage of my battery, I have a 52V filly charge à 58.4 so I must write 58.4 ?

Also now that I have this firmware can I use another configuration tool or I must stick to the one for this firmware ?

Thank you very much !
 
Hi everyone,

I did flash the firmware, thanks again ! Perfect for enabled the two mods standard and sport.
I read all the pages.

Well, I did my best to setting PAS but I don't understand all settings very well yet.

Silly question (i'm noob at that) but Voltage battery (for soc), in this I must put the maximum voltage of my battery, I have a 52V filly charge à 58.4 so I must write 58.4 ?

Also now that I have this firmware can I use another configuration tool or I must stick to the one for this firmware ?

Thank you very much !
Yes you have to use this config tool
 
Silly question (i'm noob at that) but Voltage battery (for soc), in this I must put the maximum voltage of my battery, I have a 52V filly charge à 58.4 so I must write 58.4 ?
You do not HAVE to do the maximum battery voltage calibration, it just helps with more accurate representation of the battery percentage calculation if you do. But yes, in your case you would use 58.4 if that's what your battery reads on a multimeter when fully charged.
 
I think it would be great to use the "walk assist" button available in compatible controller displays as one single "push button" for the throttle, regarding each PAS speed limit since legal reasons to use the physical throttle, like as "boost" function similar to some controller which have this functionally at least when 25km/h is reached and button is pressed will accelerate progressively as throttle does but with one single button press in "walk assist mode" or "-"(minus) button is pressed during a couple seconds...

the walk assist speed could be configured in each PAS automatically with the max speed limit already configured but only setup the lower limit speed required to trigger and executed like this one when searching for "BOOST function": https://www.poison-bikes.de/images/Download/2021/Endverbraucherunterlage_EN.pdf

is this possible to implement to add the boost functionality when "walking assist mode" is triggered as normally?
or this would be easier to edit the walk assist mode increasing the speed or manipulate the speed value for each PAS level?

not sure if this is possible but would be much better to prevent the throttle to be installed physically since only required when needed exceptionally.
 
Last edited:
You do not HAVE to do the maximum battery voltage calibration, it just helps with more accurate representation of the battery percentage calculation if you do. But yes, in your case you would use 58.4 if that's what your battery reads on a multimeter when fully charged.
Thanks for the replies,

Yeah I get hit, it's better but I won't break anything if I don't.

Concerning the Firmware I must say it's amazing for the PAS ! I almost randomly set it but so much change it's much more smoother, very very good.

I noted some points. As maximum speed limit set in kmh is the same for normal and race mode it is impossible to cut the motor at 25kmh in the normal mode because of the gear I got higher and the motor don't cut right at 25kmh as it should be regarding any PAS level or any gear I am.
I'll try again to tame the motor for legal mode but I think It can be done easily by software update.

Also I programmed to start on PAS 3, I am on 750c display and it still start PAS 1, not important tho.

I let the motor at 28A because I think it's enought for me, I am tempted to try 33A but well I don't know yet.

To have 100% throttle power in any PAS is also a game changer, it's very nice on the use.

Again amazing work, it's so much better !
 
Also I programmed to start on PAS 3, I am on 750c display and it still start PAS 1, not important tho.
This has always been the case on the BBS02 too (All fw versions). Same with both C961 and 750C displays. I've never bothered to mention it before, as you say it's no more than a mild annoyance. Just a detail Daniel could check in a future update maybe...
 
Back
Top