
A custom research-oriented battery interface and telemetry board for the DJI Spark platform, built around a standard 3S LiPo battery pack instead of the discontinued, hard-to-find OEM Smart Battery.
This project documents a reverse-engineered I2C/SMBus smart-battery communication interface, originally developed to study how the DJI Spark flight controller communicates with its battery pack. The board sits between a standard 3S pack and the drone, reads the real cell voltages and current, and reproduces that communication interface.
Docs/I2C_BMS_PROTOCOL.md.Firmware/README.md for the full protocol implementation.
| Top | Bottom | Layout |
|---|---|---|
![]() | ![]() | ![]() |
Firmware/README.md for why an ESP32 doesn't work here).Docs/SparkAltBatteryBoardV1.pdfMechanical/batterymount.stpThe PCB revision was prepared as a manufacturing-oriented KiCad project, not only as a proof-of-concept schematic.
Design considerations include:
PlatformIO project targeting the ATmega328P (Arduino Uno/Nano pinout). Handles the I2C slave logic, ADC reads, CRC-8 PEC calculation, and all SBS/DJI command responses.
pio run -e uno
pio run -e uno -t upload
Full pin map, supported command table, and known limitations: Firmware/README.md.
The raw logic analyzer captures used to decode the protocol are included for reference:
The video below shows an earlier prototype tested around 4 years ago. It does not represent a flight test of the redesigned PCB revision in this repository.
This is a hobbyist reverse-engineering project, shared for educational purposes. Flying with a modified battery/BMS is at your own risk — verify cell voltages, current limits, and wiring yourself before flight. Not affiliated with or endorsed by DJI.
The original prototype was flight-tested in the past. The redesigned PCB revision in this repository has not yet been flight-tested because the original test drone was later damaged in a crash.
Source-available for personal, educational, and research use. Commercial use is not permitted without written permission. See LICENSE (MIT with Commons Clause).
| Folder | Contents |
|---|
Hardware/ | KiCad project: schematics, PCB layout, 3D connector models, Gerbers, BOM |
Firmware/ | PlatformIO project for the ATmega328P I2C/SMBus battery emulator |
Mechanical/ | Battery mount 3D model (STEP) |
Docs/ | Schematic PDF, protocol reverse-engineering notes, raw sniffed I2C sessions, reference photos/video |