Categories: 工作・開発

Wi-Fi内蔵マイコン「BL602」がArduino IDEに対応、開発者が公開

マイコンを選ぶとき、Arduinoでそのまま書けるかどうかは大きい。Ishu1519氏は、Wi-FiとBLEを内蔵した安価なRISC-Vマイコン「BL602」をArduino IDEから扱えるようにするソフトを自作し、公開した。既存の対応を試したものの自分の基板では動かず、メーカー純正の開発環境の上に作り直した。

BL602は中国Bouffalo Labのマイコンだ。同氏は、ESP32-C3が安価で成熟した選択肢である一方、BL602はさらに価格が低い点に着目したと書いている。商用の案件ならESP32-C3のほうが楽だとしたうえで、それでも安いほうをどこまで使えるか試したかったのが動機だという。

同氏がAi-ThinkerのBL602搭載モジュールで試したのは、有志が作った既存のArduino対応とPlatformIO対応だった。ツールの依存関係が壊れ、書き込めても何も表示されないまま起動に失敗し、書き込みツールが互換性エラーを出し、シリアル通信の速度が合わなかった。確実に動いたのは、Linux上でメーカー純正の開発環境を使う組み合わせだけだった。

純正の環境を土台にすると決めてから、最初につまずいたのは起動の順序だった。Arduinoらしく振る舞わせようと、同氏は純正の入り口を独自のmain()に差し替えた。ところがこれで、割り込みの設定もメモリー領域の確保も水晶発振子まわりの初期化も飛ばされてしまった。そこで方針を逆にし、純正の起動順をそのまま残したうえで、Arduinoの処理を後から別のタスクとして生やす形にした。setup()とloop()はその中で回る。

2つ目はシリアル通信だ。純正の環境は、マイコンとパソコンをつなぐ通信速度を毎秒200万ビットに設定する。よく使われるUSB変換チップはこの速さに追従できず、画面には文字化けしか出ない。同氏は起動時に毎秒11万5200ビットへ設定し直すことでこれを通した。

3つ目は書き込みツールで、基板に載ったフラッシュメモリーの型を認識できずに毎回止まっていた。同梱されていた型の一覧が古く、実際に載っていたメモリーが載っていなかったためだ。同氏は新しい版に差し替え、不足していた設定ファイルを束ねて解消した。

現状はv0.1.0-alpha.3というアルファ版で、同氏は機能ごとに検証の度合いを表に書き分けている。setup()とloop()、シリアル、デジタル入出力、時間の関数、Arduino IDEからのコンパイルと書き込みまでは検証済み。I2CとWi-Fiのクラスは実験段階で、BLEのArduino向けの窓口とアナログ入出力、PWMは未実装だ。

関連情報

FabScene編集部

FabScene編集部