ESP32-S3は内蔵USB-OTG機能を使い、PCからUSB HIDマウスとして認識させられます。最初はUSB-OTG直結端子、データ通信対応ケーブル、物理ボタンを用意し、ボタンを押した時だけカーソルを数px動かす最小検証から始めます。
基本情報
ESP32-S3でUSB HIDマウスを作れる理由
ESP32-S3にはUSB-OTGコントローラーとUSB PHYが内蔵されており、USBホストとUSBデバイスの両方を実装できます。
USB HIDマウスを作る場合、ESP32-S3はUSBデバイスとして動作します。
ESP32-S3
↓ USB Device / HID Mouse
PC・Mac・Linuxマシン
↓ USB Host
マウスとして認識
EspressifのESP-IDF USB Device StackはTinyUSBを基盤としており、HID、CDC、MIDI、MSCなどのUSBクラスを利用できます。
USB HIDは標準クラスであるため、一般的なWindows、macOS、Linuxでは、専用ドライバーを追加せずマウスとして認識される構成を作れます。
確認日: 2026年7月13日
| 項目 | 内容 |
|---|---|
| 対象SoC | ESP32-S3 |
| USB機能 | USB 2.0 Full-Speed OTG |
| 今回の役割 | USB Device |
| USBクラス | HID |
| 動作例 | 相対移動、ボタン、ホイール |
| USB D- | GPIO19 |
| USB D+ | GPIO20 |
| 代表的な開発環境 | ESP-IDF、Arduino-ESP32 |
| ESP-IDFのUSB基盤 | TinyUSBベースのUSB Device Stack |
| 公式サンプル | examples/peripherals/usb/device/tusb_hid |
| 主な注意 | USB端子の種類、GPIO19/20の競合、誤入力防止 |
ESP32-S3のUSB D-とD+は、それぞれGPIO19とGPIO20へ割り当てられています。
開発ボードにUSB-OTG直結端子がある場合は、通常その端子を使用します。USB-UART変換チップへ接続された端子では、ESP32-S3をHIDデバイスとして認識させられません。
USB HostとUSB Deviceの違い
ESP32-S3のUSB機能を調べると、HostとDeviceの両方が出てきます。
| モード | ESP32-S3の役割 | 接続相手 |
|---|---|---|
| USB Device | マウスやキーボードとして振る舞う | PC、Mac、Linuxマシン |
| USB Host | USB機器を制御する | USBマウス、キーボード、ストレージ |
| USB OTG | 構成に応じてHostまたはDeviceになる | 用途による |
| USB Serial/JTAG | 書き込み、ログ、デバッグ | PC |
今回使うのはUSB Deviceモードです。
「ESP32-S3へ市販USBマウスを接続して読み取る」場合はUSB Hostであり、別の記事・サンプルが必要です。
USB Serial/JTAGとの違い
ESP32-S3には、USB-OTGとUSB-Serial-JTAGの2つのUSBコントローラーがあります。
ただし、内蔵USB PHYは共有されます。Espressif公式資料では、内蔵PHYを利用する場合、USB-OTGとUSB-Serial-JTAGを同時に使えない構成があると説明されています。
実務では、次の構成が分かりやすくなります。
書き込み・シリアルログ:
USB-UART変換チップ側の端子
HIDマウス接続:
ESP32-S3 USB-OTG直結端子
USB端子が2つある開発ボードでは、一般に次のような表示があります。
- USB
- OTG
- Native USB
- USB DEV
- UART
- COM
- USB-to-UART
端子名はボードによって異なります。回路図または公式ユーザーガイドで確認してください。
対応ボードの選び方
ESP32-S3搭載と書かれていても、すべてのボードが同じUSB配線ではありません。
選びやすい条件
- ESP32-S3を搭載している
- USB D- / D+が端子へ配線されている
- USB-OTGまたはNative USBと明記されている
- USB-UARTとは別にネイティブUSB端子がある
- BOOTボタンとRESETボタンがある
- 公式回路図が公開されている
- 使用する開発環境のボード定義がある
代表的な候補
- ESP32-S3-DevKitC-1
- ESP32-S3-USB-OTG
- ESP32-S3-DevKitM-1
- USB-OTG対応を明記したESP32-S3小型ボード
ESP32-S3-USB-OTGは、EspressifがUSB Host・Deviceの検証向けに提供する開発ボードです。USB切り替え回路、USB Host端子、USB Device端子、USB-UART端子を備えています。
一方、通常のESP32-S3-DevKitC-1でも、ESP32-S3 USB PortへD+/D-が接続されている版であればUSB Deviceを試せます。
購入前の確認項目
SoC:
ESP32-S3か
USB端子:
Native USB / OTGへ接続されているか
書き込み:
USB-UART端子が別にあるか
回路図:
GPIO19とGPIO20の接続先
電源:
USBから給電できるか
ボード定義:
ESP-IDFまたはArduino-ESP32で利用できるか
単に「ESP32」と書かれた旧ESP32-WROOM系ボードには、ESP32-S3と同じUSB-OTG機能はありません。
必要な部品
最小構成は次のとおりです。
| 部品 | 必要性 | 用途 |
|---|---|---|
| ESP32-S3開発ボード | 必須 | HIDマウス本体 |
| USBデータケーブル | 必須 | PCとの通信 |
| PC | 必須 | USB Host、書き込み |
| 物理ボタン | 推奨 | HID出力の明示的な許可 |
| 10kΩ抵抗 | 構成による | 外付けボタンのpull-up / pull-down |
| USB-UART用ケーブル | ボードによる | 書き込みとログ |
| USBハブ | 推奨 | 検証機の保護と切断の容易化 |
| LED | 任意 | 出力許可状態の表示 |
BOOTボタンを入力トリガーに使える公式サンプルもあります。
ただし、BOOTボタンは書き込みモードへの移行にも使うため、製品化する場合は専用ボタンを用意した方が分かりやすくなります。
USBケーブルの注意
USB Type-Cケーブルでも、充電専用でデータ線を持たない製品があります。
次を確認してください。
- データ通信対応
- コネクターがボードと一致
- 極端に長くない
- 接触不良がない
- USBハブを経由する場合はデータ通信対応
- Type-C変換アダプターの品質
HIDが認識されない場合、コードを疑う前に別のデータケーブルを試します。
GPIO19とGPIO20を別用途へ使わない
ESP32-S3では、GPIO19がUSB D-、GPIO20がUSB D+です。
USB Deviceとして使う場合、これらをLED、I2C、SPI、通常GPIOなどへ割り当てないでください。
GPIO19:
USB D-
GPIO20:
USB D+
EspressifのFAQでも、USBを唯一の書き込み・通信経路として使う場合、GPIO19とGPIO20を別の周辺機能へ使わないよう注意されています。
GPIO19・20を誤って通常GPIOへ再設定すると、USB通信やUSB-JTAGが使えなくなる可能性があります。
独自基板での配線
USB端子付き開発ボードを使う場合、通常はD+/D-を追加配線する必要はありません。
独自基板では、概念上次の接続が必要です。
USB VBUS
USB D- -> ESP32-S3 GPIO19
USB D+ -> ESP32-S3 GPIO20
USB GND -> GND
ただし、USB Type-C端子、CC抵抗、ESD保護、差動配線、直列抵抗、VBUS検出、電源構成を含む完全なUSB回路設計が必要です。
自給電デバイスでは、Espressif公式資料がVBUS監視を要求しています。単純にVBUSをESP32-S3のGPIOへ直結してはいけません。分圧器、比較器、外部PHYなど、公式ハードウェアガイドに従ってください。
最初の検証では、USB回路が完成済みの開発ボードを推奨します。
開発環境の選び方
主な選択肢はESP-IDFとArduino-ESP32です。
| 項目 | ESP-IDF | Arduino-ESP32 |
|---|---|---|
| 提供元 | Espressif | Espressif |
| USB実装 | USB Device Stack / TinyUSB | USB / USBHIDクラス |
| 公式HIDサンプル | あり | ライブラリ・例あり |
| 設定自由度 | 高い | 始めやすい |
| menuconfig | 利用 | 通常はIDE設定 |
| 向く用途 | 製品、詳細制御、複合USB | 小規模試作、学習 |
| デバッグ | ESP-IDF標準機能 | Arduino Serial中心 |
初めてUSB HIDを確認する場合でも、公式サンプルをそのままビルドできるESP-IDFは切り分けに向きます。
Arduinoを普段使っている場合はArduino-ESP32のUSBHIDMouseを利用できますが、ボード、USBモード、Arduino coreの版により設定項目が変わるため、公式サンプルとリリースノートを確認してください。
ESP-IDFでの最小検証
Espressif公式のHIDサンプルは次の場所にあります。
examples/peripherals/usb/device/tusb_hid
このサンプルはUSBキーボードとマウスを実装し、BOOTボタンを押した時にHIDレポートを送信します。
公式READMEでは、USB-OTG対応ボードを用意し、次のコマンドで書き込みとログ確認を行います。
idf.py -p PORT flash monitor
PORTは書き込みに使うシリアルポートへ置き換えます。
推奨する検証順
- ESP-IDFを公式手順で導入する
- サンプルをコピーする
- targetをESP32-S3へ設定する
- USB-UART側から書き込む
- シリアルログを確認する
- HID出力先のUSB-OTG端子を検証用PCへ接続する
- OSがHIDデバイスとして認識したか確認する
- BOOTボタンを1回押す
- マウスが小さく動くことを確認する
- すぐケーブルを抜ける状態で試す
target設定例:
idf.py set-target esp32s3
サンプルの正確なディレクトリ、依存コンポーネント、menuconfig項目は、利用するESP-IDF版のREADMEで確認してください。
最小検証を安全に変更する
公式サンプルにはキーボード入力や四角形のマウス移動が含まれる場合があります。
最初の確認では、次のように機能を限定します。
自動起動時:
HIDレポートを送らない
物理ボタン押下時:
X方向へ2pxだけ移動
クリック:
無効
ホイール:
無効
連続送信:
無効
再実行:
ボタンを離して再度押した時だけ
この構成なら、接続直後にカーソルが勝手に動き続ける事故を減らせます。
Arduino-ESP32で確認する場合
Arduino-ESP32には、USB HIDマウス用のUSBHIDMouse実装があります。
概念的な構成は次のとおりです。
#include "USB.h"
#include "USBHIDMouse.h"
USBHIDMouse Mouse;
初期化ではHIDとUSBを開始し、物理ボタンが押された場合だけ相対移動を送ります。
以下は安全確認用の最小例です。利用するArduino-ESP32の版とボード設定でAPIが一致するか、公式リポジトリのサンプルを確認してください。
#include "USB.h"
#include "USBHIDMouse.h"
USBHIDMouse Mouse;
constexpr int triggerPin = 0;
bool wasPressed = false;
void setup() {
pinMode(triggerPin, INPUT_PULLUP);
Mouse.begin();
USB.begin();
}
void loop() {
const bool pressed = digitalRead(triggerPin) == LOW;
if (pressed && !wasPressed) {
delay(30);
if (digitalRead(triggerPin) == LOW) {
Mouse.move(2, 0, 0);
}
}
wasPressed = pressed;
delay(10);
}
この例は次の制限を持たせています。
- 起動直後に動かさない
- 物理ボタンを押した時だけ実行
- 1回の押下で2pxだけ移動
- クリックしない
- ホイールを動かさない
- 連打ループを作らない
BOOTボタンがGPIO0ではないボードもあります。ボードの回路図を確認し、必要なら専用の外付けボタンへ変更してください。
Arduino IDEのUSB設定
Arduino IDEでは、ESP32-S3ボード選択時に次のような設定項目が表示される場合があります。
- USB Mode
- USB CDC On Boot
- Upload Mode
- USB Firmware MSC On Boot
- USB DFU On Boot
項目名と選択肢はArduino-ESP32の版、ボード定義、IDEによって異なります。
確認の基本方針は次のとおりです。
Board:
実際のESP32-S3ボード
USB Mode:
USB-OTG / TinyUSBを利用する構成
Upload:
最初はUSB-UART側を利用
HID:
USBHIDが有効になる構成
古いブログの設定名をそのまま使わず、現行のArduino-ESP32公式サンプルとボードメニューを確認してください。
マウスレポートの内容
一般的な相対マウスのHIDレポートには、次の値が含まれます。
- ボタン状態
- X方向の移動量
- Y方向の移動量
- ホイール移動量
概念例:
buttons:
0 = 押していない
x:
+2 = 右へ2
y:
0 = 移動なし
wheel:
0 = スクロールなし
相対移動は「画面上の座標へ移動する」命令ではありません。
相対マウス:
現在位置から右へ2
絶対座標デバイス:
画面上の指定座標へ移動
通常のUSBHIDMouseで扱う基本用途は相対マウスです。絶対座標を使う場合はHIDレポートディスクリプタとホストOSの解釈が変わるため、別途検証が必要です。
誤操作を防ぐ安全設計
USB HIDはOSから実際の入力機器として扱われます。
バグがあると、カーソルが動き続ける、クリックが解除されない、操作中の画面へ予期しない入力が入るなどの事故が起こります。
物理トリガーを必須にする
HIDレポートは、ボタン、スイッチ、ジャンパーなどを明示的に操作した時だけ送ります。
電源投入:
出力禁止
USB接続:
出力禁止
物理ボタン押下:
1回だけ出力
ボタン解放:
次の入力待ち
Wi-FiやBluetooth経由の遠隔コマンドだけでHID入力を許可しない方が安全です。
出力許可LEDを付ける
例:
LED消灯:
HID出力禁止
LED点灯:
物理スイッチで出力許可
LED点滅:
HIDレポート送信中
利用者が現在の状態を見て判断できます。
緊急停止を用意する
候補:
- USBケーブルを抜く
- 電源スイッチ
- 専用停止ボタン
- 長押しでHID停止
- 一定時間後に自動停止
- 最大送信回数
- watchdog
- 入力許可ピンをGND固定
検証中は、USB端子へすぐ手が届く位置で作業してください。
ボタン解放レポートを送る
クリックを実装する場合は、押下と解放を必ず対にします。
press
↓
短い待機
↓
release
エラー時や再起動時にも、ボタン押下状態が残らない設計にします。
最初の検証ではクリック機能を実装しない方が安全です。
連続ループを禁止する
次のような設計は避けます。
loop内で常にmoveを送る
起動直後から自動クリックする
高速でレポートを送信する
停止条件がない
誤ったファームウェアを書いた場合、PC操作が難しくなります。
検証専用環境を使う
推奨:
- 保存中の文書を閉じる
- 本番PCを使わない
- 仮想マシンまたは予備PCを使う
- 管理者画面を開かない
- 決済、メール、チャットを閉じる
- USBハブのスイッチを使う
- 自動実行機能を無効にする
自動入力の扱い
USB HIDマウスは、アクセシビリティ装置、独自入力デバイス、展示機、試験装置などに利用できます。
一方、利用者の認識や許可なく別端末を操作する用途、操作の偽装、監視回避、サービス規約を回避する自動操作には使用しないでください。
安全な用途例:
- 物理ジョイスティックをマウスへ変換
- 障害者向け入力補助
- 自作トラックボール
- フットスイッチ
- 展示機の明示操作
- 自社装置の製造試験
- 教育用HID実験
- 自分が管理する検証PCでのUI試験
避ける用途:
- 他人のPCを無断操作
- 不在を隠すカーソル移動
- 広告・ゲーム・業務記録の不正操作
- セキュリティ制限の回避
- ロック画面や認証画面への自動入力
- 大量クリックや操作偽装
UI自動テストが目的なら、Playwright、Selenium、OS公式のアクセシビリティAPIなど、ログと停止制御を持つテスト手段を優先してください。
USB VIDとPID
USBデバイスにはVendor IDとProduct IDがあります。
個人のローカル検証ではサンプル設定を使える場合がありますが、製品として配布・販売する場合は、VID/PIDの利用条件を確認する必要があります。
確認項目:
- EspressifやTinyUSBサンプルのVID/PID利用条件
- USB-IFのVID取得
- PIDの割り当て管理
- 製品名とシリアル番号
- 複合デバイス
- ドライバー配布
- Windows認証
- macOS・Linuxでの識別
- ファームウェア更新時の互換性
第三者のVID/PIDを無断で製品へ使用しないでください。
認識を確認する方法
Windows
- デバイスマネージャーを開く
- 「マウスとそのほかのポインティング デバイス」を確認
- 「ヒューマン インターフェイス デバイス」を確認
- 不明なUSBデバイスがないか確認
PowerShellやUSB確認ツールを使う場合は、VID、PID、製品名を確認します。
macOS
- システム情報を開く
- USBを選ぶ
- 接続デバイスの製品名、VID、PIDを確認
Linux
USB一覧:
lsusb
接続ログ:
sudo dmesg --follow
入力デバイス:
libinput list-devices
権限が必要なコマンドは検証PCだけで実行します。
認識されない時の切り分け
上から順に確認します。
1. ESP32-S3か
旧ESP32やUSB-OTG非対応SoCでは、同じ手順を使えません。
ESP32-S3:
対象
ESP32-WROOM-32:
対象外
ESP32-C3:
USB Serial/JTAGの仕様が異なるため別確認
2. 正しいUSB端子か
USB-UART端子へつないでいないか確認します。
ボードの回路図で、GPIO19・20へ接続される端子を探します。
3. データケーブルか
別のUSBデータケーブルを試します。
4. ボード設定が正しいか
- targetが
esp32s3 - 実ボードに合う定義
- TinyUSB / USB-OTGが有効
- HIDクラスが有効
5. GPIO19・20を使っていないか
アプリコードと周辺機器配線を確認します。
6. 書き込み後に正しい端子へ差し替えたか
USB-UARTで書き込み、USB-OTGでHID接続する構成では、ケーブルの接続先を分けます。
7. OSログを確認する
- 列挙開始
- descriptor error
- device reset
- power error
- unknown device
8. 公式サンプルへ戻す
独自コードではなく、利用中のESP-IDFまたはArduino-ESP32に含まれる公式HIDサンプルで確認します。
書き込みできなくなった時
USB設定やGPIO19・20の誤設定で、ネイティブUSB経由の書き込みができなくなる場合があります。
復旧候補:
- USB-UART端子を使う
- BOOTを押しながらRESETする
- GPIO0をLowにしてdownload modeへ入る
- 正しいシリアルポートを選ぶ
- 公式のesptoolまたはESP-IDFで再書き込みする
ボードによってBOOT・RESET操作が異なるため、公式ユーザーガイドを確認してください。
USB-UART端子がない独自基板では、download modeへ入るためのGPIO0とUART書き込み経路を設計段階で残しておくと復旧しやすくなります。
よくある失敗
ESP32-S3ではないボードを使う
USBHIDMouseがコンパイルできても、対象SoCがUSB-OTGを持たない場合は動作しません。
充電専用ケーブルを使う
電源LEDは点灯してもUSB列挙されません。
USB-UART端子へ接続する
シリアルポートとしては見えても、HIDマウスにはなりません。
起動直後から移動させる
書き込み後にPCへ接続した瞬間からカーソルが動き、停止や再書き込みが難しくなります。
BOOTボタンを押し続けた時に連続送信する
edge detectionを行わないと、押下中に多数のHIDレポートを送ります。
押された瞬間:
1回送信
押されている間:
送信しない
解放後:
次の入力を待つ
クリック解放を忘れる
ボタンが押下状態として扱われ続ける可能性があります。
ネットワークから無制限に操作できる
Wi-Fi経由で任意のマウス操作を受け付けると、誤操作と不正利用の範囲が広がります。
遠隔入力が必要な装置では、認証、暗号化、物理許可スイッチ、操作ログ、送信上限、停止機構を設計してください。
ESP32-S3が向いている用途
- 自作マウス
- トラックボール
- ジョイスティック変換
- フットペダル入力
- アクセシビリティ装置
- センサーを使ったポインティングデバイス
- USB HID学習
- 製造検査用の限定入力装置
- 複合HIDデバイス
- Wi-Fi/BLEとUSBの橋渡しを行う自社装置
別の手段を選ぶ場合
RP2040系
USB Deviceを比較的簡単に扱え、TinyUSBの情報も多い選択肢です。Wi-Fiが不要な単純HIDでは候補になります。
Arduino Leonardo / Pro Micro
ATmega32U4のUSB HID機能を使えます。小規模なキーボード・マウス試作で実績があります。
ESP32-S2
USB-OTGを持ち、Wi-FiとUSB Deviceを利用できます。Bluetooth LEが必要ならESP32-S3との違いを確認します。
UIテストツール
Webアプリの自動試験なら、物理HIDよりPlaywrightやSeleniumの方が再現性、ログ、停止制御に優れます。
開発の進め方
- USB-OTG直結端子を持つESP32-S3ボードを選ぶ
- データ対応USBケーブルを用意する
- USB-UART側で公式HIDサンプルを書き込む
- USB-OTG端子を検証PCへ接続する
- OSでHIDとして列挙されたことを確認する
- 物理ボタン押下時だけ2px移動させる
- 送信上限と緊急停止を追加する
- LEDで出力許可状態を表示する
- 必要なセンサーやスイッチを追加する
- 製品化前にVID/PID、ESD、電源、法規、サポートを確認する
最初の成功条件は「カーソルを自由に自動操作できること」ではありません。
PCがHIDとして認識する
物理ボタンを押した時だけ
小さく1回動く
USBを抜けば即停止する
この状態を作ってから、用途に必要な入力装置へ段階的に拡張してください。
参考リンク
確認日: 2026年7月13日
- ESP-IDF Programming Guide: USB Device Stack for ESP32-S3
https://docs.espressif.com/projects/esp-idf/en/stable/esp32s3/api-reference/peripherals/usb_device.html 確認対象: USB Device Stack、TinyUSB、HID対応、GPIO19・20、内蔵PHY、USB-Serial-JTAGとの関係
- ESP-IDF公式HIDサンプル
https://github.com/espressif/esp-idf/tree/master/examples/peripherals/usb/device/tusb_hid 確認対象: USBキーボード・マウスの実装、BOOTボタンによるHIDレポート送信、ビルド方法
- ESP32-S3のシリアル接続
https://docs.espressif.com/projects/esp-idf/en/stable/esp32s3/get-started/establish-serial-connection.html 確認対象: USB peripheralとUSB-UART、書き込み接続
- ESP32-S3 GPIO API Reference
https://docs.espressif.com/projects/esp-idf/en/stable/esp32s3/api-reference/peripherals/gpio.html 確認対象: GPIO19・GPIO20とUSB-JTAGの関係
- Espressif USB FAQ
https://docs.espressif.com/projects/esp-faq/en/latest/software-framework/peripherals/usb.html 確認対象: GPIO19・20を別用途へ使う場合の注意、download modeへの復旧
- ESP-IoT-Solution: USB-OTG Peripheral Introduction
https://docs.espressif.com/projects/esp-iot-solution/en/latest/usb/usb_overview/usb_otg.html 確認対象: ESP32-S2/S3のUSB-OTG、USB Host・Device、USB CDC
- ESP-IoT-Solution: USB Device Solution
https://docs.espressif.com/projects/esp-iot-solution/en/latest/usb/usb_overview/usb_device_solutions.html 確認対象: HID、CDC、複合デバイスなどのUSB Device用途
- ESP32-S3-USB-OTG User Guide
https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32s3/esp32-s3-usb-otg/user_guide.html 確認対象: USB Host・Device端子、USB切り替え回路、USB-UART、電源
- ESP32-S3-DevKitC-1 User Guide
https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32s3/esp32-s3-devkitc-1/user_guide_v1.1.html 確認対象: ESP32-S3 USB PortとUSB-to-UART Port、開発環境
- Arduino-ESP32 USBHIDMouse実装
https://github.com/espressif/arduino-esp32/blob/master/libraries/USB/src/USBHIDMouse.cpp 確認対象: ESP32-S2/S3向けUSB HIDマウス実装、相対・絶対マウス関連API
- Arduino-ESP32公式リポジトリ
https://github.com/espressif/arduino-esp32 確認対象: 現行Arduino core、USBライブラリ、サンプル、リリースノート
- TinyUSB公式リポジトリ
https://github.com/hathach/tinyusb 確認対象: USB Device Stack、HIDクラス、レポートディスクリプタ
- ESP32-S3とは何か
- ESP32-S2とESP32-S3の違い
- USB HIDとは何か
- USB HostとUSB Deviceの違い
- TinyUSBとは何か
- ESP-IDFの始め方
- Arduino IDEでESP32-S3を使う方法
- ESP32-S3のNative USB設定
- ESP32-S3でUSBキーボードを作る方法
- ESP32-S3でゲームパッドを作る方法
- ESP32-S3-USB-OTGの使い方
- ESP32-S3-DevKitC-1の端子
- USB Type-CのCC抵抗
- USBデバイスのVIDとPID
- マイコンでフットスイッチを作る方法
- RP2040でUSB HIDを作る方法
- PlaywrightによるUIテスト
- USB機器の安全な試作方法
部品を探す
購入リンクにはアフィリエイトリンクを含む場合があります。仕様・在庫は購入前に販売ページとメーカー公式情報で確認してください。

ESP32-S3のNative USB/OTGを使う最小検証向けです。記事で扱うGPIO19/20、USB-OTG端子、ボード側のUSB配線は購入前にメーカー資料と販売ページで確認してください。
Amazonで見る