BotoX / xiaomi-m365-firmware-patcher

Automatize patching of Xiaomi Mijia M365 electric scooter firmware
https://m365.botox.bz
406 stars 107 forks source link

Remove 50% and less power limit #30

Open Baterka opened 5 years ago

Baterka commented 5 years ago

There must be way how to remove this weird function what limiting power and top-speed under +-50% on battery. Yea sure, we cannot change physics but 300W on 50% is NOT maximum what batteries can push in this state. When you drive for example other custom scooter with VESC (and even slower HUB motor), there is almost no change in power delivery until 20% of battery.

Maybe its caused by BMS, is there way to edit BMS fw?

BotoX commented 5 years ago

It's definitely not caused by the BMS (as that can only turn the battery ON or OFF) and I did not find any clue in the ESC firmware for this (power is limited at <800mAh) Top speed (max RPM) also depends on battery voltage btw. I might take a look at it again some day but I'm pretty sure it's just physics.

Baterka commented 5 years ago

Power is limited <800mAh on what version? Because Its almost 100% perfect 300W limit right after reaching 50%

BotoX commented 5 years ago

Even when driving uphill or accelerating? Because driving straight you don't need more than 300W anyways lol.

emileb commented 5 years ago

Yes this is actually the only function I am looking for in a custom firmware image. There is definitely some code somewhere which is limiting power/speed below 50% which is really annoying.

Baterka commented 5 years ago

Even when driving uphill or accelerating? Because driving straight you don't need more than 300W anyways lol.

When driving on flat road it is +- 400W in 25km/h (when >50%)

Baterka commented 5 years ago

Yes this is actually the only function I am looking for in a custom firmware image. There is definitely some code somewhere which is limiting power/speed below 50% which is really annoying.

Yea... Tell me why I am driving 28km/h on 90% charged battery and taking +-450W and I can't drive 25km/h when I am under 50%, BUT UPHILL under 50% is giving me 700W??? :D This is complete nonsense... Batteries can push more than 700W in >20% when uphill, so why not on flat road?

noctrex commented 5 years ago

Have you tried with the Russian throttle algorithm enabled? For me this gets the job done. When returning home from work, towards the end I have a small percentage uphill but very long, and it always gets below 50%. With the original throttle algorithm, the scooter actually stops before reaching the end, as it doesn't provide enough power. But with the Russian algorithm, even when the battery is below 50%, I can go till the end of this uphill.

lukasd1 commented 5 years ago

I using the russian algorithm and unfortunatelly is the same like with normal. Maybe the problem is not a limit under 50% but under 20 celc. deg. of battery temperature ? I'm testing a few days and when my battery has about 18 deg. there is no power , but when is more than 20 problem wasn't exist(or it was smaller) . I've extra battery pack and temperature of main battery usually is lower as normal.

ryci-us commented 5 years ago

I think its a physics. I have upgraded battery to 12s3p with samsung 30q cells and aftermarket BMS with Botox firmware and i don't have such effect. Acceleration is about the same in whole range from 9000 to 2000 mAh, only top speed changes.

miloszlip commented 5 years ago

Can you provide us some details on this 12s3p battery? Will it fit on the oryginal battery spot? And can You tell me which BMS You are using? What is the top speed?

BotoX commented 5 years ago

https://github.com/BotoX/xiaomi-m365-compatible-bms 35km/h max realistic 12S3P fits with original lid 12S4P needs 5mm - 5.5mm spacer

miloszlip commented 5 years ago

Thanks a lot! Do you have some photos of this battery / whole mod?

BotoX commented 5 years ago

It's in the README of that GitHub I linked: https://cloud.botox.bz/apps/gallery/s/94drnBJfjacBDnr

MatG0 commented 5 years ago

There is some software function which is limiting output power and speed depending on battery level % or voltage Depending on "tuned" settings the peak power is ~750W for me (motor constant ~36000) at 100% battery. At 65% I am still able to get the 700W peak output at 34,5V. At 50% I am limited to ~430W or less peak at same voltage. It may seem like the firmware is maintaining the minimum 34V on battery but you can see also much lower voltage at lower levels.... I remember something like 32V at ~30% battery level so maintaining the 34V at 50% is the overkill probably. With the stock firmware is the decreasing peak power probably less noticeable.

EDIT: From datasheet (LG M26) - The end discharge voltage is 2.75V (27,5V @ 10s)