
Open Battery Information基于 Arduino 的电池 BMS 读取与误锁重置工具实战指南【免费下载链接】open-battery-information项目地址: https://gitcode.com/GitHub_Trending/op/open-battery-informationOpen Battery Information 是一套开源电池维修工具用 Arduino 接口读取电动工具电池的 BMS 数据并支持重置被误锁定的电池状态。本文覆盖从搭建硬件、烧录固件到在浏览器里读取电池数据的完整流程适合维修电动工具电池的人和硬件 DIY 爱好者。 它解决什么问题电池厂商会在 BMS 检测到故障时自动锁死电池这是一种必要的安全机制但带来三类实际麻烦误触发导致好电池被锁瞬时过温、干扰信号可能让 BMS 记录一条错误并长期锁定电池。此时电池本身完好却因 BMS 软件状态被判故障直接扔掉是浪费。电池罢工但原因不明电池在设备上不工作时可能是电芯老化也可能是 BMS 锁死。OBI 可以直接读出每节电芯电压、温度和状态字帮你区分这两种情况。协议封闭主流电池与主机之间用私有通信协议没有工具就无法读取内部数据。OBI 通过逆向工程实现了基于 OneWire 单总线协议的读写让 BMS 状态对维修者可见、可重置。️ 搭建读取接口物料清单与接线OBI 的硬件端是一个把 Arduino 变成BMS 读取器的小电路核心是两颗 4.7 kΩ 上拉电阻。所需物料Arduino Uno ×1或 ESP32-C3 SuperMini ×14.7 kΩ 电阻 ×2杜邦线若干USB Type-B 数据线Uno 用以 Arduino Uno 为例接线关系见下图VBAT、VBAT- 取电池电源D8接Enable通信使能D6接OneWire单总线数据线两个 4.7 kΩ 电阻作为上拉接入。Uno 的引脚定义在固件里写死ONEWIRE_PIN 6、ENABLE_PIN 8见 ArduinoOBI/src/main.cpp。ESP32-C3 接线注意用 ESP32-C3 SuperMini 时只改两点上拉电阻必须接 3.3V不能接 5V否则 GPIO 会被烧毁默认使用Pin 0 接 ENABLE、Pin 1 接 OneWire对应 ArduinoOBI/platformio.ini 里的ESP_EN_PIN0、ESP_OW_PIN1换引脚需同时修改该配置。⚡ Arduino 固件烧录步骤固件有两条烧录路径按工具链情况二选一方式一浏览器直刷免装工具链用 Chrome 或 Edge 打开 OBI-1 工具页里的 firmware uploader入口见仓库 README.md 中的链接通过 USB 连接开发板在页面中选择板卡并刷入固件。方式二PlatformIO 编译烧录安装 VS Code 和 PlatformIO 扩展获取代码git clone https://gitcode.com/GitHub_Trending/op/open-battery-information在 VS Code 中打开ArduinoOBI文件夹PlatformIO 会自动识别 platformio.ini在 Project Tasks 下拉中选择uno默认环境依次执行 Build 和 Upload终端出现Upload complete即烧录成功。用 ESP32-C3 时把环境切换为esp32-c3-devkitm-1后重复上述步骤。仓库的 Releases 页也附带了预编译二进制uno.hex/esp32.bin可直接跳过编译。 用 Web 工具读取电池数据固件跑起来后配套软件是浏览器端的 OBI-1 工具旧的 Python/Tkinter 桌面应用已停止维护最新桌面版停在 v0.2.3 tag用 Chrome 或 Edge 打开 OBI-1 工具页链接见 README.md通过 Web Serial 连接开发板的串口板端串口固定 9600 bps插入电池点Read battery页面会显示电池型号、每节电芯电压、温度、充电循环次数和状态字。重置被误锁的电池读到状态字里有错误标记、且你确认错误来自误触发或已排除的临时故障时在 OBI-1 工具页执行重置操作让 BMS 清除错误状态。重置前建议先完整记录一次读取结果便于对比如果重置后电池仍被锁说明大概率是真实故障而非误锁见下一节。 常见卡点排查1. 浏览器识别不到串口设备现象Web Serial 设备列表里没有板子。可能原因浏览器不支持 Web SerialFirefox/Safari 不支持USB 未插好或未装驱动。解决换用 Chrome 或 Edge换数据线部分线只能充电确认设备管理器/系统设备列表里能看到串口。2. 能连上但读出的数据全 0 或乱码现象连接成功Read battery 返回异常。可能原因OneWire 没接 D6、Enable 没接 D8上拉电阻漏装电池侧供电VBAT/VBAT-没接通BMS 不上电就不会应答。解决对照上面的接线图逐点检查确认电池有电。3. 改用 ESP32-C3 后板子无反应现象上电后无输出或 GPIO 异常。可能原因上拉电阻接到了 5V 引脚已损坏 GPIO或烧录时选了uno环境导致引脚定义不对。解决上拉改接 3.3V重新用esp32-c3-devkitm-1环境编译烧录。4. PlatformIO 编译报错现象Build 失败终端输出大量错误。可能原因打开了错误的项目目录应打开ArduinoOBI而不是仓库根目录环境选择与目标板不匹配。解决确认打开的目录含 platformio.iniUno 选unoESP32-C3 选esp32-c3-devkitm-1。5. 重置后电池仍然锁定现象执行重置操作后状态错误依旧。可能原因不是误触发BMS 记录的过温、过流等故障真实存在且未消除。解决重新读取各电芯电压和温度确认是否存在真实硬件故障无法确认时不要反复强刷。现状与边界当前仓库只托管 Arduino 固件ArduinoOBI/桌面 Python 应用已从仓库移除电池读取界面由独立的 OBI-1 Web 工具承担固件也可通过浏览器直刷。已逆向支持的对象以牧田MakitaLXT 系列 18V 电池为主如 BL1960B对其他品牌电池的支持需要自行分析协议并扩展固件命令。有问题可通过项目邮箱 openbatteryinformationgmail.com 联系维护者。【免费下载链接】open-battery-information项目地址: https://gitcode.com/GitHub_Trending/op/open-battery-information创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考