Bafang M820 Firmware thread

⚡ EMTB Pro Go Pro — exclusive discounts & ad-free Peaty's 25% off & more · Ad-free browsing · Pro badge See the deals →
The speed table is speed-dependent, not cadence-dependent. Even if you modify the speed table, it has no effect on engine behavior, that's why the FT project was created.. Developer info
Interesting point, but after looking at your table and the README I do not see any clear indication that the assist logic is actually speed-dependent.

In the documentation you mainly change torque related parameters (start torque / max torque / return torque) and current limits, as well as battery limit values.
This looks very similar to parameters that can also be modified with OpenBafangTool, which I have tested myself. The changes did not only affect ride feel, but also resulted in measurable differences in power output shown on the display.

One thing that is often overlooked is that after changing parameters the sensors may need to be recalibrated.

If torque / speed / wheel settings are not calibrated again, the motor behaviour can appear unchanged even though the values were actually written to the controller.

The table labeled as “speed table” does not seem to contain actual speed values, but rather torque thresholds and current settings, so I am not sure how this proves that assist is controlled by speed instead of cadence.

Could you explain in more detail where exactly in the firmware the speed dependency is implemented?

I could not find a clear proof of that in the thread you linked either.
Also, the official specifications mention support up to about 120 rpm cadence, which would suggest cadence-based control at least to some extent.

From my testing, some parameters clearly influence the motor behaviour, while others (for example max current) seem to remain internally limited, so I am trying to understand which parts of the control logic are actually affected.
 
Modify the table yourself and set everything to zero: starting torque, torque at full load, return torque, min current, and max current. Then check if the bike even moves or if the assist works. If you’re right, there should be no assist at all. If the motor still runs, that’ll be proof you’re wrong 😜.
P.S. Reverse engineering isn’t about observing how the software behaves — it’s about analyzing the code.
 
@maglo18 Had another play with the M820 changing the parameters within the OpenBafangTool setting the parmeters to those of the FakeTaxi pdf. They do change the behaviour of the motor to somethng similar to the Faxi Taxi E1 file. But the E1 file seems to have changed other parameters over the the stock 4812E version I was running and I would recommend going straight to the Fake Taxi firmware.

The E file is nice but needs some refinement to get fully there ( personal view of course ). Easy fixes I would suspect. I also I would suspect that different riders will have different views and requirements.

I'll download the f1 and try that as soon as it stops raining here. Well done though guys for putting all your time into this project, we are getting there with this great little motor.

Update: The F1 version has much the same problems of the original Bafang firmware. Lots of flat areas in the cadence, you can fool the motor whilst steep climbing in very low gears by backing off the cadence ever so slightly and then beginning to reapply torque and speed, the motor won't power up fully. Mmmm.
 
Last edited:
Modify the table yourself and set everything to zero: starting torque, torque at full load, return torque, min current, and max current. Then check if the bike even moves or if the assist works. If you’re right, there should be no assist at all. If the motor still runs, that’ll be proof you’re wrong 😜.
P.S. Reverse engineering isn’t about observing how the software behaves — it’s about analyzing the code.

I think I understand your point — but that’s not really how this works. OpenBafangTool is not “ineffective”, it just doesn’t expose everything.

If you take the FakeTaxi table values and apply them 1:1 in OpenBafangTool, you get essentially the same behaviour.

I tested FT_2026_02_02_h1 vs. CRX30PC4812E102012.1_240412 modified via OpenBafangTool to identical parameters with the result: almost identical performance and feel.

Of course , there are some hardcoded limits — but the tables clearly do influence the motor.
And for me, OpenBafangTool has one key advantage: I can plug in and adjust values directly anytime, without having to rely on analysing or modifying firmware codes.

Setting everything to zero is a nice thought experiment, but likely just hits internal minimum thresholds, not a real proof.

Your reverse engineering work is interesting though — would be great to see more details.
 
@berglex & @Waynemarlow

Guys, could you show us which FW version provides a real difference in motor feel when adjusting settings? I’ve tried switching to extreme values across multiple firmware versions and haven't noticed any change in how the motor delivers power—maybe it's just me. I'm also looking to tune the MAX TORQUE parameter on my own.
 
@berglex & @Waynemarlow

Guys, could you show us which FW version provides a real difference in motor feel when adjusting settings? I’ve tried switching to extreme values across multiple firmware versions and haven't noticed any change in how the motor delivers power—maybe it's just me. I'm also looking to tune the MAX TORQUE parameter on my own.
I've always noticed differences in the firmware using the M820 with a 48V 720V battery. I tested different versions and voltages, 43V and 48V. The noticeable differences in the 43V version show non-linear battery consumption; it stays at 100% for a long time, and by the time it starts to drop, it's already at 72% compared to the 48V version. Maximum power on the display is 630W.
Today I'm using the Fake Taxi versions "e" and "f", where "e" delivers immediate power, and "f" delivers linear/natural power. Version
The "e" version has a form factor closer to the Shimano e7000 motor that I had previously.
 
The noticeable differences in the 43V version show non-linear battery consumption; it stays at 100% for a long time, and by the time it starts to drop, it's already at 72% compared to the 48V version.
Thats understandable. The 43V version is looking for voltage max 50.4V. With a 48V battery the voltage has to drop below that before it will begin to show a reducing %. On my 52V setup the % gets down around 32% = fully depleted battery.
 
@berglex & @Waynemarlow

Guys, could you show us which FW version provides a real difference in motor feel when adjusting settings? I’ve tried switching to extreme values across multiple firmware versions and haven't noticed any change in how the motor delivers power—maybe it's just me. I'm also looking to tune the MAX TORQUE parameter on my own.
4812E. I think the FakeTaxi also changes other parts of the parameters that we can't change such that the torque curve kicks in much lower in the motor rpm. If I change to the FakeTaxi numbers / firmware they seem to have an effect at lower motor speeds than with just 4812E. I must try changing the FakeTaxi numbers and see if the changes still occur.

There are two other parameters I'm using, OpenBafang Tool and I'm recalibrating the motor after making changes to the parameter table.
 
4812E [...]
Please provide the exact FW code that will change the engine's behavior after your changes. I've tried five different versions of the FW48V (I also tried the FW36V and FW43V), and changing the parameters for each version didn't change the engine's behavior in the slightest.
 
Please provide the exact FW code that will change the engine's behavior after your changes. I've tried five different versions of the FW48V (I also tried the FW36V and FW43V), and changing the parameters for each version didn't change the engine's behavior in the slightest.
From my notes it was CRX30PC4812E102006.3
 
Yesterday was MTB race, 66.88 km, 2:52:52 time and 1,299 m elevation:

Screenshot 2026-04-13 110347.webp

with fake taxi I ended up with 7% - I was switching modes - most of time in S, sometimes S+ and B, last 17 km - B mode.

here is strava link - Red Planet 2026 | Strava

I really like fake taxi FW over stock ones (y)
 
Yesterday was MTB race, 66.88 km, 2:52:52 time and 1,299 m elevation:

View attachment 181803

with fake taxi I ended up with 7% - I was switching modes - most of time in S, sometimes S+ and B, last 17 km - B mode.

here is strava link - Red Planet 2026 | Strava

I really like fake taxi FW over stock ones (y)
So I believe we did a similar ride in terms of distance and elevation, using the fake 48v taxi.
Me - 72kg, 720 battery, T and S modes, 38% battery remaining FakeTaxi 20260210f1 more linear
Wife - 81kg, 720+260 battery, S+ and B modes, 28% remaining FakeTaxi 20260210e1 more strong
Strava: https://strava.app.link/5EjA66WQi2b

Screenshot_20260413_082251_Strava.webp
 
I'm also using 48v f1 Faketaxi. Over the weekend I did 2 rides on one charge, the 1st a 14 km 650 mt elevation enduro session and then yesterday 40 km with 1350 mt elevation trail ride. Rode all the climbs in B or S+ and finished with 8%, the power seemed to drop at round 10% or 11%. Overall impressed with the battery life and if possible it would be great to squeeze a little bit more power out of boost, guess I'll have to play with the normal 48v firmware and see what I can do unless another Faketaxi version comes out doing the same? I'm really just looking for a bit more torque in boost for super steep climbs.
 
I'm also using 48v f1 Faketaxi. Over the weekend I did 2 rides on one charge, the 1st a 14 km 650 mt elevation enduro session and then yesterday 40 km with 1350 mt elevation trail ride. Rode all the climbs in B or S+ and finished with 8%, the power seemed to drop at round 10% or 11%. Overall impressed with the battery life and if possible it would be great to squeeze a little bit more power out of boost, guess I'll have to play with the normal 48v firmware and see what I can do unless another Faketaxi version comes out doing the same? I'm really just looking for a bit more torque in boost for super steep climbs.
Which version of Fake Taxi are you using?
1- FakeTaxi 20260210e1
2- FakeTaxi 20260210f1
 
I'm also using 48v f1 Faketaxi. Over the weekend I did 2 rides on one charge, the 1st a 14 km 650 mt elevation enduro session and then yesterday 40 km with 1350 mt elevation trail ride. Rode all the climbs in B or S+ and finished with 8%, the power seemed to drop at round 10% or 11%. Overall impressed with the battery life and if possible it would be great to squeeze a little bit more power out of boost, guess I'll have to play with the normal 48v firmware and see what I can do unless another Faketaxi version comes out doing the same? I'm really just looking for a bit more torque in boost for super steep climbs.
What battery do you have?
 
hey guys, I've got a Bafang LCE930 Battery, not sure what version should I use for faketaxi. Can anyone recommend? Thank you!
 
hey guys, I've got a Bafang LCE930 Battery, not sure what version should I use for faketaxi. Can anyone recommend? Thank you!
It depends a bit what you're looking for in terms of support and riding style, i prefer a bit more natural power support without a big jump at the start, i use FakeTaxi 20260210f1 and thats been good for me
 
It depends a bit what you're looking for in terms of support and riding style, i prefer a bit more natural power support without a big jump at the start, i use FakeTaxi 20260210f1 and thats been good for me
Was it a significant improvement over stock firmware? I feel to reach peak power I have to pedal hard which tires me so much.
 
Was it a significant improvement over stock firmware? I feel to reach peak power I have to pedal hard which tires me so much.
Yep for me way better than stock, and an important aspect is the battery cutout protection kicks in round 10% rather than 20% as per stock firmware (cutout means power drops to eco mode for the remainder)
 
I have been on faketaxi f1 for some time and I like it a lot. Power delivery is smooth, battery performance is good.

When I drain the battery completely I never go below 5%. Usually at around 10% it starts switching off. I guess it is the bms cutting out, I might have one or several cell going too low. This happens more frequent when using higher assist mode. Still I get much more out of the battery than with stock firmware.

It would be nice to try a 13A version for the 48V battery. Similar to what the stock 43V firmware felt with 48V battery.

One question about the overrun, is it programmable and could it be made so users could fine tune it?

I have never really used walk mode, as stock was unusable. On faketaxi it is better but still quite unusable. The speed goes too high almost immediately. The power is enough to make the rear wheel slip. It could maybe work better if power was lower and speed limit higher, like much higher. That would keep the assist on even if tire is slipping.

But all and all this is really good, thank you for making this!
 
FAKE TAXI 2022.05.22

Link: Proton Drive
File: FT_2026_05_22_public.zip
SHA256: 9e1977fa385cff3a6e500b52f16b241c9f97d54a249d5bf32128534f9fa2f046

This is the result of the entire team's work. Many thanks to maglo18, mdi and Radolf.

The archive contains a PDF with all the details.
Thanks!!
Will test it in a couple hours
 
FAKE TAXI 2022.05.22

Link: Proton Drive
File: FT_2026_05_22_public.zip
SHA256: 9e1977fa385cff3a6e500b52f16b241c9f97d54a249d5bf32128534f9fa2f046

This is the result of the entire team's work. Many thanks to maglo18, mdi and Radolf.

The archive contains a PDF with all the details.
awesome! amazing work.
was about to try FakeTaxi for the first time and a new version comes out, perfect timing. Thank you.

Can anyone pinpoint me to right file thou? I have the standard 43V Banfang batery.
 
FAKE TAXI 2022.05.22

Link: Proton Drive
File: FT_2026_05_22_public.zip
SHA256: 9e1977fa385cff3a6e500b52f16b241c9f97d54a249d5bf32128534f9fa2f046

This is the result of the entire team's work. Many thanks to maglo18, mdi and Radolf.

The archive contains a PDF with all the details.
Thank you all for your great work. The community benefits so much from this. I have been using Fake Taxi for trail riding and think it's probably the best one thus far.
If it's alright I would offer only two pieces of feedback. It would be nice to have more torque and power if it's possible. The other thing is that the walk function is too powerful to use on steep technical trails that need that function.
For the most part this project is super cool and inspires me to get out and ride and stoked to be on these bikes.

Thanks again!!
 
I have been on faketaxi f1 for some time and I like it a lot. Power delivery is smooth, battery performance is good.

When I drain the battery completely I never go below 5%. Usually at around 10% it starts switching off. I guess it is the bms cutting out, I might have one or several cell going too low. This happens more frequent when using higher assist mode. Still I get much more out of the battery than with stock firmware.

It would be nice to try a 13A version for the 48V battery. Similar to what the stock 43V firmware felt with 48V battery.

One question about the overrun, is it programmable and could it be made so users could fine tune it?

I have never really used walk mode, as stock was unusable. On faketaxi it is better but still quite unusable. The speed goes too high almost immediately. The power is enough to make the rear wheel slip. It could maybe work better if power was lower and speed limit higher, like much higher. That would keep the assist on even if tire is slipping.

But all and all this is really good, thank you for making this!

Thank you all for your great work. The community benefits so much from this. I have been using Fake Taxi for trail riding and think it's probably the best one thus far.
If it's alright I would offer only two pieces of feedback. It would be nice to have more torque and power if it's possible. The other thing is that the walk function is too powerful to use on steep technical trails that need that function.
For the most part this project is super cool and inspires me to get out and ride and stoked to be on these bikes.

Thanks again!!
What do you mean more torque and power? Which firmware are you using? What gear setup do you have on your e-bike?
 
awesome! amazing work.
was about to try FakeTaxi for the first time and a new version comes out, perfect timing. Thank you.

Can anyone pinpoint me to right file thou? I have the standard 43V Banfang batery.
12S battery:
FT_2026_05_22_c1.bin: based on v3.3/43V/13A
(SW version string: FAKE TAXI 20260522c1)
FT_2026_05_22_d1.bin: based on v2.5/43V/13A
(SW version string: FAKE TAXI 20260522d1)
 
Keep reading
    Browse all

    Similar Threads

    Community Stats

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