littlebot
Published on 2025-04-09 / 1 Visits
0

【源码】基于Arduino平台的小米M365兼容BMS系统

项目简介

本项目是一个用于小米M365电动滑板车的BMS(电池管理系统)替代固件。采用Arduino平台和PlatformIO进行开发,运行于ATMega328p MCU之上,借助I²C对TI BQ769x0电池监控IC加以控制。该项目实现了小米M365的专有BMS协议,用户能够在原生或第三方应用里查看电池信息。

项目的主要特性和功能

  1. 电池信息监测:利用库仑计数实现电池SOC(mAh、%)监测,同时可对电池组电压、单电池电压、电流以及温度进行监测。
  2. 充放电管理:支持充电和放电周期管理,具备过流、过压、欠压保护功能。
  3. 应用兼容性:电池信息可在原生应用或第三方应用(如m365 Tools)中查看。

安装使用步骤

硬件准备

  1. 准备BMS硬件,推荐选用30A版本的SP15SV0001 - LLTAliexpress上的产品。
  2. 准备一个6pin ISP编程器,如Aliexpress上的产品。
  3. 准备串行UART适配器,可从BMS商店或Aliexpress购买。

硬件改造

  1. 电流传感器电阻调整:默认BMS的电流传感器电阻不利于准确的库仑计数,可移除部分4mOhm电阻,使剩余四个,将传感器电阻调整为1mOhm。
  2. 接线:M365 ESC连接到BMS的P -;C - 用于充电;不要切断M365 ESC上的大 - 痕迹;BMS到M365的额外电线只有RX和TX。

软件配置

  1. 配置参数:根据电池情况,在src/main.h中配置capacitynominal_voltagefull_voltageODP_currentUVP_voltageOVP_voltage等参数。若已刷入固件,可使用configtool.py进行修改。
  2. 编译:使用PlatformIO进行编译,参考其文档开始。
  3. 编程bootloader:连接ISP编程器到BMS,选择正确的bootloader文件和保险丝值,使用avrdude工具烧录bootloader。
  4. 上传/更新固件:使用platformio上传固件,上传前短接RESET引脚到GROUND;更新固件前可运行bootloader.py /dev/ttyUSB0

调试与连接

  1. 调试:确保温度传感器和电线连接正确,若万用表显示电压异常,可通过短接GND与ISP上的RST重置BMS。可在交互式Python shell中运行configtool.py /dev/ttyUSB0进行调试。
  2. 连接M365:检查BMS工作正常(+和P - 之间电压正常且通过UART通信,启动时打印BOOTED!)后,将ESC的R引脚连接到BMS的TX引脚,T引脚连接到RX引脚。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】