Open Battery Informationのファームウェアを書き込み!Arduino Nanoでブラウザから直接インストールしてみた

未分類
スポンサーリンク

マキタの18Vバッテリーなどの状態を確認できるオープンソースプロジェクト「Open Battery Information」を試してみました。

半年ほど前に目をつけていたプロジェクトですが、マキタの中古バッテリーなども購入してきたので、診断のためにつくってみることにしました。

なお、マキタの純正のバッテリーチェッカーは2万以上します。

Arduinoを使うことで2000円以内でチェッカーを自作することができます。また、万が一バッテリーがロックされても解除も行うことができます。

今回は、Arduino Nanoにファームウェアを書き込むところまで実施しました。実際に試してみると、Arduino IDEを使わなくても、Webブラウザから直接ファームウェアを書き込むことができました。

一方で、ほかのサイトではブラウザからの書き込みができなかったという情報も見かけます。Arduinoの種類やブートローダーによっては、同じ方法でうまくいかない可能性もあります。

この記事では、実際に試した方法と、書き込みに失敗した場合に検討したい対処方法を紹介します。

Open Battery Informationとは?

Open Battery Informationは、バッテリー内部のBMS(バッテリー管理システム)と通信し、バッテリーの状態を確認したり、一部のエラー状態を操作したりするためのオープンソースプロジェクトです。

一般的に、電動工具のバッテリーは故障や異常を検知すると、保護機能によって使用できなくなる場合があります。このプロジェクトは、そうしたバッテリーの状態を調査し、修理に役立てることを目的としています。

公式サイトはこちらです。

公式サイト: https://openbatteryinformation.github.io/index.html

現在のWeb版では、対応するArduinoなどのマイコンを使ってバッテリーと通信できます。対応機種であれば、セル電圧や温度、充電回数、ステータスなどを確認できます。

ただし、すべてのバッテリーに対応しているわけではありません。現在の公式案内では、Arduino OBIインターフェースを使用したマキタLXTシリーズなどが対象となっています。

また、バッテリーの状態によっては、情報を確認できても修復できるとは限りません。

今回の作業内容

今回実施したのは、Arduino Nanoへのファームウェアの書き込みまでです。

実際の作業では、Arduino IDEを使用せず、公式サイトから直接ファームウェアを書き込みました。

作業内容は次のとおりです。

  • Arduino Nanoを用意する
  • USBケーブルでパソコンに接続する
  • Open Battery Informationの公式サイトを開く
  • ファームウェアの書き込み機能を利用する
  • 書き込みを実施する

この方法で、私の環境では問題なく書き込みができました。

今回はファームウェアを書き込んだ段階までで、実際にバッテリーを接続して読み取りや修復を行うところまでは確認していません。

充電器コネクタ

Amazon.co.jp

ブラウザから直接ファームウェアを書き込む方法

まずは、Arduino IDEを使わない方法から紹介します。

1. 公式サイトを開く

以下の公式サイトにアクセスします。

Open Battery Information
Open Battery Information - diagnose and repair locked battery BMS modules from your browser. Flash firmware to an Arduin...

サイト内にあるファームウェア書き込み機能を利用します。書き込み画面に直接アクセスする場合は、次のURLです。

Flash firmware · Open Battery Information
Flash the Open Battery Information firmware to an Arduino Uno from your browser using AVRDUDE WebAssembly and Web Serial...

2. ArduinoをUSBで接続する

ArduinoをUSBケーブルでパソコンに接続します。

ブラウザからシリアルポートを利用するため、ChromeやEdgeなどの対応ブラウザを使用します。また、USBシリアル変換機能が正常に動作するケーブルと、必要なドライバーが認識されていることも確認します。

充電専用のUSBケーブルでは通信できないので注意してください。

3. 書き込み画面からファームウェアを書き込む

公式の書き込み画面では、対象のボードを選択してから書き込みを実行します。

画面の案内に従ってUSBシリアルポートを選択し、ファームウェアの書き込みを進めます。

公式の説明では、ブラウザ上で動作するAVRDUDEを利用して書き込みを行う仕組みになっています。通常は、別途Arduino IDEをインストールする必要はありません。

なお、公式の書き込み画面で標準的に案内されているAVR系ボードはArduino Unoです。Arduino Nanoは公式の標準対象として明記されていないため、Nanoで同じように書き込めるかどうかは、ボードの仕様やブートローダーなどの条件に左右されます。

4. 今回はArduino Nanoへの書き込みに成功

実際に試したところ、私の環境ではArduino Nanoへのファームウェア書き込みが問題なく完了しました。

Arduino Nanoの場合は、必ずArduino IDEをインストールして、ソースコードをコンパイルしなければならないと思っていましたが、今回の方法ではその必要がありませんでした。

ブラウザから直接書き込めるので、環境構築の手間を減らせるのは大きなメリットです。

ただし、今回成功したからといって、すべてのArduino Nanoで同じように動作するとは限りません。

ブラウザから書き込めない場合は?

Open Battery Informationの書き込み機能は便利ですが、Arduinoの種類によってはうまく書き込めない可能性があります。

特に注意したいのが、古いArduino Nanoや互換ボードです。

Arduino Nanoには、ATmega328Pを搭載したモデルのほか、ATmega168を搭載したモデルなどがあります。また、同じATmega328P搭載モデルでも、ブートローダーの違いによって書き込み方法が異なる場合があります。

そのため、ブラウザからの書き込みに失敗した場合は、すぐにArduino本体の故障と判断せず、ボードの種類やブートローダーを確認するのがおすすめです。

まずは確認したいこと

  1. USBケーブルがデータ通信に対応しているか
  2. パソコンがArduinoのシリアルポートを認識しているか
  3. ブラウザがシリアルポートへのアクセスに対応しているか
  4. ArduinoのマイコンがATmega328Pなのか、ATmega168なのか
  5. ブートローダーが新しいタイプなのか、古いタイプなのか

Arduino IDEでは、古いNano向けに「ATmega328P(Old Bootloader)」を選択できる場合があります。古いNanoや互換ボードで書き込みが失敗する場合は、この設定が関係している可能性があります。

ただし、ブラウザ版の書き込みツールで失敗した場合に、単純に古いブートローダーが原因だと断定することはできません。

それでも書き込めない場合は、ソースコードから書き込む方法を検討

ブラウザからの書き込みがうまくいかない場合は、GitHubからファームウェアのソースコードを取得し、開発環境を使って書き込む方法があります。

Open Battery Informationのファームウェアは、以下のGitHubリポジトリで公開されています。

GitHub - mnh-jansson/open-battery-information
Contribute to mnh-jansson/open-battery-information development by creating an account on GitHub.

ファームウェア関連のファイルは、リポジトリ内の「ArduinoOBI」フォルダにあります。

方法1:GitHubからソースコードをダウンロードする

GitHubのリポジトリを開き、「Code」から「Download ZIP」を選択します。

ダウンロードしたZIPファイルを展開すると、ソースコードを確認できます。

Gitを使える場合は、リポジトリをクローンして取得する方法でも構いません。

方法2:Arduino IDEではなく、PlatformIOを使う方法もある

ここは少し注意が必要です。

現在のOpen Battery Information公式リポジトリでは、ソースコードからファームウェアをビルドして書き込む方法として、VS CodeとPlatformIOを使う手順が案内されています。

そのため、ソースコードをダウンロードしてArduino IDEで開けば必ず書き込める、というわけではありません。

基本的には、次の手順で進めるのが公式案内に沿った方法です。

  1. VS Codeをインストールする
  2. VS CodeにPlatformIO拡張機能をインストールする
  3. GitHubから取得したプロジェクト内の「ArduinoOBI」フォルダを開く
  4. プロジェクトのREADMEに記載された手順を確認する
  5. 対応するボードやビルド設定を確認する
  6. ファームウェアをビルドして、Arduinoへ書き込む

公式リポジトリはこちらです。

GitHub - mnh-jansson/open-battery-information
Contribute to mnh-jansson/open-battery-information development by creating an account on GitHub.

重要: 今回はブラウザからの書き込みに成功したため、ソースコードからのビルドや書き込みは実施していません。したがって、古いArduino Nanoに対する具体的な設定や、Arduino IDEだけでのビルドが可能かどうかは未検証です。

古いNanoに対応させる場合は、まずマイコンの種類とブートローダーを確認し、そのうえでプロジェクトのビルド設定や依存ライブラリを確認する必要があります。

Arduino IDEで書き込む場合の注意点

一般的なArduino Nanoであれば、Arduino IDEから書き込む際に次の設定を確認できます。

  • ボード: Arduino Nano
  • プロセッサ: ATmega328P、またはATmega328P(Old Bootloader)
  • ポート: Arduinoが接続されているシリアルポート

ただし、これはArduino IDEで一般的なスケッチを書き込む際の基本設定です。Open Battery InformationのファームウェアをArduino IDEから直接ビルドできることを保証するものではありません。

Open Battery Informationのファームウェアには、プロジェクト固有のソースコードや依存関係があります。Arduino IDEで使用するには、それらがArduino IDEに対応した構成になっている必要があります。

公式の案内に従うのであれば、まずはPlatformIOでのビルド方法を確認するのが確実です。

ファームウェアを書き込んだだけでは、まだバッテリーの診断はできない

今回の作業は、Arduino Nanoへのファームウェアの書き込みまでです。

実際にバッテリーの状態を読み取るには、Arduinoだけでなく、対応するOBIインターフェースを用意し、バッテリーと正しく配線する必要があります。

そのうえで、公式サイトのOBI-1ツールを開き、Arduinoに接続してバッテリー情報を読み取ります。

OBI-1ツールはこちらです。

OBI-1 · Open Battery Information
Open Battery Information - OBI-1: read LXT battery packs through an Arduino over Web Serial.

なお、バッテリー内部には大きなエネルギーが蓄えられています。誤配線や端子の短絡は、バッテリーやArduinoの破損、発熱などにつながる可能性があります。配線図を確認し、対応機種と接続方法を十分に確認してから作業してください。

まとめ

今回はOpen Battery InformationのファームウェアをArduino Nanoに書き込んでみました。

実際に作業してみると、公式サイトから直接ファームウェアを書き込むことができ、Arduino IDEを使わずに済みました。

一方で、古いArduino Nanoや互換ボードでは、マイコンやブートローダーの違いによって書き込みに失敗する可能性があります。

その場合は、USBケーブルやシリアルポートの確認に加えて、ボードの種類やブートローダーを確認してみるとよいでしょう。

さらに、ブラウザからの書き込みが難しい場合は、GitHubからソースコードを取得し、公式が案内するPlatformIOを使ってビルド・書き込みを行う方法もあります。

今回確認できたのは、あくまでArduino Nanoへのファームウェア書き込みまでです。今後、実際に対応するマキタのバッテリーを接続して、セル電圧や充電回数などを読み取れるかどうかも試してみたいと思います。

参考リンク

コメント

タイトルとURLをコピーしました