はじめに
XIAOシリーズにESP32-C3(RISC-V CPU、無線機能(Wi-Fi、Bluetooth® Low Energy))が搭載された製品(Seeed XIAO ESP32C3)が発売されたので、ノラバッジ(MINI LED BADGE)を対応するため、さっそく試してみた。
- Seeeduino XIAO
- Seeed XIAO RP2040
- Seeed XIAO BLE nRF52840 (前回)
- Seeed XIAO BLE nRF52840 Sense
- Seeed XIAO ESP32C3 (今回)
注意点
- アンテナが別 (付属しているアンテナをソケットに挿して使用する必要がある)
- ピンヘッダが付属しない (ブレッドボードに挿して使用する場合は、別にピンヘッダを用意してハンダ付けする必要がある)
- オンボードにLEDが付属しない (Lチカを試す場合は、別にLEDを用意する必要がある)
XIAO BLEのArduino IDE環境
基本的にSeeed Wikiを参照して手順とおりに実施すれば環境構築は完了します。
ボードマネージャのダウンロードサイズが大きく、かなり時間が掛かりました。
バージョンは2.0.4をインストールしました。(Wikiは2.0.3でした)
USB接続で認識されるデバイス情報
$ system_profiler SPUSBDataType
USB:
USB 3.0 Bus:
Host Controller Driver: AppleUSBXHCISPTLP
PCI Device ID: 0x9d2f
PCI Revision ID: 0x0021
PCI Vendor ID: 0x8086
USB JTAG/serial debug unit:
Product ID: 0x1001
Vendor ID: 0x303a
Version: 1.01
Serial Number: 10:91:A8:03:98:C0
Speed: Up to 12 Mb/s
Manufacturer: Espressif
Location ID: 0x14300000 / 2
Current Available (mA): 500
Current Required (mA): 500
Extra Operating Current (mA): 0
USB 3.1 Bus:
Host Controller Driver: AppleUSBXHCIAR
PCI Device ID: 0x15d4
PCI Revision ID: 0x0002
PCI Vendor ID: 0x8086
Bus Number: 0x00
ボードの選択
「ツール」→「ボード」→「ESP32 Arduino」→「XIAO_ESP32C3」の順に選択します。
シリアルポートの選択
ボードの選択はmacOS環境を例に説明されていましたが、シリアルポートの選択はWindows環境を例に説明されていますので、少し異なる部分がありました。
「ツール」→「シリアルポート」→「/dev/cu.usbmodem14301 (ESP32S3 Dev Module)」の順に選択します。
(環境によって、usbmodemXXXXXのXXXXXの数字は変わる可能性があります)
Lチカ
Seeed Wikiの手順通りです。
BLEの動作確認
ノラバッジ(MINI LED BADGE)の対応機種
- MDBT42Q (nRF52832)
- M5Stick-C、M5Atom Lite、M5Atom Matrix (ESP32)
- nRF52840 (前回)
- ESP32C3 (今回)
nRF52840では新たなBLEライブラリ(ArduinoBLE) を使用する必要がありましたが、ESP32C3はESP32と同じライブラリ(ESP32 BLE Arduino)で問題ありませんでした。(ライブラリをインストールした訳ではなく、スケッチ例(サンプルコード)を見て判断しました)
I2Cの使用も問題ありませんでした。
チップ | ライブラリ | バージョン |
---|---|---|
nRF52832 | Arduino BLEPeripheral | 0.4.0 |
ESP32 / ESP32-PICO | ESP32 BLE Arduino | 1.0.1 |
ESP32 / ESP32-PICO | NimBLE-Arduino | 1.0.1 |
nRF52840 | ArduinoBLE | 1.3.1 |
ESP32C3 | ESP32 BLE Arduino | 不明 |
注意
ビルドした際にBLEPeripheral.hが見つからないエラーが出ました。コメントアウトすれば問題ありませんでした。
// #include <BLEPeripheral.h> // XIAO ESP32C3では不要
20220908_ESP32C3_HT16K33_788AS_01.inoは修正の必要はありませんでした。
ソースコードはGitHubに置きました。
最初、MINI LED BADGEの表示速度が速すぎる問題が発生しました。
CPUがRISC-Vに変更されたことに伴い、処理速度が速くなったと理解しました。
sleepの長さを調整することで、通常の表示速度にできました。
LEDBadgeアプリ(BLE)からの表示文字書き換えも問題ありませんでした。