2020年1月25日土曜日

HM-10クローンのファームウェアを書き換えてみた

だいぶ前にHM-10だと思って買ったCC41-AというBLEモジュールがAndroid10端末でうまくペアリングできなくて、調べてみるとどうやらファームウェアが悪そうなのでアップデートしてみた。
iPhoneだと問題ないんだけどねぇ

CC41-AってのはHM-10というBLEモジュールのクローンでクリスタルが内蔵クロックになっていたりとコスト削減されていてファームウェアもHM-10とは違う模様。
本家HM-10のファームが乗るらしいので試しにHM-10のファームにアップデートしてみた。
今回はArduinoのフォーラムを参考にさせてもらった。レスを見てるとなんかうまく行ってない人もいるっぽいので自己責任ですね。

TiのCC2541というチップと搭載しているらしいんだけど書き込み機とか持ってないのでArduinoで互換のライタを作れるみたいなのでそちらを使用させてもらった。

まずはCCLoaderをダウンロードしてArduinoの互換ライタを準備
ファームウェアはHM-10の製造元のHuamaoのサイトからダウンロードできるけど、ブートローダーが含まれているものが必要らしいのでCCLoaderに付属のものを使用させてもらった。

自分が持っているCC41-Aモジュールはブレークアウト基板付きのモジュールだったので熱収縮チューブをカットして端子を露出させる。

そしたらデバッグ用の端子3箇所にリードをはんだ付け。
とりあえずこれを先程のファームを書いたArduinoに接続。

まぁ確かに5VのArduinoにダイレクトに接続するのはよくなさそうだけどみんなこれで壊れてないようなので面倒だしダイレクト接続で…

これでPCにつないで先程のCCLoaderのなかのCCLoader_x86_64.exeでこれまた付属のCC2541hm10v540.binを書き込む。

コマンドプロンプトを開いて
CCLoader_x86_64.exe 5 CC2541hm10v540.bin 0
のような感じで実行。この場合5はArduinoがCOM5だからで、0はArduinoがAtmega328系だから。パスなどは適宜…
とりあえずこれでブートローダー込のHM-10ファームが書き込めたのでHuamaoの公式ページから最新のHM-10用v707ファームをダウンロードしてきてアップデートしてみた

HM-10化したモジュールをUARTでPCに接続してボーレート9600でAT+SBLUPを送信。
あとは公式アップデータでアップデートするだけみたい。

これで最新のHM-10になったぞ…

ATコマンドが結構変わってたりするのでHM-10の情報を参考にするとそのまま使えそう。
クローンだとボーレート関連の番号が公式と全然違ったりするからこまるよな…

0 件のコメント:

コメントを投稿