Hi!
I've been working on producing a from-scratch firmware replacement for the Dyson V10 vacuum cleaner battery packs.
Why?
Well, because the original firmware on these boards permanently disables the pack when the cells fail/go out of balance, and even if you replace the cells, the BMS won't ever work again as it stores an error code in its' internal flash.
I've managed to produce replacement firmware which mimics the functionality of the existing one, including a serial connection to the vacuum cleaner which tricks it into thinking it's talking to a genuine original pack.
This is available under the GPL v3, at
https://github.com/davidmpye/V10_Dyson_BMS/In summary:
What works: Charging and discharging are supported, and it can communicate with the vacuum cleaner so it powers up.
What doesnt: I haven't implemented temperature protection yet, so while over/undervoltage are catered for, the temperature of the pack ISNT currently monitored.
At the moment, if you'd like to try it you will need: Microchip Studio (free download) and an SWD programmer that Microchip Studio supports (eg ATMEL ICE, though other CMSIS-DAP compliant programmers might work too - please let me know if they do!)
I've produced basic flashing instructions
https://github.com/davidmpye/V10_Dyson_BMS/wiki/FlashingIt is possible to flash it using a Raspberry Pi and its' GPIO headers directly as well, but this requires a modified version of OpenOCD and some other hackery to get the Security Bit disabled from the MCU. In time, when the project is more complete, I will be able to produce SD card images which will auto-flash the packs to make things more accessible :-)
If anyone fancies collaborating/testing etc, please do let me know :-)
David