見出し画像

ESP32-S3のDIP化~KiCadで4層基板を製作

ESP32-S3」というマイコンを今後メインで活用していくためにDIP化基板(ピッチ変換基板)を自作した。今回はそのあたりについてダラダラと書いていくよ。
なお、使った基板制作ソフトはフリーのKiCad 7.0で、発注先はJLCPCB。無料ソフト&格安基板製造業者とか、ホントにいい時代になったよなあ…。

※ガーバーデータや部品購入のリンクは、ページ最後に記載。


素人にこそ高速大容量マイコンを

ここ数年で色々なマイコンを触ってみたけど、最近ではESP32シリーズほど趣味の電子工作に向いたマイコンはないと個人的に思っている。

ESP32-WROOM-32Eの開発モジュール(Devkit-C)

ホビーマイコンで、素人が実用的なことをやろうとするんなら、ライブラリが豊富なのは最低条件。それ以外にも、動作クロックが速くメモリも沢山載ってないと、結局は変なところでつまづいて挫折することになりがちだ。逆にマイコンが高速大容量なら、俺みたいな素人が書いたムダだらけのプログラムであっても、それなりに実用的に動いてくれる。つまり素人にこそ高速大容量なマイコンが必要ってことだ。これは素人歴40年超の俺が云うんだから間違いないと思ってもらっていい。

その点、ESP32シリーズは、メジャーな「ESP32-WROOM-32」という製品だと、クロックも160~240MHzとそこそこ速く、メモリも(型番にもよるけれど)大量に載ってる。それで機能が低いかというとそんなことはなく、デュアルコアでWi-FiもBluetoothも付いてる。I/Oピンも多い。

しかも安価。

最高かよ。

ESP32-WROOM-32E、単体だと500円ぐらい

ということで、これからは主力として使うマイコンをESP32に移行しようと考えているわけだが、少し前までは「ESP32-WROOM-32」という製品がメジャーだったけど、最近は「ESP32-S3-WROOM-1」という、より新しい製品シリーズがメジャーになりそうだという。なるほど、じゃあESP32-S3へ移行することにしようかね。


どのESP32-S3基板モジュールを使おうか

ESP32-S3を使おうと決めはしたものの、ESP32-S3を搭載したモジュールは山のように発売されている(ここでいうモジュールってのは、USB端子や3端子レギュレーターを付けて使いやすくした基板のことね)。モジュールごとにスペックも様々だ。そこで、どのモジュールを使うかを検討すべく、いくつか購入していじってみた。

左から、ESP32-S3-DevKitC-1LILYGO T-Display-S3M5Stamp S3

どれも心臓部はほぼ同じなので、性能もプログラムの作りやすさも変わらない。だから、端子の数やサイズ・価格で選べばいい…んだけど、正直どれも俺の用途にはしっくりこない。例えば直近の計画だと、MIDI鍵盤ハーモニカをワイヤレスにしようと思っているんで、I/Oピンはできるだけ多く欲しい。けれどモジュール自体は小さくないと筐体に入らない(なので、IOエクスパンダとかの他ICも使いたくない)。そういう観点からみると、今回買っていないものも含めて、どれも一長一短なのだ。

その中で、M5Stamp S3(上記画像の右端)は、サイズがかなり小さい割にI/Oピンが23個あってイイ線いってるんだけど、I/Oピンをフルに使おうとするとピン間隔が1.27mmになる。つまりブレッドボードに挿せないのだ。惜しい。

とはいえM5Stamp S3のパッケージは小さくてカッコいい

1.27mmピッチをブレッドボードに挿すんなら、DIP化基板(ピッチ変換基板)を間にかませばいいんだけど(実際にStampS3用の変換基板は売っていいる)、そこでフと思った…どうせ変換基板が必要なら、ESP32-S3そのものをピッチ変換した方が話が早いんじゃね? その方が圧倒的に安いし

ESP32-S3の端子ピッチも1.27mm

というわけで方針変更。市販のモジュールではなく、ESP32-S3単体+DIP化基板で進めることした。


市販のDIP化基板は発見できず…

先行製品のESP32-WROOM-32は、1.27mmピッチを2.54mmピッチ(ブレッドボードに挿さる)に変換する基板は数多く市販されている。秋月からも出てるし、アマゾンでもロング版ショート版が入手できる…っていうか全部持ってるw これ便利なんだよね。特に秋月の変換基板(下画像の真ん中)は、端子部の幅が細いんで、ブレッドボードで使いやすいんだわ。

左から、ESP32-WROOM-32、秋月の変換基板ロング版ショート版

で、ESP32-S3にも似たような基板がないかと思って探したんだけど、秋月/Amazon/AliExpressでは残念ながら見つからず。

1件だけ、マイクロファンというショップで近いものは見つかったんだけど、これはDIP化基板というよりは「ブレッドボードで使いやすい開発モジュール」と呼ぶべきものかな。俺が求めるのは、最低限の機能だけ載せた、もっとシンプルな変換基板なのだ。

ちなみに個人で作っている人も見かけたんだけど、説明文で「基板」のことを「基盤」と書いていたんで、その時点で読むのを止めた。プリント基板は「基盤」ではないんだぜ?(俺は #基板警察 なのだ)

まあ、なんだかんだ探して、自分の用途に合ったしっくりいくものは見つからなかった。なので、「それなら自分で作っちゃえ」と、結局はDIP化基板をオリジナルで作ることにしたのであった。たぶんそんなに手間じゃないしね。


KiCadでの設計準備

さて、いつもの基板作成フリーソフトKiCadで基板を設計するわけだが、実際にパターンを引く前に、資料集めから。

KiCadはバージョン7.0に移行済

まず何はなくともデータシート。ハードウェアのデザインガイドなんてのもあったけど、とりあえずはこれを眺めときゃ間違いない。

日本語版データシートはなかったけど、英語版でもまあよし

そしてKiCad設計用のシンボルフットプリントGitHubからダウンロードして手作業でもインストールできるのだけれど、GitHub上の説明によれば、KiCad 6.0以降なら「プラグイン&コンテンツ マネージャー」から直でインストールできるらしい。マジかよ。

ライブラリで「Espressif」を検索してインストール
回路図シンボルを発見
基板のフットプリントもちゃんとある

マジだった。何、この簡単さ。


初「4層基板」チャレンジ

そしてKiCadでの実作業。今回はちょっと新しいやり方にチャレンジしてみた。「4層基板」で作ったのだ。

今まで作ってきた基板では、配線パターンは表裏の2層だけだが、多層基板では、サンドイッチのように基板内部にもパターンレイヤーが挟み込まれている。当然、配線の自由度は上がる。

Wikipedia「プリント基板」より

なぜ4層基板にチャレンジしたかというと、ひとつには「一度やってみたかったから」。今回の基板は構造が単純で難易度も低く、初めて試すにはピッタリだ。上手くいこうがいくまいが、ノウハウが貯まることになる。

そしてもうひとつは「安いから」。いつもお世話になってるJLCPCBだと、50×50mmまでなら8層基板でも2ドル。2層基板と同んなじ価格だ。これは試す価値ありでしょ。

50x50mmまでなら、8層でも2ドル

4層にするにあたってのKiCadの設定は、「ファイル > 基板の設定…」のダイアログから、「基板スタックアップ > 物理的スタックアップ」を選び、導体レイヤーの数をメニューから選ぶだけ。あとの設定は全部、いつも使っているデザインルールまんまだ(デザインルールは、このあたりを参考にして、いちばん最初にテンプレ的に設定してある)。

追加設定したのは、ここだけ
基板編集レイヤーも念のため確認したけど、デフォルトのままで問題なさそう

調べたところ、貫通しないビア(buried via)を設定する場合にはそれなりにケアが必要だったり、アナログ回路や高周波回路では1レイヤーを丸々電源ラインにすべきだとか、インピーダンスがどうとかの話はあるようだけど、俺の趣味工作では不要なものだと判断。結果的には上手くいったのだから、まあ間違ってはいなかったってことかな。

なあんだ、4層基板、思ったより簡単じゃん。


回路図作成

回路図は、基本的にはデータシートに記載されている「参考回路図」をベースにして、不要な部分を削除していく。

これがデータシートの元回路図
  • チップ内蔵のUSB機能は、作るデバイスに合わせて個別に後付けする。

  • リセット(EN)スイッチは必要に応じて後付けする。

  • リアルタイムクロック用クリスタル(RTC)、デバッグ機能(JTAG)は基本的に不要。

不要な部分を削除した回路図

USBについて補足しておくと、従来のESP32ではUSBシリアルを通じてUARTからプログラムの書き込みを行っていたわけだけれど、ESP32-S3ではチップ自体がUSB機能を持っているので、それを使って書き込むこともできる。ただ俺としては、チップのUSB機能は主にアプリケーションに使いたいので、今回の回路ではフリーにしてある。プログラムの書き込みには、M5Stamp Picoと一緒に買った「ESP32 ダウンローダ」というUSBシリアル変換器を使う想定だ。

ESP32 ダウンローダ

ということを踏まえて、完成した回路図がこちら。

ESP32-S3 DIP化基板の回路図

結局、元回路図から残ったのは、電源を安定させるパスコン2つと、電源投入時のリセット信号を安定化させるRC回路だけなのであった。後は全部コネクタ or ピンヘッダにつないで並べただけ。ま、そんなもんでしょ。


配線パターン作成

あまりに簡単な回路なんで、作業工程は省略。んで、完成した4層基板のパターン図がこちら。

DIP化基板完成パターン図
DIP部分は、ピン番号順に並べた
プログラムを書き込む信号は、ESP32 ダウンローダに合わせてコネクタに

各レイヤーごとの配線パターンはこんな感じだ:

表レイヤー(F.Cu)
内1レイヤー(In1.Cu)
内2レイヤー(In2.Cu)。ここは電源&GNDのみ
裏レイヤー(B.Cu)

ものの本によれば、多層基板では「電源だけのレイヤー」とか「GNDだけのレイヤー」を、内側に置くのがセオリーなのだそうな。今回の回路では、内2レイヤー(In2.Cu)を電源だけにしてみた。なお、上記画像には表示していないけど、配線箇所以外はベタGNDになっている。

正直、今まで作ってた2層基板よりも、4層の方が配線自体はラクだった気がする。ESP32-S3はI/O端子が番号順に並んでいないので、それを昇順に並べるのが少し面倒だったけど、でも4層もあれば配線自体は極めて簡単だ。これ、2層だったらこうはできなかっただろうなあ。今後は、積極的に多層で作っちゃおうかねえ。


ガーバーデータ作成&発注

例によって、プラグインの「Fabrication Toolkit」を使い、1クリックでガーバーデータを生成。本当に便利すぎる。

PCBエディター上で、Fabrication Toolkitのボタンを1クリック
全製造用データが自動生成されるけれど、今回必要なのは「gerber.zip」だけ
「gerber.zip」の中身

うん、4層基板でも、全レイヤー分のデータがしっかり生成されているな。以前は、ガーバー ビューアーで全データ・全配線を目視チェックしていたけれど、今まで一度も問題のあるデータだったことはないので、今はざっと眺めるだけに留めている。

データもできたんで、発注。

「gerber.zip」をドラッグ&ドロップ

gerber.zip」を、JLCPCBのサイトで「Add gerber file」と書かれた枠内にを放り込めば…

見積もり画面

サイズが50×50ミリだったら5枚で2ドルだったんだけど、今回はハミ出しちゃっているんで、7ドル。まあ、機能としてこのサイズが必要なんだからしょうがない。

さて、発注も済んだから、あとは到着を待つだけだ。


到着・組み立て・動作確認

さて到着!

いつもの青箱がまた増えた

今回は中国の大型連休(国慶節)を挟んだんで、到着までいつもより1~2日ほど時間がかかったのであった(9/27発注~10/6到着)。それとも、4層基板だから時間がかかったってことなのかな?

完成した基板

うん、いい感じ。4層基板だからか、そこはかとなくズッシリ感がある(気のせいかも)。

ブレッドボードに乗せるとこんな感じ

ブレッドボードで使いやすいように設計した甲斐あって、サイズ感も形状もピッタリだ。

なお、初めての4層基板チャレンジなので、念のため端子間の導通をテスターで確認したけれど、問題はまったくなかった。あとは半田付けをミスらなければいいんだけど…。ESP32-S3の端子ピッチは1.27mmと狭いんで、これが今回の作業の山場になりそう。

使う道具は、ツールクリップ、半田(0.3mm)、フラックス
こて先の形状は、細かい作業に向いている「BC型」
ある意味、最も大切なツール

失敗歴40年超の俺に云わせれば、ちゃんとした道具を正しく使うことこそが成功の秘訣だ。先の細い半田ごてと、極細の半田(0.3mm)、フラックスツールクリップ、そして老眼鏡を揃えて、万全の体制で半田付け作業に取り組む。

まず正しい位置に仮止めするのがコツ
1辺が完成

フラックスをしっかり塗り、正しいパッド位置に端子を接触させて、適量の半田を流し込む。正しい手順でやれば、全然難しくない作業であったよ、うむ。

全パーツ半田付け完了

コネクタ、抵抗、コンデンサ、ピンヘッダも半田付けして、完成

ちなみに、ブレッドボードとの接続には、両端の長いピンヘッダを使った。上から計測器用に信号を取り出すためだ。

両端の長いピンヘッダ
上の足にテストフックを引っ掛けられる

プログラムの書き込みは、先述の通り ESP32 ダウンローダを使う。

コネクタのピン配置も、ESP32 ダウンローダに合わせた

で、簡単なプログラムを転送して動作確認。

一定時間ごとに「test」と表示させている

うん、プログラムも動いている。無事完成だ!


ESP32-S3をどう使っていこう…

というわけでESP32-S3を使う準備は整った。将来的にはこれでBLE-MIDIとか、USBデバイスあたりを作っていきたいんで、まずは適当なサンプルプログラムを動作させるところから始めていこうかね。

あと、今回の記事はダラダラと長くなっちゃったけど、コンパクトな動画にもまとめているんで、もしよかったらご覧くださいな。


リンク・ガーバーデータ・その他まとめ

■発注業者: JLCPCB(新規ユーザーの人は$54クーポンが貰えるよ。いますぐリンクに飛んで取得しよう! → https://jlcpcb.com/JPV
いつもお世話になってる中国の業者さん。4層基板も、いつもの2層基板と同じ感覚で、簡単に安く発注できたよ。

■発注データ(ガーバー=基板データ) とりあえずGoogleドライブで公開。これをZIPのまま、基板業者のサイトにアップロードすれば発注できるのであった。 https://drive.google.com/drive/folders/1pzxXdhZ3101XYrnw04_8EZOnre8BX4pc?usp=sharing
※品質その他の保証はできません。不具合があった場合も責任は持てませんので、悪しからず。

■ESP32-S3-WROOM-1の入手先
自分が買ったのはAliExpress。メモリ容量が色々と選べる。アンテナ無しの「-1U」も選べるけど、技適周りが不明だったので、ちょっとやめておいた。
https://ja.aliexpress.com/item/1005004815894336.html
皆んな大好き秋月電子だとこちら。SPIflashが16MB, PSRAMが8MB。 https://akizukidenshi.com/catalog/g/gM-17256/

ちなみにESP32-S3のデータシートはこちら。本家Espressifのサイト。 https://www.espressif.com/sites/default/files/documentation/esp32-s3-wroom-1_wroom-1u_datasheet_en.pdf

■USBダウンローダー(USB-シリアル変換) M5Stack社の製品「ESP32 ダウンローダーキット」。秋月やスイッチサイエンスで入手可能。
秋月: https://akizukidenshi.com/catalog/g/gM-17240/
スイッチサイエンス: https://www.switch-science.com/products/7471

AliExpressで同じピン配置の別製品が安く手に入るけど、まあ1個あれば十分なものなので、国内通販の方がラクかな。


(この項、了)

この記事が気に入ったらサポートをしてみませんか?