以下の内容はhttps://s51517765.hatenadiary.jp/entry/2026/02/23/073000より取得しました。


ESP32-S3 N16R8ボードを試す

はじめに

ESP32-S3 N16R8という比較的新しいESP32ボードを購入したので試してみました。
実際に購入したのは、以下のアリエクのものですが、Amazonでも似たようなものが複数出ています。(技適は保証しません)
https://ja.aliexpress.com/item/1005010121791705.html?spm=a2g0o.order_list.order_list_main.16.35f0585aNsKRjs&gatewayAdapt=glo2jpn

  • Hoomyew

USB Type Cポートが2つありますが、このポートはそれぞれ役割があるようです。
これまでのボードと同じような用途として使うには裏面に「COM」と書かれている方を使えばよさそうです。

いつものようにESP32に対してはArduino IDEではなくVS code拡張のPlatform ioを使います。
Platform ioでこのボードを使うには設定ファイルを以下のように設定します。

# platformio.ini
[env:esp32-s3-devkitc-1]
platform = espressif32
board = esp32-s3-devkitc-1
framework = arduino
monitor_speed = 115200

community.platformio.org

使ってみる

このボードにはWS2812が搭載されています。いわゆるNeoPixelのフルカラーシリアルLEDです。
ライブラリをインストールし、Lチカをしてみます。
ちなみにデフォルトでもこのNeoPixelをつかったLチカが書き込まれていますが、自分で書き込んでみます。

#include <Adafruit_NeoPixel.h>

// ピン番号とLEDの数を定義
#define PIN 48
#define NUMPIXELS  1

Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  Serial.begin(115200);

  delay(2000);
  Serial.println("Hello, ESP32-S3!");
  pixels.begin();
}

void loop() {
  pixels.clear();

  // 赤色に点灯
  Serial.println("Red");
  pixels.setPixelColor(0, pixels.Color(150, 0, 0));
  pixels.show();
  delay(500);

  // 緑色に点灯
  Serial.println("Green");
  pixels.setPixelColor(0, pixels.Color(0, 150, 0));
  pixels.show();
  delay(500);

  // 青色に点灯
  Serial.println("Blue");
  pixels.setPixelColor(0, pixels.Color(0, 0, 150));
  pixels.show();
  delay(500);
}

書き込めないときは、ダウンロードモードに入れる必要があります。
その方法は「BOOTボタン押下→押したまま→リセットボタン押下→リセットボタン開放→BOOTボタン開放」です。
github.com

--- Terminal on COM6 | 115200 8-N-1
--- Available filters and text transformations: debug, default, direct, esp32_exception_decoder, hexlify, log2file, nocontrol, printable, send_on_enter, time
--- More details at https://bit.ly/pio-monitor-filters
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x1 (POWERON),boot:0x8 (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce3808,len:0x4bc
load:0x403c9700,len:0xbd8
load:0x403cc700,len:0x2a0c
entry 0x403c98d0
Hello, ESP32-S3!
Red
Green
Blue
Red

2つめのUSBポートは何に使う?

2つめのUSBポート(USBと記載)はbuild_flags = -D ARDUINO_USB_CDC_ON_BOOT=1と設定を追加するとSerial.print()が出力されるようです。

# platformio.ini
[env:esp32-s3-devkitc-1]
platform = espressif32
board = esp32-s3-devkitc-1
framework = arduino
monitor_speed = 115200
build_flags = -D ARDUINO_USB_CDC_ON_BOOT=1

基本的にSerial.print()の出力は同じですが、こちらにはBOOTログは出力されません。

--- Terminal on COM11 | 115200 8-N-1
--- Available filters and text transformations: debug, default, direct, esp32_exception_decoder, hexlify, log2file, nocontrol, printable, send_on_enter, time
--- More details at https://bit.ly/pio-monitor-filters
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H
Blue
Red
Green
Blue
Red
Green

では何を目的に使い分ければいいのか?ということになりますが、Geminiに聞いた結果を以下にまとめます。

ESP32-S3 DevKitC-1(N16R8搭載モデルなど)には、通常 「USB」 と 「UART(COM)」 という2つのMicro USB(またはUSB-C)ポートが搭載されています。

1. 2つのポートの役割の違い

「USB (Native)」ポートの利用価値

S3から新しく搭載されたこのポートには、以下のような強力な使い道があります。

デバイス化 (USB HID):
ESP32-S3をPCに「自作キーボード」や「マウス」として認識させることができます。特定の操作を自動化するガジェット(マクロキーなど)を作る際に必須です。

高速なデバッグ (JTAG):
本来は高価な外付けデバッガが必要な「ステップ実行(プログラムを一行ずつ止めて変数を確認する)」が、USBケーブル一本で可能になります。

USBホスト機能:
ESP32-S3側にUSBメモリを繋いでデータを読み書きしたり、USBキーボードを繋いで操作したりできます。

3. 「UART(COM)」ポートの利用価値

一見、古い方式に見えますが、開発中はこちらの方が「硬い」です。

OSからの認識が安定している:
Nativeポートはプログラムのバグでチップがクラッシュすると、PC側のシリアルポート自体が消えてしまうことがあります。UART(COM)ポートは変換チップが独立しているため、ESP32がフリーズしても通信経路が途切れません。

ブートログの確認:
電源を入れた直後の「起動に失敗した理由(電圧不足やメモリ読み込みエラー)」などは、多くの場合こちらのUART(COM)ポートにのみ出力されます。

どちらを使うべき?

普段の開発: UART (COM)ポートを使うのが最もトラブルが少なく推奨されます。
特殊な機能を作るとき: キーボード化したり、高速通信が必要な場合は USB ポートに切り替えます。
※Geminiの解説は以上。

Wi-Fiも対応

ESP32-S3 N16R8はもちろんWi-Fiも対応していますし、ESP32 devkitなどで作ったコードがそのまま動きます。
このボードをwebサーバーにするコードも動きました。
github.com

まとめ

動かしてみた。
基本的にはESP32 devkitなどと同じ感覚で使えます。
2つあるUSBポートが特徴的ですが、いまのところその価値が感じられていません。
もっといろいろ試してみる必要がありそうです。




以上の内容はhttps://s51517765.hatenadiary.jp/entry/2026/02/23/073000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14