Quote from: dvd4me on Yesterday at 08:39:29 pmThanks tinfever!
This is one great piece of information, I wish I had the pickit arrived so I can try to read the eeprom myself.
Now i will probably have to put back the Dyson BMS i just took out, if there is a way of restoring the lock bit.
I could read the unlocked eeprom data and do a compare with the one you have. I will try to do this with the V7 when I will receive the Pickit.
I am happy you found the other V6 SV09 battery BMS, recycling it's such a treasure hunt.
Maybe you can find one for your V7 SV11 to fix the broken one.
Reversing the lock bit it's huge already... Curious to see how it will act, meaning if it needs to restart somehow, to make the bit change work.
Keep up the excellent work!
Thanks
Well I have good news and bad news.
The good news is that I have a better understanding of the various imbalanced cell lockouts on the battery packs. It appears that the battery will operate normally up until there is ~250-300mV difference between the highest and lowest voltage cell. Once that level of imbalance is reached, the pack output will turn off and the BMS will blink the blue LED 10x times. However, this is only a temporary lockout. Once you connect the pack to the charger, even for just two seconds, it will reset that lockout. However, even if you leave the pack on the charger to become fully charged, the cell imbalance will remain. Thus, if you fully charge the pack and attempt to use it, even though the temporary imbalance lockout is cleared, it will quickly detect the cells are still imbalanced and turn off the output with the 10x blue blinks error.
Since the 10x blue LED blinks error is only temporary and is cleared by putting the battery on the charger, if you rebalance the pack it will become fully operational again.
Once the cells in the pack become even further imbalanced, which
shouldn't easily be possible given the pack output will be disabled with the 10x blue LED flash code first, the pack will eventually go in to permanent lockout with the 32x red LED blink error. There is no way to reset this lockout even by manually rebalancing the pack at this point and putting it on the charger. The BMS will also not permit charging when the pack is in 32x red LED error lockout.
At this point, having rebalanced all the cells but still having the pack locked out, I attempted to load my previous EEPROM dumps to try to clear the lockout.
In my testing, I was entering the temporary imbalanced cell lockout under the following conditions:
Min. Cell Voltage / Max. Cell Voltage / Delta / Test cell discharge conditions
3.772 / 3.981 / 209mV / Cell 2 discharge until imbalance cutout, then full pack charged to completion.
3.932 / 4.154 / 222mV / 1A 3.8V CC+CV discharge on cell 2 until imbalance cutout
3.881 / 4.125 / 244mV / 1A 3.8V CC+CV discharge on cell 2
3.845 / 4.109 / 264mV / 250mA 3.8V CC+CV discharge on cell 2
3.815 / 4.097 / 282mV / 100mA 3.8V CC+CV discharge on cell 2
The above was me manually discharging just one cell at a set current until the pack went in to temporary lockout, briefly placing the pack on the charger to clear the lockout, and then making sure the output would still briefly turn on to make sure it wasn't permanently locked out. I would then reduce the discharge current on the single cell and discharge it further.
I finally reached permanent lockout mode with the following conditions:
Min. Cell Voltage / Max. Cell Voltage / Delta / Test cell discharge conditions
3.705 / 4.100 / 395mV / 1A 3.7V CC+CV discharge on cell 2, stopping at 100mA discharge current
Thus we reach the bad news:
The MPLAB IPE is stupid or at least unintuitive. I don't think I had the settings configured correctly and MPLAB IPE automatically wiped by PIC when I attempted to load the EEPROM data. Since the program memory was protected, it was not possible to backup and thus I cannot do any further testing on clearing the permanent lockout using the factory firmware.
In order to attempt programming the EEPROM without affecting the program memory or anything else, I went in to the Memory tab in IPE, changed "Auto select memories and ranges" to Manual, and unchecked the boxes for Configuration Memory, ID, and Program Memory, leaving only EEPROM checked.
However, when I went to program the EEPROM data, I received the following output:
Connecting to MPLAB PICkit 3...
Currently loaded firmware on PICkit 3
Firmware Suite Version.....01.56.09
Firmware type..............Enhanced Midrange
Target voltage detected
Target device PIC16LF1847 found.
Device Revision ID = 3
2022-02-15 15:52:33 -0700 - Programming...
Device Erased...
Programming...
The following memory area(s) will be programmed:
EEData memory
Programming/Verify complete
2022-02-15 15:52:40 -0700 - Programming complete
So it programmed just the EEPROM as requested, but only after erasing the whole chip...

Looking that the settings options further, I see there are checkboxes for "Preserve Program Memory" and "Preserve ID Memory" that sound like could have prevented this. In hindsight I should have tested altering the EEPROM while leaving protected code untouched on my SV11(V7) BMS I've been programming first to make sure my settings were correct.
I've bought a few broken V6 and V7 battery packs that are being shipped so I might be able to come back to this in the future.
Addendum on the BMS charging algorithm:
As you may have mentioned in a previous post, the OEM charger is 26.1V at like 700mA. The BMS will permit you to charge the pack at almost any current if you don't break the charging over-current protection limit I assume is present. I tested charging up to 1A with no problems. When a charger is attached, the blue LED will turn on solid. Once any cell in the pack reaches 4.2V, the BMS will disable charging by opening one of the charging MOSFETs and blocking all current. After 70 seconds, charging will be enabled again until, once again, any cell reaches 4.2V. This process of charging pulses spaced 70 seconds apart (from the start of one pulse to the start of the next pulse) will repeat with the pulses getting shorter as it takes less and less time to reach 4.2V on any cell. Eventually, under some criteria I have not determined (but probably based on the voltage difference between the highest cell and the target 4.2V measured after 70 seconds with charging disabled), the pack will decide it is done and disable charging. All LEDs will now be off. Removing the charger and attaching it again will restart this process.