Sympapaのスマートホーム日記

スマートなんとかはスマートじゃない方法でつくられている

Sonoff Zigbee 3.0 USB Dongle Plusをファームアップする

Sympapaです。
半年ほど前にHome Assistantを導入した際、悩んだことのひとつにZigBeeコーディネーターの選択がありました。
人感センサーなどのセンサー類はZigBeeで通信するものが良いってところまでは簡単に辿り着いたのですが、ZigBeeコーディネーターはどれを買ったらいいのかなかなか判りませんでした。ZigBeeコーディネーターのほとんどはカスタムファームウェアを焼かなくてはいけない、ファームウェアを焼くにはそれ用の装置やケーブルを購入しコーディネータを分解して接続しなくてはいけない、しかもコーディネーターの中にはコネクタが実装されておらずハンダづけが必要なものも。。。更にWindows用のファームウェア書き込みソフトが用意されているようなやつならいいですが、コマンド叩いて書き込みしなくちゃいけないとかだと全くチンプンカンプン。
なんでHome Assistant純正ZigBeeコーディネーター販売してくれないんだ~って思ってました。


そんな中で見つけたのが"HUSBZB-1"。デフォルト状態のままファームウェアを焼かなくてもHome AssistantのZHA(ZigBee Home Autmation)で使用可能で、海外での評判も良いみたいでした。Aliexpressでは売っておらずAmazon.comで送料込み7,000円くらいしましたが背に腹は代えられず迷わずポチリました。
現在、我が家のHome Assistantではこの"HUSBZB-1"をコーディネーターとしたZHAがZigBee環境のメインになっていて、現在、約40個のデバイスが稼働しています。


そして、Home Assistantの環境構築がひととおり落ち着いた頃から、ZigBee2MQTTを試してみたいという思いと万一HUSBZB-1が壊れた時に復帰するための予備のコーディネーターが欲しいと思い始め、ファームウェアを焼かなくてもZHAとZigBee2MQTTで使える安価なコーディネーターを探していました。HUSBZB-1はZHAでしか使えないし予備で買うには高すぎます。


色々調べてお試し&予備用として最初に買ったのは"Sonoff Zigbee CC2531 USB Dongle"でした。デフォルトのファームウエアでZHAとZigBee2MQTTが使えて500円くらい。送料込みで900円くらいで買いました。
おかげでZigBee2MQTTを試すことが出来ましたが、世間の評価通り電波の飛びが悪く実用は厳しそうでした。


次にお試し&予備用として購入したのが、Sonoffから新たに発売され昨年12月くらいからAliexpressにも出回り始めた"Sonoff Zigbee 3.0 USB Dongle Plus" でした。送料込み1300円ほどでしたが現在は1900円くらいしますね。CC2652PベースでデフォルトのファームウェアでZHAとZigBee2MQTTで使用でき、アルミのケースに入っていてアンテナもついてます。


現在、ZigBee2MQTTで一部デバイスを接続しお試し運用中ですが、電波の飛びは"HUSBZB-1"に遠く及ばないものの実用できる範囲となっており、動作も安定しているように思います。
最近最近調べていたところ、"Sonoff Zigbee 3.0 USB Dongle Plus"はファームウェアを焼くためのデバイスやケーブル無くてもWindows PCのUSBソケットに繋いでファームウェアを焼けることが判りました。ファームウェアはコーディネーター用だけではなくZigBeeの電波が届く範囲を拡張してくれるルーター用も用意されており、ルーターファームウェアを焼くことでルーターとしても使えるようになります。


そんなわけで今回は最新のファームウェアを焼いてみたいと思います。

ファームウェアを焼いていく

ファームウェアを焼く方法はこのあたりを参考にしてWindows 10のPCを使用し焼いていきます。
notenoughtech.com

sonoff.tech


1)ファームウェアを焼くためのWindowsソフトウェアのインストール
こちらでTI FLASH-PROGRAMMER-2をダウンロードし解凍してインストールします。
www.ti.com



2)ファームウェアの入手
コーディネーター用の最新ファームウェアはここから入手できます。
"Sonoff Zigbee 3.0 USB Dongle Plus"用は”CC1352P2_CC2652P_launchpad_*.zip”です。
ダウンロードして解凍します。
github.com


3)ドングルを分解する
アンテナを外してUSBプラグ側のネジ2本を外せば基板を取り出せます。


4)ドングルをPCに接続する
"Sonoff Zigbee 3.0 USB Dongle Plus"をブートローダーモードでPCに接続するため、"Bootボタン"を押しながらPCのUSBポートに接続します。"Bootボタン"はそのまま押しっぱなしでキープし4~5秒に離します。


5)焼く
➀ TI FLASH-PROGRAMMER-2を起動して左上のConnected deviceから"Silicon Labs CP210xUSB to UART Bridge (COM x)"を選びます。
➁ その下のTarget Deviceが”unknown”の場合は、下の”Select Taget Device”のプルダウンメニューから”CC2652P”を選びます。
③ ”Main”タブを選びFlash Image欄にある”Blowse”ボタンを押して、さっきダウンロードし解凍したファームウェアの.hexファイルを選択します。
➃ Actionsの"Erace"にチェックを入れ"All unprotected Pages"にチェックを入れます。
"Program"にチェックを入れ"Entire source file"にチェックを入れます。
"Verify"にチェックを入れ"CRC check"にチェックを入れます。
➄再生マークを押すとスタートし下のStatusに進捗が表示されます。完了するとその下にSuccess!と表示されます。
f:id:sympapa:20220129102411p:plain


うまく接続できなかった場合は下のページからドライバーを入手して解凍し、デバイスマネージャを開いて、ポート(COMとMPT)から"Silicon Labs CP210xUSB to UART Bridge (COM x)"を選び、右クリック>ドライバーの更新>コンピュータを参照してドライバーを検索でさっきダウンロードして解凍したドライバを当てるとうまくいくかもしれません。
www.wch.cn


ということでファームウェアが変わったからといって調子が良くなったのかはわかりません。ってかファームウェアバージョンの調べ方が判らなかったので、デフォルトのファームウェアと今回焼いたファームウェアが違うのかも判らないけど(笑)
ってか後で調べたところ、ZigBee2MQTTアドオンの設定でlog_levelを"debug"にすると、ZigBee2MQTTアドオンの起動時にコーディネーターのファームウェアバージョンを含めた詳細のログが残ることが判りました。ログファイルは"/config/zigbee2mqtt/log/"の中にあります。ログの.txtファイルを開き"Coordinator firmware version:”の"revision"がソレみたいです。


そんなワケですがルーターファームウェアもあるので、コーディネーターとして使うのはもちろんですが「ZigBeeルーターが欲しいけど焼くのが難しそう」という方には特に、簡単にファームウェアが焼けてお手頃価格の”Sonoff Zigbee 3.0 USB Dongle Plus”はおススメだと思います。

とか書いていたらルーター用にポチった2個目の”Sonoff Zigbee 3.0 USB Dongle Plus”がポチって10日という早さで届いたので、次回はルーターとして設定する記事でも書こうかなと思います。

それでは。