概要
今年の3月に正式リリースされたさくらインターネットのモノプラットフォーム(モノプラ)で使用されるLTE搭載マイコンのファームウエアをビルドして書き込んでみました。
さくらインターネットさんから提供されてい評価ボードを使う場合は、ファームに手を入れる必要がなければ自分でビルドする必要はないので、あまり需要があるかわかりませんが、メモとして残したいと思います。
(私の場合は少し機能を追加したかったのでソースからビルドしました)
なお、nRF9160の実機への書き込み・デバッグにはJ-LINKアダプタが必要ですが、開発キットであるnRF9160-Dkで代用可能です。 (Digikey/mouserで購入可能)
同社のnRF52840-DK等もJ-LINKアダプタとして使用できますが、ARMv8に対応していないため、nRF9160のデバッグには使えませんでした
環境
- ターゲットボード:
- さくらのモノプラットフォーム(β)評価用 M5Stack対応LTEモジュール cat.M1 nRF9160 (SCO-M5SNRF9160)
- デバッガ(J-LINKアダプタ):
- nRF9160-DK
- SDK:
- nRF Connect SDK v.1.7.1
- nRF Connect for Desktop v.3.11.0
- Programmer v.3.0.0
- OS:
- Windows 10
nRF Connect SDKのインストール
後で追記予定…
nRF9160-DKをJ-LINKアダプタとして使用する(動作確認)
nRF Connect for Desktopを起動し、表示されるアプリからProgrammerというプログラムを探してインストールします。
実行すると左上の"SELECT DEVICE"から接続するボードやアダプタを選択できます。
手順としては
- nRF9160-DKのDebug OUT端子とターゲットボードのJ-LINKコネクタをケーブルで接続
- デバイスの一覧からnRF9160-DKを選択
- 左側の操作メニューからResetやReadでターゲットを読み書きできることを確認
でよいのですが…ここで少し注意点があります。
今回のターゲットボードのIO電圧は3.3Vなので、 nRF9160-DKのVDDIOをデフォルトの1.8Vから3Vに変更してやる必要があります。
これはSW9で切り替えることができます。
これまで使ったことのあったnRF52系のDKでは特に意識せずに接続しただけでターゲットとして認識されていたのですが、なぜかUnknown Targetとエラーが発生して半日ほどはまった末にドキュメントをよく読むと
Note: The voltage supported by external debugging/programming is the VDD voltage. This voltage can be selected to 1.8 V or 3 V using slide switch SW9. For optimal performance of the nRF9160 radio, it is recommended that only 1.8 V is used. Make sure the voltage level of the external board matches the VDD of the nRF9160 DK.
とありました。
やっぱりドキュメントはよく読みましょう。
ファームウエアのビルドと書込み
追記予定…
(github参照 https://github.com/sakura-internet/sipf-std-client_nrf9160)
まとめ
モノプラではハードウエアおよびファームウエアがオープンソースとして公開されており、これらを使うことで端末側でのHTTPやMQTTといった通信処理を自分で実装することなくインターネット上のサービスとIoT機器間でデータを送受信することができます。
比較的小規模で開発工数をかけずにサービスを立ち上げるにはとても使いやすいサービスだと思います。
一方でリファレンスとして使用されているnRF9160は結構高性能なマイコンなので、アプリケーションによってはnRFのファームウエアを変更すれば外部のMCU等を使用せずに単体で機能すものが作れてしまうので、うまく活用することでコストを抑えつつ手早く開発することができそうです。