Electronics > Projects, Designs, and Technical Stuff

FU-Dyson-BMS - An (Unofficial) Firmware Upgrade for Dyson V6/V7 Vacuum BMS

(1/20) > >>

tinfever:
 ;D After much delay, I'm pleased to announce the release of:

FU-Dyson-BMS
An (Unofficial) Firmware Upgrade for Dyson V6/V7 Vacuum Battery Management System

GitHub Repo with much more documentation and info: https://github.com/tinfever/FU-Dyson-BMS

FU-Dyson-BMS firmware was developed from scratch to eliminate the "feature" in the factory Dyson firmware where the battery will permanently stop working if the cells ever go too far out of balance. It also provides several new LED codes so you can monitor the health of your battery pack.



Edit: Known issue you should be aware of:
The BMS will go to sleep and put the ISL94208 to sleep after charging is complete. This may create a small but noticeable current draw on the cell connected to VBACK on the ISL94208. This means over the period of months, I think the cell connected to VBACK may slowly go out of balance compared to the other cells. This is not damage in any fashion, but since we can only charge the entire pack in series, any discharge of a specific cell will inevitably cause an imbalance. An imbalance can be fixed by manually charging the imbalanced cell back up to match the others. As a workaround for this issue, I'd recommend not leaving the battery connected to the charger 24/7. Again, no damage will occur, but one of the cells may be discharged slightly and need to be rebalanced. I'll fix this as soon as I can, no ETA though.

I don't want to have this post be a copy of all the info in the GitHub README but here is a little bit of info:

Revolutionary features:

* Cell balance LED indicator
* State of charge LED indicator
* Robust fault handling and logging
* Total runtime tracking
* Can be run in debug mode for near-real-time diagnostics
* Doesn't brick itself!
* Doesn't generate e-waste and try to take your money when your cells go out of balance!
Why you would want this:

* You want to vacuum your apartment but your cells became slightly out of balance because you left the vacuum off the charger for too long and now your vacuum doesn’t work (ask me how I know)
* You want to replace a bad cell in your battery pack
* You want to understand what your battery is doing and why.
* You don’t like feeling like a cash cow being squeezed for all you’re worth.
Compatible vacuums/batteries:

* Dyson V7 - Model SV11 - PCB 279857 - Compatible + Tested
* Dyson V6 - Model SV04/SV09 - PCB 61462 - Compatible + Tested
* Dyson V6 - Model SV04 - PCB 188002 - Compatible + Tested
Demonstration, disassembly, and programming guide:
Note: For the latest information, installation instructions, and any known bugs, please see the GitHub page: https://github.com/tinfever/FU-Dyson-BMS



And now a brief crusade against planned obsolescence:

Dyson vacuum batteries are designed to fail.

Here's why:

* Series battery cells in a battery pack inevitably become imbalanced. This is extremely common and why cell balancing was invented.
* Dyson uses a very nice ISL94208 battery management IC that includes cell balancing. It only requires 6 resistors that cost $0.00371 each, or 2.2 cents in total for six. 1
* Dyson did not install these resistors. (They even designed the V6 board, PCB 61462, to support them. They just left them out.)
* Rather than letting an unbalanced pack naturally result in lower usable capacity, when the cells go moderately (300mV) out of balance (by design, see step 3) Dyson programmed the battery to stop working...permanently. It will give you the 32 red blinks of death and will not charge or discharge again. It could not be fixed. Until now.
Credit:
DavidAlfa (Created I2C Library)
dvd4me (Helped with reverse engineering and provided continued support)


Please let me know if you have any questions or feedback! If you have a V6 or V7 vacuum battery, I'd really like to know if this works for you.  :)

uer166:
Super cool project! This makes me want to buy a Dyson and immediately reflash it.

Regarding:

--- Quote from: tinfever on May 15, 2022, 08:50:00 pm ---Series battery cells in a battery pack inevitably become imbalanced. This is extremely common and why cell balancing was invented.

--- End quote ---

I wouldn't blanket-statement that, there have been as many, if not more packs killed by shitty balance BMSs, than packs that went out of balance in a system that doesn't implement it.
I'd rather have a well designed, safe, monitor-only BMS, with some high quality cells that would last a very long time (one example I came across are m365 10S scooter packs), than a badly designed balance BMS with same pack.

If you're doing a BMS design with full-on FMEA, it might be actually more reliable to not have balancing implemented at all, since by adding that you're creating a whole slew of single-component failures that would promptly kill a pack (FETs stuck short, drive failures, etc etc). It's all a balancing act (hehe), so just wanted to point that out. I've designed small BMS systems before, and actually regret implementing balancing on some of them in retrospect.

uer166:

--- Quote from: tinfever on May 15, 2022, 08:50:00 pm ---Doesn't generate e-waste and try to take your money when your cells go out of balance!

--- End quote ---

What does the firmware do exactly when they do go out of balance? Simply implement OV/UV protection only? Or do you expect to add those balance resistors and make a balance BMS out of it? I definitely see the utility in enabling cell replacement, but it's not clear how would the firmware fix the issue once the cells do go heavily out of balance.

tinfever:

--- Quote from: uer166 on May 15, 2022, 09:36:06 pm ---Super cool project! This makes me want to buy a Dyson and immediately reflash it.

Regarding:

--- Quote from: tinfever on May 15, 2022, 08:50:00 pm ---Series battery cells in a battery pack inevitably become imbalanced. This is extremely common and why cell balancing was invented.

--- End quote ---

I wouldn't blanket-statement that, there have been as many, if not more packs killed by shitty balance BMSs, than packs that went out of balance in a system that doesn't implement it.
I'd rather have a well designed, safe, monitor-only BMS, with some high quality cells that would last a very long time (one example I came across are m365 10S scooter packs), than a badly designed balance BMS with same pack.

If you're doing a BMS design with full-on FMEA, it might be actually more reliable to not have balancing implemented at all, since by adding that you're creating a whole slew of single-component failures that would promptly kill a pack (FETs stuck short, drive failures, etc etc). It's all a balancing act (hehe), so just wanted to point that out. I've designed small BMS systems before, and actually regret implementing balancing on some of them in retrospect.


--- End quote ---

You make a excellent point. I hadn't considered the additional failure modes cell balancing could bring, and I could see a scenario where perhaps in a previous generation Dyson implemented cell balancing, saw a high failure rate with it, and decided it would actually be more reliable to remove it. That would be a scenario where Dyson is not in-fact, the embodiment of pure evil. I will still maintain my opposition to them on the grounds that they didn't have to make the battery permanently stop working when the cells hit 300mV out of balance but were still within normal operating range. Although even that I could see as not being intentionally malicious.


--- Quote from: uer166 on May 15, 2022, 09:41:26 pm ---
--- Quote from: tinfever on May 15, 2022, 08:50:00 pm ---Doesn't generate e-waste and try to take your money when your cells go out of balance!

--- End quote ---

What does the firmware do exactly when they do go out of balance? Simply implement OV/UV protection only? Or do you expect to add those balance resistors and make a balance BMS out of it? I definitely see the utility in enabling cell replacement, but it's not clear how would the firmware fix the issue once the cells do go heavily out of balance.

--- End quote ---

You are correct, OV/UV protection only. Charging stops when the max cell reaches 4.2V. Discharge is disabled when min cell reaches 3V. Thus when heavily out of balance, the pack would just have less usable capacity until manually rebalanced.

Unfortunately, and ironically, I haven't implemented cell balancing code because only one of the three PCB models I've worked on has the footprints for the balance resistors, and the other two models have the traces to the ISL94208 designed in such a way that the cell balance connections are shorted to the applicable cell measurement terminal so you'd have to cut those traces and add resistors somehow. They also used 1k resistors to the cells for the monitoring connections, which means you'd have a 1k resistor in your balance path causing very slow balancing unless you replaced that too. I'd initially planned on adding balancing until I saw they designed the board like this. The only thing I could do then was add a way for you to monitor the cell balance to determine when they need to be manually rebalanced.

While the cells could probably be very slowly balanced even with the 1k resistors in the balance path, and you could probably just put a direct short in place of the balance resistors because of that 1k, I'm also kind of burnt out on this project and I don't think very many people would go through that level of effort in hardware modding it.

A bit more background on these obstacles can be found here: https://www.eevblog.com/forum/reviews/dyson-v7-trigger-cordless-vacuum-teardown-of-battery-pack/msg3995477/#msg3995477

Given dvd4me in that same forum thread also figured out what EEPROM values to reset in the stock firmware to undo the permanent lockout, I'll admit this project doesn't actually provide a ton of extra utility.

lern01:
Thank you very much for your hard work!!!
Can V8 use this firmware?

Navigation

[0] Message Index

[#] Next page

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod