Page 8 of 8

Re: not charging my iON, cell or CMU or BMU problems

Posted: Mon May 20, 2019 12:05 pm
by DBMandrake
Better luck tonight - I got past step 2 and think I know what I did wrong last time, so the car is now charging on the final phase of the battery calibration. Unfortunately that will take about 4 hours so will be midnight before it finishes!

So I won't find out the result until the morning. Assuming it works I'll post the steps that I followed this time.

Re: not charging my iON, cell or CMU or BMU problems

Posted: Tue May 21, 2019 4:00 am
by DBMandrake
tinoale wrote:I also believe we don't quite understand how the car estimates and/or updated the SOH of the battery.

When you cleared the Ah value which initially went back to 45+ Ah, then hit a very low actual SOH indicated by cells voltage, I don't quite understand why the car did not instantly update the Ah value of your pack. Why is it still 45+ Ah after recharge and how long is the car going to take to update that value, that's pretty unclear. You could run into a very low cell voltage again which is silly...

I suspect the BMS is deliberately programmed to be "suspicious" of any apparent large change in usable Ah capacity of the battery, (especially from 46Ah to 33Ah!) and only make a large change after multiple confirmations to ensure that one bad reading doesn't thrown it completely out. After all usable Ah capacity is only supposed to change very slowly (over months) even with an iffy battery let alone a healthy one.
Now, I wonder if I did not reset my Ah pack value prior to the capacity test, would the result be any different ? I have no idea.

I don't think resetting it or not would have made any difference.
If you accidentally erase that value like I did, I do recommend a capacity test to force an update of the estimated Ah. Now my car displays 90+ km left when fully charged but if that's only the truth then so be it. I only need 50km of actual range in winter to keep using it 12.000km a year.

I agree - it could take hundreds of miles of driving for the car to automatically adapt to the true lower capacity after a reset to 46Ah - during which time the BMS is allowing over discharge of the cells (at least compared to the normal limits) and you are at risk of being caught out and getting stranded as I almost was.

I can't think of a good reason to do the full reset unless you were actually replacing the entire pack. If you are just replacing a few dud cells or just want it to re-measure the true state of the battery the battery calibration should be more than sufficient - provided it is willing to learn an increase in Ah capacity not just a decrease. (Which we don't know at the moment, but I think it probably does)

Re: not charging my iON, cell or CMU or BMU problems

Posted: Tue May 21, 2019 6:05 am
by DBMandrake
Calibration Success! :D It is now reporting 33.0Ah instead of 45.1Ah... indicated full charge range has dropped by a full 17 miles from 70 miles to 53 miles, which is spot on what I actually get with combined cycle driving with the degree of battery degradation the car has. So basically with a battery that has degraded to just above 70% SoH the car has lost 17 miles of range since it was brand new...(but probably about 5-8 miles since I've had it)

So here is the process and what I did right and wrong. Step 1:


After this is a screen telling you that the battery should be discharged to "approximately 4 bars" before proceeding to the next step. When you acknowledge that screen the reported SoC instantly jumps to a new value - my assumption is that a voltage estimation of the SoC is done and the figure updated at that point. So in the case of the real Ah capacity being a lot lower than what it thought, the SoC jumped from around 40% to 15%.

You then have a forced wait period of one hour before you can proceed to step 2:


The next screen is:


This is where things started to go wrong... Because I already knew the target cell voltage range was 3.750 to 3.775 volts, I had already discharged the car to this range before starting step 2. Big mistake, because acknowledging the page just gave me this cryptic error:


I tried a couple of times slightly discharging the car below the range then back up, or charging it above and then back down, no luck!

I noticed that the voltage of the "minimum cell voltage" did not update in real time when it was below or within the range, only when it was above the range - and also that the button in the bottom right doesn't appear when the voltage is too high...

Thinking about the comment of "approximately 4 bars", which is quite a bit above 3.775 volts I realised that the problem was that it expects you to start with the voltage above 3.775 volts, turn the heater on and leave it sitting on this page...

Starting at 4 bars wouldn't actually work because with the gross over estimation of the capacity of the battery 4 bars was actually less than the target voltage range... :twisted:

So in the end what I did was to charge/discharge the battery until the lowest cell was about 3.85 volts - or 100mV above the top of the target range (as monitored in Canion) and then go to step one, wait then hour, then start step 2 and turn on the heater to start discharging it as seen below. Note the lack of acknowledge button in the bottom right corner:


The minimum cell voltage figure updates in realtime so you just wait until this dips into the specified range for a few minutes and then you will get the acknowledge button in the bottom right corner to proceed. At that point you turn off the heater.

You then get this screen:


At this point you plug the car into charge. My suspicion is that completing this step tells the BMS that it is about to do a calibration charge and to believe whatever result it gets, no matter how much it differs from the current Ah estimate. In other words not be sceptical about a large change.

At the end of the charging session the Ah capacity figure has still not been updated yet! You then move on to step three, which I forgot to take a screenshot of which just tells you to turn the key on and acknowledge the messages, at that point the Ah figure is finally updated to the new measured value, which is 33.0Ah - 1Ah less than what I had before.

Last time I did the battery calibration I saw a similar drop and then a 1Ah rebound a few days latter so my guess is that the calibration is just very conservative and likes to leave some margin.

After the test is done there is another very interesting place you can optionally look, under "capacity after maintenance", which I think is under the "traceability of the maintenance" section of the BMS:


What's cool about this is it appears to show the spread of Ah capacity between the worst and best cells. :) As you can see here it says my best cell is still 40.5Ah while the worst one is 34.8Ah - a large 5.7Ah spread....

I happened to save a copy of my previous calibration result from about a year (and 12k miles ago) ago below:


Not nearly as much spread there, so my suspicions that some cells are degrading at a faster rate than others is confirmed. The best cells have only degraded by 0.5Ah in the last 12k miles while the worst have degraded by 3.3Ah or about 6 times faster!

I was expecting to see the previous values logged in the report but realised that the battery replacement procedure no doubt wipes any previous service history for the battery including the previous battery capacity maintenance values. So another reason not to do a full reset! Just do the battery calibration only.

@tinoale: Can you have a look at the "bmu capacity after maintenance" screen on your car ? It's under the BMU in the "traceability of the maintenance" section, and is a quick read only report that doesn't change anything.

I'd be curious to see what your cell spread is compared to mine. The reason cell spread is useful is because if Ah capacity is low but there is a narrow cell spread then all cells are degraded by about the same amount so replacing a few individual cells would not give any benefit.

However if there is a very wide spread of capacity between cells - as in my case, and only a small handful of cells are low performing - as in my case, then replacement of just a few cells could potentially restore a lot of lost capacity...

I'll save a full analysis of my recent battery tests for my own battery thread over here:


Re: not charging my iON, cell or CMU or BMU problems

Posted: Tue May 21, 2019 2:03 pm
by tinoale

I have Diagbox v7.1 only and the calibration menu for my C-zero is clearly different from yours

My calibration only has 2 steps:
Step one, start with more than 1 bar, turn The heater on, switch the car off, plug the charger in. Charge does’t start yet.

If draws power until it automatically stops and start charging by itself. It then does a full charge.

When it is done i’m Supposed to check the result in a step 2 menu but when I try to access the menu there’s a error. So I can’t check the best and worst values... just the available Ah which is updated after the test.

My c-zero is 90000km, 2011, 16kwh
Reporting 32,7Ah after the calibration.

I have a Canion capture from before the calibration when the voltage dropped really low : 8% soc (probably very wrong as not calibrated), lowest cell 3.205V, highest cell 3.580, spread 0.375V

Not sure if such a spread is normal but the actual SoC must have been awefully low. I guess I should check the spread next time I hit a “calibrated” 10% SoC...

Re: not charging my iON, cell or CMU or BMU problems

Posted: Tue May 21, 2019 2:10 pm
by tinoale
Another data point, not sure if that was before or after the Ah erase (probably before) :
Odo 87856
SoC 15,5
Lowest 3,655
Highest 3,730
Spread 0,075

Definitely before I touched anything with diagbox :
Odo 61164
SoC 10,5
Lowest 3,435
Highest 3,605
Spread 0,170

Re: not charging my iON, cell or CMU or BMU problems

Posted: Sun Jun 09, 2019 10:41 pm
by DBMandrake
coulomb wrote:
DBMandrake wrote:
coulomb wrote:I've been reading the CMU firmware. ... In fact, it seems to me that this happens automatically any time that there is a certain type of error (I can't be certain about what type of error, and it was some time ago I that I found this).

Automatic numbering like this seems unlikely - by what mechanism would they acquire consistent numbering when they left the factory ?

If I'm right, they acquire their IDs, possibly every time they are reset, by their position in a daisy chain of special signals for that purpose:


I'll be the first to admit that the details on this drawing are staggeringly light. It's a study in minimality.

I've been giving some thought to this whole CMU numbering conundrum and I think I've worked out the most likely way this is done.

I don't think it happens automatically on the fly because I'm sure there is a thread on here somewhere where someone swapped two CMU's and the numbering of the CMU's went with the boards.

However if we assume the renumbering is not automatic and needs to be triggered somehow - I bet that the "battery replacement procedure" - the one I ran recently which reset the capacity to 45.8Ah also triggers an automatic numbering of the CMU units and stores their CAN bus ID's in the BMU.

It makes logical sense for this to be the case because this is the procedure you run immediately after replacing the whole traction battery, and that of course means that all CMU's are new to the car and to the BMU - which has remained with the car.

We know for sure the battery replacement procedure resets the capacity to about 45.8Ah and also that it clears the saved results of any previous battery calibrations. The old BMU needs to become acquainted with the numbering of the 12 new CMU's, so I bet this is also performed during this battery replacement procedure.

There is also a BMU replacement procedure which does much the same thing in case the BMU is replaced, so I suspect that must also do the re-numbering since the CMU's are new to THIS BMU...

So if my theory is right you could take any CMU and fit it to any location without any modifications, provided that you follow either the battery replacement procedure or the BMU replacement procedure in Diagbox to trigger a renumbering of the CMU's.

And after that you would have to do the battery calibration as well to get the Ah figure back to what it was before. (At least if you do the battery replacement procedure - from memory I think the BMU replacement procedure might allow you to save the Ah figure from the old BMU and enter it into the new one ?)

If you're only replacing a CMU it's unclear whether it would be better to use the battery replacement procedure or the BMU replacement procedure. Although I looked at the BMU replacement procedure I didn't actually go through with it so I don't know what other consequences it might have, whereas I do know for sure what the battery replacement procedure did.

I don't have any way to prove any of this numbering theory of course.

One question I have - does the BMU just "learn" the Can BUS ID's of the CMU's or does the BMU *program* the Canbus ID's of the CMU's during this numbering process ?

It would seem to be easier for the BMU to just learn the CAN bus ID's of the CMU's however this seems to be the less likely method because (a) all CMU's would have to be made with random non-clashing CAN bus ID's, and (b) programs like Canion would not know which CMU was which unless that information could be extracted from the BMU first ?

The other alternative is the BMU programs the CAN bus ID's into the CMU's, however that then requires storage in the CMU for the ID to be saved - does it get saved in the EEPROM ?

The second theory - that the BMU programs the CAN bus numbers of the CMU's to standardised numbers for each location and saves it to non-volatile storage in the CMU seems to fit the evidence far better.

Re: not charging my iON, cell or CMU or BMU problems

Posted: Mon Jun 10, 2019 10:30 pm
by coulomb
DBMandrake wrote: The second theory - that the BMU programs the CAN bus numbers of the CMU's to standardised numbers for each location and saves it to non-volatile storage in the CMU seems to fit the evidence far better.

Yes, except that the CAN bus IDs (there are several per CMU) can be and are calculated from the CMU ID. All the CMU needs to know is a number from 1-12.

From hazy memory, the CMU firmware increments a variable under certain conditions, like when it receives a certain pattern on a serial port of some sort, and something tells it that now it needs to stop incrementing, and that number becomes the CMU ID. It has something to do with the delay between ID in and ID out, and the number of zeros that turn up on a serial port.

I imagine that this number (the CMU ID) is stored in Eeprom, but I still haven't found where the Eeprom is accessed. But remember that the RAM in the CMU is battery backed up, so it's effectively non-volatile.