
DJI Spark用にリバースエンジニアリングされたI2C/SMBusバッテリーインターフェースボード。OEMスマートバッテリーを標準の3S LiPoに置き換えます。プロトコル解析、カスタムPCB、およびリアルタイム通信エミュレーションのためのATmega328Pファームウェアを含みます。
DJI Sparkプラットフォーム向けのカスタム研究用バッテリーインターフェースおよびテレメトリーボード。生産終了で入手困難な純正スマートバッテリーの代わりに、標準的な3S LiPoバッテリーパックをベースに構築されています。
このプロジェクトは、リバースエンジニアリングされたI2C/SMBusスマートバッテリー通信インターフェースを文書化したもので、当初はDJI Sparkのフライトコントローラーがバッテリーパックとどのように通信するかを研究するために開発されました。ボードは標準の3Sパックとドローンの間に配置され、実際のセル電圧と電流を読み取り、その通信インターフェースを再現します。
Docs/I2C_BMS_PROTOCOL.mdを参照。Firmware/README.mdを参照してください。
| 上面 | 下面 | レイアウト |
|---|---|---|
![]() | ![]() | ![]() |
Firmware/README.mdを参照)。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)を参照してください。
| フォルダ | 内容 |
|---|
Hardware/ | KiCadプロジェクト: 回路図、PCBレイアウト、3Dコネクタモデル、ガーバーデータ、BOM |
Firmware/ | ATmega328P I2C/SMBusバッテリーエミュレータ用のPlatformIOプロジェクト |
Mechanical/ | バッテリーマウント3Dモデル (STEP) |
Docs/ | 回路図PDF、プロトコルリバースエンジニアリングノート、生のスニッフィングI2Cセッション、参考写真/動画 |