Over 47 minutes to be exact. Waiting patiently though.
Ha, I just spentOver 47 minutes to be exact. Waiting patiently though.
Sorry to hear this.The pack is sitting at a whopping 13.6V.
Pure ignorance really. I thought I had understood there were changes to reduce the off use drain. Re-reading the FAQ its clear I goofed up.
Based on the literature I've read, I suspect the degradation rate accelerates rapidly as you approach freezing. If your pack spends considerable time at near-freezing temperatures, I would think you'd want the pack heater. I promise I'm not trying to upsell you after the fact... to be honest, I hope I don't have to make too many more of these heaters, because they take forever and I basically make nothing selling them. If I lived in Minnesota and kept my car in an unconditioned garage (or outside), I would personally install the heaters. Lithium batteries like the same temperatures humans do.I've been debating if I need a heater or not but I think in this configuration it will be fine without it. I imagine there is some heat generated from the pack balancing and of course during charging. I get it, if you are leaving your car outside in Minnesota all winter long a heater will make your life a lot easier, but in most other cases, especially with the new temp cutoffs a pack heater is probably not needed. Obviously if you haven't done the LiBCM conversion yet adding in the pack heater is probably a no brainer, but adding one now seems like a lot of effort to mitigate a small degradation risk except in particular cases.
You are probably correct, particularly given that Honda doesn't have any heating provisions when these modules are installed in the G3 Insight. However, I also must note that degradation occurs at lower temperatures whether or not you're charging... it's certainly higher when you're charging, but also occurs just by being cold.I'm kind of in the camp that these batteries can probably handle some charging below 0C without too much degradation
The concern I have is that these batteries are in limited supply. Obviously we'll have access to them in junk yards, but the flood of essentially brand new modules we saw last year is probably a one-time event (at least for the 5AhG3 modules).and worst case the batteries are only $1K and if they wore out in 3 or 4 years there are probably going to be some nice upgrades to capacity and chemistry. Just some thoughts for those cold weather folks out there.
Question... Could one take a dead 12s and pull all the cells out, and replace them from a 18s? I know you would have 6 cells left over, but 18s is much more plentiful out there than 12s. It would be a shame for a good 12s cage to go to waste.Sorry to hear this.
As @Balto mentioned, there was a bug in older firmware versions that prevented LiBCM from turning itself off once the firmware expired. Can you please let me know which firmware version you were running? You can figure this out by plugging a computer into the USB cable and then opening an Arduino Serial Monitor window (2nd video on this page).
I do not recommend salvaging these modules... even though they might never have issues if recharged, it's possible they could violently explode down the road. This is due to rapid metallic dendrite growth that occurs when the cells are overdischarged. These dendrites can pierce the internal insulation, which would cause a hard short circuit, which could lead to cell explosion.
Again, sorry to hear LiBCM claimed another victim. Once I know which firmware version is running on your car, I can verify if it is pre or post fix.
...
In regards to the off-use drain reductions, LiBCM still has a long way to go... right now LiBCM always stays on, unless the SoC drops below 10%. Eventually LiBCM will always turn off (maybe an hour after each keyOFF event), which will drastically improve standby time. This is on my list of features to add soon, but it's going to take quite a bit of work.
I second this statement... I went through exactly that headache with the 47Ah FoMoCo modules, which don't fit in the OEM case, hence I had to design a custom bracket to house them... spent at least a month getting everything to fit.Adapting LiBCM to some other type of battery configuration in the future without being able to utilize the existing case would require a significant effort, since LiBCM is designed to attach to the front of the existing battery case.
I do remember reading your report on these inaccuracies, but I don't remember the details. Please let me know if you've already accounted for the fact that the original (non-heater-equipped) sensors are bolted to each modules' outer steel chassis, not the actual cells themselves.My original LiBCM temp sensors didn't agree with a calibrated digital thermostat. They read warmer around the 0*C datapoint by as much as 4*C with some variance in repeatability (maybe due to their location?) Which means the car's regen would potentially be enabled below freezing. The new temp sensor placement on the heater boards is much more consistent with the calibrated thermostat reading.
Most of the literature I've read consistently states that degradation increases rapidly as you approach freezing.I don't recall seeing any evidence of battery degradation reports good or bad, but every electric vehicle manufacturer now provides for heating of their battery packs during cold weather (as do BMS manufacturers for lithium batteries). I certainly hope battery degradation from freezing temps will be minimal, but we really don't know.
LiBCM is quite future proof in regards to sourcing new lithium packs... it does take some effort, but it certainly doable. As mentioned above, I've already repurposed identical LiBCM hardware to work with 47Ah FoMoCo packs... which have an entirely different SoC<->VoC profile from the 5AhG3 cells. Honestly the hardest part is just adapting the mechanicals... the firmware is pretty straightforward.Good luck adapting a new battery chemistry to the NiMH Insight or LiBCM software/hardware!
Without the heater kit, this is certainly true. The heater kit repositions the temperature sensors so that they measure the actual cell temperature.One last thought, due to the original sensor locations, the sensors may heat up faster from cabin heat than the actual battery cells do, providing a false sense of how quickly they are heating up from cabin air alone. (I haven't tested this, just a possibility)
What is your rationale for not heating the cells while driving? I would think you'd want to continue heating the pack while driving, when power is essentially unlimited (from the gas engine). Certainly it's more efficient to heat the pack directly with the heater, versus heating the cabin. Ultimately the heat transfer from the heater PCBs to the cells is much more efficient than the heat from the HVAC unit entering the air intake. In fact, in the existing (0.8.5d) firmware, when LiBCM detects the pack heater is installed, it will never use the fans to heat a cold pack.I've reconfigured my heater settings like this:
key on: 2 deg C
gridcharging: 20 deg C
key off: 2 deg C
My logic is thus: I want to keep the cells above the charging danger point, but I want to use as little energy as possible maintaining that whenever the car is doing anything other than grid charging. This should still prevent the cells from ever getting below 1 deg C. I'll heat the cells up to 20 deg C while grid charging to maximize the amount of time before the batteries reach 2 deg C in key off/on modes. I suspect I might be missing some logic for why you have the presets higher, so if need to know something here, please let me know.
As you know, LiBCM has QTY3 battery temperature sensors, but only reports one battery temperature. Under the hood, LiBCM selects the battery temperature sensor that is furthest from 23 degC. So when the pack is cold, LiBCM reports the coldest sensor, and when the pack is hot, LiBCM reports the hottest sensor.Also, one question: When I made this change today, I ran $TESTT a few times. What I saw was:
Bay 1: 6 deg C
Bay 2: 8 deg C
Bay 3: 7 deg C
Overall, LiBCM was reporting the battery temperature as 6 deg C. How is that determined? Is it simply using the lowest reported temp of the three bays? I assume it is more complicated than that. I just want to avoid a situation where LiBCM ever reports that the temperature is 2 deg C and doesn't turn on the heaters, yet I have one bay at 0 deg C. If you think I need to give myself a larger buffer and raise the key on/off values to something higher than 2 deg C, please let me know.
KEYOFF_DISABLE_THERMAL_MANAGEMENT_BELOW_SoC
(default value: 50% SoC).I don't foresee LiBCM kits I sell ever decreasing in price. Honestly there is so much support and development effort amortized into the relatively small number of kits I sell. We did the math last month and IIRC I'm undercharging by about $6000/kit.I agree with all of this. I wouldn't switch back to NiMH, but I am saying the lithium kits might improve over time or decrease in price.
I touched on this in my previous post. Yes, LiBCM theoretically supports future lithium modules/chemistries/etc. However, you do have to properly characterize each different cell chemistry, which isn't terribly difficult, but does take several days. The harder part is figuring out the mechanicals (e.g. how to safely secure the modules in place, and also how to connect each cell to LiBCM's 0.1" ribbon headers).There should be tons of these configurations of batteries out there for years to come with all the vehicles using them. And there are always people adapting packs and connectors.
My goal is certainly longer than 5 years. I don't have any plans to stop driving LiBCM-equipped Insights for at least the next decade... probably longer. I'm absolutely infatuated with this car and am only 37 right now. With any luck, I'll still be driving some form of LiBCM-equipped G1 Insight decades from now.These are all beta kits and while I hope they last the rest of the life of the car, I'm totally happy if they go another 5 years or something.
I agree that your pack should probably last 5 years in sustained near-freezing weather without installing the heater. FYI: Adding the LiDisplay LCD doesn't require pack removal... you just plug the new cable into the top. I'll eventually start selling LiDisplay cables... so much to do.The combination of firmware updates inhibiting regen below 5C or whatever the final number is, smart regening/disable IMA in cold weather, and relatively short winter durations still make the stock LiBCM upgrade well worth it. Maybe if I have to take out the pack for the final display I'd consider putting a heater in then.
Yes. The cells are identical.Question... Could one take a dead 12s and pull all the cells out, and replace them from a 18s? I know you would have 6 cells left over, but 18s is much more plentiful out there than 12s. It would be a shame for a good 12s cage to go to waste.
I would suggest it should turn off after 15 seconds like the standard ignition hold IMA relay timing.Eventually LiBCM will always turn off (maybe an hour after each keyOFF event), which will drastically improve standby time. This is on my list of features to add soon, but it's going to take quite a bit of work.
You could certainly do that... and people should keep the 12S battery assembly/hardware after ditching the cells.Question... Could one take a dead 12s and pull all the cells out, and replace them from a 18s? I know you would have 6 cells left over, but 18s is much more plentiful out there than 12s. It would be a shame for a good 12s cage to go to waste.
Yea that was exactly my thought.You could certainly do that... and people should keep the 12S battery assembly/hardware after ditching the cells.
2 x 18S could make 3 x dead 12S live again..![]()
I have no doubt Mudder can do this, but I suspect a typical layperson has no idea the effort it takes to accomplish a successful conversion to a new battery chemistry (especially if it were a non-lithium chemistry). Unless they are well versed in Arduino coding, would likely find reverse engineering the firmware a significant hurdle...and that's with the firmware being "open sourced", which makes the task a cake walk in comparison to decoding something that's not open sourced (similar to decoding the OEM BMS).Good luck adapting a new battery chemistry to the NiMH Insight or LiBCM software/hardware!
If you have a reference regarding that I'd be interested. I hadn't seen anything on lithium ion battery degradation at cold storage and would like to learn.However, I also must note that degradation occurs at lower temperatures whether or not you're charging... it's certainly higher when you're charging, but also occurs just by being cold.
I don't think LiBCM modulates the regen charge lower as temperatures approach 0*C like EV's do. At that time it just disabled regen when sensors report 0*C,and full regen was allowed at 1*C and above. My simple solution was to modify the temperature.cpp files. I temporarily set the 1*C, 2*C, and 3*C all equal to 0*C. It's not an ideal solution, but it prevented any regen below 4*C. I wanted to see the overall effect disabled regen would have while driving (e.g. battery being discharged from assist and not recharged with regen), and the rate the HV battery would be depleted.I do remember reading your report on these inaccuracies, but I don't remember the details. Please let me know if you've already accounted for the fact that the original (non-heater-equipped) sensors are bolted to each modules' outer steel chassis, not the actual cells themselves.
Thanks! I have re-uploaded the firmware this morning with your above recommendations.Given the above, my recommendation is to keep keyON and gridCharging temperatures about the same. If you're wanting to get the highest MPG on your fuel gauge, then yes it probably does make sense to heat the pack warmer when grid charging. In that case I propose:
key on: 16 deg C
gridcharging: 20 deg C
key off: 4 deg C
Note that I also increased the keyOFF temp slightly... this is to prevent LiBCM from riding the razor edge of enabling/disabling regen when the pack is near freezing.
Good to know, thanks!As you know, LiBCM has QTY3 battery temperature sensors, but only reports one battery temperature. Under the hood, LiBCM selects the battery temperature sensor that is furthest from 23 degC. So when the pack is cold, LiBCM reports the coldest sensor, and when the pack is hot, LiBCM reports the hottest sensor.
All your hard work is super appreciated!! Thank you,Wow, many beta user updates today (and not all good). I'm going to reply to them all in this post, in the order received... it's going to take a minute.
...
Update: I figured out why I chose to usegpio_isGridChargerChargingNow()
... it turns out I also need to add an additional conditional to the if statement:((cellBalance_areCellsBalanced() == false) && (gpio_isGridChargerPluggedInNow() == YES) )
. This allows cell balancing when the pack is severely unbalanced, but only when the grid charger is plugged in.
This issue is fixed in 0.8.5e (not yet released).
...
For now, let's get your pack balanced by loading up 0.8.4... and then as soon as it's balanced, please update to 0.8.5.
Once LiBCM turns off, grid charging and cell balancing are disabled. The one hour countdown from keyOFF would give the user time to plug the charger in. If LiBCM turned off 15 seconds after keyOFF, then you'd have a very short window during which you could plug in the grid charger and expect it to actually charge. Honestly it probably makes more sense for LiBCM to stay on for 24 hours after keyOFF. During this time, LiBCM will consume ~1% SoC, but that will give you plenty of time to plug in the grid charger at your leisure. It will also give LiBCM time to balance the cells (if needed).I would suggest it should turn off after 15 seconds like the standard ignition hold IMA relay timing.
That is assuming there is no heating/cooling being demanded or grid charging/balancing going on etc.
Why does it need to stay on for an hour?
The table in the batteryuniversity link is correct that the energy maintained in the cell won't appreciably change if the pack is stored below freezing. I'm assuming that before the cell is discharged in their test, they're allowing the pack to warm up (e.g. to room temperature). Most of the literature I find online addresses the question "what happens if we freeze the cell once"?If you have a reference regarding that I'd be interested. I hadn't seen anything on lithium ion battery degradation at cold storage and would like to learn.
Link: batteryuniversity.com/article/bu-702-how-to-store-batteries (Scroll down to Table 2)
Right now LiBCM doesn't modulate regen as temperature decreases. Regen is either entirely allowed (above freezing), or entirely disabled (below freezing).I don't think LiBCM modulates the regen charge lower as temperatures approach 0*C like EV's do. At that time it just disabled regen when sensors report 0*C,and full regen was allowed at 1*C and above.
A better method to increase the regen-disable setpoint is to increase the temperature cutoff value in battsci.c:My simple solution was to modify the temperature.cpp files. I temporarily set the 1*C, 2*C, and 3*C all equal to 0*C. It's not an ideal solution, but it prevented any regen below 4*C.
(temperature_battery_getLatest() < (TEMP_FREEZING_DEGC + 2) ) ) //pack is too cold to safely regen
(temperature_battery_getLatest() < (TEMP_FREEZING_DEGC + 5) ) ) //pack is too cold to safely regen
What were your results?I wanted to see the overall effect disabled regen would have while driving (e.g. battery being discharged from assist and not recharged with regen), and the rate the HV battery would be depleted.
After reviewing the code, I don't see anything that would prevent the heater from activating when the grid charger is plugged in, but not charging. If someone else with C experience wants to review the logic, start at heater.c>heater_handler().One thing I have noticed this morning... it appears that the heater PCBs only work when the grid charger is actually charging -- not when balancing. Does this sound plausible?
Please verify that LiBCM thinks the heater is present. Each time LiBCM boots, it sends a one-line hardware debug statement:My SoC is 76, but the pack temperature appears to be dropping and is down to 13 deg C (even though I have it the gridcharging temp set to 20 deg C.
HW:D/5AhG3/48S/Vs=ast/Heat:N
Yes, the heater PCBs should work during balancing, as long as at least one of the following is true:Should the heater PCBs be working during balancing? If not, I may need to rethink when I want to grid charge during longer stints of being parked in the garage.)
KEYOFF_DISABLE_THERMAL_MANAGEMENT_BELOW_SoC
, default: 50% SoC), or;Just put this in the code...Once LiBCM turns off, grid charging and cell balancing are disabled. The one hour countdown from keyOFF would give the user time to plug the charger in. If LiBCM turned off 15 seconds after keyOFF, then you'd have a very short window during which you could plug in the grid charger and expect it to actually charge. Honestly it probably makes more sense for LiBCM to stay on for 24 hours after keyOFF. During this time, LiBCM will consume ~1% SoC, but that will give you plenty of time to plug in the grid charger at your leisure. It will also give LiBCM time to balance the cells (if needed).
Ultimately, however long we decide to keep LiBCM on is trivial... it's the other coding logic that's going to be the hard work (e.g. storing state data before turning off, figuring out how to determine SoC from the open circuit voltage once the car is on and running (difficult), etc).
...
The table in the batteryuniversity link is correct that the energy maintained in the cell won't appreciably change if the pack is stored below freezing. I'm assuming that before the cell is discharged in their test, they're allowing the pack to warm up (e.g. to room temperature). Most of the literature I find online addresses the question "what happens if we freeze the cell once"?
However, saying that a cell can retain energy while continuously frozen is different than saying repeated thermal cycling won't damage the cell (e.g. frozen each night, thawed each day). Each time a cell freezes (not necessarily 0 degC), the inorganic salts separate from the water, which results in volume expansion inside the cell. This repeated freeze/thaw behavior slowly degrades the internal structure. "Thus, the storage density becomes difficult to maintain and generally starts to decrease with [thermal] cycling." Citation: Dincer, I., Hamut, H. S., Javani, N., & Dinçer, I. (2016). Thermal Management of Electric Vehicle Battery Systems. Wiley, p103.
Right now LiBCM doesn't modulate regen as temperature decreases. Regen is either entirely allowed (above freezing), or entirely disabled (below freezing).
A better method to increase the regen-disable setpoint is to increase the temperature cutoff value in battsci.c:
(temperature_battery_getLatest() < (TEMP_FREEZING_DEGC + 2) ) ) //pack is too cold to safely regen
For example, if you want to disable regen below 5 degC, then you would change that line to:
(temperature_battery_getLatest() < (TEMP_FREEZING_DEGC + 5) ) ) //pack is too cold to safely regen
What were your results?
...
After reviewing the code, I don't see anything that would prevent the heater from activating when the grid charger is plugged in, but not charging. If someone else with C experience wants to review the logic, start at heater.c>heater_handler().
Please verify that LiBCM thinks the heater is present. Each time LiBCM boots, it sends a one-line hardware debug statement:
HW:D/5AhG3/48S/Vs=ast/Heat:N
If LiBCM reports "HEAT:N", then LiBCM doesn't think the heater is installed.
If LiBCM reports "HEAT:Y", then LiBCM sees the heater, and should use it.
Yes, the heater PCBs should work during balancing, as long as at least one of the following is true:
-the pack is sufficiently charged (KEYOFF_DISABLE_THERMAL_MANAGEMENT_BELOW_SoC
, default: 50% SoC), or;
-the grid charger is plugged in