Explained in the video
Get it. Thanks
I found a interesting symptoms.
I have three Red Light V8 battery pack.
I open those of it. Those have same symptoms : one of cell is out of balance.
And the out of balance 's cell , always happen at Cell 1 position.
Suppose out of balance should happen randomly , but why those three pack only happen on Cell 1 position(Near reed switch) ?
I just looked in to this and I think I found a bug in the way my firmware interacts with the ISL94208 by sleeping after charging is complete. This will cause ~200uA current draw from cell 1 when the battery is connected to the charger, charging is complete, and then the firmware puts the ISL94208 to sleep while still connected to the charger. Overtime this bug will cause cell 1 to become imbalanced.
I was about to go on another rampage about this being the reason the battery packs are going out of balance in the first place, but I'm not sure this is actually an issue with the original firmware. I need to do more testing, but I'm almost certainly going to need to release an update for my firmware.
The issue:
The ISL94208 has a VBACK pin that connects to Cell 1 and is used for powering the logic in the ISL94208 while it is asleep. It should only draw a max of 3uA though while asleep. Looking at the discharge curve for a similar cell (
https://lygte-info.dk/review/batteries2012/LG%2018650%20HD4%202100mAh%20(Orange)%20UK.html) I think we could estimate a 500mAh capacity discharge would drop a cell from 4.2V to 3.9V. 500mAh / 3uA = 166667 hours, or about 19 years. So back of the envelope calculations indicate it
shouldn't be an issue. However, there are scenarios where more current can be pulled from VBACK when the WKUP pin is held high but the ISL94208 is asleep.
-firmware-upgrade-for-dyson-v6v7-vacuum-bms/?action=dlattach;attach=1491439;image)
At first I didn't think that last sentence would be an issue. Then I realized, what happens when the vacuum is plugged in to the charger? The charger enables Q1 which pulls WKUP high (to roughly 17V). Then the ISL94208 wakes up, powers up the PIC, then the vacuum charges as normal until it is fully charged. Then the key thing happens:
the PIC puts the ISL94208 to sleep while WKUP is still pulled high (because the PIC can't physically unplug the charger). Oops.
Now you have a VBACK power consumption of 200-250uA. 500mAh/200uA = 2500 hours. That doesn't sound so bad until you realize the vacuum will probably spend 99.9% of its life connected to the charger, fully charged and asleep...with no balancing circuitry to counteract this. 2500 hours = 104 days. OH DEAR.
-firmware-upgrade-for-dyson-v6v7-vacuum-bms/?action=dlattach;attach=1491445;image)
A picture is worth a thousand words.
-firmware-upgrade-for-dyson-v6v7-vacuum-bms/?action=dlattach;attach=1491451;image)
(This shows the current flowing from cell 1 in to the BMS board. Does not show any charger/discharge current that flows through the main terminals. I inserted a multimeter inline with the Cell 1 sense connection.)
Again, I'm not sure this is an issue with the original firmware but I'm currently thinking I'll release an update with the following changes:
- Have PIC go in to sleep mode after charging is complete but leave ISL94208 turned on. Then use the unplugging of the charger to trigger an interrupt-on-change in the PIC to wake it up.
- Reduce idle to sleep wait time from 30 seconds to 5 seconds at lern01's suggestion. There is really no reason the pack needs to be idle for so long before going to sleep.
Note: in the past when I've said "sleep" I've meant the PIC tells the ISL94208 to go to sleep, which then causes the 3.3V rail to be turned off, which totally removes power from the PIC. In the future there will probably be "PIC sleep" and "Total sleep", with total sleep being what I just described and what I've been using so far.
Explained in the video
Get it. Thanks
I found a interesting symptoms.
I have three Red Light V8 battery pack.
I open those of it. Those have same symptoms : one of cell is out of balance.
And the out of balance 's cell , always happen at Cell 1 position.
Suppose out of balance should happen randomly , but why those three pack only happen on Cell 1 position(Near reed switch) ?
I'm glad you found the hex file. It sounds like you also found how to edit the EEPROM data of the stock firmware to unlock the battery pack. This is the safer solution because you can backup the original EEPROM data before making any changes, and then restore it later if needed. As much as I'd love to see everyone using my firmware, unfortunately flashing new firmware is irreversible since the original firmware is code protected.
You previously mentioned you had cell voltages of 3.712/4.060/4.054/4.074/4.091/4.105.
4.105V - 3.712V = 393mV min-max cell difference, which is absolutely enough to cause the original firmware to lock up. I estimate anything over 300mV is at risk the original firmware locking you out. As you already figured out, the safest route would be to charge the low cell up to 4.15V, let it settle down to probably 4.1V, backup the EEPROM data, and then make the EEPROM data edits you already found or the edits dvd4me found in the other thread if they are different (
https://www.eevblog.com/forum/reviews/dyson-v7-trigger-cordless-vacuum-teardown-of-battery-pack/msg4028665/#msg4028665).
I brushed your firmware in V8 today, it is working normally now, but after the work, the third blue light shows a little longer time, it would be nice if the time is shorter.I will report to you if there is any problem in use.Thank you again for your selfless dedication!
Thanks for the feedback! I'm guessing the third blue light is the one that is normally green on a V7 battery, so you are probably seeing the 30 second idle delay before the ISL puts everything to sleep. Reducing this is a reasonable suggestion since it really doesn't matter much so I'll probably include that in a future update.