Broadcomが、WICED Senseという無線センサ開発キットを出しています。
https://www.switch-science.com/catalog/1925
https://store.macnica.co.jp/products/broadcom_bcm9wiced_sense
Broadcom自体は無線チップメーカで、チップを使った開発キットの位置づけです。
ただ、これ単体でもいろいろ遊べそうなので、購入してみました。
WICED Sense自体のファームウエアの開発と、
WICED Senseのデータを受信して利用するアプリの開発をする必要がありますが、
今回はファームの開発環境構築です。
まずBroadcom communityに登録します。
ここからSDKやリファレンスガイドなどをダウンロードすることができます。
次にSDKをダウンロードします。
WICED-Smart-SDK-2.2.1-IDE-Installer
と書かれたリンクからインストーラをダウンロードします。
ダウンロードしたらインストールに移りますが、
このIDEのインストーラが少し曲者で、JREがJava7でないと動作しないようです。
Java8にアップデートしてしまい、Java7がない場合、
Oracleのアーカイブからダウンロードしてインストールすることになります。
これでインストールできるようになります。
②プロジェクトの準備
開発の手順は、Broadcom communityの以下の記事が詳しいです。
ちなみにこれ以外にも以下のコンテンツがあります。
WICED Senseの電池を抜いて、USBケーブルでPCに接続します。
IDEのインストール時に、Silicon LabのUSB-UARTドライバもインストールされたはずですので、
自動的にドライバがインストールされて使用できるようになります。
念のため、デバイスマネージャーで確認しておきます。
左側のProject Explorerの中の、
WICED-Smart-SDK→Apps→wiced_sense
が、販売されているWICED Senseのデフォルトのファームウエアです。
これを修正して使います。
wiced_senseのフォルダをコピー・貼り付けして名前を変更します。
今回は「wiced_sense_changed」とします。
フォルダ内のwiced_sense.cがメインのファイルなので、
この辺りを見て適宜修正します。
③書き込みと動作確認
IDE右側にMake Targetの中にSDKの他のプロジェクトのBuild→書き込みのターゲットが用意されています。
以下のフォーマットで名前を作ってターゲットを用意すると、Buildと書き込みができます。
プロジェクト名-チップ名 コマンド名
例:wiced_sense_changed-BCM920737TAG_Q32 download
他のターゲットをコピー・貼り付けしてEdit→Target nameを例の様に記載して、
Targetをダブルクリックすると、ConsoleにBuild結果と書き込み結果が表示されます。
USBケーブルを接続した直後であれば、以下の様なメッセージがでて書き込み成功し、
プログラムが走り出します。
Detecting device...
Device found
Downloading application...
Download complete
Application running
デバイスが接続されていなかったり、アプリケーションがすでに走っていたりすると、
Detecting device...
No BCM20737 detected
というメッセージが出て、書き込みが失敗します。
この場合は、デバイスを接続しなおしたり、リセットしたりを試す必要があります。
④Appendix リカバリの方法
WICED Senseリカバリの方法を書きます。
まず、カバーを外して基板を出します。
以下の矢印の箇所にドライバーを突っ込んで、赤いカバーを外します。
表に見えた基板の赤四角部分がブートボタンです。
ココでプラスネジが2つあるのでそれも外します。
赤四角の部分がリセットボタンです。
USBケーブルに接続し、
(a)リセットボタンを押しながらブートボタンを押す
(b)リセットボタン→ブートボタンの順に離す
とこれでリカバリの準備ができます。
SDKのMake Targetに「WICED_SENSE-BCM920737TAG_Q32 recover UART=COMXX」
という名前のTargetを作り、実行すると、EEPROMに初期のプログラムが書き込まれ、リカバリできます。
(COM番号はデバイスマネージャーのポートにあるUSB to UART BridgeのEnhanced COM Portの番号です。)