I corresponded with Weber about recent progress on the 94 Ah battery upgrade range restoration project. His correspondence is greatly appreciated; thanks, Weber!
He found a great name for what I'm attempting at present: current spoofing. We're substituting adjusted (spoofed) current reading values instead of actual current readings. If a digital box is added to correct these current readings, that would be un-spoofing (perhaps de-spoofing). Naming a thing is an important step towards understanding that thing.
But he made a great point: current spoofing has limitations. [ Edit: In fact, @Richi pointed this out
two weeks ago, but I wasn't listening. Sigh. ] When the minimum cell voltage falls below a certain point, regardless of the amp·hour counter, the BMS is still going to bring on the turtle. I wasn't paying much attention to the voltage, as it looked to me that the main limitation was the amp·hour reaching a certain level. He figured that if the turtle is presently arriving at say 50% SOC of the new cells, but that voltage corresponds to say 20% SOC of the old cells, then the BMS isn't going to allow much further driving no matter what the amp·hour counter value is.
So I've redrawn the overlaid LMO and NMC graphs far more carefully, and this is the result:
I've drawn two lines at 3.75 V and 3.65 V, corresponding roughly with the lowest cell voltages of two measurements. The first was with the Range Remaining meter at 21 km; state of charge was 25% (and "display" SOC 29.5%; I don't understand what the latter is about). The lowest cell voltage was 3.785 V. The second measurement was at turtle, 1 km on the Range Remaining meter, 10% SOC (and also 10% displayed SOC). Lowest cell voltage was 3.655 V (rested, taking measurements). The reported SOC are far from those on the graph; I assume that's because the above graph at 1C contains significant internal resistance adjustments. So really I should be measuring at around the 50 A mark; perhaps I'll figure out a safe way of doing that.
However, it's clear that Weber has a very valid point. Taking the 3.65 V line (the lower of the two horizontal thin blue lines), the NMC cell is indeed at 49% SOC, while the corresponding SOC for the old cells (what the BMS will be believing is the true SOC) is 27% SOC. That's not going to allow for much extra driving, regardless of the extent of current spoofing. [ Edit: this result is unlikely to change in our favour when internal resistance and different C rates are taken into consideration. ]
So what might work better is what Weber calls cell voltage spoofing. With voltage spoofing, a small computer can look up the differences in the graphs, and tell the BMU "what it wants to hear" to get the SOC of the new battery roughly correct. Obviously, analog spoofing of 88 cells all at once is totally impractical, but it could be done at the CAN bus level, by a man-in-the-middle CAN filter between the CMUs and the BMU. This is a private CAN bus, unfortunately not the same bus as would need to be intercepted for unspoofing. But perhaps one box near the BMU could do spoofing and unspoofing, and fix the Range Remaining and power meters at the same time. It would need 4 (!) CAN bus interfaces. It happens that the CMUs to BMU CAN bus is on the same connector (C-26) as the current sensor signals that I've been working with.
It happens that the format of the CAN bus packets between the CMUs and the BMU is fairly well known; I managed to work it out myself studying the CMU firmware. It has been validated by other parties. So that does sound moderately doable.
So I have lots to think about.
[ Edit: added sentence starting "With voltage spoofing... ". ]
[ Edit: NMO → LMO. Dislexia, sigh. ]
Nissan Leaf 2012 with new battery May 2019.
5650 W solar, 2xPIP-4048MS inverters, 16 kWh battery.
1.4 kW solar with 1.2 kW Latronics inverter and FIT.
160 W solar, 2.5 kWh 24 V battery for lights.
Patching PIP-4048/5048 inverter-chargers.