Seeed Studio XIAO ESP32-C5 入門ガイド
はじめに
| Seeed Studio XIAO ESP32-C5 |
|---|
![]() |
仕様
| 項目 | Seeed Studio XIAO ESP32-C5 | Seeed Studio XIAO ESP32-S3 | Seeed Studio XIAO ESP32-C3 | Seeed Studio XIAO ESP32-C6 |
|---|---|---|---|---|
| プロセッサ | ESP32-C5 RISC-V 32-bit @240 MHz | ESP32R8N8 32-bit Xtensa LX7 デュアルコア @240 MHz | ESP32-C3 32-bit RISC-V @160 MHz | ESP32-C6 32-bit RISC-V @160 MHz |
| 無線接続 | 2.4 GHz & 5 GHz デュアルバンド Wi-Fi 6 および Bluetooth 5 (LE) | 2.4 GHz Wi-Fi および Bluetooth 5 (LE) | 2.4 GHz Wi-Fi および Bluetooth 5 (LE) | 2.4 GHz Wi-Fi 6、Bluetooth 5 (LE) |
| メモリ | 8 MB PSRAM & 8 MB Flash | 8 MB PSRAM & 8 MB Flash | 400 KB SRAM, 4 MB Flash | 512KB SRAM , 4MB Flash |
| インターフェース | I2C / UART / SPI | I2C / UART / SPI | I2C / UART / SPI | I2C / UART / SPI |
| PWM/アナログピン | 11 / 5 | 11 / 9 | 11 / 4 | 11 / 7 |
| オンボードボタン | Reset / Boot Button | Reset / Boot Button | Reset / Boot Button | Reset button / Boot button |
| オンボードLED | Charge / USER LED | Charge / USER LED | Charge LED | Charge / USER LED |
| バッテリー充電チップ | SGM40567 | SGM40567 | ETA4054S2F | SGM40567 |
特長
- 高性能 CPU: ESP32-C5、最大 240 MHz で動作する 32bit RISC-V シングルコアプロセッサ
- 完全な WiFi サブシステム: IEEE 802.11 a/b/g/n/ac/ax に準拠したデュアルバンド Wi-Fi 6 サブシステム(2.4 GHz および 5 GHz)で、Station、SoftAP、SoftAP+Station 同時動作、およびプロミスキャス(モニタ)モードをサポート
- Bluetooth LE サブシステム: Bluetooth 5 および Bluetooth mesh の機能をサポート
- 優れた RF 性能: 外部 RF アンテナを搭載
- バッテリー充電チップ: リチウムバッテリーの充放電管理をサポート
- 豊富なオンチップリソース: 384 KB オンチップ SRAM、320 KB ROM
- 超小型サイズ: 親指ほどの大きさ(21x17.8mm)の XIAO シリーズクラシックフォームファクタで、ウェアラブルデバイスや小型プロジェクトに最適
- 信頼性の高いセキュリティ機能: AES-128/256、SHA ファミリハッシュ、HMAC、専用デジタル署名ペリフェラル、および Secure Boot (V2) をサポートする暗号ハードウェアアクセラレータ
- 豊富なインターフェース: 1×I2C、1×SPI、2×UART、最大 11×GPIO(PWM 対応)、5×ADC チャネル、および JTAG(裏面パッド)のボンディングパッドインターフェース
- 片面実装コンポーネント、表面実装設計
ハードウェア概要
| XIAO ESP32-C5 表示図 |
|---|
![]() |
| XIAO ESP32-C5 ピン一覧 |
![]() |
ピンマップ
| XIAO ピン | 機能 | チップピン | 代替機能 | 説明 |
|---|---|---|---|---|
| 5V | VBUS | 電源入力/出力 | ||
| GND | ||||
| 3V3 | 3V3_OUT | 電源出力 | ||
| D0 | Analog | GPIO1 | LP_UART_DSRN, LP_GPIO1 | GPIO、ADC |
| D1 | GPIO0 | LP_UART_DTRN, LP_GPIO0 | GPIO | |
| D2 | GPIO25 | GPIO | ||
| D3 | GPIO7 | SDIO_DATA1 | GPIO | |
| D4 | SDA | GPIO23 | GPIO、I2C データ | |
| D5 | SCL | GPIO24 | GPIO、I2C クロック | |
| D6 | TX | GPIO11 | GPIO、UART 送信 | |
| D7 | RX | GPIO12 | GPIO、UART 受信 | |
| D8 | SCK | GPIO8 | TOUCH7 | GPIO、SPI クロック |
| D9 | MISO | GPIO9 | TOUCH8 | GPIO、SPI データ |
| D10 | MOSI | GPIO10 | TOUCH9 | GPIO、SPI データ |
| MTDO | GPIO5 | LP_UART_TXD, LP_GPIO5 | JTAG | |
| MTDI | GPIO3 | LP_I2C_SCL, LP_GPIO3 | JTAG、ADC | |
| MTCK | GPIO4 | LP_UART_RXD, LP_GPIO4 | JTAG、ADC | |
| MTMS | GPIO2 | LP_I2C_SDA, LP_GPIO2 | JTAG、ADC | |
| ADC_BAT | GPIO6 | BAT 電圧値を読み取る | ||
| ADC_CRL | GPIO26 | 省電力のため測定回路を制御(有効/無効)する | ||
| Reset | CHIP_EN | EN | ||
| Boot | GPIO28 | ブートモードに入る | ||
| U.FL-R-SMT1 | LNA_IN | UFL アンテナ | ||
| CHARGE_LED | VCC_3V3 | CHG-LED_Red | ||
| USER_LED | GPIO27 | User Light_Yellow |
はじめに
XIAO ESP32-C5 をすばやく使い始められるように、以下のハードウェアおよびソフトウェアの準備を読んで、XIAO を準備してください。
ハードウェア
次のものを用意する必要があります:
- 1 x Seeed Studio XIAO ESP32-C5
- 1 x コンピュータ
- 1 x USB Type-C ケーブル
| Seeed Studio XIAO ESP32-C5 |
|---|
![]() |
一部の USB ケーブルは電源供給のみで、データ転送ができません。USB ケーブルを持っていない場合や、お使いの USB ケーブルがデータ転送に対応しているか分からない場合は、Seeed USB Type-C support USB 3.1 を確認してください。
ソフトウェア
XIAO ESP32-C5 に推奨される開発ツールは Arduino IDE です。そのため、ソフトウェアの準備として Arduino のインストールを完了する必要があります。
初めて Arduino を使用する場合は、Getting Started with Arduino を参照することを強くお勧めします。
-
ステップ 1. お使いのオペレーティングシステムに応じて、安定版の Arduino IDE をダウンロードしてインストールします。
-
ステップ 2. Arduino アプリケーションを起動します。
-
ステップ 3. BOARDS MANAGER を開き -> esp32 を検索 -> バージョン 3.3.5 以上をインストールします

プログラムを書き込む
以下では、点灯プログラムを例として説明します
ステップ 1. XIAO_ESP32C5 と PORT を選択します。PORT が分からない場合は、XIAO_ESP3-2C5 を抜き差しして確認してください。

ステップ 2. スケッチにコードを貼り付けます
LED_BUILTIN は、開発ボード上の L LED に対応します。
void setup() {
// put your setup code here, to run once:
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(LED_BUILTIN, LOW);
Serial.print("LED ON \n");
delay(1000);
digitalWrite(LED_BUILTIN, HIGH);
Serial.print("LED OFF \n");
delay(1000);
}
ステップ 3. クリックしてアップロードします

動作デモ:
プログラムをアップロードすると、L インジケータライトが 1 秒間隔で点滅し、同時にシリアルモニタには LED ON と LED OFF が表示されます。


ディープスリープモード
XIAO ESP32-C5 には、ディープスリープおよびウェイクアップ機能が搭載されています。この例では、ピン D0 のハイレベルトリガを利用して、ディープスリープからデバイスをウェイクアップします。
これはハードウェアが、さまざまな回路設計に対応するためにハイレベルおよびローレベルトリガの両方をサポートしており、設定可能なオプションであることに注意してください。
#define WAKEUP_PIN D0 // LP_GPIO1
RTC_DATA_ATTR int bootCount = 0;
void print_wakeup_reason(){
esp_sleep_wakeup_cause_t wakeup_reason = esp_sleep_get_wakeup_cause();
switch(wakeup_reason)
{
case ESP_SLEEP_WAKEUP_EXT0 : Serial.println("Wakeup caused by external signal using RTC_IO"); break;
case ESP_SLEEP_WAKEUP_EXT1 : Serial.println("Wakeup caused by external signal using RTC_CNTL"); break;
case ESP_SLEEP_WAKEUP_TIMER : Serial.println("Wakeup caused by timer"); break;
case ESP_SLEEP_WAKEUP_TOUCHPAD : Serial.println("Wakeup caused by touchpad"); break;
case ESP_SLEEP_WAKEUP_ULP : Serial.println("Wakeup caused by ULP program"); break;
case ESP_SLEEP_WAKEUP_GPIO : Serial.println("Wakeup caused by GPIO"); break;
default : Serial.printf("Wakeup was not caused by deep sleep: %d\n",wakeup_reason); break;
}
}
void setup(){
Serial.begin(115200);
delay(1000);
++bootCount;
Serial.println("Boot number: " + String(bootCount));
print_wakeup_reason();
pinMode(WAKEUP_PIN, INPUT_PULLUP);
pinMode(LED_BUILTIN, OUTPUT);
uint64_t mask = 1ULL << WAKEUP_PIN;
esp_deep_sleep_enable_gpio_wakeup(mask, ESP_GPIO_WAKEUP_GPIO_HIGH);
digitalWrite(LED_BUILTIN, LOW);
delay(100);
digitalWrite(LED_BUILTIN, HIGH);
delay(2000); //Delay time depends on the serial port / Give the PC time to stabilize
Serial.println("Going to sleep now");
esp_deep_sleep_start();
}
void loop(){}
XIAO がディープスリープに入る前に、十分に素早くシリアルモニタをオンにできれば、下図のようなメッセージ出力を確認できます。これは、XIAO が現在スリープ状態であることを意味します。その後、ボタンを押すことで状態を確認し、起動させることもできます。また、デバイスがウェイクアップしたかどうかを確認するために、L LED のオン・オフ状態を観察することもできます。一度ウェイクアップすると、点滅動作を示します。

ディープスリープモードに入ると、XIAO のポートは表示されなくなり、再びポート番号を確認するにはウェイクアップさせる必要があります!
XIAO ESP32-C5 は GPIO ウェイクアップとタイマーウェイクアップをサポートしています。低消費電力開発中にハードウェアデバッグ機能の喪失やファームウェア書き込みの難易度が増すことを防ぐため、JTAG(MTMS、MTDI、MTCK、MTDO)ピンは専用として確保し、ディープスリープモードのウェイクアップソースとして使用しないことを強く推奨します。
バッテリーの使用
XIAO ESP32-C5 は、3.7V リチウムバッテリーを電源入力として使用することができます。配線方法については、以下の図を参照してください。

はんだ付けの際には、正極と負極を短絡させてバッテリーや機器を損傷させないよう十分注意してください。
バッテリー使用上の注意:
- 規格を満たした認定バッテリーを使用してください。
- バッテリー使用中でも、XIAO はデータケーブルを介してコンピュータデバイスに接続できます。XIAO には保護回路チップが内蔵されているため、安全にご使用いただけます。
- XIAO ESP32-C5 がバッテリーで給電されている場合、C LED が点灯します。これを基準として、充電管理が行われているかどうかを判断できます。
バッテリー電圧の確認
XIAO ESP32-C5 には、SGM40567 バッテリー充電チップと TPS22916CYFPR バッテリー電圧取得チップが搭載されています。BAT_VOLT_PIN_EN を有効にすることでバッテリー電圧取得機能を起動し、BAT_VOLT_PIN を通じてバッテリー電圧を読み取ることができます。
XIAO ESP32C5 では、BAT_VOLT_PIN に対応するピンは GPIO6、BAT_VOLT_PIN_EN に対応するピンは GPIO26 です。
#include <Arduino.h>
void setup() {
Serial.begin(115200);
pinMode(BAT_VOLT_PIN, INPUT); // Configure A0 as ADC input
pinMode(BAT_VOLT_PIN_EN , OUTPUT);
digitalWrite(BAT_VOLT_PIN_EN , HIGH);
}
void loop() {
uint32_t Vbatt = 0;
for(int i = 0; i < 16; i++) {
Vbatt += analogReadMilliVolts(BAT_VOLT_PIN ); // Read and accumulate ADC voltage
}
float Vbattf = 2 * Vbatt / 16 / 1000.0; // Adjust for 1:2 divider and convert to volts
Serial.println(Vbattf, 3); // Output voltage to 3 decimal places
delay(1000); // Wait for 1 second
}
-
analogReadMilliVolts(BAT_Voltage_Read)- この関数は、
BAT_VOLT_PINピンから現在のアナログ電圧を読み取り、ミリボルト(mV)単位の較正済み電圧値を返すために使用されます。 - 従来の
analogRead()が生の ADC 値のみを提供するのとは異なり、analogReadMilliVolts()はチップに組み込まれた工場出荷時のキャリブレーションパラメータを自動的に適用します。これにより、電圧測定の精度が向上し、線形性が改善され、手動での ADC から電圧への変換が不要になります。 - 電圧サンプリング処理中は、
forループを通じて16 回の繰り返しサンプリングが行われ、その結果が加算されます。複数回サンプリングを行う目的は、瞬間的なノイズや離散誤差を抑制し、測定の安定性を高めることです。最後に、累積値をサンプル数(16)で割ることで、より平滑で信頼性の高い平均電圧値を得ます。
- この関数は、

データシートによると、ESP32-C5 の有効測定範囲は 0~3300 mV をカバーしています。そのため、XIAO ESP32-C5 の内蔵バッテリー電圧取得回路は、2 つの 100K 抵抗による分圧設計となっており、値を正確に読み取ることができます。
リソース
ハードウェア設計
- 📄[データシート] Espressif ESP32-C5 Datasheet
- 📄[回路図] XIAO ESP32-C5 Schematic
- 🗃️[PCB 設計ファイル] XIAO ESP32-C5 KiCad Project
- 🗃️[PCB 設計ライブラリ]
- XIAO シリーズ KiCad SCH Symbols
- 📄[ピン配置図] XIAO ESP32-C5 Pinout Sheet
メカニカル設計
- 📄[3D モデル] XIAO ESP32-C5 3D Model
技術サポート & 製品ディスカッション
当社製品をお選びいただきありがとうございます。私たちは、製品をできるだけスムーズにご利用いただけるよう、さまざまなサポートを提供しています。お好みやニーズに応じて選択いただけるよう、複数のコミュニケーションチャネルを用意しています。



