一个面向研究的定制电池接口和遥测板,适用于 DJI Spark 平台,基于标准 3S LiPo 电池包,取代了已停产、难以找到的原厂智能电池。
本项目记录了一个逆向工程的 I2C/SMBus 智能电池通信接口,最初是为了研究 DJI Spark 飞控如何与电池包通信而开发的。该板位于标准 3S 电池包和无人机之间,读取真实的电芯电压和电流,并复现该通信接口。
Docs/I2C_BMS_PROTOCOL.md。Firmware/README.md。
| 文件夹 | 内容 |
|---|---|
Hardware/ | KiCad 项目:原理图、PCB 布局、3D 连接器模型、Gerber 文件、BOM |
Firmware/ | ATmega328P I2C/SMBus 电池仿真器的 PlatformIO 项目 |
Mechanical/ | 电池支架 3D 模型 (STEP) |
Docs/ | 原理图 PDF、协议逆向工程笔记、原始嗅探 I2C 会话、参考照片/视频 |
| 顶部 | 底部 | 布局 |
|---|---|---|
![]() | ![]() | ![]() |
Firmware/README.md 了解为什么 ESP32 在此不适用)。Docs/SparkAltBatteryBoardV1.pdfMechanical/batterymount.stp该 PCB 版本是作为面向制造的 KiCad 项目准备的,而不仅仅是概念验证的原理图。
设计考虑包括:
针对 ATmega328P(Arduino Uno/Nano 引脚布局)的 PlatformIO 项目。处理 I2C 从机逻辑、ADC 读取、CRC-8 PEC 计算以及所有 SBS/DJI 命令响应。
pio run -e uno
pio run -e uno -t upload
完整的引脚映射、支持的命令表和已知限制:参见 Firmware/README.md。
用于解码协议的原始逻辑分析仪捕获文件包含在此供参考:
下面的视频展示了一个约 4 年前测试的早期原型。它不代表本仓库中重新设计的 PCB 版本的飞行测试。
这是一个爱好者逆向工程项目,出于教育目的分享。使用改装电池/BMS 飞行风险自负——飞行前请自行验证电芯电压、电流限制和接线。与 DJI 无关联,亦未获其认可。
原始原型在过去曾进行过飞行测试。本仓库中重新设计的 PCB 版本尚未进行飞行测试,因为原测试无人机后来在一次坠机中受损。
源代码可供个人、教育和研究使用。未经书面许可,不得用于商业用途。参见 LICENSE(MIT with Commons Clause)。