Nordic の Bluetooth Low Energy の開発キット PCA10056(nRF52840)を先日よりいじってるのですが、SDK がけっこういろいろあるようなので自分用に整理してみたメモ。
- nRF Connect SDK - ちょっと乱暴な分類ですが、Zephyr RTOS ベースでのアプリケーション SDK。VSCode の 拡張機能から使用する nRF Connect for VS Code はこれをベースにしています。
- nRF Connect for VS Code - VSCode 上で nRF デバイスの開発を行う拡張機能。toolchain の管理やデバッグのための機能を提供すします。DeviceTree Visual Editor も含まれていて、nRF デバイスのピンアサインやペリフェラルの設定もできる(らしいです。うちではちゃんと動かせてないので詳細不明。たぶん、STM32CubeMX みたいな感じ)。
- nRF Connect for Desktop - クロスプラットフォームの開発サポートツールで、BLE の通信テストや Programmer、RSSI Viewer、Serial Terminal などを含んでいます。Programmer はフラッシュを全消去したりイメージを書き込んだりするときに使うので、インストールしておきたいツールです。
- nRF5-SDK - nRF51、nRF52 シリーズの SDK です。現在は nRF Connect SDK に引き継がれていて、こちらはメンテナンスモードになっているようです。詳細は nRF Connect SDK and nRF5 SDK statement にありますが、nRF5 SDK がターゲットにしていた BLE、ANT などに加えて、Thread、Zigbee、Bluetooth mesh などの技術への対応が必要になってきたこと、ハードウェアメーカからの設計時間の短縮やプロジェクト間でのリソースの再利用できるような要望が増えてきたこと、複数のプロトコルを組み合わせることが容易にできるようにすること、などに対応するのが nRF Connect SDK だそうです。statement ページの下の方に SDK の機能比較がありますので、参考になるかも。一方で、nRF5 SDK が廃止されるかというとそうではなくて、当面の間メンテナンスされますが、新チップや BLE5 よりあとの機能はサポートされないとのことです。実際 nRF53 や nRF91 シリーズは nRF5 SDK のサポート対象外です。
- nrf と nrfx と nrfy - どれもペリフェラルドライバですが、それぞれにちょっと違いがああります。nRF5-SDK でダウンロードしたパッケージには nrfy は含まれていませんが、Github リポジトリには簡単な説明があります。nrf はオーソドックスな HAL ドライバで、nrfx は nrf でカバーしきれないハードウェアを直接叩く機能も含めたドライバ、nrfy(HALY) は HAL の拡張で、HALの代わりに使用できるような、基本的なハードウェアのユースケースを単一の関数にまとめたようなもので、キャッシュとバリア管理の機能を追加したもの、だそうです。ncs-3.0.0 で登場し、随時機能が追加されているようです。