wonder gadget

ガジェットはインターネットの夢をみるか? Intel edisonを中心に IoT, MAKE, Physical Computingしていきます。

WICED Senseのファームウェアを変更してみる

前回の記事で開発キットについて調べてみますと書きました。

WICED Senseセンサータグの電池消費について - wonder gadget

Broadcomのウェブサイトでユーザー登録をするとWICED SmartのSDKがダウンロードできます。 最新バージョンは2.2で、WindowsのほかにMacやLinux版もあります。

Eclipseを利用した便利なIDEがありますので、Eclipseに慣れている方にとっては操作は難しいものではないと思います。 SDKをインストールすると自動的にUSBのドライバーがインストールされます。これがないとWICED SenseをUSBで繋いでも認識することができません。 自動でインストールされない場合はサイトに行ってダウンロード&インストールすると良いです。

USBデバイスの確認方法はいくつかあると思いますが、Finderのアップルメニューを開いて、optionキーを押すと「システム情報…」が出ますので、システム情報を開いて、USBの項目をクリックすることで先ほどインストールしたドライバーが認識されているかが分かります。

f:id:daikimura:20150213001953p:plain

BroadcomのコミュニティサイトにはWICED Senseのファームウェア開発についていろいろと詳しい内容が掲載されています。英語での説明になりますが、ビデオコンテンツもあるため、ファームウェアの書き込み手順なども理解しやすかったです。

また、SDKには最初からファームのコードが入っていますので、変更したい部分を修正してコンパイルして書き込みがすぐにできます。

WICED Senseの電池を抜いた状態でUSBケーブルに繋ぎ、Make Targetをダブルクリックするだけでファームが書き込まれます。書けない場合はWICED Senseの右上のボタンを押すと書き込めるようになるようです。

f:id:daikimura:20150213002043p:plain

当初の目的はUSB電源で動作させることでしたが、コードがよく分からず目的が達成できませんでした。 他に気になっていた点として、BLEのアドバタイズの間隔と、コネクトしてからのセンサーの通知間隔を調整できればと思っていましたので、その修正をしてみました。

アドバタイズは1000ms(1秒)間隔、センサーは500msにしてみました。別のコードにちょうどその設定があったので、コピペをして、ファームを書き込み、確認してみたところうまく動作しているようです。

コミュニティサイトを見ていたら、WICEDの読み方が書かれていました。Wick-edと書いてあったので、ウィックドでしょうか。些細なことですが、ずっと気になっていたので、分かってよかったです(笑)

ファームの書き込みをしてもなぜかキャラクタリスティクスのデバイス名が変更されずにかなりハマりました。他の部分は変わるのになぜかデバイス名だけは変更できないです。しかも変更したときの名前のままになっているため、iPhoneアプリから接続できません。

うーん いろいろ悩ましい

Daisuke Kimuraさん(@daikimura)が投稿した写真 -

ケースを外して、裏にあるリセットボタンを表側のブートボタンを押しながら押すとリセットされるようなのでやってみたのですが、状況変わらず。

結局、原因はiOSが一度ペアリングしたことのあるBluetoothデバイスを記憶するからでした。iPhoneの設定アプリのBluetoothから自分のデバイスの中のWICED Sense Kitを登録解除することで解決しました。かなり時間を無駄にしてしまいました。

ようやく原因も分かり、先ほど書いたファームの変更点も反映できたところで試してみるとセンサーの通知の間隔が長くなっています。

このままMQTTに送って良いくらいのデータ量なので、次はMQTTに送るコードを元に戻して、MQTTサブスクライバーからWebSocketを利用してリアルタイムにデータを表示する部分を作成してみようと思います。