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

【自作基板 / JLCPCB】ファミコンコントローラー型 カスタムESPboyの製作!


以前、ファミコンコントローラー(1コン・2コン)のCADモデルを製作したことがあります。

【電子工作 / 3Dプリンタ】ファミコンコントローラーのCADモデル(STL)を公開しました!

このCADモデルをベースに、本家ファミコンコントローラーを透明ケース仕様にカスタムしたり、USBゲームパッドを製作したりと、これまでいくつかの派生作品を作ってきました。

【自作基板 / 電子工作】GP2040-CEを使ったファミコンコントローラー型USBゲームパッド化基板の製作![PCBWayに基板と3Dプリントケースを発注]

そんな中、「ファミコンコントローラーの形状を模したミニゲーム機が作れたら、電子工作としてかなり面白いのではないか?」という発想からスタートしたのが本プロジェクトです。

当初は漠然としたアイデアでしたが、ファミコンコントローラーをベースにしたカスタムケースやオリジナル基板の構想を少しずつ形にしていきました。

これまで本ブログでは様々なゲームエミュレータを試してきましたが、「どの程度の規模のハードウェアならファミコンコントローラーサイズに収めることが出来るのか?」といった検討を行っていたのが、上記の[構想・イメージ]の記事となります。

そして、ESPBoyをベースにしたカスタム基板と本家コントローラー形状を模したケースとを組み合わせ、小型の携帯ゲーム機として仕上げることを目標としました。

【電子工作】ESP8266(WeMos D1 Mini)で動かすオープンソースの携帯ゲーム機『ESPboy』が面白い!

しかし限られたスペースの中でバッテリーやディスプレイなどの必要な部品を配置しながら、適切な電源ラインやGNDを確保することが難しく、一時は設計が完全に行き詰まり、長らく保留状態となっていました。

その後、4層基板への設計変更を経てプロジェクトを再始動。

そしてようやく、ファミコンコントローラー型のカスタムESPBoyを完成させることが出来ました!

ファミコンコントローラー型 カスタムESPboyの製作!

ファミコンコントローラー型のミニゲーム機として、カスタムしたESPBoyを組み込もう…
というところまでは決まったのですが、実際の基板設計は難しいものでした。

ESPBoyは本体のみで遊ぶだけではなく、公開されている拡張モジュールや自作モジュールを接続することで機能を拡張出来るのも大きな特徴です。

そのため、本プロジェクトでもゲーム機としての機能だけでなく、拡張性についても出来る限り残したいと考えていました。

しかし、ファミコンコントローラーの外観を維持しながら、決められたボタン配置やバッテリースペース、ディスプレイ、拡張ポートなど全てを組み込もうとすると、ケースとの干渉部分などから実際にパーツを配置できる基板スペースが限られてしまいます。

特にバッテリーを収納するために基板中央部へ切り込みを設ける必要があり、この形状および配置により左右基板間の電源やGNDラインの確保が難しいものとなっていました!

当初は2層基板での実現を目指していたのですが、この限られたスペースの中で適切な電源ラインやGNDラインを確保することが難しかったことから、設計は長らく保留状態となっていました。

その後、他の自作基板製作でも2層基板の限界を感じる場面が増えてきたこともあり、「初めての4層基板設計に挑戦するいい機会ではないか?」と考え、本プロジェクトを再始動することにしました。

【自作基板】ファミコンコントローラー型のミニゲーム機の製作③ [4層基板設計に変更]

内層に電源プレーンとGNDプレーンを確保することで、限られたスペースの中でも適切な電源およびGNDラインの確保が可能となり、ようやく本プロジェクトを形にすることが出来そうです…

JLCPCBに基板・3Dプリントケースを発注

基板および3Dプリントケースの発注は、今回もJLCPCBを利用しました。

初めての4層基板としての設計・発注となりましたが、製造料金は2層基板と比較してもそれほど大きな価格差はなく、思っていたよりも気軽にチャレンジ出来る印象でした。

最近では、基板サイズに対して実装スペースが逼迫し配線を引くのが大変な基板を設計することも増えてきたため、4層基板という選択肢は今後の自作基板製作でも積極的に活用していけそうです。

特に今回のような特殊な基板形状や、限られたスペースに多くのパーツを実装する必要がある基板では、電源プレーンやGNDプレーンを内層に確保出来るメリットは非常に大きいと感じました。

【JLCPCB】初めての4層基板設計にチャレンジ!KiCadでの設計やJLCPCBの製造料金などについて

また、ケースについてもJLCPCBグループの3DプリントサービスであるJLC3DPを利用しました。

基板とケースを同じタイミングで発注出来るため、組み立てまでの流れをスムーズに進められるのは非常に便利です!

JLCPCBへの発注についても少し見ておきます。

4層基板といっても発注手順は通常の2層基板とほとんど変わらず、ガーバーデータをアップロードするとレイヤー構成を自動で認識してくれます。

そのため、初めての4層基板だからといって特別難しい設定が必要になることもなく、戸惑うことなく注文出来ました。

発注項目ですが、今回は本家ファミコンコントローラーで使われているスイッチパーツを流用する構成で設計しており、メンブレンスイッチの接点部分も基板上に形成しています。

そのため、基板の表面仕上げオプションとしてENIG(金メッキ加工)を選択しました。

ENIG(Electroless Nickel Immersion Gold)は、銅の表面にニッケル層と非常に薄い金の層を形成する表面処理です。

一般的なHASL(はんだレベラー)と比較して表面が非常に平坦で、接点用途との相性が良いことが特徴です。

今回のようにメンブレンスイッチの接点として基板表面を利用する場合、長期間安定した接触特性も期待できそうです。

金色の接点部分は見た目にも高級感があり、またカスタム基板としてロゴ部分のソルダーマスクを抜き、ENIGの金色が見えるデザインとしてみました。

透明ケースを想定していて内部の基板が透けて見えるため、カスタム基板として良いアクセントにもなりそうです。

こうした遊び心を入れられるのもオリジナル基板ならではの楽しみですね!

今回は自宅リフロー環境でパーツの実装を行う予定だったので、ステンシルも一緒に発注しました。

JLCPCBの基本的な基板発注方法などは、こちらの記事で詳しくまとめています。
あわせて見て頂ければと思います。

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

3Dプリントケースについては、JLC3DPを利用しました。

素材は、SLA(Resin)にある[8001レジン]を選択し、表面仕上げには[オイルスプレー]を指定しました。

透明レジンを選択したのは、内部に組み込まれたオリジナル基板やパーツ類が見えるようにしたかったためです。

価格も非常に手頃で、今回のケースサイズであればわずか数ドル程度で製作することが出来ます。

仕上がりは非常に綺麗で、個人でここまでの品質のケースを製作するのはなかなか難しいことを考えると、コストパフォーマンスはかなり高いと毎回感じています。

設計したデータをそのまま形に出来るため、電子工作と組み合わせたカスタムケース製作との相性は抜群ですね!

JLC3DPへの発注方法は、こちらの記事が参考になると思います。

【JLCPCB / JLC3DP】JLCPCBの3Dプリントサービス(JLC3DP)を利用してみました。発注手順などをご紹介!

JLCPCBへの基板発注と一緒に発注すれば、送料が1回分で済むのもお得です!

基板・3Dプリントケースの到着

配送方法にOCS Expressを選択し、発注から10日ほどで基板と3Dプリントケースが手元に届きました。

まず基板から見ていきます。

黒レジストにENIG、そしてベタGNDに設定したハッチングパターンの組み合わせが非常に綺麗ですね!

・・・なのですが、ベタパターンの作り方を少しミスしてしまいました。

ハッチングパターンは、ベタ部分を格子状や網目状に形成する手法のことで、銅箔面積を減らしながらもGNDや電源プレーンとして利用出来るのが特徴です。

見た目にも独特な雰囲気があり、透明ケース越しに基板が見える今回のデザインとも相性が良いので採用しました。

ところが、ロゴやテキスト部分のソルダーマスクを抜いて金メッキを露出させる場合、その下にある銅箔パターンも考慮しておく必要があります。

今回はロゴ部分の下もハッチングパターンのままになっていたため、金メッキ部分に格子状の模様が見えてしまい、かなり見えにくい状態になってしまいました。

普段このようなロゴや文字を露出させて見せる場合は、その部分だけハッチングではなく別にベタ領域を設定しているのですが、どうやら発注直前のデータ修正時に消えてしまっていたようです。

DRCでも引っかからない部分なので、発注前のチェックでも全く気付きませんでした!

機能的には全く問題ありませんが、せっかくオリジナルのロゴをデザインしたので、もう少し綺麗に見せたかったところです。

また後述しますが、回路設計部分でも1ヶ所ミスが見つかったため、これらの問題を修正したリベンジ基板を後に発注しています。

修正後の基板ではロゴ部分も作り直したので、金メッキが綺麗に見えるよう改善しています。

次に3Dプリントケースです。

こちらは、本家ファミコンコントローラーのスイッチパーツとも完全にフィットし、非常に良い仕上がりとなりました!

ボタンやゴム接点の位置関係も問題なく、組み付け時の違和感もありません。

本家パーツとの寸法の整合性も良好で、ほぼ狙い通りの精度で製作することができ、完成後のスイッチ操作感も非常に良いものとなりました。

透明レジンを選択したことで内部の基板やパーツ類が透けて見えるため、電子工作作品らしいメカニカルな雰囲気を楽しめる、個人的にもかなり満足度の高い仕上がりとなりました!

パーツの実装 & 組み立て

次にパーツの実装です。

修正基板も製作しましたが、実装の様子は修正前の基板を使ったものです。(修正後の基板は若干パーツが増えています)

まずはステンシルを使ってはんだペーストを塗布します。

ちなみにこの作業では、いつもこちらのアイテムを使っています。

ステンシルの上から均一にペーストを伸ばすことができ、綺麗に塗布することができます。

パーツの実装は、ミニリフロー装置(MHP50)を使いました。

非常に便利なリフロー装置なので、自作基板製作をされている方は1台持っていると役立ちます!

【電子工作 / PCB】ミニリフロー装置『Miniware MHP50』を使ってみる!加熱性能や安全設計はMHP30から全て引き継がれ使い勝手がさらに向上した便利なリフロー装置です

今回製作した基板は、センターの切込みを境に左右にパーツ実装部が分かれた構成となっています。

そのため、MHP50のリフロープロファイル機能を使い、2回に分けてリフローを行いました。

MHP50用のこのような専用スタンドがあるととても便利です!

【電子工作 / PCB】Miniware MHP50で使えるスタンドの製作。大きな基板やいろんなリフロー方法に対応出来るので便利ですよ!

綺麗に実装できました。

Type-Cコネクタのブリッジや電源ラインの短絡は無かったので、このまま残りパーツの実装を続けていきます。

以前製作したこのブリッジチェッカーくん、ほんと便利です!

【自作基板】実装済み基板でも安全に検査!USB Type-C ブリッジ(短絡)チェッカーの製作【①全体構成を考える】

残りのパーツ、特にバッテリー端子・拡張端子・ティスプレイはレイアウトの都合上、実装する順序を間違えると取り付けができなくなるので注意が必要です。

まず、バッテリー(1セルリポバッテリー)を基板にはんだで直付けする場合は必要ありませんが、端子(JST-PHコネクタ)を介して接続したい場合はこの時点で取り付けておきます。

自分で設計しておきながらこの順序を間違えてしまい、後にディスプレイを取り外して付け直す…少し面倒な場面がありました!

MEMO
バッテリー端子のパッドはディスプレイ背面にあるので、ディスプレイを取り付けた後だとはんだ付けすることが出来ません!

次にディスプレイ用のピンヘッダー(1×8P)のみを取り付けます。

続いて拡張端子のピンソケット(2×10P)を取り付けます。

ピンヘッダーのはんだパッドによりピンソケットが約1.0~1.5mmほど浮いた状態になりますが、ケース側はこの高さで設計しています。

そして、ディスプレイを水平に取り付けます。

先にピンヘッダーのみ取り付けているので水平を取るのが難しい場合は、ダミーホールにM2ビスを挿し、間に六角ナットやワッシャー等を挟み高さを合わせておくと作業しやすいと思います。

あとは、表面の電源スイッチおよびタクトスイッチ(6mm×6mm)、スピーカー、RGB LEDを取り付けて基板は完成です。

本家ファミコンコントローラー付属のスイッチパーツ(またはその互換品)をケースに取り付けて完成です!

一部回路設計ミスがありました!

回路設計部分で1ヶ所ミスが見つかりました!

すでに修正済みの基板を発注して手元に届いているのですが、まだそちらのパーツ実装が出来ていないため上記実装部分の写真は修正前のものとなります。(基本的な実装・組立方法は同じです)

今回問題となったのは、ESP8266のブートストラップピンまわりの回路でした。

ESPboyではGPIO0をサウンド機能で利用しているのですが、コアとなるESP8266のGPIO0ピンはブートストラップピンでもあり、起動時にLOWレベルになっていると通常起動ではなく書き込みモードへ移行してしまいます。

本来は起動時に確実にHIGHレベルとなるよう設計する必要があるのですが、この部分の設計が上手く出来ていなかったようで、USB給電が無い状態(バッテリー駆動時)ではUSB-シリアル変換チップからの回り込みで、GPIO0の電圧がLOW判定の閾値付近になってしまい、起動が不安定になるという問題が発生しました。

原因の特定後は、パターンを一部カットして配線をバイパスすることで本来の動作を再現することが出来ました。

ただ、先述のようにロゴ部分の出来に関しても気になっていたことから、回路やロゴ部分を修正した基板を再発注することにしました。

基板設計においてこのようなミスは付きものですが、こうしたトラブルも含めて自作ハードウェアならではの醍醐味であり、スキルアップの良い機会にもなりました。

修正基板の方のパーツ実装や動作確認はまだ出来ていませんが、一応これで無事製作を完了することが出来ました!

最後に!

長らく保留状態となっていたファミコンコントローラー型のカスタムESPboyの製作ですが、ようやく形にすることが出来ました!

当初は2層基板での実現を目指していたものの、限られたスペースの中で適切な配線を確保することが難しく、一時は完全に行き詰まってしまっていた本プロジェクトですが、初めての4層基板設計に挑戦したことで設計の自由度が大きく向上し、ようやく完成まで辿り着くことが出来ました。

今後、4層基板を扱う良い機会にもなったと思います。

思い描いていたアイデアが、いろんな過程を経て、そして一つの完成した作品として形になる。

こうした体験が出来るのは、自作ハードウェアや電子工作ならではの大きな魅力だと改めて感じています。

また、今回製作したカスタムESPboyは完成後とても気に入ったことから、構想段階でイメージしていた別バージョンのものも製作してみようと考えています。

本プロジェクトの初期構想では、ESPboyベースのゲーム機だけでなく、ファミコンコントローラー型という特徴を活かしたファミコン(NES)エミュレータが動作するものも考えていました。

今回は「初めての4層基板設計に挑戦してみたい」という思いがあり、まずは設計が困難だったESPboy版を優先して完成させることにしましたが・・・、次は構想段階で考えていた別バージョンについても形にしてみたいと考えています。

自作ってほんと楽しいですよね!

修正基板の方も動作確認後、何か進展等があれば追記しておきます。

2 COMMENTS

コメントを残す

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