
Placa de interfaz de batería I2C/SMBus con ingeniería inversa para DJI Spark, que reemplaza la batería inteligente OEM por una LiPo 3S estándar. Incluye análisis de protocolo, PCB personalizada y firmware ATmega328P para emulación de comunicación en tiempo real.
Una placa personalizada de interfaz de batería y telemetría orientada a la investigación para la plataforma DJI Spark, construida alrededor de un paquete de baterías LiPo 3S estándar en lugar de la batería inteligente OEM descontinuada y difícil de encontrar.
Este proyecto documenta una interfaz de comunicación de batería inteligente I2C/SMBus sometida a ingeniería inversa, desarrollada originalmente para estudiar cómo el controlador de vuelo del DJI Spark se comunica con su paquete de baterías. La placa se sitúa entre un paquete 3S estándar y el dron, lee los voltajes y corrientes reales de las celdas, y reproduce esa interfaz de comunicación.
Docs/I2C_BMS_PROTOCOL.md.Firmware/README.md para la implementación completa del protocolo.
| Superior | Inferior | Diseño |
|---|---|---|
![]() | ![]() | ![]() |
Firmware/README.md para saber por qué un ESP32 no funciona aquí).Docs/SparkAltBatteryBoardV1.pdfMechanical/batterymount.stpLa revisión de la PCB fue preparada como un proyecto KiCad orientado a la fabricación, no solo como un esquemático de prueba de concepto.
Las consideraciones de diseño incluyen:
Proyecto PlatformIO dirigido al ATmega328P (distribución de pines Arduino Uno/Nano). Maneja la lógica esclava I2C, lecturas ADC, cálculo CRC-8 PEC y todas las respuestas de comandos SBS/DJI.
pio run -e uno
pio run -e uno -t upload
Mapa de pines completo, tabla de comandos soportados y limitaciones conocidas: Firmware/README.md.
Las capturas crudas del analizador lógico utilizadas para decodificar el protocolo se incluyen como referencia:
Docs/sniffedsession2.csvDocs/sniffedsession3.csvDocs/I2C_BMS_PROTOCOL.mdEl video a continuación muestra un prototipo anterior probado hace aproximadamente 4 años. No representa una prueba de vuelo de la revisión de PCB rediseñada en este repositorio.
Este es un proyecto de ingeniería inversa de aficionado, compartido con fines educativos. Volar con una batería/BMS modificada es bajo su propio riesgo — verifique los voltajes de las celdas, los límites de corriente y el cableado usted mismo antes del vuelo. No está afiliado ni respaldado por DJI.
El prototipo original fue probado en vuelo en el pasado. La revisión de PCB rediseñada en este repositorio aún no ha sido probada en vuelo porque el dron de prueba original fue dañado posteriormente en un accidente.
Código fuente disponible para uso personal, educativo y de investigación. No se permite el uso comercial sin permiso por escrito. Consulte LICENSE (MIT con cláusula Commons).
| Carpeta | Contenido |
|---|
Hardware/ | Proyecto KiCad: esquemáticos, diseño de PCB, modelos 3D de conectores, Gerbers, BOM |
Firmware/ | Proyecto PlatformIO para el emulador de batería I2C/SMBus ATmega328P |
Mechanical/ | Modelo 3D de soporte de batería (STEP) |
Docs/ | PDF de esquemáticos, notas de ingeniería inversa del protocolo, sesiones I2C capturadas crudas, fotos/video de referencia |