ReButtonの最新機能とアップデート方法

Seeed K.K.の松岡です。
2018年10月からマイクロソフト社のイベントIoT in Actionでノベリティとして配布され、日本でも2019年7月から購入できるようになったReButton
実は、いまでもコツコツと継続してファームウェアを修正、機能アップしています。
今回は、最新のファームウェアではどんな機能が追加になっているか?と、ファームウェアのアップデート方法を簡単に紹介します。

f:id:matsujirushix:20191017172128p:plain

結論

  • ReButtonのプレインストールされているファームウェアはv1.0。
  • Wi-Fi経由で、ファームウェアを入れ替えることができる。
  • 最新ファームウェアはv1.7。
  • 追加機能は、主に、メッセージ追加とWi-Fi常時接続モード。

ReButtonとは?

f:id:matsujirushix:20191017180345p:plain

  • ボタンのクリック(5種類)をAzure IoT Centralに通知
  • Azure IoT Centralでクリックしたタイミングを可視化
  • Azure IoT Centralから外部サービスに連携(メール通知とか)

ができる、単四電池2本で動くWi-Fi接続型のボタンです。

公式ドキュメントはこちら(英語日本語)。

新しいファームウェア

ReButtonを購入して手に取ったときには、すでにReButtonの中に、ボタンクリックやLED点灯、Azure IoTへ通信するためのプログラム、ファームウェアがあらかじめインストールされています。

このファームウェア(プログラム)が、

  • ボタンがどのようにクリックされたか判断
  • LEDを点滅、点灯
  • Wi-Fiに接続
  • Azure IoT Central/Azure IoT Hubへメッセージを送信

などを実行しています。

購入したものに入っているファームウェアは2018年10月に作ったバージョン1.0(v1.0)で、以降、ファームウェアに少しずつ機能を追加していて、現在はバージョン1.7(v1.7)を公開しています。

このような変更をしていますが、

バージョン 変更点
v1.1 Web設定画面をレスポンシブデザインに変更。
D2CメッセージにproductIdを追加。(Azure IoT Hubのメッセージルーティングに対応)
v1.2 Web画面にカスタムメッセージを追加。
Web画面にAPモードのアクセスポイント名設定を追加。
v1.3 Web画面のトップページに設定値表示を追加。
REST APIによる設定機能を追加。
v1.4 Azure IoT Hub DPSから取得したAzure IoT Hubの接続情報を記憶しないよう修正。
Web画面でAzure IoT Centralを設定したときに、Azure IoT Hubの設定をクリア。
Web画面でAzure IoT Hubを設定したときに、Azure IoT Centralの設定をクリア。
v1.5 工場出荷時設定のやり方を変更。
v1.6 singleClick, doubleClick, ... とactionCountを追加。
v1.7 Wi-Fi常時接続モードを追加

すべてを詳しく説明し始めると長文になってしまうので、、、
v1.1とv1.7の、メッセージとWi-Fi常時接続モードについて紹介したいと思います。

v1.0

v1.0では、ボタンをクリックすると、Azure IoT Central/Azure IoT Hubに、

  • バッテリー電圧(batteryVoltage)
  • クリック種類(actionNum)
  • メッセージ(message)

を送ります。

f:id:matsujirushix:20191018112223p:plain

また、公式ドキュメントには書いてありませんが、カスタムメッセージを通知する機能が入っています。

v1.6+

v1.6以降のメッセージは、このように変更しています。

f:id:matsujirushix:20191018112555p:plain

測定/イベントにsingleClick, doubleClick,...を追加しました。これは、messageをクリック種類毎に分けたもので、こうすることでクリックの種類それぞれにルール設定することができるようになりました。

また、測定/テレメトリにactionCountを追加しました。これは、メッセージを通知した回数の累積を示します。

(ちなみに、v1.2でカスタムメッセージが少し修正されています。)

v1.7

ReButtonは、待機時の電力消費を限りなくゼロにするために、ボタンを押したときにマイコンへ電源が供給し、一連の動作が終わったらマイコンへの電源がストップする仕組みになっています。(これは、ハードウェアで実現しています。)
そのため、ボタンをクリックした後に、以下の一連の動作が行われます。

  1. ボタンクリック種類の判断(シングル?ダブル?トリプル?)
  2. クリック確定表示(LED点滅)
  3. Wi-Fiアクセスポイントに接続
  4. タイムサーバーと時刻同期
  5. Azure IoT Hub DPSに接続して、Azure IoT Hub情報を取得
  6. Azure IoT Hubに接続
  7. DeviceTwinのDesired/Reportedプロパティを取得
  8. D2Cメッセージを送信
  9. Device TwinのReportedプロパティを更新

実測で、ネットワーク環境によりますが、すべての動作が完了するのに20~30秒程度かかります。

v1.7では、Wi-Fi常時接続モードを追加しました。このモードで動かすと、ボタンクリックするとすぐにAzureへメッセージ送信するようになります。
ReButton裏のジャンパーをショートするとWi-Fi常時接続モードとなり、すぐに1~7までを実行します。その後、ボタン入力待ち状態になって、ボタンクリックに応じて、8~9を実行します。

ファームウェアのアップデート

ファームウェアのアップデート方法は、こちらに書かれています。
若干、つまづきやすい点があるので、補足を加えて箇条書きしておきます。

  1. 新品の電池を使ってください。電池が弱っていると、APモードにならなかったり、OTAプロセス途中で電源が落ちたりします。
  2. APモードに移行してください。ジャンパーを外して、ボタンを10秒以上長押し。LEDが白点灯したらボタンを離す。LEDが白点滅していればOK。
  3. Wi-Fiアクセスポイントを設定してください。ファームウェアはWi-Fiアクセスポイントを経由してインターネットからダウンロードします。そのため、ファームウェアアップデート前に、Wi-Fiアクセスポイントを設定しておかなければいけません。
  4. Package URI,CRC,Sizeを入力。各バージョンの左記情報は、ここにあります。Package URIは、リンクをコピーしてください。
  5. ファームウェアアップデートのクリック前にボタンを押し続ける。諸般の事情により、ファームウェアアップデート中にマイコンが再起動しますが、再起動時にボタンを押しておいて電源を供給し続ける必要があります。Updateボタンをクリックする前に、必ずReButtonのボタンを押し続けてください。
  6. LEDが点灯するまでボタンを押し続ける。ファームウェアアップデートに約30秒かかります。押し続けてください。
  7. LEDが点灯したらボタンを離す。
  8. APモードでファームウェアのバージョンを確認する。トップページもしくはFirmware Updateページに、ファームウェアのバージョンが表示されています。必要に応じて確認してください。

変更履歴

日付 変更者 変更内容
2019/10/18 松岡 作成