项目简介
本项目是一个用于小米M365电动滑板车的BMS(电池管理系统)替代固件。采用Arduino平台和PlatformIO进行开发,运行于ATMega328p MCU之上,借助I²C对TI BQ769x0电池监控IC加以控制。该项目实现了小米M365的专有BMS协议,用户能够在原生或第三方应用里查看电池信息。
项目的主要特性和功能
- 电池信息监测:利用库仑计数实现电池SOC(mAh、%)监测,同时可对电池组电压、单电池电压、电流以及温度进行监测。
- 充放电管理:支持充电和放电周期管理,具备过流、过压、欠压保护功能。
- 应用兼容性:电池信息可在原生应用或第三方应用(如m365 Tools)中查看。
安装使用步骤
硬件准备
- 准备BMS硬件,推荐选用30A版本的SP15SV0001 - LLT或Aliexpress上的产品。
- 准备一个6pin ISP编程器,如Aliexpress上的产品。
- 准备串行UART适配器,可从BMS商店或Aliexpress购买。
硬件改造
- 电流传感器电阻调整:默认BMS的电流传感器电阻不利于准确的库仑计数,可移除部分4mOhm电阻,使剩余四个,将传感器电阻调整为1mOhm。
- 接线:M365 ESC连接到BMS的P -;C - 用于充电;不要切断M365 ESC上的大 - 痕迹;BMS到M365的额外电线只有RX和TX。
软件配置
- 配置参数:根据电池情况,在src/main.h中配置
capacity
、nominal_voltage
、full_voltage
、ODP_current
、UVP_voltage
、OVP_voltage
等参数。若已刷入固件,可使用configtool.py
进行修改。 - 编译:使用PlatformIO进行编译,参考其文档开始。
- 编程bootloader:连接ISP编程器到BMS,选择正确的bootloader文件和保险丝值,使用
avrdude
工具烧录bootloader。 - 上传/更新固件:使用platformio上传固件,上传前短接RESET引脚到GROUND;更新固件前可运行
bootloader.py /dev/ttyUSB0
。
调试与连接
- 调试:确保温度传感器和电线连接正确,若万用表显示电压异常,可通过短接GND与ISP上的RST重置BMS。可在交互式Python shell中运行
configtool.py /dev/ttyUSB0
进行调试。 - 连接M365:检查BMS工作正常(+和P - 之间电压正常且通过UART通信,启动时打印
BOOTED!
)后,将ESC的R引脚连接到BMS的TX引脚,T引脚连接到RX引脚。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】