Electronics > Projects, Designs, and Technical Stuff
FU-Dyson-BMS - An (Unofficial) Firmware Upgrade for Dyson V6/V7 Vacuum BMS
rulof:
--- Quote from: tamtamsh on February 02, 2023, 08:41:02 am ---many thanks. Is there a way to remove this protection in firmware?
--- End quote ---
it is possible to reduce the trip voltage. for example, up to 2.5 volts or less. but this is just for verification.
berk:
DC35 or dc34 firmware send me
bluesight:
--- Quote from: tinfever on March 13, 2023, 07:29:50 pm ---
--- Quote from: bluesight on March 13, 2023, 06:30:24 pm ---
I think I have this problem. I did your firmware update. Unfortunately, I may have done a short when fiddling the switch near the exposed posts. Firmware update successful with all blink/color codes working. Charge codes working. When in vacuum and pulling the trigger, I get the 16 red blink "brownout" code. Tested vacuum motor with external supply and it works. Did attach VDD at PIC program time. So multiple opportunities to glitch the ISL94208. If that's the problem, this post seems to indicate that the ISL can be reset (or not). I see in your code that you provide a reset segment...?
void ISL_Init(void){
ISL_SetSpecificBits((uint8_t[]){WriteEnable, 5, 3}, 0b111); //Set all three feature set, charge set, and discharge set write bits
ISL_SetSpecificBits(ISL.FORCE_POR, 1); //Make sure the ISL is clean reset
So, is this the problem, and is it permanent or fixable?
Tnx!
--- End quote ---
For future reference, the dedicated forum thread would be the best place for questions like this: https://www.eevblog.com/forum/projects/fu-dyson-bms-an-(unofficial)-firmware-upgrade-for-dyson-v6v7-vacuum-bms/
If the battery is able to charge properly, I think the ISL94208 is working okay. I don't recall precisely what checks I run using the ISL94208 but I suspect at least one of them would fail if it wasn't operating. The PIC wouldn't run at all without the 3.3V from the ISL, and the ISL handles the multiplexing of all of the battery cell voltages so unless it got stuck reporting an identical valid result for every cell, the cell voltage checks wouldn't pass at all. Also, I just looked at the code again, the only way charging would work properly is if the ISL brown out check function passed, which would only work if the ISL is responding to I2C commands properly.
Please also check if the battery LEDs act normally if you press the button with the battery out of the vacuum with no load attached.
If that works fine, I suspect your battery cells have too high of an ESR and the load of the vacuum might be causing the cell voltage to drop enough to brown out the ISL. This is what rulof and I were discussing. I don't know what equipment you have but you could try to measure the battery ESR either with a battery tester, or by applying a known load and measuring the voltage drop. You could also try to measure the voltage drop on the VBACK pin of the ISL94208 during vacuum startup with an oscilloscope and see how far that voltage is dropping.
My current theory is that it is the inrush current of the vacuum triggering these errors on batteries with high cell ESR, but at least some batteries might be able to sustain the normal running current if we could ride through the inrush-caused-voltage-drop.
--- End quote ---
Moving over to this thread...
It looks like, indeed, the full set of 6 cells may be near-dead. They charge ok and read ~4.15 volts (individually fully charged...on a Hyperion EOS0606i RC charger/discharger). And my simple test was to run the vacuum head directly off the 6-cell series. That seemed to work fine for a 10 or so second test run. But when I now apply 1A load through the discharger, the drop is to about 3.95 volts. If my calculations are right...maybe 200 milli-ohm resistance.(?) Seems about 4X higher than it should be.(?) While ~24V might be enough to run the vacuum, maybe it is low enough for the ISL94208 to declare a brownout.(?) So, after all the fiddling, I may have to declare my pack defunct. Great learning experience...not a spectacular outcome...Oh well...
Thanks for the quick and useful response! Very nice work from you and the community...
A few personal practices...I shaved down the top and bottom tabs and shaved off the side tabs once I got the pack apart. Same for the "stalk" tabs. Made it less onerous to go in again. Also shaved down the "light pipe" sides (kind of to a point) for the same reason (instead of cutting in a slot).
bluesight:
OK...Just can't let it go...So, I found the drops on my light clip leads at 1A amounted to maybe .1V each (.2V total), bringing my internal resistance per cell to maybe 140 milli-ohms. Still nasty. Then I decided to connect with those leads from the pack (external) to the vacuum and "push the button" (on the pack). Voila, the vacuum worked! Voltage at the pack was ~23V. With the pack in the vacuum, still 16 red blinks (brownout). Final test, connect externally with heavy clip leads...NO GO...16 blinks.
What I think it means...? The brown out voltage/whatever setting for the ISL94208 is right at the edge for my pack. And maybe it is appropriately set conservatively. BUT...if there was a simple place (couple eeprom bytes preferably) to modify (lower) the brownout set point, it may be possible to run a marginal pack for a little bit longer. Just askin'...
tinfever:
--- Quote from: bluesight on March 14, 2023, 04:41:41 pm ---OK...Just can't let it go...So, I found the drops on my light clip leads at 1A amounted to maybe .1V each (.2V total), bringing my internal resistance per cell to maybe 140 milli-ohms. Still nasty. Then I decided to connect with those leads from the pack (external) to the vacuum and "push the button" (on the pack). Voila, the vacuum worked! Voltage at the pack was ~23V. With the pack in the vacuum, still 16 red blinks (brownout). Final test, connect externally with heavy clip leads...NO GO...16 blinks.
What I think it means...? The brown out voltage/whatever setting for the ISL94208 is right at the edge for my pack. And maybe it is appropriately set conservatively. BUT...if there was a simple place (couple eeprom bytes preferably) to modify (lower) the brownout set point, it may be possible to run a marginal pack for a little bit longer. Just askin'...
--- End quote ---
That's really interesting that it works with smaller test leads but not with heavier leads.
By the way, the brown out level isn't actually a setting, that error is tripped when the firmware notices the ISL94208 has reset itself without any other errors. Precisely when and why the ISL resets itself is still up for debate but it definitely isn't configurable.
My current theory is that on marginal cells, the inrush current of the vacuum causes the VBACK voltage of the ISL94208 to go too low and so the ISL resets itself. The inrush current of the vacuum can be up to 120A on startup for maybe 100us (I have scope shots somewhere but can't find them), but then in normal mode it might only draw 4A which should be fine.
If you have an oscilloscope, it would be really interesting to see the voltage drop on the VBACK pin during start up (relative to the negative terminal of the pack). The ISL94208 datasheet actually show a capacitor on that pin but that isn't implemented on the BMS boards.
I have attached an image with the measurement point off of R48 (next to the ISL chip) marked in blue, assuming you have a V7 battery.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version