RedBearLab BLE Nano の設定方法とOTA
BLE Nanoの設定方法とBLEを介して直接プログラムを書き込むOTAの方法を記載します。
目次
BLE Nanoとは
上に載ってる ちっこいのがBLE Nanoで下の基板がUSB書き込み用ボードのMK20
購入先
すでにMK20を持ってる場合は
以下ブログのプラレール遠隔コントロール改造でもBLE Nanoを使用してます 😀
MK20 USB boardの設定
USBを介してBLE Nanoにプログラムを書き込む際に必要なボードです。
Windowsの場合MK20をシリアルポートとして認識させるのにドライバが必要です。
- https://developer.mbed.org/handbook/Windows-serial-configuration
でmbed Windows serial port driverのexeファイルをダウンロードし実行
無事インストールされるとMK20がシリアルポートとして認識されコード書き込みの準備が完了です♪
“MBED”ドライブと表示されます。
以下はBLE Nanoとのセットで買った場合は必要ないと思いますが
RedBearLab WiFi MicroとかでMK20を使用してた場合にBLE Nano用のファームウェアを再度書き込む必要があります。
- https://github.com/RedBearLab/nRF51822-Arduino/tree/S130/mk20
のBLENano_MK20.binをダウンロードします。 - MK20のリセット(RST)ボタンを押しながらPCに接続しLEDがゆっくり点滅すると”BOOTLOADER”ドライブとして認識されます。
- ボタンを開放し”BOOTLOADER”ドライブにBLENano_MK20.binをドラッグ
- 読み込まれるとLEDが高速で点滅しPCに再接続で”MBED”ドライブが表示されれば完了です。
Arduino IDE環境設定方法
オフィシャルではArduino IDEバージョン1.6.7が推奨のようだけど1.6.8でもいけました。
- メニュー [ファイル]->[環境設定]内のAdditional Boards Manager URLsに
1 |
https://redbearlab.github.io/arduino/package_redbearlab_index.json |
を追加(すでに他のjsonを入力してる場合はカンマで仕切る)し[OK]をクリック
- メニュー [ツール]->[ボード]内の[Board Manager]を選択
- [Board Manager] 内の”RedBearLab nRF51822 Boards”(version 1.0.5)を選択し[Install]をクリック
- インストール後メニュー [ツール]->[ボード]内に”BLE Nano(V1.5 32KB)”が追加されるので選択
任意のシリアルポートを指定して書込みが可能になります(Arduinoに比べると書込みに時間がかかります)。
新品のBLE NanoではデフォルトでArduino IDE用のブートローダーが書き込まれているのですが、MBED等で一度書き込んで再度Arduinoで使用する際などにはArduino用ブートローダーの書込みが必要です。
これメチャメチャ ハマりました!!!
公式説明ではhttps://github.com/RedBearLab/nRF51822-Arduino/tree/S130/bootloader
のbootloader.hexをダウンロードし”MBED”ドライブにドラッグすれば良いとあるのですが、
全然正常に動作しません(基板の製造次期にもよるのか?)。。。。
以下、解決策です。
- 上記でversion 1.0.5でインストールした”RedBearLab nRF51822 Boards”をversion 1.0.0でインストールし直します
- C:\ユーザー\AppData\Local\Arduino15\packages\RedBearLab\hardware\nRF51822\1.0.0\bootloaders
内にbootloader.hexが生成されてますので、これを”MBED”ドライブにドラッグするとBLE NanoのLEDが点滅しブートローダ状態になり正常に動作します。 - このbootloader.hexはどこかに保存しといて”RedBearLab nRF51822 Boards”はversion 1.0.5で更新しなおします。
これでやっとArduinoで書き込めるようになりました♪
OTAの実施方法
OTA(Over-The-Air)はMK20を使用せずスマホからBLE通信で直接プログラムを書き込む方法です。
- まずはArduino IDEで書込みたいプログラムのhexファイルを生成
メニュー [スケッチ]->[コンパイルしたバイナリを出力]
コンパイル後にhexファイルが生成される。出力先はプログラムと同じ場所 - nRF ToolboxアプリをAndroid or iPhoneにインストール
- DFU(Device Firmware Update) -> SELECT FILE ->Application選択してOK
先ほど作成したhexファイルを指定(お父ちゃんはhexファイルをGoogleドライブにアップしてスマホとデータ共有してます) - Init packetの有無を聞かれるが”NO”を選択
- SELECT DEVICEでBLE Nanoデバイスをスキャンして選択
- 一度BLE Nanoの電源をOFF -> ONしてBLE NanoのLEDが高速点滅したらUPLOADで書き込み開始
BLE Nanoをハンダ付けでゴテゴテに組み込むとMK20接続できないのでOTAは非常に役立ちます。
参考
http://redbearlab.com/getting-started-nrf51822
https://www.youtube.com/watch?v=d75strWav5k
追記(16/10/13)
BLE Nanoを使って作成しました!