以前製作を考えていた自作のESP32開発ボード(ESP32-DevKitC)が完成しました!
ESP32-DevKitCは最もポピュラーなESP32開発ボードだと思います。
このESP32-DevKitCから電子工作を始められた方も多いのではないでしょうか?
今では新しいボードが多数リリースされていますが、ESP32-DevKitCは技適取得済みのESP-WROOM-32が使われWi-FiやBluetoothといった無線機能を国内でも合法的に使うことができ、シンプルな構成で使いやすいESP32開発ボードだと思います。
製作したものに組み込んでいるボードなども合わせると結構な数持っています。
ちょっとしたブレッドボードでのテストから製作物に組み込んで使うなど便利に使うことが出来るボードなので、ESP32-DevKitCを使ってテストプログラムや回路を組んで実際の製作物にはそれをベースに他のボードを使うなんてこともよく私はやっています。
安価で便利に使えるボードなんですが、これまで使っていて使いにくい部分に少し手を加え自作のESP32開発ボードとして製作してみました!
目次
自作ESP32開発ボードの製作!
冒頭でご紹介したようにESP32-DevKitCは最もポピュラーなESP32開発ボードとなり使われている方も多いと思います。
使い慣れているということもあり製作物を作る際のテスト段階で私はよく使っています。
使う頻度が高いボードなのでI/O端子の位置とかもう覚えちゃっているので何かと使いやすく感じ重宝しています!
製作物を作る初期段階でESP32-DevKitCを使ったテストを行い、最終的に用途に応じて他の開発ボードを使って完成させるといった感じで使うことも多いです。
最近製作したものでもテスト段階でESP32-DevKitCを使うことが多かったように感じます。
例えばこちらの試作。
ブレッドボードではESP32-DevKitCを使ってテストしていますが・・・
この投稿をInstagramで見る
テスト回路を組み動作確認やプログラムの作成を行い、製作物に組み込む際はそれをベースに用途に応じた他のボードを使うといった感じです。
この投稿をInstagramで見る
ESP32-DevKitCの改良点
ESP32-DevKitCを使うことが何かと多いのですが、少し手を加えるとテスト環境でさらに便利に使えるボードになるように感じます!
これはあくまで私の使用用途や環境からなのですが、具体的には以下ポイントを改善等させたものを今回自作ESP32開発ボードとして製作しました。
- Type-C端子に変更
- ボードサイズは?
- リポバッテリーからの駆動も可能
- ボード全体のシャットダウン
- I/Oピンの配置
①Type-C端子に変更
ESP32-DevKitCにはいくつかボードバージョンがありますが、基本的に内部回路はどのボードもほぼ同じです。(リセットまわりの修正くらいかな?)
最近の新しい開発ボードではType-C端子になったものが多くなってきましたが、ESP32-DevKitCではどのバージョンのボードも(最新はV4?)USB端子がmicroUSBとなっています。
今となっては少し古くもう使いにくく感じます!
最近ではPCまわりのケーブルはType-Cケーブルを使うことが多いのでこのような変換プラグを使っていますが・・・自作するならもうこれはType-Cコネクタ一択となりますね!
②ボードサイズは?
ESP32-DevKitCは幅広なボードサイズとなっています。
そのため通常よく使われる片側5列タイプのブレッドボードに差し込むとI/Oピンを取れるレーンが片側しか残りません。
ブレッドボードを上手く組み合わせたり、6列タイプのブレッドボードを使わないとこれは少し使いにくいポイントになります。
幅狭な開発ボードの一つにLolin D32という開発ボードがあります。
このボードはESP32-DevKitCと同じESP-WROOM-32が使われた開発ボードなんですが、幅狭なボードなので通常のブレッドボードでも両サイドにワイヤーを差すことが出来るので使いやすくなっています。
自作ESP32ボードを作るならこのボードサイズ(幅のピッチ)で作るのが理想的なんですが・・・
搭載するESP-WROOM-32のサイズの問題でどうしても下記部分のI/Oシルクが見にくくなってしまいます。
テスト環境で使うことを想定すると私の中ではI/Oラベルは見やすく確認しやすいというのが絶対条件となるので、ボードサイズをどうするかは非常に迷いました!
上記Lolin D32ではI/O端子のラベル(シルク)が小さくなり、場所によってはズレている箇所があります。
基板設計的にこれはどうしようもないのですが、目的のI/Oピンに挿しているつもりが1列ズレていて上手く動作しない・・・原因を探すのにかなりハマったという経験を何度もしています!
・・・結果、自作するボードではI/Oラベルを大きく取れる幅広タイプのサイズにすることにしました。
③リポバッテリーからの駆動も可能
Lolin D32を含めESP32開発ボードでリポバッテリーからの駆動が出来るタイプのボードをいくつか持っていますが、実はこれテスト環境で便利に使えることが多いと思います。
例えばWi-Fi経由でスケッチを書き込む場合などですね!
ESP32ではWi-Fiを経由してスケッチをボードに書き込むOTAが使えるので、例えば何か製作物に組み込んでテスト等する場合にUSBケーブル経由での給電ではなくリポバッテリーから直接ボードを駆動する事が出来れば便利に使える場面は多いと思います。
もちろん5V端子や3.3V端子などを使って給電する・・・ボードの駆動方法はいろいろとありますが、リポバッテリーを差すだけでボードの駆動が出来れば便利です。
パラメーターを調整しながら何度もテスト動作させる・・・なんていう時には便利に使えます。
この投稿をInstagramで見る
リポバッテリーからの駆動も可能で、かつUSB端子から充電も出来る構成のボードだと使いやすいと思います。
④ボード全体のシャットダウン
上記のようにリポバッテリーからの駆動も出来るタイプの開発ボードはいくつか市販されています。
バッテリーからの駆動時にそのON/OFFが出来るように物理スイッチを搭載しているボードもあるようです。
物理スイッチを実装する場合、想定しているボードサイズよりも更に大きくなってしまいます。
そのためレギュレーターチップのEN(Enable)ピンをI/O端子として引き出す構成にしました。
この端子をGNDに落とすことによりボード全体をシャットダウン出来るというものです。
⑤I/Oピンの配置
上記のような構成で自作ESP32ボードを製作することにしました。
ちょうどESP32-DevKitCとLolin D32の良いところを組み合わせた感じのボードになる想定です。
I/Oピンの配置は使わないピンはカットしてボードサイズを小さくし独自のI/Oピン配置にする予定でしたが・・・
これも迷ったポイントなんですが、最終的に使い慣れているESP32-DevKitCと同じI/O配置にすることにしました。
それにプラスしてレギュレーターのENピンに繋がった[R_EN]ピンとリポバッテリーと直結した[BAT]ピンを追加しました。
ESP32-DevKitCと横幅は同じで長さが1ピッチ分(2.54mm)長くなったサイズ(片側20ピン)のボードとなります。
以上、このような構成で自作ESP32開発ボードを製作していきました。
回路構成 & 基板設計
全体の回路構成はこのようにしました。
コアにESP-WROOM-32モジュールを使い、USB-シリアル変換モジュールにFT232RL、リポバッテリーの充電回路を内蔵といった全体構成になります。
リポバッテリーの充電チップにはTP4054やTP4056といった選択肢もありましたが、今回想定しているボードサイズに収めるために小さなパッケージサイズのMCP73831を使いました。
小さくて使い勝手の良い便利な充電チップですね!
バッテリー or USBからの駆動をMOS-FETで切り替え、リポバッテリーが接続されUSB端子からの充電が行われている時は[Charge]ランプ(赤色LED)が点灯し、充電完了時には[Ready]ランプ(緑色LED)が点灯します。
またESP32へのオートフラッシュ(自動書き込み)回路はトランジスタと抵抗を使った下写真左のような回路を使うのが一般的です。
NodeMCU方式と呼ばれるものです。
今回製作しているボードでは実装出来る面積が少なくパーツ数を減らすためにUMH3Nというチップで代用しています。
トランジスタ2個と抵抗2個を小さなチップ1枚で行うことが出来るこれも便利なチップです!
I/Oラベルのシルクを見やすくなるように極力大きく取りましたがその分パーツを実装できる面積が少なくなってしまったので、当初想定していた0805サイズから0603サイズのパーツをベースにすることにより、このボードサイズに上手く収めることが出来ました。
JLCPCB に基板発注
基板発注はJLCPCB を使いました。
送料区分にOCS NEPを選択して500円ほど(送料込み/基板5枚)で製作する事が出来ます。
ほんとお安い!
基板データ(ガーバーファイル)をダウンロード出来るようにしておきます。
何かの参考になればと思います。
ESP32-DevKitC DIY(Gerber)
またJLCPCB での基板発注方法に関してはこちらの記事で詳しく紹介しているので合わせて見て頂ければと思います。
上記データは基板発注時に任意の位置に入ってしまう基板製造番号をESP-WROOM-32で隠れる目立たない位置に指定して入れるようにしています。
JLCPCB では基板発注時の以下項目にチェックを入れておくと指定位置に基板製造番号を入れることが出来ます。(追加料金無し)
パーツの実装
送料区分はOCS NEPを選択し発注から8日で手元に届きました。
ほんと毎回トータルコストが安くて到着が早いJLCPCB は重宝しています!
パーツの実装はMHP30というリフロー装置を使いました。
コンパクトで作業スペースの邪魔にもなりにくく、非常に便利なミニリフロー装置で毎回愛用しています。
今回0603サイズのパーツをベースにしているので手ハンダでもなんとか可能だと思いますが、リフローによるパーツ実装は楽に出来て仕上がりも綺麗なのでオススメです!
今回ステンシルは使わなかったのですが(発注を忘れてました)、パーツが結構密集していて小さなチップもいくつかあるのでステンシルを使った方が実装は楽だと思います。
テスト動作も問題なくこれから便利に使えそうなボードなので時間がある時にもう1‐2枚作っておこうかと考えていますが・・・そうなるとステンシルを発注しておけばよかったなーなんて思ったり・・・。
動作確認
実装時の各I/O端子の短絡(ブリッジ)等のチェックやリポバッテリーからの駆動&充電、USB or バッテリーの切り替えなど動作テストを兼ねて行ってみました。
この投稿をInstagramで見る
問題ないようですね。
これからテスト環境で便利に使えそうです!
使用パーツ一覧
今回使用したパーツ一覧です。
使用パーツ | 定数 | 入手先 |
ICチップ | U1 MCP73831-2A (リポ充電チップ) | AliExpress / 秋月電子 |
U2 ME6211A33PG (3.3Vレギュレータ) | AliExpress | |
U3 FT232RL (USB to TTL) | AliExpress / 秋月電子 | |
U4 UMH3N (トランジスタ) | AliExpress | |
U5 ESP-WROOM-32 (ESP32コア) | 秋月電子 | |
抵抗 (0603) | R1/R5 5.1kΩ | Amazon / AliExpress |
R2 2.7kΩ | ↑ | |
R3/R4 100kΩ | ↑ | |
R6/R7 1kΩ | ↑ | |
R8 10kΩ | ↑ | |
コンデンサ (0603) | C1 4.7μF | Amazon / AliExpress |
C2/C4 1μF | ↑ | |
C3/C8 10μF | ↑ | |
C5/C6/C7/C9/C10/C11 0.1μF | ↑ | |
ダイオード | D1 B5819W(SOD-123) | AliExpress |
LED(0603) | LED1/LED2 | AliExpress |
ポリヒューズ(0805) | F1 500mA | AliExpress |
MOSFET | Q1 CJ2301(SOT-23) | AliExpress |
スイッチ | SW1/SW2 3×4mm (SMDタクトスイッチ) | AliExpress |
端子関係 | J1 Type-C端子 | AliExpress / 秋月電子 |
J2 JST(2P) | AliExpress | |
ピンヘッダー(20P) | ーーー |
最後に!
動作テストやテスト回路を組む時などにESP32-DevKitCやLolin D32といったボードを使うことが多く、これらボードの使いやすい所を掛け合わせた開発ボードがあると便利なのに・・・といった事を感じることがこれまで多かったので自作ボードとして製作してみました!
KiCadを使った基板設計にも少し慣れてきたので自作ESP32開発ボードを作るいい機会にもなりました。
あくまで私の環境や普段電子工作でやっていることに対してこんなボードがあると便利なんだけどなという発想から製作したのですが・・・
自分の環境であると便利なものを作る、これは自作基板製作において最も楽しく感じられる瞬間ですよね!
また普段よく使っているESP8266にWeMos D1 Miniというこちらも使いやすいボードがあるのですが、搭載されているESP-12Fは技適が取得されていないため技適対応させたD1 Miniを以前製作しました。
興味ある方はこちらも合わせて見て頂ければと思います。
コメントを残す