Monarch DevKit UnaMKRをEmbedモードで使う

技術情報

先にこちら(Monarch対応開発キット - UnaMKR -)をお読みください。
また1年間無償回線の契約方法がわからない場合は、こちら(Sigfox Devkit(開発キット)を1年間の無償回線で利用する)を見てください。

ここでは、UnaBiz社のMonarch対応開発キットUnaMKRの動作モードのひとつであるEmbedモードの使い方を説明します。
Embedモードは、UnaMKR内蔵のST BlueNRG-2 SoCを使った開発モードとなっており、より低消費電力のデバイスを開発することができます。

Embedモードへの移行

ModemモードないしArduinoモードで動作しているUnaMKRをEmbedモードへ移行するためにはファームウェア更新が必要です。下記の手順で行ってください。

  1. ST社のFlashユーティリティをダウンロード&インストール
  2. UnaMKRの電源OFF確認
  3. UnaMKRにArduinoボードが接続されていないことを確認
  4. ジャンパ確認(J10:ON、J6,J7,J11:右)
  5. USBシリアルドライバがインストールされていることを確認(こちらを実施済み方はインストール済みです)
  6. MicroUSBケーブルを使用し、UnaMKRをPCとシリアル接続
  7. UnaMKR GitHubからfirmwareフォルダをダウンロード
  8. ダウンロードしたfirmwareフォルダにあるburnFw.batを実行すると、binファイルの選択ダイアログが表示されますので、試したいファームウェアを選択。(ここでは、Embed_Sigfox-Sensors-Sleep_v0002.binを試してみます。)
  9. 下記のようにファームウェア更新が実行されます。
 * Please select firmware file you would like to update:
   Selected file is : "C:\...\firmware\Embed_SigFox-Sensors-Sleep_v0002.bin"
        1 file(s) copied.
Qt: Untested Windows version 10.0 detected!

Working on ST DK COM port :
 1) COM5

19:44:46.519: Device COM5 -> Call flashDevice
19:44:46.519: Device COM5 -> Call initDevice: Init Device
19:44:46.690: Device COM5 -> Call bootloaderInstance
19:44:46.697: Device COM5 -> Call flashDevice: Start Programming...
19:44:46.714: Device COM5 -> Call BTL_flashBin: startAddress = 0x10040000, doErase = False, doGo = False
19:44:46.757: Device COM5 -> BTL_flashBin erase page 0: result = 0
19:44:46.796: Device COM5 -> BTL_flashBin programming.... 0 bytes of 135384, result = 0
...
19:45:09.411: Device COM5 -> BTL_flashBin programming.... 135168 bytes of 135384, result = 0
19:45:09.411: Device COM5 -> Call flashDevice: End Programming.
19:45:10.687: Device COM5 -> Call readDevice
19:45:10.693: Device COM5 -> Call readDevice: Start...
19:45:29.243: Device COM5 -> Call closeDevice
19:45:29.246: Device COM5 -> Call readDevice: Finished.

**** INPUT PARAMETERS FOR FLASH OPERATION****

- OPERATING MODE = UART
- AUTOMATIC MODE = True
- BLUENRG1 DEVICE FILE = UnaMKR.bin
- BLUENRG2 DEVICE FILE = UnaMKR.bin
- VERIFY = True
- MASS ERASE = False
- START ADDRESS = 0x10040000 (only  for .bin image file)
- LOG = True
- LOG PATH = C:\...\ST\BlueNRG-1_2 Flasher Utility 3.1.0\Application\Logs\

**** RESULTS OF FLASH OPERATION ***

1 - Device COM5
Device = BlueNRG-2
Command -> FLASH = Success
LIST OF OPTION -> VERIFY = Success, IDENTIFICATION = Success

Press any key to continue . . .

これでファームウェア更新が完了しました。

Embedモードの動作確認

ファームウェア更新が成功したら、UnaMKRの電源をOFF(MicroUSBケーブルを外す)し、J10ジャンパを取り外した後に、再度、UnaMKRを起動(MicroUSBケーブルを接続)してください。
その後、ターミナルソフトでUnaMKRが接続されているポートを開いてください。(UnaMKRのシリアルポート設定はこちら

今回のサンプルアプリ(Embed_SigFox-Sensors-Sleep_v0002.bin)は、UnaMKR上のボタン押下をトリガにボード内のセンサ情報を取得し送信するものと20分間隔でセンサ情報を送る仕組みとなっています。
動作確認のために、ボード上の黒いボタンを押すと、ターミナルソフト上で下記コマンド応答を確認することができます。

 Current RC zone: 1 BME680: - Temperaure : 28.15 *C - Humidity : 41.08 % - Pressure : 1006.18 hPa - Air Quality: 20.47 kOhms lsm303agr: - Raw Acceleration : 3712 -6784 13568 - Raw Magnetic field: -171 320 -161 - Acceleration [mg]: 226.20 -413.40 826.80 - Magnetic field[mG]: -256.50 480.00 -241.50 TSL2540: - Visible : 1823 - Infrared: 1633 [Payload 0] 120E2E6333A2BF900C9D34E5 [Payload 1] 2FE7030FE807FF071F06616B Uplink payload 0... -> status = 0x00 Uplink payload 1... -> status = 0x00 Done.

温度、湿度、気圧、ガス、加速度、地磁気の各センサ値を2つのメッセージで送信していることが確認できます。
ペイロードへの変換方法は、このサンプル自体のソースコードが、まだ公開されていないので、わかりませんが、おそらく、Arduinoモードのサンプル(Demo_SigFox-Optimal-AllSensors)と同じではないかと思います。

念のため、Sigfox Backend CloudのMESSAGESビューで確認したところ、確かに2つのメッセージが受信されていることが確認できます。
technical090901.png

実際の開発は、ArmKeilなどの開発環境を使うことになると思います。


<関連ページ>