
Placa de interface I2C/SMBus com engenharia reversa para o DJI Spark, substituindo a bateria inteligente OEM por uma LiPo padrão 3S. Inclui análise de protocolo, PCB personalizada e firmware ATmega328P para emulação de comunicação em tempo real.
Uma placa de interface de bateria e telemetria personalizada e orientada à pesquisa para a plataforma DJI Spark, construída em torno de uma bateria LiPo 3S padrão em vez da bateria inteligente OEM descontinuada e difícil de encontrar.
Este projeto documenta uma interface de comunicação de bateria inteligente I2C/SMBus com engenharia reversa, originalmente desenvolvida para estudar como o controlador de voo do DJI Spark se comunica com sua bateria. A placa fica entre um pack 3S padrão e o drone, lê as tensões reais das células e a corrente, e reproduz essa interface de comunicação.
Docs/I2C_BMS_PROTOCOL.md.Firmware/README.md para a implementação completa do protocolo.
| Superior | Inferior | Layout |
|---|---|---|
![]() | ![]() | ![]() |
Firmware/README.md para saber por que um ESP32 não funciona aqui).Docs/SparkAltBatteryBoardV1.pdfMechanical/batterymount.stpA revisão da PCB foi preparada como um projeto KiCad orientado à fabricação, não apenas como um esquema de prova de conceito.
As considerações de design incluem:
Projeto PlatformIO para o ATmega328P (pinagem Arduino Uno/Nano). Lida com a lógica escrava I2C, leituras ADC, cálculo de CRC-8 PEC e todas as respostas de comandos SBS/DJI.
pio run -e uno
pio run -e uno -t upload
Mapa completo de pinos, tabela de comandos suportados e limitações conhecidas: Firmware/README.md.
As capturas brutas do analisador lógico usadas para decodificar o protocolo estão incluídas para referência:
Docs/sniffedsession2.csvDocs/sniffedsession3.csvDocs/I2C_BMS_PROTOCOL.mdO vídeo abaixo mostra um protótipo anterior testado há cerca de 4 anos. Ele não representa um teste de voo da revisão redesenhada da PCB neste repositório.
Este é um projeto de engenharia reversa amador, compartilhado para fins educacionais. Voar com uma bateria/BMS modificada é por sua conta e risco — verifique você mesmo as tensões das células, limites de corrente e a fiação antes do voo. Não afiliado ou endossado pela DJI.
O protótipo original foi testado em voo no passado. A revisão redesenhada da PCB neste repositório ainda não foi testada em voo porque o drone de teste original foi danificado posteriormente em um acidente.
Código-fonte disponível para uso pessoal, educacional e de pesquisa. O uso comercial não é permitido sem permissão por escrito. Veja LICENSE (MIT com Commons Clause).
| Pasta | Conteúdo |
|---|
Hardware/ | Projeto KiCad: esquemas, layout da PCB, modelos 3D do conector, Gerbers, BOM |
Firmware/ | Projeto PlatformIO para o emulador de bateria I2C/SMBus ATmega328P |
Mechanical/ | Modelo 3D do suporte da bateria (STEP) |
Docs/ | Esquema PDF, notas de engenharia reversa do protocolo, sessões I2C brutas capturadas, fotos/vídeo de referência |