My pack is very out of balance so I know it'll take a long time, but I feel like I'm noticing similar slow charging behavior. I've been grid charging with the serial monitor open since about noon today, set $DISP=CELL and the only thing that was updating was the temperature, no charging/discharging cell data displayed. My delta went from .327 to .236 over that 9 hours.
Assuming the following initial conditions:
Vcell(high) = 3.900 volts
Vcell(low)(initial) = 3.573 volts (3.900 - 0.327)
Vcell(low)(now) = 3.634 volts (3.900 - 0.236)
Then, using the lookup table in SoC.c, the low cell was initially at 28% SoC, and is now at 37% SoC. This is a 9% SoC difference, which means each balancing circuit consumed 1.67 Wh after 9 hours, which is an average 186 mW balancing power per cell. Given that each cell's discharge circuitry consumes 200 mW when activated (3.900^2/75, this is right on par with what I would expect.
The discharge circuitry is so repeatable that I propose:
-either your stated "9 hour" period was actually 8 hours and 22 minutes, or;
-one of my initial condition assumptions is incorrect.
After doing the math, your discharge circuitry is working as expected.
FYI: LiBCM is very slow to balance cells... because it must do so by turning any cell imbalance into heat. In the worst case, LiBCM is dissipating QTY59 cells (e.g. in a 60S configuration), which means the PCB must dissipate almost 12 watts (possibly without turning the fans on).
Just because I was curious, I went back to 8.4 and within 2 minutes my pack started discharging and logging cell data.
As a test I loaded 8.5 again, opened the serial monitor, set $DISP=CELL and waited for 10minutes, the only thing that updated was the temperature, no charging or discharging cell data.
Went back to 8.4 and again within 2 minutes my pack is discharging and I'm seeing cell logs again. I've been grid charging on 8.4 for about 20min now and my delta has already dropped from .236 to .232 so it seems like theres different behavior here?
This sounds like an issue unrelated to how fast the cells are balancing. Can you verify whether the grid charger is plugged in or not during this test between firmware versions?
If so, the latest prerelease firmware adds numerous new conditions that will prevent grid charging. If the grid charger is plugged in and LiBCM chooses not the actually charge, it will output the reason why. For example, 0.8.5d can output the following:
"Overcharged" (existing)
"Overdischarged" (existing)
"Pack Charged" (existing)
"Charger Hot" (new)
"T_grid Unplugged" (new)
"Pack Too Cold" (new)
"Pack Too Hot" (new)
"Cabin Too Hot" (new)
"T_intake Unplugged" (new)
"Exhaust Too Hot" (new)
"Plugin Delay" (new)
"LiBCM Powerup" (new)
Turnoff Delay (new)
So if you see any of the above, then the charger is disabled. Note that some warnings are normal during the grid charging process. For example, when the first cell gets full, you should see "pack charged". You should also see "plugin delay" briefly after you plug in the grid charger (to prevent the grid charger from sourcing current while you're still plugging in the cord).
If any of these conditions persist, then the grid charger won't charge. However, the cells will still balance, even if the car is off (as long as SoC remains above
CELL_BALANCE_MIN_SoC
(default value: 65%)).
Note that $DISP=CELL isn't required when the key is off... just plug in the grid charger and it will automatically display the cell voltages. Honestly I'm not even sure $DISP=CELL works when the key is off... if it does, it might not work correctly. I'll look into that.
I absolutely want to figure out the issue you're describing, but right now I don't have enough information. Can you please post logs so I can review them? And also a more descriptive explanation of the difference you're seeing between the two firmware versions.