iOSデバイス同士とか、既製プロダクトと BLE で通信する場合は Core Bluetooth フレームワークが扱えれば問題ないのですが、新規でウェアラブルデバイスや、iOSと連携する何らかのガジェットとかを開発しようとすると、プロジェクト内の立場上は「iOS エンジニア」だとしても、ある程度 BLE モジュール側のことも知っていないと、ハード屋さんとの意思疎通がなかなか難しい場合があります。(相手がCore Bluetooth等、iOS側に精通していれば話は別ですが。。)
そんなわけで、Bluegiga の BLE113 の「開発キット」 (Developer Kit) を注文してみました。
BLE113の開発キット注文した。2万円超もするのでちょっと迷ったけど、CoreBluetoothだけじゃなくてBLEモジュール側も知っておきたいなと。 / Bluetooth Smart Module – Bluegiga http://t.co/AxTJlRuMMF
— Tsutsumi Shuichi (@shu223) 2014, 4月 18
・・・のですが、その翌日(これを書いてる今日)に仕事で BLE112 の開発キットを借りることができたので、さっそくそっちで開発環境構築〜動作確認までを試してみたので、その手順をまとめておきます。
BLE113 の開発キットはまだ到着してないのですが、112と基本的にやることは同じだと思います。
工場出荷時点の BLE112 Development Kit
BLE112 Development Kit は、購入して電源を入れるだけで、下記のように ディスプレイに温度が表示されます。
アドバタイジングも開始されているので、BLExplr や自前 Core Bluetooth 実装等でも確認することもできます。
Windows の仮想環境を用意する
関連ツールの何もかもが Windows 版しか用意されてないので、とにかく Windows 環境が必要になります。
VirtualBox で Windows 環境をつくる
無料 の仮想化ソフト VirtualBox を用いて、Windows の仮想環境を Mac OSX 上に構築します。
基本的に下記ページの手順通りでうまくいったのですが、
一点だけ違ったのは、 初回起動時に Virtual Disk Image を求められる ことでした(ちなみに私が使用したVirtualBoxのバージョンは 4.3.10 です)。
インストールメディア(Windowsのインストールディスク)の Virtual Disk Image は下記のように作成します。
- OSのインストールメディアをドライブに入れる
- Disk Utility を起動して [New Image] (→ .dmg ファイルが生成される)
- 2で作成した .dmg ファイルを `~/Library/VirtualBox` に置いておく。
あとはダイアログで上記 .dmg ファイルを選択すれば、インストールが始まります。
BGScriptの開発環境を用意する
BGScript 専用のIDE、みたいなのはないので、既存の Windows 用テキストエディタ "notepad++" をカスタマイズして使用します。
notepad++をインストール
ググれば本家ダウンロードサイトも出てきますし、Bluegiga の Documentation and Software のページ からもダウンロードできます。
途中でPlugin フォルダを有効にするかどうかのチェックボックスがあるので、有効にしておきます。
シンタックスハイライトやコード補完が効くようにする
notepad++で、BGScript 編集時にシンタックスハイライトやコード補完が効くようにします。
Bluegiga の Documentation and Software のページ から
[PC Tools] > [BGScript Syntax Highlighting for Notepad++]
をダウンロードし、下記手順を踏みます。
- Notepad++ を起動
- Notepad++のメニューから [Language] > [Defined your language...] を選択
- [Import...] をクリックし、 "userDefineLang_BGScript.xml" ファイルを選択
- "BGScript.xml" ファイルを '<NPP-Install-Dir>\plugins\APIs' にコピーする
- notepad++ を再起動
Bluetooth Smart Software and SDK をインストール
Bluegiga の Documentation and Software のページ から
[Software Releases] > [Bluetooth Smart Software and SDK v.1.2.2]
を選び、インストールします。
SmartRF Flash Programmer をインストール
BLE112 / 113 は Texas Instruments (TI) のチップを使用しています。このチップのFlashメモリにプログラムを書き込むためのソフトウェア、Flash Programmer をインストールします。
http://www.ti.com/tool/flash-programmer
CC Debugger を Windows 側に認識させる
CC Debbuger は、BLE112 / 113 (で使用している TI のチップ)のデバッグを行ったり、プログラムを書き込んだりするためのデバイスです。
(CCデバッガをBLE112開発キットに接続した状態)
CC Debugger を USB で接続し、VirtualBox メニューから
[Devices] > [USB Devices] > [Texas Instruments CC Debugger [xxxx]]
を選択します。
Windows(仮想マシン)側でデバイスドライバのインストールが開始され、完了すると、デバイスマネージャーで Cebel controlled devices が確認できるようになります。
動作確認
BGScriptのビルド
BGScript をビルドします。
下記のように bgbuild.exe をコマンドプロンプトから実行するだけです。
C:\Bluegiga\ble-1.2.2-100\bin\bgbuild.exe {プロジェクトファイル.bgproj}
BGScriptのプロジェクトは、C:\Bluegiga\ble-1.2.2-100\Example にいろいろとあります。
ビルド成功すると、 .hex ファイルが生成されます。これがチップに流し込むファイルです。
プログラムを書き込む
注意!!!License KeyがないとBLEのアドバタイジングが停止します。
前述した手順で作成した .hex ファイルを、下記ページのように Flash Programmer から書き込むことができます。
が、冒頭に書いた通り、この方法だと、BLEのアドバタイジングが停止します。
このページ に書いてある通り、
If you're using SmartRF to flash your project, that may be causing a problem with your license key. Using SmartRF does erase the license key from the module, which is specified in the third paragraph of this Knowledgebase article: https://bluegiga.zendesk.com/entries/22442106--HOW-TO-Using-the-BLE...
TI's SmartRF software can flash firmware to BLE113, but the license key is proprietary to Bluegiga, and SmartRF does not and cannot include the key while re-flashing firmware. The easiest way to pull your current key is to connect your module to your CC Debugger, open BLEUpdate, and click Info. If you could post the module's serial and license key, someone from Bluegiga could verify it, or provide you with a valid license key.
というわけで、ライセンスキーを入手して、Flash Programmer ではなく Bluegiga BLE SW Update Tool で書き込みを行うのが正しい手順のようです。。
ライセンスキーを入手する
ライセンスキーは Bluegiga BLE SW Update Tool の "Request license key" をクリックして申請フォームに飛ぶことができます。
申請したらすぐに送付されるわけではなく、Bluegigaからの返信を待つ必要があります。。(僕はイマココ)
工場出荷時のファームに戻す
Bluegiga の Documentation and Software のページ からダウンロードできる Examples の中に、DKBLE112_factory というプロジェクトが入っています。全く同じものかはわかりませんが。。
ただ、このファームを Flash Programmer で書き込んでも ライセンスキーがないとBLEのアドバタイジングは開始されない ので、とにかくライセンスキーを入手するまではファーム更新しないのが良さそうです。