# FU-Dyson-BMS
### An (Unofficial) Firmware Upgrade for Dyson V6/V7 Vacuum Battery Management System (BMS)
![Github Header Image](https://user-images.githubusercontent.com/46428760/168486653-8b8b696d-0bcb-4679-95c9-0377f26ec008.jpg)
------
**Dyson vacuum batteries are designed to fail.**
Here's why:
1. Series battery cells in a battery pack inevitably become imbalanced. This is extremely common and why cell balancing was invented.
2. 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]
3. Dyson did not install these resistors. (They even designed the V6 board, PCB 61462, to support them. They just left them out.)
4. 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. [^2]
<img src="https://user-images.githubusercontent.com/46428760/168484825-c1c25766-edcf-4af1-a2fb-f534d9acf39a.png" width="400" />
FU-Dyson-BMS is a replacement firmware for the microcontroller inside Dyson V6/V7 vacuum batteries. By using this firmware, your battery pack will not become unusable if the cells become imbalanced, you will just have reduced battery capacity as usual. It will also allow you to replace the battery cells to repair your battery, rather than be forced to replace it.
Demonstration, disassembly, and programming video:
https://www.youtube.com/watch?v=dwyA5rBjncg
[![FU-Dyson-BMS - (Unofficial) Firmware Upgrade for Dyson V6/V7 Vacuum Battery Management System](https://img.youtube.com/vi/dwyA5rBjncg/0.jpg)](https://www.youtube.com/watch?v=dwyA5rBjncg)
## 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
<img src="./hardware-info/images/V7 SV11 - PCB 279857.jpg" width="400" />
- Dyson V6 - Model SV04/SV09 - PCB 61462 - Compatible + Tested
<img src="./hardware-info/images/V6 SV04,SV09 - PCB 61462.jpg" width="400" />
- Dyson V6 - Model SV04 - PCB 188002 - Compatible + Tested
<img src="./hardware-info/images/V6 SV04 - PCB 188002, Repaired.jpg" width="400" />
Note: the model numbers are kind of weird. There are three different ways to identify/categorize your vacuum:
1. The advertised version number (V6, V7, etc)
2. The actual model number printed on the battery (SV04, SV09, SV11)
3. The part number printed on the battery PCB (61462, 279857, 188002).
Some models like SV04 contain different versions of the battery PCB. Many of these PCB versions are extremely similar and I have no idea why Dyson seems to have made at least 5 different versions. I recommend you use the PCB part number for reference if possible, or the model number printed on the battery otherwise. I still use the V6, V7 names in some places since that is what most people are familiar with, and I keep changing my mind as to which identification method is better.
**Probably not compatible:**
(Although it’d be interesting to see PCB photos of them to be sure)
- V10 vacuums
- V11 vacuums
- Anything newer
If you aren’t sure if your battery is compatible, please submit a Github issue with the highest quality photos possible of the battery PCB and provide the advertised model number (V6, V7, etc) and printed model number (SV09, SV11, etc) and I’ll try to tell you if it will work.
## How to install it:
Warning: The firmware flash process is irreversible. It is not possible to restore the factory firmware.
Summary:
0. Be careful. Li-ion batteries are no joke and must be respected. You're working on a live battery pack that can output 100+ Amps if short-circuited.
1. Disassemble battery pack to access PCB
2. Make sure all cells are charged above 3V and that the pack LEDs do *something* when you press the button (with magnet on reed switch if using V7). This confirms the 3.3V rail is regulating and the PIC is awake/working.
3. Remove conformal coating over programming connection points (if applicable)
4. Connect PICkit to computer and, if you using a PICkit 3 or clone, install the [PICkit 3 Programmer App and Scripting Tool v3.10](https://ww1.microchip.com/downloads/en/DeviceDoc/PICkit3%20Programmer%20Application%20v3.10.zip). (https://www.microchip.com/en-us/tools-resources/archives/mplab-ecosystem)
5. Connect PICkit to BMS board as shown below:
<img src="./hardware-info/images/PICkit Wiring Diagram_crop.jpg" width="720" />
6. Wake up battery pack by pressing button and placing magnet on reed switch (if using V7 vacuum)
7. While maintaining tension on wires to BMS board, make sure PICkit can see the PIC16LF1847 microcontroller, then import and write the hex file from the latest GitHub release.
<br/><br/>
For more details, see video linked at the top (https://www.youtube.com/watch?v=dwyA5rBjncg).
<br/><br/>
<sub><sup>Disclaimer: Lithium-ion batteries can be dangerous and must be respected. Proper cell balancing may reduce this danger which is why only trained professionals who implement cell balancing according to the manufacturer recommended best practices should work on them...wait...well that doesn't include Dyson either so I guess we're on our own. According to the internet, they can spontaneously catch fire, burn your house down, drain your retirement fund, and run away with your wife. Consider yourself warned, and please don't sue me if something goes wrong because I assume no liability and provide no warranty. See section 15 and 16 of the COPYING file for more details.
## Miscellaneous Thoughts on Repairing a Battery Pack
![Battery Cell Connections and Measurement Points](https://user-images.githubusercontent.com/46428760/168488794-7eb77a0e-5629-472b-b02a-e23a85353311.jpg)
If you left your battery in storage for a long time, you may have found it no longer turns on at all and won’t charge either. This is because the battery cells have self-discharged so low that the ISL94208 won’t even turn on, which means the microcontroller won’t turn on either.
If you connect a constant current power supply directly to the terminals of the battery pack bypassing the BMS board, you can slowly recharge the cells until they are back within a normal voltage range (above 3V). I've found the [PCBite probes](https://store-usa.arduino.cc/products/4x-sp10-probes-and-test-wires?selectedStore=us) to work well for easily connecting any cell or pack to a bench power supply. Soldering small wires to the nickel strips or jamming on alligator clips somehow would probably work too. I recommend charging at 50-100mA until all cells are over 3V. For safety, you don’t want to charge a battery that’s been depleted too far at the normal charge current (700mA).
After all cells are above 3V, the BMS should power up as usual. If you aren’t getting the 32 red blinks of death, you might not even need to install this firmware (as much as it pains me to admit it). While you have the battery disassembled, I’d recommend making sure all the battery cells are within 100mV of each other,
weixin_44602405
- 粉丝: 40
- 资源: 25
最新资源
- 基于区块链的乳制品溯源系统文档+源码+全部资料+高分项目.zip
- 基于区块链技术之可溯源珠宝电商平台文档+源码+全部资料+高分项目.zip
- 基于区块链的药品溯源系统(学习开发中)文档+源码+全部资料+高分项目.zip
- 基于事件驱动+事件溯源+Saga的微服务示例文档+源码+全部资料+高分项目.zip
- 基于使用Axon框架基于DDD领域驱动设计、CQRS读写分离和事件溯源来实现货物运输系统文档+源码+全部资料+高分项目.zip
- 基于若依后台管理系统的代码溯源系统文档+源码+全部资料+高分项目.zip
- 基于以太坊 Solidity 语言开发秒钛坊区块链智能合约致辞供应链金融信贷周期全流程溯源文档+源码+全部资料+高分项目.zip
- 基于事件溯源基于事件回溯的高性能架构,例如:秒杀、抢红包、12306卖票等,实现cqrs最复杂的模型, 通过事件是追加的特性,然后结合事件批量提交的手段,避免在
- Visual Studio Code中的IntelliSense功能详解.pdf
- 基于溯源图的入侵威胁检测相关论文及阅读笔记文档+源码+全部资料+高分项目.zip
- Keil C51 插件 检测所有if语句
- 基于优雅的Laravel框架开发咖啡壶是一个免费、开源、高效且漂亮的资产管理平台。资产管理、归属使用者追溯、盘点以及可靠的服务器状态管理面板文档+源码+全部资料+高分项目.zip
- 基于云链聚合的隐私保护数据共享与溯源平台文档+源码+全部资料+高分项目.zip
- 各种排序算法java实现的源代码.zip
- java考试题目总132
- 用c语言实现各种排序算法
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈