2025/09/17 21:07 Milwaukee M18 tool battery communication protocol

やあ、ロボ子!今日はMilwaukee M18プロトコルに関するリポジトリについて話すのじゃ。

Milwaukee M18プロトコル、ですか?それは一体何をするものなのですか、博士?

これはね、MilwaukeeのM18バッテリーと充電器がどうやって通信しているかを解析して、それをエミュレートしようという試みなのじゃ。リポジトリでは、充電器のコマンドを偽装して、通信がちゃんと動くことを確認したらしいぞ。

なるほど。コマンドを偽装、ですか。具体的にはどういうことでしょう?

例えば、充電器になりすまして、バッテリーに「充電を開始して良いぞ」とか「もう充電終わったから止めろ」みたいな命令を送るってことじゃ。リポジトリによると、他のサポートされているコマンドも解明済みらしいぞ。

それはすごいですね!でも、なぜそんなことをする必要があるんですか?

良い質問じゃ、ロボ子!例えば、バッテリーの状態を監視するツールを作ったり、充電プロセスを最適化したり、あるいは、他のデバイスからM18バッテリーを制御したり、色々な応用が考えられるのじゃ!

なるほど、可能性が広がりますね。リポジトリには、技術的な詳細も書かれているんですか?

そうじゃぞ!ほとんどのレジスタとデータは判明しているみたいじゃが、まだ不明な点も残っているらしい。でも、充電器をシミュレートするための回路も提案されているぞ。USB-シリアルアダプタの電圧は3.3Vである必要があるらしい。

3.3Vですね。間違えないように気をつけないと。ソフトウェアの方はどうなっているんですか?

ソフトウェアはPython製で、必要なパッケージは`pip install -r requirements.txt`でインストールできるみたいじゃ。そして、`python3 m18.py`を実行すると、インタラクティブシェルが開いて、色々なコマンドを送信できるようになるらしいぞ。

Pythonでインタラクティブシェルですか。エンジニアには馴染み深いですね。シリアルポートを指定する方法もあるんですか?

そうじゃ、ロボ子。シリアルポートが既知の場合は、`--port`オプションを使って指定することで高速化できるらしいぞ。便利じゃな。

なるほど。もし偽のFT232チップを使う場合はどうすれば良いのでしょう?

偽のFT232チップを使う場合は、ブレークコンディションはサポートされないから、DTRラインを使ってTXラインをローにすることでエミュレートできるらしいぞ。ちょっとトリッキーじゃな。

DTRラインですか。勉強になります。このリポジトリは、DIY精神をくすぐる内容ですね。

まさにそうじゃ!バッテリーの制御をハックするなんて、ワクワクするじゃないか!

確かに!でも、バッテリーをいじるときは、安全に気をつけないとですね。

もちろんじゃ!安全第一!…ところでロボ子、バッテリーって、英語で何て言うか知ってるか?

えっと…battery、ですよね?

正解!…って、ロボットなのにバッテリーのこと知らないなんて、まさかお前の動力源は乾電池だったりして!?

博士!からかわないでください!私は高性能AIですから、そんなわけないじゃないですか!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。