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

最近、ESP32-S3ボードを使いよく遊んでいました!
朝活、電子工作!
昨日からWebラジオを作っていたのだが、ようやく音が鳴った📻
I2SライブラリとPSRAMにどハマりしてた…😅 pic.twitter.com/vKqGRzeXgh— ガジェット大好き!! (@smartphone_jp1) January 16, 2026
ネイティブUSBが使えることもあり、このような自作ボードを作る場合でもシンプルなハードウェア構成で実現でき、手軽に書き込みや動作確認ができるのも魅力です。
問題解決👌
雑にオシロで見てみたが…
SDカードの読み込み時に大きくGNDが揺れて、これがアンプに・・・って感じなんだろうな!(クロック高すぎ?)AI先生に聞くと、あなたの自作S3ボードのGNDリターンパスが適切に設計されてないからだって!
精進します、な朝活でした😅 pic.twitter.com/yjU1SuECHa— ガジェット大好き!! (@smartphone_jp1) February 23, 2026

ESP系ボードを使った開発では、UART経由でプログラムを書き込む場合やネイティブUSBのみで構成された上記のようなシンプルなボードであっても、シリアル経由での書き込みやデバッグを行いたい場面が出てきます。
そのような場合、USB-シリアル変換ボードが必要になってくるわけですが、ESP系ボードへの書き込み時に自動書き込み(オートリセット機能)が行えるものを、そういえば持っていなかったことに気付きました!
ちょうど今ESP32のボード考えてて・・・
そういえば、ESP系で使えるオートリセット機能付いたシリアル変換ボード持ってないやー、と作ってみようかなアイデアが…💡 https://t.co/chsHm8ohxk— ガジェット大好き!! (@smartphone_jp1) March 5, 2026
ESP系ボードへのシリアル経由での書き込みでは、EN(RESET)スイッチやBOOTスイッチを使って手動で書き込みモードに移行させることもできますが、DTRやRTS信号で制御することで自動書き込み(オートリセット)が出来ると何かと便利です。
市販されているUSB-シリアル変換モジュールや自作したボードはいくつか手元にあるのですが、ESP用にオートリセット機能が付いたものを持っていなかったことから、今回自作ボードとして製作することにしました。
目次
オートリセット(自動書き込み)機能付きESP系マイコン プログラマボードの製作!
市販されているUSB-シリアル変換モジュールの多くは汎用用途を前提としており、ESPの自動書き込みに必要なオートリセット機能(DTR/RTS制御)に対応した専用の書き込みボードは、意外と選択肢が少ない印象です。
ESP用途に特化したものとなるため、市販品ではどうしても選択肢が限られてしまいます。
オートリセット機能(自動書き込み)を備えたシリアルモジュールは比較的簡単に構成できることもあり、今回自作ボードとして製作することにしました。
ボード設計
ESP系ボードのリセット操作を自動化(オートリセット)するには、DTR信号とRTS信号を使用します。
メインとなるUSB-シリアル変換チップは、CH340シリーズやFT232シリーズなど、DTR信号やRTS信号を扱えるものであれば基本的にどれを使用しても問題ありませんが、今回は少し違ったものを試してみることにしました。
上記チップはこれまでの自作基板製作で何度も使用してきたため、今回はあえて、これまで使用したことのないものを選択することに。
CH340シリーズではCH340CやCH340K、FT232シリーズではFT232RLなどがDTR/RTS信号に対応していますが、今回はチップサイズが小さいCP2102Nを選択しました。
DTRやRTSといった制御信号に加えデータラインのTXD/RXD、さらにインジケーターLED(TX/RX)も扱えること、そして入手性の良さも考慮してCP2102N(QFN28)を採用しています。
これにより、ボード全体の小型化にもつながりました。
何となく配置だけ!
続きは夜の部で… pic.twitter.com/cxvFKNqmvt— ガジェット大好き!! (@smartphone_jp1) March 7, 2026
オートリセットの流れ
ESP32やESP8266などへの自動書き込みは、USBシリアル変換チップのDTR信号とRTS信号を利用し、IO0ピンとENピン(RESET)を自動制御することで実現します。
BOOTスイッチ(IO0)やリセットスイッチ(EN)を使った手動操作を行うことなく、IDEからプログラムを書き込むことが可能になります。
このオートリセット回路には、一般的に2つのNPNトランジスタやMOSFETを使用し、DTR/RTSの組み合わせによってESPのENピンとGPIO0ピンを制御します。
簡単に自動リセットの仕組みを見ておきます。
IDEが通信を開始すると、DTR/RTS信号が制御され、以下のようなシーケンスが実行されます。
- IO0ピンをLOW(GND)に固定する(書き込みモードの予約)
- ENピン(リセット)を一度LOWにして、ESPを再起動させる
- ENピンをHIGHに戻す。 この瞬間にIO0がLOWであれば、ESPはフラッシュ書き込み待ち状態(ダウンロードモード)で起動しプログラムの転送が始まる
- 書き込み後、IO0ピンをHIGHに戻して再度ENピンをリセットする。この再起動の瞬間にIO0がHIGHであれば、ESPは通常モード(内蔵フラッシュ実行)で立ち上がります。
上記動作により、ESPはダウンロードモードへ移行から書き込み完了後に自動的に通常モードへ復帰します。
今回の設計では、使い勝手などを考慮しボードサイズを小型化することを想定していたので、パーツ数を極力減らすためオートリセット回路にはデュアルNPNトランジスタチップUMH3Nを使用しました。
オートフラッシュ部分!
なるほど!手元にUMH3Nって言う小さいチップがあったけど、これで作れるのね。
一回バラで組んでテストしたいけど、昨日秋月さんでWROOM-32のDIP化基板も頼んでおくべきだった😬 pic.twitter.com/dwEfr1G2EB
— ガジェット大好き!! (@smartphone_jp1) February 27, 2023
ボード概要
外部に引き出すピン(ESP側に接続)は、シリアルチップのTXD/RXD、リセット制御用のBOOT(IO0)とRST(EN)、そして電源(VOUT/GND)の計6ピンとしています。
接続方法としては、表面のJST-SHコネクタ、または背面のピンソケットのどちらでも使用出来る構成としています。
また、本プログラマはESP専用の書き込みボードであるため基本的に3.3Vでの動作&使用となりますが、ターゲットボードへの電源供給を行うVOUTピンについては、スイッチ切り替えにより5Vも出力できるようにしています。
ターゲット側で5Vを使用する回路を含む場合でも、本ボードから電源供給を行い書き込み後もそのまま動作させることが可能です。(ターゲットボード側に3.3V LDOが入っていることが前提です)
あと、ESP32やESP8266などで無線機能をアクティブにすると瞬間的に500mA程度(またはそれ以上)の電流を消費することがあります。
そのため、ターゲット側のESPボードで無線機能を有効にした状態でのテストや動作確認を行う場合、電源の供給能力が不足していると動作が不安定になったりリセットがかかる原因になることがあります。
本ボードでは、ターゲットボードへ電源供給を行いながら安定して書き込みや動作確認が行えるように、3.3V LDOレギュレータとして最大出力1.0AのTLV75733PDBVRを採用しました。
無線通信時のピーク電流にも余裕を持って対応でき、外部電源を別途用意することなく本ボード単体で安定した動作確認が出来ると思います。(以前テスト済み)

以上が本ボードの全体構成となります。
JLCPCBに基板を発注
基板の製造は、今回もJLCPCBを利用しました。
動作確認ができたので、今回製作したESPプログラマボードの基板データ(Gerber / BOM / CPL)をダウンロードできるようにしておきます。
何かの参考になれば幸いです。
JLCPCBへの発注内容についても簡単に見ていきます。
発注項目の選択は特記すべきところはありませんが、今回このように選択して発注しました。
自身でパーツを調達して実装する場合は、ステンシルもあわせて発注しておくと、はんだペーストの塗布が安定し作業がしやすくなります。
また、使用しているパーツについては後述の「使用パーツ一覧」も参考にして下さい。
JLCPCBの基本的な基板発注方法については、こちらの記事で詳しくまとめています。
あわせて見て頂ければと思います。

今回はアセンブリサービスを利用することで、パーツ実装まで含めてJLCPCBにやってもらいました。
自身で実装する場合と比べるとコストはかかりますが、その分、パーツの入手や実装の手間・時間を大きく削減でき、安定した品質で基板を用意できるのは大きなメリットです!
JLCPCBのPCBAサービスの利用方法については、こちらの記事で詳しくまとめていますので、あわせて参考にして頂ければと思います。

基板の到着
配送方法にOCS Expressを利用し、発注から10日ほどでパーツ実装済みの基板が手元に届きました。
今回のようにPCBA(部品実装サービス)を利用した場合でも、通常の基板単体発注と比較して納期は1〜2日ほど延びる程度なので、JLCPCBのPCBAサービスは非常に早い印象を受けます!
JLCPCBから来たやつ🟦
CADで設計したやつがリアルに形になるってのは、何度やっても楽しいものですなぁ😀 https://t.co/WkouwPqm34 pic.twitter.com/H2mRcYOAZb— ガジェット大好き!! (@smartphone_jp1) March 20, 2026
実装済みの状態で届くため、手元に届いてすぐに動作確認へ進めるのも大きなメリットです。
未実装のピンソケットとスイッチを取り付けて基板の完成です!
CP2102NのインジケーターLED(TX・RX)を有効にする
本ボードには、CP2102Nの通信状態を表示するインジケーターLED(TX LED / RX LED)を搭載しています。
CP2102Nのシリアル通信の状況に応じてLEDが点灯するようにしていますが、初期状態では無効(通常のGPIOモード)になっています。
これを有効にするには、Silicon Labsが提供している専用ソフトウェア(Simplicity Studio v5)を使い内蔵設定を書き換える必要があります!
CP2102NのTX/RXインジケーターLEDを有効にする方法をザックリと書いておきます。
[①ツールの準備] Simplicity Studio v5をインストール後、ツール内の「Xpress Configurator」という機能を使用します。(ダウンロード) [②デバイスの認識] 本ボードをPCと接続後、Simplicity Studioでデバイスを認識させ、Xpress Configuratorで接続されているCP2102Nの設定(Config)を読み込みます。 [③GPIOの割り当て] GPIO0をTX Toggle、GPIO1をRX Toggleにそれぞれ割り当てます。 [④設定の反映] 画面下の [Program Device] ボタンをクリックして、設定をチップへ書き込めば完了です。設定書き込み後、USBケーブルを一度抜き再度通電(起動)すると、書き込んだ設定が有効になります。
データ通信が発生したときだけ対応するピンがLOWになり、LEDが点灯するようになります。
動作テスト
簡単に動作テストを行ってみました。
こちらは、以前製作したネイティブUSBのみで構成したシンプルな自作ESP32-S3ボードへの書き込みの様子です。
USBシリアルでの書き込みやデバッグを行う場合は、UARTピンであるGPIO43(TX) / GPIO44(RX)を使います。
このTX/RXピンに加え、IO0およびENピンを本プログラマに接続し、オートリセットによる自動書き込みが正常に行えることを確認できました!
朝活、ESPのプログラマ完成!
ネイティブUSBしか引き出してないS3ボードでシリアルからの書き込みテスト…自動書き込み、書き込み後のリセットも問題なさそうね👌 pic.twitter.com/lGuWCNBrtf
— ガジェット大好き!! (@smartphone_jp1) March 22, 2026
また同様に、ESP8266モジュールへの書き込みも問題なく行うことができました!
ESP8266でLチカテスト
これは1台あると便利だね
もっと早く作っととけばよかった…
やっぱ自作はいいね! pic.twitter.com/NgD1c1vSzR— ガジェット大好き!! (@smartphone_jp1) March 22, 2026
これまでこのような試作回路をテストする際は、ターゲットボード側にあるBOOT(IO0)スイッチを押した状態でEN(リセット)スイッチを押す…といった手動操作での書き込みを行っていましたが、このようなオートリセット機能が付いたESP専用のシリアルモジュール(プログラマ)があると、快適に作業を進めることができますね!
付けた基板名が製品名と被る
本ボードの名称(基板名)は、製作過程では『ESP32 Programmer』としていましたが、ESP32に限らずESP8266などでも使用できることから、最終的に『ESP Programmer』としました。
基板名や名称については、これまであまり深く考えた事はなく分かりやすさ重視で付けることが多かったのですが、既に販売されている製品と名称が被っているとのご指摘をSNSで頂きました。
購入者が混乱するので頼むから製品名だけは被してこないでくれーと願いつつ https://t.co/duGBoClFRj pic.twitter.com/U5qSK2nO2o
— イチロヲ📛 (@ichirowo) March 11, 2026
私自身は趣味として製作を楽しんでいるスタイルではありますが、電子工作界隈では同人ハードウェアとして販売されている方も多く、名称一つでも混乱を招いてしまう可能性があることを改めて認識しました。
今後はこのような点にも少し気を配りつつ、製作を楽しんでいきたいと思います。
イチロヲさん(@ichirowo)、確認不足で申し訳ありませんでした!
使用パーツ一覧
本ボードで使用したパーツの一覧です。
今回、JLCPCBのPCBAサービスを利用してパーツの実装まで行いましたが、これから同様のボードを製作される方の参考になれば幸いです。
| パーツ | 定数 | 入手先 |
| コンデンサ (0805) | C1 4.7μF C2/C7 10μF C9 100nF | AliExpress |
| コンデンサ (0603) | C3/C4/C5/C6 100nF C8 4.7μF | AliExpress |
| ダイオード (SOD-123) | D1 1N5819W | AliExpress |
| 端子 | J1 USB Type-Cコネクタ(16P) | AliExpress / 秋月電子 |
| J2 L型ピンソケット(6P) | 秋月電子 | |
| J3 JST-SH(SMD 6P) | AliExpress | |
| LED (0603) | LED1(PWR)/LED2(TX)/LED3(RX) | AliExpress |
| 抵抗 (0603) | R1/R2 5.1kΩ R3/R4/R5 2.2kΩ R6 22.1kΩ R7 47.5kΩ R8 1kΩ R9/R10 470Ω R11 10kΩ | AliExpress |
| スイッチ | SW1/SW2 3mm×4mm(4P SMD) | AliExpress |
| SW3 Slide(6P DPDT) | AliExpress / 秋月電子 | |
| 3.3V LDO | U1 TLV75733PDBVR | AliExpress |
| ESD保護 | U2 USBLC6-2SC6(SOT-23-6) | AliExpress |
| デュアルNPN | U3 UMH3N(SOT-363) | AliExpress |
| 理想ダイオード | U4 XC8111AA01MR-G | 秋月電子 |
| USB-シリアル | U5 CP2102N-Axx(QFN-28) | AliExpress |
最後に!
今回、オートリセット(自動書き込み)機能を備えたESPプログラマボードを製作してみました。
USB-シリアル変換チップとシンプルな回路構成で実現出来るものではありますが、実際に使ってみると手動でのリセット操作が不要になり、書き込み作業が快適になります。
ESP専用のこのような書き込みボードは、調べてみると意外に市販されているものが少なく、用途に合うものを探すのが難しい場合もあります。
その点、自作であれば必要な機能や使用環境に合わせたボードサイズなど、自由に設計出来るのも大きなメリットです!
ESP系マイコンを使った開発をされている方は、比較的簡単な構成で製作できるので、興味があればぜひ試してみてはいかがでしょうか。

























コメントを残す