Bafang M820 Firmware thread

Thank you for this! I tried the 13S f1 version today with a 48V battery. This was the smooth version. Indeed it is very smooth, very gentle power delivery and almost no override. I will try the other version at some point, but this is how I like it. Very natural feel, needs a lot of rider input to get all the power available. It feels very similar to the 43V version 2004.5 I have been running for a long time already.

I did a 1.5h ride today going from 94% to 20% on the display. It felt like it was dropping too fast, even if I was on boost mode all the time and it was a cold ride, -15 degrees C. I took some screenshots during the ride from my JBD bms app, it was showing different figures. At the start I was at 100% going down to 41% at the end. The percentage showing on the display is not the same as in the graph in the readme file for this firmware. My JBD values are bms stock values, altough they can be configured in the app.

I did not run the battery empty so I cannot comment on performance under 20% yet. And I forgot to test the walk mode.

But all and all this seems like a very good firmware.

View attachment 175418 View attachment 175421 View attachment 175422
Looks promising, but i still wait for M820 new version. Maybe less rattle when downhill for new version.
 
⚡ EMTB Pro Go Pro — exclusive discounts & ad-free Peaty's 25% off & more · Ad-free browsing · Pro badge See the deals →
Thank you for this! I tried the 13S f1 version today with a 48V battery. This was the smooth version. Indeed it is very smooth, very gentle power delivery and almost no override. I will try the other version at some point, but this is how I like it. Very natural feel, needs a lot of rider input to get all the power available. It feels very similar to the 43V version 2004.5 I have been running for a long time already. More natural, but also feels like less power.

I did a 1.5h ride today going from 94% to 20% on the display. It felt like it was dropping too fast, even if I was on boost mode all the time and it was a cold ride, -15 degrees C. I took some screenshots during the ride from my JBD bms app, it was showing different figures. At the start I was at 100% going down to 41% at the end. The percentage showing on the display is not the same as in the graph in the readme file for this firmware. My JBD values are bms stock values, altough they can be configured in the app.

I did not run the battery empty so I cannot comment on performance under 20% yet. And I forgot to test the walk mode.

But all and all this seems like a very good firmware.

View attachment 175418 View attachment 175421 View attachment 175422
From Your measurements the voltage map seems not too look edited properly. At 20% at display and 45V it gives about 3,46V a cell, which is a lot.
From the readme.pdf for 13s battery at 20% at the display You should be getting about 42,7/13=3.28V and closer to 3.1V at 10%. I'll try to get that checked when I am back on track.
Thanks
Peter
 
New version (2026-02-10)
"FAKE TAXI Project"

Updates according to the changelog:
Fixed minor bugs in 13S and 14S battery discharge curves and removed SOC recovery limitation. Previously, SOC increase required a >10% delta and was applied as: calculated-10%. This caused no visible increase for small voltage recoveries and a persistent offset if the SOC delta exceeded 10%. Controller power cycle was required to restore accurate SOC estimation.

Addintional info:
  • Battery discharge curves were tested using a lab power supply.
  • SOC estimation based only on battery voltage isn’t perfect, but without the SOC recovery limit, it should perform better after steep climbs.
  • Firmware version naming is the same as before: a & b for 10S, v & w for 11S, c & d for 12S, e & f for 13S, g & h for 14S.
 
Ok evaluating and describing motor performance is very difficult because every rider is different. Most of the interest in alt firmware in this thread seems to be related to speed, battery life and overrun. I am interested in something different that I will try to describe. I just built a new DIY conversion of my fat bike using a Tongsheng mid-drive with OSF firmware. It performs much much better to me than my M820. What concerns me is the torque sensing. WHen I climb out of a dry riverbed say, with a very steep 30ft climb. My M820 does not provide assist unless the cadence is high. Generally way too high for keeping enough travel per turn of the cranks. So I don't get enough assistance, or any at all, if I get near the top of the steep climb and I am at a low cadence. It does not matter what assist level, even boost.
In the flats boost works fine to go very fast but when I need torque not speed the m820 fails me. The Tongsheng motor with the open source firmware does a very good job of adding just the extra assist I need under a high torque/low cadence situation.
My M820 firmware is older than anything listed on this forum thread for 36v motor. So the question is can anyone comment about how any of the newer firmwares address my issue. Thanks a lot!
 
Mike, you are possibly high lighting the main foible of the M820. Unfortunately it has a speed biased arrangement designed for road riding. It limits the amount of Watts to the motor ( regardless of the torque sensing requirement ) to prevent max watts being used in say the 0 - 5mph band. Once you reach say 5-10mph it will allow the next level of Watts to kick in dependant on what the torque sensor is telling the controller. I think there are 5 speed bands up to max legal speed, as the speed rises the controller will allow what it thinks is max Watts to achieve that speed with the torque being read to control the rider input in regards to “what speed”.

It’s all quite sad really as it could be such a good light motor with a not to bad 625Watts as it’s max. You can alter some of characteristics by over volt ing and contrary to most, I seem to have been able to change my motor somewhat to get better initial torque sensing at lower speeds together with going to a 11-52 rear cassette with a 32 front ring to give a higher cadence at low speeds. My motor now suffers the opposite where it gets to about 110rpm cadence and simply depowers regardless of what speed.

Sorry Bafang you need to take the way the M510 handles speed/ cadence/ torque and reprogram the M820 in this manner. Until they do that I will say that any EMtbers should consider that the M510 is so much better suited to our sort of riding. Gravel and Road users it is probably a reasonably good setup.

You seem prepared to reprogram using OSF, have you tried the “fake taxi” freeware? Also over on EndlessSphere there is onward going development much similar to the way the Tongshen motors were developed.
 
Mike, you are possibly high lighting the main foible of the M820. Unfortunately it has a speed biased arrangement designed for road riding. It limits the amount of Watts to the motor ( regardless of the torque sensing requirement ) to prevent max watts being used in say the 0 - 5mph band. Once you reach say 5-10mph it will allow the next level of Watts to kick in dependant on what the torque sensor is telling the controller. I think there are 5 speed bands up to max legal speed, as the speed rises the controller will allow what it thinks is max Watts to achieve that speed with the torque being read to control the rider input in regards to “what speed”.

It’s all quite sad really as it could be such a good light motor with a not to bad 625Watts as it’s max. You can alter some of characteristics by over volt ing and contrary to most, I seem to have been able to change my motor somewhat to get better initial torque sensing at lower speeds together with going to a 11-52 rear cassette with a 32 front ring to give a higher cadence at low speeds. My motor now suffers the opposite where it gets to about 110rpm cadence and simply depowers regardless of what speed.

Sorry Bafang you need to take the way the M510 handles speed/ cadence/ torque and reprogram the M820 in this manner. Until they do that I will say that any EMtbers should consider that the M510 is so much better suited to our sort of riding. Gravel and Road users it is probably a reasonably good setup.

You seem prepared to reprogram using OSF, have you tried the “fake taxi” freeware? Also over on EndlessSphere there is onward going development much similar to the way the Tongshen motors were developed.
I have looked at the ES project but a lot of people are mostly concerned with speed. It is really not surprising that Bafang has limited the high torque assist. They have from the beginning warned against long-time boost useage. Just not enough metal to keep things cool. But the lightweight is really important to me. I want a MTB expereince with a tailwind. I am not an enduro rider. But the performance would be more transparent if it was able to just help a bit when the torque is high. Sometimes you just can't have everything. But I thought I would check. I've got the canbus tools to update the firmware if there is one worth the trouble and my firmware is about the oldest. Will see where taxi goes.
Bafang is hard to beat for DIY but maybe there is another Chinese company that might be a possibility?
 
New version (2026-02-10)
"FAKE TAXI Project"

Updates according to the changelog:


Addintional info:
  • Battery discharge curves were tested using a lab power supply.
  • SOC estimation based only on battery voltage isn’t perfect, but without the SOC recovery limit, it should perform better after steep climbs.
  • Firmware version naming is the same as before: a & b for 10S, v & w for 11S, c & d for 12S, e & f for 13S, g & h for 14S.
Where can I find these updated versions? It seems the links are only to the previous versions.
 
Which software for any voltage, from 36V to 48V, has the highest overrun?
I have not tried all, but the road version for 43V at least had a loong overrun. But the worst about it was that it was not consistant, ranging from maybe 0,5-2 seconds. It made technical riding extremly difficult.
 
New version (2026-02-10)
"FAKE TAXI Project"

Updates according to the changelog:


Addintional info:
  • Battery discharge curves were tested using a lab power supply.
  • SOC estimation based only on battery voltage isn’t perfect, but without the SOC recovery limit, it should perform better after steep climbs.
  • Firmware version naming is the same as before: a & b for 10S, v & w for 11S, c & d for 12S, e & f for 13S, g & h for 14S.
One question on the different voltage firmwares. 11S is using 36V firmware base, but 13S is using 48V firmware. Since it can handle one more cell in serial connection shouldn't the 13S be using 43V firmware base? And 14S 48V and so on..
 
Where can I find these updated versions? It seems the links are only to the previous versions.

One question on the different voltage firmwares. 11S is using 36V firmware base, but 13S is using 48V firmware. Since it can handle one more cell in serial connection shouldn't the 13S be using 43V firmware base? And 14S 48V and so on..
All of them are using 36V firmware base (2.5/3.3). When we will heve assist ratio then we will probably drop version 3.3
Don’t carry a water bottle then, a 500ml water bottle full is all the difference between the M820 and M510 engines.
I am sure that soon these speculations will no longer be necessary and the M820 and M510 will provide the same driving experience.
 
I am sure that soon these speculations will no longer be necessary and the M820 and M510 will provide the same driving experience.
I’m hoping so, I think the M820 is a good motor ( albeit a bit noisy compared to the M510 ) but it will need to reliably output 750W’s and be fully rider customisable by the rider ( like the M510 ) to be in the same league as some of the latest motors from other manufacturers with a similar weight.
 
Last edited:
One question on the different voltage firmwares. 11S is using 36V firmware base, but 13S is using 48V firmware. Since it can handle one more cell in serial connection shouldn't the 13S be using 43V firmware base? And 14S 48V and so on..
I misunderstood, so you want 13A on 13S firmware ?
but it will need to reliably output 750W
If we give you such a version (13A 14S ?), will you be the first to test it and take a risk?
 
Last edited:
If we give you such a version (13A 14S ?), will you be the first to test it and take a risk?
Of course, but I'm more interested if I can customise the motor much like we can with the M510's. At the moment my motor is designed for road riding and its operation is speed biased not torque sensor biased. Until we can solve that issue then giving me additional Watts won't solve the incompatibilty with EMtb and its nuances.
 
Of course, but I'm more interested if I can customise the motor much like we can with the M510's. At the moment my motor is designed for road riding and its operation is speed biased not torque sensor biased. Until we can solve that issue then giving me additional Watts won't solve the incompatibilty with EMtb and its nuances.
I'm surprised by what you're writing, because the power steering is mainly provided by the torque sensor, which is actually speed-dependent. Have you tested this custom software yet?
 
which is actually speed-dependent.
Which is the last thing we need in EMtbing. Bear in mind that we could need all say 600W’s at 3mph as equally at 15mph, EMtbing has changed and the steep slow single track ascent is now as much fun to me as blasting downhill.

My M820 is parked in the back of my garage such was the disillusion with it. I’ll dig it out and download some of the latest firmwares.

It’s particularly painful with the M820 as the later M510’s are actually quite a good motor for our needs. The M820 seems to have been programmed in the same way as the early M620 motors. That M620 has 1500W’s to play with and can compensate with lots of torque, the M820 doesn’t have that comfort power to over come it’s shortfalls.
 
Don’t carry a water bottle then, a 500ml water bottle full is all the difference between the M820 and M510 engines.
I don't carry a waterbottle and I still want it lighter. I have gotten CEF-50 down to 39lbs and still looking for more.
 
Where can I find these updated versions? It seems the links are only to the previous versions.
You should read the whole taxi thread if you are interested. Lots of caveats. The downloads are direct from the author and the links are embedded in the thread.
 
I misunderstood, so you want 13A on 13S firmware ?

If we give you such a version (13A 14S ?), will you be the first to test it and take a risk?
Well I have been running the 43V version with 13S battery for a year now, around 2000 km, so it seems to hold up well. Still if the only difference is maximum power I probably don’t need it. Even if power is always nice to have, I did it to get more out of the battery.
I have two batteries, 520Wh and 720Wh, with this I have mostly used the smaller one since it is enough on 90 percent of my rides. It also saves me almost one kilogram.

When you use 11S battery with the 15A firmware it is basically same thing anyway!?
 
So FAKETAXI20260210f1 tried and tested. Feels good, power delivery is smooth. I don't know if I were imagining, but it felt like maybe a tiny bit more overrun than the 20260202f1. Not much in any way, but the earlier version had close to zero. This felt good, since it is predictable.

I was using 720Wh so I only got it down to 50% in 1h 45 minutes (it is flat where I ride). Still now the percentage on the display seems more or less accurate.

Walkmode is actually usable now.

I saw on endless-sphere forum someone is using the 12S firmware with 13S battery. I guess that would be the same as I used to do, but then the battery percentage would be messed up again. Best probably would be a 13A version for 13S battery, if it is possible to do.
 
Last edited:
So FAKETAXI20260210f1 tried and tested. Feels good, power delivery is smooth. I don't know if I were imagining, but it felt like maybe a tiny bit more overrun than the 20260202f1. Not much in any way, but the earlier version had close to zero. This felt good, since it is predictable.

I was using 720Wh so I only got it down to 50% in 1h 45 minutes (it is flat where I ride). Still now the percentage on the display seems more or less accurate.

Walkmode is actually usable now.

I saw on endless-sphere forum someone is using the 12S firmware with 13S battery. I guess that would be the same as I used to do, but then the battery percentage would be messed up again. Best probably would be a 13A version for 13S battery, if it is possible to do.

Hello. You can use K1 BBR device to compensate the battery SOC when using one cell up battery. Plus you get some other functions. Check www.k1ebikes.com
 
Hi! I read the last pages and confused a little bit:

1) Bafang M820 website has changed from 75nm to 80nm - is there a new official firmware?

2) If I have an M820 48V and 720Wh battery and I have the best tool, can I install fake taxi firmware? Which version to choose?

Thanks
 
Hi! I read the last pages and confused a little bit:

1) Bafang M820 website has changed from 75nm to 80nm - is there a new official firmware?

2) If I have an M820 48V and 720Wh battery and I have the best tool, can I install fake taxi firmware? Which version to choose?

Thanks
You should use one of these:
13S (48V):
FT_2026_02_02_e1.bin: based on FAKE TAXI 20251215v1
(SW version string: FAKE TAXI 20260202e1)
FT_2026_02_02_f1.bin: based on FAKE TAXI 20251219w1
(SW version string: FAKE TAXI 20260202f1)

I prefer to use on start : FT_2026_02_02_f1
 
You should use one of these:
13S (48V):
FT_2026_02_02_e1.bin: based on FAKE TAXI 20251215v1
(SW version string: FAKE TAXI 20260202e1)
FT_2026_02_02_f1.bin: based on FAKE TAXI 20251219w1
(SW version string: FAKE TAXI 20260202f1)

I prefer to use on start : FT_2026_02_02_f1
Siema
Can You tell me please what is a difference in between e1 and f1 version ?
How different they are on the actual bike when riding ?

Thanks
 
You should use one of these:
13S (48V):
FT_2026_02_02_e1.bin: based on FAKE TAXI 20251215v1
(SW version string: FAKE TAXI 20260202e1)
FT_2026_02_02_f1.bin: based on FAKE TAXI 20251219w1
(SW version string: FAKE TAXI 20260202f1)

I prefer to use on start : FT_2026_02_02_f1
Do you know if the speed limits will change?

Update: I installed version "FAKE TAXI 20260210e1" on my wife's bike, and she complains that the motor is too smooth. Tomorrow we'll take it for a ride on the asphalt for a controlled test, and I'll share her impressions afterward.
 
Last edited:
You should use one of these:
13S (48V):
FT_2026_02_02_e1.bin: based on FAKE TAXI 20251215v1
(SW version string: FAKE TAXI 20260202e1)
FT_2026_02_02_f1.bin: based on FAKE TAXI 20251219w1
(SW version string: FAKE TAXI 20260202f1)

I prefer to use on start : FT_2026_02_02_f1
What type of bike do you have and riding do you do that makes you prefer the f1 version? Thanks
 
Keep reading
    Browse all

    Similar Threads

    Community Stats

    Since 2018
    668K
    Messages
    40,737
    Members
    Join 30,000+ Riders, it's free!
    Back
    Top