
Scheda di interfaccia batteria I2C/SMBus reverse-engineered per DJI Spark, che sostituisce la batteria intelligente OEM con una LiPo 3S standard. Include analisi del protocollo, PCB personalizzato e firmware ATmega328P per l'emulazione della comunicazione in tempo reale.
Una scheda di interfaccia e telemetria per batteria personalizzata orientata alla ricerca per la piattaforma DJI Spark, costruita attorno a un pacco batteria LiPo standard 3S invece della batteria intelligente OEM, fuori produzione e difficile da trovare.
Questo progetto documenta un'interfaccia di comunicazione per batteria intelligente I2C/SMBus reverse-engineered, originariamente sviluppata per studiare come il controller di volo DJI Spark comunica con il suo pacco batteria. La scheda si inserisce tra un pacco standard 3S e il drone, legge le tensioni reali delle celle e la corrente, e riproduce quell'interfaccia di comunicazione.
Docs/I2C_BMS_PROTOCOL.md.Firmware/README.md per l'implementazione completa del protocollo.
| Superiore | Inferiore | Layout |
|---|---|---|
![]() | ![]() | ![]() |
Firmware/README.md per spiegare perché un ESP32 non funziona qui).Docs/SparkAltBatteryBoardV1.pdfMechanical/batterymount.stpLa revisione del PCB è stata preparata come progetto KiCad orientato alla produzione, non solo come schema proof-of-concept.
Le considerazioni di progettazione includono:
Progetto PlatformIO mirato all'ATmega328P (pinout Arduino Uno/Nano). Gestisce la logica slave I2C, le letture ADC, il calcolo del CRC-8 PEC e tutte le risposte ai comandi SBS/DJI.
pio run -e uno
pio run -e uno -t upload
Mappa completa dei pin, tabella dei comandi supportati e limitazioni note: Firmware/README.md.
Le catture grezze dell'analizzatore logico utilizzate per decodificare il protocollo sono incluse come riferimento:
Docs/sniffedsession2.csvDocs/sniffedsession3.csvDocs/I2C_BMS_PROTOCOL.mdIl video qui sotto mostra un prototipo precedente testato circa 4 anni fa. Non rappresenta un test di volo della revisione del PCB riprogettata in questo repository.
Questo è un progetto di reverse engineering amatoriale, condiviso a scopo educativo. Volare con una batteria/BMS modificata è a proprio rischio — verificare personalmente le tensioni delle celle, i limiti di corrente e il cablaggio prima del volo. Non affiliato o approvato da DJI.
Il prototipo originale è stato testato in volo in passato. La revisione del PCB riprogettata in questo repository non è stata ancora testata in volo perché il drone di test originale è stato successivamente danneggiato in un incidente.
Codice sorgente disponibile per uso personale, educativo e di ricerca. L'uso commerciale non è consentito senza autorizzazione scritta. Vedi LICENSE (MIT con Commons Clause).
| Cartella | Contenuto |
|---|
Hardware/ | Progetto KiCad: schemi, layout PCB, modelli 3D dei connettori, Gerber, BOM |
Firmware/ | Progetto PlatformIO per l'emulatore di batteria I2C/SMBus ATmega328P |
Mechanical/ | Modello 3D del supporto batteria (STEP) |
Docs/ | PDF dello schema, note sul reverse engineering del protocollo, sessioni I2C grezze intercettate, foto/video di riferimento |