// the find
davidmpye/V10_Dyson_BMS
A reworked unofficial firmware for Dyson V10 Battery Management Systems
Replacement firmware for the SAMD20-based BMS in Dyson V10 vacuum batteries, targeting the TI BQ7693 cell monitor/protector IC. It restores function to battery packs that Dyson's official firmware has disabled, typically via over-discharge or cell imbalance trips that the stock firmware won't reset. Audience is hardware-comfortable people who've opened a V10 battery and own a JTAG/SWD debugger.
The BQ7693 driver is the real work here — handling cell balancing, protection thresholds, and I2C communication with that specific IC is non-trivial and saves anyone starting from scratch weeks of datasheet reading. The project includes OpenOCD config for the SAMD20 target, which removes the most frustrating first step for newcomers. EEPROM persistence for calibration state means the firmware survives power cycles without needing a host. The serial debug interface (separate from the main serial) is a practical choice that makes in-circuit diagnosis viable without interrupting normal operation.
The repo is archived and has moved to Codeberg — what's here is a dead snapshot, so bugs found now won't be fixed here and PRs are pointless. There's no safety documentation: no discussion of what happens if you flash this onto a pack with genuinely damaged cells, no warning about the protection thresholds being configurable in config.h. The build system is a mix of Atmel Studio project files and a CMake setup that may or may not be in sync — the CMakeLists.txt exists but there's no CI to prove it builds. No test coverage of any kind for the BMS logic, which matters when the output controls cell discharge protection on a 21.6V LiPo pack.