新しいマイコンを買っても、慣れたArduinoの開発環境がまだ対応していないと、手を出しづらい。Nordic Semiconductorの無線チップ「nRF54L」も、そんな1つだった。公式のArduino対応が追いついていないこのチップを、有志が非公式に使えるようにした。
Lolrenと名乗る開発者が公開した「nRF54 Arduino Core」は、NordicのnRF54L系無線SoCをArduino IDEから扱えるようにするオープンソースプロジェクトだ。Nordicの無線チップは、2019年発売のArduino Nano 33 BLEに載った旧世代のnRF52系がArduino IDEで公式に対応してきた。だが、より新しいCortex-M33を積んだnRF54L系はまだ公式対応がなく、この空白をLolrenが1人で埋めた形になる。
対応するのは、Seeed StudioのマイコンボードXIAO nRF54L15(Sense)とXIAO nRF54LM20A(Sense)、そして互換のHolyiot製nRF54L15モジュールだ。特徴は、OSを介さずチップのレジスタを直接叩く「ベアメタル」の作りにある点だ。128MHzのCortex-M33に加え、省電力処理を担うRISC-Vのコプロセッサーにも、専用のリアルタイムOSを使わずに手が届く。Bluetooth LEでは、周辺機器としての動作から、他機器を束ねる親機、HID、無線経由のシリアル通信まで幅広く対応する。GPIOやADC、PWM、各種シリアルバス、NFC、電源制御なども、チップの機能に直接アクセスして使える。
導入は、既存のArduino利用者ならなじみのある手順で済む。Arduino IDEの設定画面で、追加のボード情報を配布するURLを1行登録し、ボードマネージャーから対応パッケージを入れる。あとはXIAO nRF54L15などを選び、用意されたサンプルを書き込めば動き始める。既存のBluetooth用ライブラリを流用したコード例も示されており、手持ちのボードで試しやすい。
ただし、まだ発展途上の部分もある。開発者のLolrenは、ThreadやZigbee、Matterといった規格のサンプルは実験段階で、期待通りに動かない場合があると説明する。現状はBluetooth LEを使う用途に向くという。暗号処理の一部が専用回路を使えずソフトウェアだけで動くため、接続時の処理に数秒かかる制約もある。それでも、公式対応を待たずに新しいチップをArduinoで動かせる点は大きい。ソースコードや対応ボードの詳しい情報はGitHubで公開されている。