What is certain is that the SOC does not work on my bike anymore. And we are a lot in this case.
Clearly, the way the SOC is estimated has changed due to a firmware update, and perhaps some reprogramming from the Zero dealer.
Battery voltage is a bad way to estimate the SOC.
Using the remaining Pack Capacity could be an alternative in order to estimate the SOC and the range.
I have studied my bike's logs, and it seems that (but it has to be confirmed):
In the BMS logs, I get 8 different values related to the capacity and the SOC. They appear in lines of this form :
01469 01/09/2023 13:08:58 Discharge level 002 AH, SOC: 70%, I:034A, L:3756, l:3971, H:3807, B:051, PT:022C, BT:026C, PV:106014, M:Bike On
01470 01/09/2023 13:08:58 SOC:2341,7632,2672,26000,90,85,70,53
In the 8 numbers that follow SOC, it seems that the third one, 2672, is the amount of mAh that the pack has delivered. I guess that this measure is obtained by Coulomb counting (or integration of the intensity). This value is rounded to 2 Ah in the line just before.
26000 is the nominal capacity of the pack in mAh. It has been stored in the BMS by the Zero dealer.
It seems that 90,85,70 are 3 different estimations of the SOC calculated from different ways.
The one that is used is the third (70%).
In my bike, I have two packs, one BMS in each pack, one log for each BMS.
And it seems that the MBB makes a mix of the information retrieved from the 2 BMS (average of their SOC).
From the line above, I have a pack with 26000 mAh and it has delivered 2672 mAh, i.e. taking only these numbers into account, its SOC should be 89.7%. Note that it is equal to the first of the 3 SOC estimations (90,85,70). But the BMS uses the third estimation of 70% ! It means that instead of telling me that I have used 10% of the capacity, the dash tells me that I have used 30% !!!
Note that lines of this kind did not appear in the logs when I had the original firmware (and good SOC estimates):
01470 01/09/2023 13:08:58 SOC:2341,7632,2672,26000,90,85,70,53
The study of these data is quite difficult by extracting them from the log. And they are sampled every minute in the logs.
If ZeroSpy could help to extract some of these values (and with a sampling interval of 1 second), it could
- help to investigate what happens
- and with very little programming, it could be possible to make ZeroSpy display a range estimate based on the remaining Pack Capacity