11月25日発売 書籍『Arduinoと3Dプリンタでロボットを作ろう』を出させて頂きました!

【自作基板 / JLCPCB】ESP32-S3でUSB-OTGとUART、バッテリー駆動に対応した自作ボードを製作しました!

こちらの記事の追記となります。

【自作基板】ESP32-S3を使った自作ボードやオートリセット機能付きプログラマの製作を考えています!

ESP32-S3(WROOM-1)を使った自作ボードを以前製作したことがあります。

ESP32-S3の特徴でもあるネイティブUSBが使えることから、USB-シリアル変換チップを使わず、3.3V電圧レギュレータやS3まわりの最小限のパーツのみという、いわゆる最小構成で組んだボードです。

シンプルな構成ではありますが、このようなボードは必要に応じて外部に回路を付け足しながら動作確認やテストがしやすく、自作基板の試作や検証用途として1台あると何かと重宝します。

【電子工作 / PCB】自作ESP32-S3ボードを製作してみました!(ESP32-S3-WROOM-1)

一方で、ESP32-S3を搭載したボードは小型なものから高機能な開発ボードまで非常に多く販売されています。

基本的に使用されているコアは同じなので、ボードサイズや使用したい端子数(I/O)、価格などから用途に応じて選べばよく、自作するよりもコスト面では有利で安価に入手できるものが多いのも事実です。

それでも、用途に合わせてI/Oの配置を最適化したり、自分の開発スタイルに合わせた機能を追加などできる点は、自作ならではのメリットだと感じています。

今回紹介するボードは、そうした流れの中で製作した自作ESP32-S3ボードとなります。

ESP32-S3でUSB-OTGとUART、バッテリー駆動に対応した自作ボードの製作!

ESP32-S3のUSB-OTG(On-The-Go)は、S3チップが「USBデバイス」としても「USBホスト」としても動作できる機能です。

従来のESP32(無印)にはこの機能がなく、USB通信を行うためにはUARTをUSBに変換する外部の変換チップ(USB-シリアル変換ICなど)が必要でした。

一方でESP32-S3はUSB機能を内蔵しているため、外部チップを使わずにPCへ直接接続することができ、USBデバイスとして認識させることが可能です。

例えば、PCに接続してシリアル通信を行うだけでなく、HIDデバイスとしてキーボードやマウスのように振る舞わせたり、USBメモリのようなストレージデバイスとして扱うこともできます。

さらにUSBホストとして動作させることで、マウスやキーボードなどのUSB機器をESP32-S3側から制御することもでき、従来のESP32と比べてUSBまわりの自由度が大きく広がっています。

このように非常に便利な機能ではあるのですが、実際に開発や検証を行う中では、USB(ネイティブ)での接続、またUART経由での書き込みやログの確認といったように、用途に応じて複数のインターフェースを使い分けたい場面も多くあります。

そこで今回は、ESP32-S3のUSB-OTG機能を活かしつつ、従来通りのUART通信にも対応できるようにした自作の開発用ボードを製作してみました。

公式のEspressif Systemsが提供している開発ボード『ESP32-S3-DevKitC-1』が手元にありこれまで使用してきましたが、今回製作したボードはそれをベースに自分の環境で使いやすいよう付加機能を追加するなどアレンジしたものになります。

参考 ESP32-S3-DevKitC-1Espressif Systems

公式ボードや安価な互換ボードは多数販売されており、実際のところそれらを使えば十分な場面も多くあります。

そのため自作するとコスト面では不利になりがちで、コストパフォーマンスだけを考えるとあまり良いとは言えませんが、それでも自分の開発環境や用途に合わせて付加機能を追加したり、I/O配置を最適化できる点は、自作ならではのメリットだと製作してみて感じています。

ボード設計

まず公式ボードや他の互換ボードなど、ESP32系の開発ボード全般に言えることなのですが、I/Oラベルが小さく見にくいという点があります。

これはESP32-S3に限った話ではなく従来のESP32(無印)などでも同様で、コアとなるモジュール自体のサイズ(横幅約18.0mm)による制約が大きく影響しています。(小型のMini-1モジュールなどもありますが)

ブレッドボードでの使用を前提とした場合、一般的な片側5列タイプのブレッドボードでは左右に1レーンずつ余裕を持たせたボードサイズで設計しないと配線スペースが確保できず、6列タイプのブレッドボードが必要になるなど使い勝手が悪くなります。

しかし、このサイズに収めようとすると、モジュールサイズの制約上どうしてもI/Oラベルの印字スペースが限られ、結果として非常に小さく見にくい表記になってしまいます。

実際にESP32開発ボードを使っていて、この点は毎回気になっていた部分でもあります。
公式ボードや互換ボードを使っていて、ラベルが読めずにピン配置図を何度も見直す…というのは、ESP32ボードではあるあるな話ではないでしょうか?

そこで今回は、両面実装とすることを前提に設計を行い、ESP32-S3モジュール(WROOM-1)を背面に配置することで、ブレッドボードでの使い勝手を維持しつつ表面のI/Oラベルをできるだけ大きく確保できるレイアウトとしました。

これでボード幅が決まったため、ESP32-S3 WROOM-1のGPIOをすべて引き出す形で配置できるボードサイズにしました。

また、電源まわりについてもいくつか機能を持たせており、リポバッテリー(1S)からの駆動および充電にも対応させました。

USBケーブルが接続されている場合はUSBからの給電を優先しつつバッテリーを充電し、未接続時にはバッテリー駆動へ自動的に切り替わる構成としています。
バッテリー電圧は、分圧回路を経由してGPIO6ピン(ADC)から取得できます。

さらに、VIN端子からの外部電源入力にも対応させ、最大18Vまでの入力が可能です。(※バッテリーとの同時接続は不可!)

USB-シリアル変換チップにはCP2102Nを採用し、オートリセット(自動書き込み)回路も組み込んでいます。

また、USB-OTG使用時に本ボードに接続したデバイスへ電源供給を行いたい場合は、ジャンパーパッドを短絡することで5Vを出力できます。

以上が本ボードの全体構成です。

JLCPCBに発注

基板の製造は、JLCPCBを利用しました。

今回製作したESP32-S3ボードについては、動作確認も問題なく完了したため、基板データ(Gerber / BOM / CPL)をダウンロードできるようにしておきます。
何かの参考になれば幸いです。

JLCPCBへの発注内容についても簡単に触れておきます。

基本的な発注項目については特別な設定は行っていませんが、今回はこちらの内容で発注しています。

また、自身でパーツを調達して実装する場合は、ステンシルもあわせて発注しておくと、はんだペーストの塗布が安定し作業効率が大きく向上します。

使用しているパーツについては、後述の「使用パーツ一覧」もあわせて参考にしてみて下さい。

JLCPCBの基本的な基板発注方法については、こちらの記事で詳しくまとめています。

【電子工作 / 基板製作】これから始める自作基板。JLCPCBでの基板発注ガイド(2025年版)

今回はアセンブリサービス(PCBA)を利用し、パーツの実装まで含めてJLCPCBに依頼しました。

自身で実装する場合と比べるとコストは上がりますが、その分パーツ調達や実装作業にかかる手間や時間を大きく削減でき、安定した品質で基板を用意できるのは大きなメリットです。

今回の基板は両面実装として設計しており、PCBAサービスも両面実装を利用しました。

両面PCBAの場合はエコノミックPCBAが利用できず、標準PCBAでの発注となる点には注意が必要です!(製造コストが上がります)

JLCPCBのPCBAサービスを利用し、両面実装基板を試してみました!

なお、本ボードの背面にはESP32-S3 WROOM-1のみを配置しているため、この部分を手はんだで実装する前提とすれば、エコノミックPCBAの範囲内の片面実装で発注することも可能です。

ESP32-S3 WROOM-1自体は、ピッチも比較的余裕があるため手はんだでも十分対応可能です。
コストを抑えたい場合は、このような発注方法も一つの選択肢になると思います。

JLCPCBのパーツ実装サービス『エコノミックPCBA』と『標準PCBA』について!

また、JLCPCBの基本的なPCBAサービスの利用方法については、こちらの記事で詳しくまとめていますので、あわせて参考にして頂ければと思います。

【JLCPCB】自分で設計しなくてもOK!オープンソース基板をJLCPCBのPCBAサービスを利用して実装済み基板を発注する手順

基板の到着

他の基板とあわせて発注していたものが、まとめて届きました。

今回の基板はPCBAサービスを利用し、そして春節期間を挟み製造ラインが止まっていたこともあり、手元に届くのに2週間程かかりました。

今回のように、基板サイズに対して実装部品が多く、また0402サイズといった非常に小型パーツが含まれる場合、手作業で実装しようとするとそれなりに手間と時間がかかる作業になりますが…

自身でパーツを実装する場合と比べるとコストは多少上がってしまいますが、届いてすぐに動作確認作業や実践投入できるのは非常に便利で効率的です。

最後に、未実装としていたバッテリー端子(JST-PHコネクタ)とピンヘッダーを取り付けて、基板は完成です!

動作確認

本ボードには、USB-シリアル変換チップにSilicon Labs製のCP2102Nを使い、通信状態を可視化するインジケーターLED(TX LED / RX LED)を搭載しています。

シリアル通信の送受信に応じてLEDが点灯するようにしていますが、初期状態ではこの機能は無効になっており、通常のGPIOとして動作する設定になっています。

必要がなければそのまま使用することも可能ですが、このインジケーターLEDを有効にしたい場合は、Silicon Labsが提供している専用ソフトウェア(Simplicity Studio v5)を使用してCP2102Nの内蔵設定を書き換える必要があります!

一度設定してしまえば、UARTでの書き込みの際やデバッグ用途などで通信状態が視覚的に分かるようになるため便利です。

設定手順については、以下記事を参考にして下さい。

【JLCPCB / 電子工作】オートリセット(自動書き込み)対応!ESPマイコン書き込みボード(プログラマ)の製作

動作確認を兼ねて、少し遊んでみました・・・

バッテリー駆動時の電圧確認や、USB接続時の挙動なども問題なく動作しています。

ESP32-S3-WROOM-1は8MBのPSRAMが搭載されているので、例えばこのような動画プレーヤーのような用途でも動作させることができ面白いですね。

また、ESP32-S3の特徴の一つでもあるUSB-OTG機能を活かし、ホストとしての動作も試してみました。
外部デバイスを直接接続して制御できるのは、ESP32-S3ならではの強みです。

このようなゲームエミュレーターをUSBゲームパッドで動かすというのもいいですね!

使用パーツ一覧

今回使用したパーツの一覧です。

本基板はPCBAサービスを利用して実装まで行っていますが、LCSCパーツの在庫状況は時期によって変動があり、同一型番でも入手できない場合があります。
そのため、代替パーツ選定の参考としても活用していただければと思います。

また、PCBAを前提とした設計では、エコノミックPCBAまたは標準PCBAを使う、Basic / Extendedパーツの選択によってもコストが大きく変わる点も重要なポイントです。

そのあたりも含めて、「どういったパーツ構成にしたのか」という視点で見ていただくと、発注時の参考になるかと思います。

【JLCPCB】JLCPCBのパーツ実装サービス(PCBA)利用時の費用を安く抑えるための工夫!
パーツ定数入手先
コンデンサ
(0805)
C1 1μF
C2 4.7μF
AliExpress
コンデンサ
(0603)
C8 4.7μF
C9 1μF
C11 22μF
C16 4.7μF
C17 10μF
AliExpress
コンデンサ
(0402)
C3/C4/C5/C6/C7/C10/C12 100nFAliExpress
ダイオード
(SOD-523)
D1/D2/D3/D4/D5/D6 LESD5D5.0CT1GAliExpress
ダイオード
(SOD-123)
D10/D11 1N5819WAliExpress
LED
(0402)
D7 TX LED(Blue)
D8 RX LED(Green)
D9 Board LED(Blue)
D12 Charge LED(Orange)
D13 Full LED(Green)
D14 PWR LED(Green)
AliExpress
USB端子J1/J2 Type-Cコネクタ(16P)AliExpress / 秋月電子
バッテリー端子J3 JST-PH(2P THD)AliExpress / 秋月電子
MOSFET
(SOT-23)
Q1/Q2 AO3401AAliExpress / 秋月電子
抵抗
(0402)
R1/R2/R3/R4 5.1kΩ
R5 22.1kΩ
R6 47.5kΩ
R7 1kΩ
R8/R9 10kΩ
R10/R11/R12/R14/R15/R19 2.2kΩ
R13 2.7kΩ
R16/R18 100kΩ
R17 470kΩ
AliExpress
タクトスイッチ
(SMD)
SW1/SW2 3mm×4mm(SMD)AliExpress
3.3V LDOU1 LDL1117S33R(SOT-223)AliExpress
理想ダイオードU2/U3 XC8111(SOT-23-5)秋月電子
デュアルNPNトランジスタU4 UMH3NAliExpress
USB-TTLU5 CP2102N-A02(QFN-28)AliExpress
ESP32-S3モジュールU6 ESP32-S3-WROOM-1-N16R8AliExpress / 秋月電子
バッテリー充電ICU7 MCP73831(SOT-23)AliExpress / 秋月電子
その他ピンヘッダーーーー

最後に!

今回、ESP32-S3 WROOM-1をベースにした開発ボードを一から設計・製作してみましたが、既製品には無い自分仕様に仕上げられるのが、自作の大きな魅力だと改めて感じました!

コスト面だけを見れば市販の開発ボードには敵わない部分もありますが、I/Oラベルの視認性やバッテリー駆動など、自分の用途に合わせて最適化できる点は大きなメリットです。

ESP32-S3はUSB-OTGやPSRAM対応など機能も豊富で、ちょっとした実験から応用的な開発まで幅広く楽しめるデバイスです。
今回製作したボードも、開発やテスト用途で今後活用していけそうです。

自作ハードウェア製作、ほんと楽しいですよね。
興味ある方は、ぜひ自身の開発環境に合うオリジナルボード作りにチャレンジしてみてはいかがでしょうか!

何かの参考になれば嬉しいです。

コメントを残す

メールアドレスが公開されることはありません。