L3 量産変換で最も多く選ばれるターゲットが ESP32-WROOM-32 です。このガイドでは、モジュールを基板に直接実装するときに ibouPCB が何を自動で入れ、何を警告し、認証についてユーザーが何を知っておくべきかをまとめます。
なぜベアチップではなくモジュールなのか
ESP32 チップ単体を使うには、40 MHz 水晶、フラッシュ、RF マッチングネットワーク、アンテナ、電源シーケンスを自分で設計し、無線認証も自分で取得しなければなりません。ESP32-WROOM-32 モジュールはこれらすべてを金属シールドの中にカプセル化した部品です。ユーザーが描くのはモジュール + 3.3 V 電源 + コネクタ + センサーインターフェースだけで、2 層基板とオートルーティングで十分です。ベアチップ完全統合は ibouPCB の範囲外です。
認証 — モジュールが持っているものと持っていないもの
ESP32-WROOM-32 は KC(韓国)、技適(日本)、FCC(米国)、CE(欧州)のモジュール認証を保有しています。カタログの certification { kc, giteki, fcc, ce } フィールドがこれで、L3 ターゲット選択時には認証保有モジュールが優先して提示されます。
- 無線(RF)認証はモジュールに付きます。モジュールを改造せず、アンテナを変えず、データシートのリファレンスどおりに実装すれば、最終製品で RF 試験をやり直さなくてよい場合がほとんどです。
- 完成品の認証は別です。販売製品であれば、KC 適合性評価・技適表示・CE 宣言など完成品段階の手続きが引き続き必要です。モジュール認証はその手続きを大幅に簡素化するだけで、代替するものではありません。
- 認証を無効にするもの: 外部アンテナへの交換(モジュールの変形により別途認証が必要)、シールドの除去、データシート外の送信出力設定。
自動で入るサポート回路
| 部品 | 値 | なぜ |
|---|---|---|
| 3.3 V レギュレーター | AMS1117-3.3 または同等品、入力 10 µF / 出力 10 µF + 100 nF | ESP32 は Wi-Fi 送信時に瞬間 500 mA を引き込みます。3.3 V レールには最低 500 mA の余裕が必要です |
| EN プルアップ + コンデンサ | 10 kΩ + 0.1 µF | 電源が安定したあとにリセットが解除されるよう RC 遅延。ないとコールドブートが不安定になります |
| 3V3 デカップリング | 10 µF + 0.1 µF(モジュールピンのそば) | 送信パルス電流の吸収 |
| IO0 プルアップ(警告) | 10 kΩ または内部プルアップ + ボタン | 起動時に IO0 が LOW だとダウンロードモードに入ります |
| UART プログラミングヘッダー | TX・RX・EN・IO0・3V3・GND | L3 基板には USB-Serial がありません。最初のファームウェアを書き込む経路が必要です |
IO0 プルアップは興味深い事例です。ゴールデンパターンのコーパスに Olimex ESP32 ボード 4 種をインポートしたとき、EN 10 k プルアップと 3V3 バルクコンデンサは手書きのパターンと一致しましたが、IO0 の外部プルアップは 4 ボードすべてにありませんでした(ボタン + 内部プルアップで十分)。そのため IO0 プルアップの欠落は error ではなく warning です。検証器はこのように実際のボードを根拠に調整されます。
ストラップピン — コードで使っていたピンが再割り当てされる理由
ESP32 はリセット直後にいくつかの GPIO のレベルを読んで起動方式を決めます。そのピンにセンサーや LED が付いていると、起動が変わったり失敗したりします。P4 ERC の「ブートストラップピンの誤用」ルールがこれを検出して警告し、別のピンを提案します。
- IO0 — 起動時に LOW だとダウンロードモード。起動時に LOW を作りうる負荷(例: アクティブ LOW のリレー入力)を付けないでください。
- IO2 — ダウンロードモード進入時に LOW またはフローティングである必要があります。オンボード LED 程度なら問題ありません。
- IO12 (MTDI) — 起動時に HIGH だと内部フラッシュ電圧が 1.8 V に設定され、3.3 V フラッシュのモジュールが起動しません。外部プルアップ禁止。
- IO15 (MTDO) — 起動ログ出力の有無。LOW だと起動メッセージが消えます。
- IO6–IO11 — 内部フラッシュに接続されています。絶対に使用しません。カタログで割り当て対象から除外されています。
- IO34–IO39 — 入力専用。内部プルアップ・プルダウンがなく、出力できません。ボタンを付けると外部プルアップが自動挿入されます。
レイアウト — アンテナ
モジュール端の PCB アンテナの下と周囲に銅があると放射性能が大きく低下し、認証条件からも外れます。ibouPCB の配置器は Espressif のガイドどおりにモジュールのアンテナ端を基板の縁に合わせ、アンテナのキープアウトをすべての銅層のルールエリアとしてミラーし、下面の GND ベタからも除外します。実測例(温度 + リレー、32 部品・21 ネット)はこのルールで 83 × 46 mm、DRC 0 件で完走しました。
3.3 V ロジック
ESP32 の GPIO は 3.3 V です。Arduino Uno で使っていた 5 V モジュール(HC-SR04 ECHO、5 V リレーモジュール、一部の OLED)はそのまま接続できず、変換器が分圧器・レベルシフター・ドライバトランジスタを入れます。一覧に「なぜ?」が併せて表示されます。
シミュレーション
ESP32 にはブラウザエンジンがないため、サーバーの Espressif QEMU(別プロセス)が動かします。ターゲットビルドは DIO フラッシュモードでコンパイルされ、4 MB の merged.bin がそのままフラッシュとして起動します。GPIO エッジと UART 出力がキャプチャされ、P8 回帰に使われます。Wi-Fi と Bluetooth はシミュレーションされません — ロジックゲートは GPIO・UART・I²C レベルの検証です。