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

【自作基板 / 電子工作】GP2040-CEを使ったスーファミコントローラーUSBゲームパッド化基板&カスタムケースの製作![パーツの実装 – 動作確認]

前回書いたこちらの記事の後編記事となります。
PCBWayに発注していた基板と3Dプリントケースが届いたので、今回はパーツの実装からファームウェアの書き込み、完成までの製作過程をご紹介したいと思います。

【自作基板 / 電子工作】GP2040-CEを使ったスーファミコントローラーUSBゲームパッド化基板&カスタムケースの製作![設計 – PCBWayに発注]

GP2040-CEを使って、スーパーファミコンのコントローラーをUSBゲームパッド化するためのカスタム基板とケースを設計しました。

上記前回の記事では、GP2040を使ったスーファミコントローラー用のUSBゲームパッド化基板の設計やType-C端子に対応させたカスタムケースの設計、そしてPCBWayに発注していた基板と透明カラーケースが到着したところまでをご紹介しました。

今回はその続きとして、到着した基板のパーツ実装からファームウェアの書き込みや設定、そして動作確認から完成までの製作過程をまとめていきます。

GP2040-CEを使ったスーファミコントローラーUSBゲームパッド化基板の製作!

前回の記事でご紹介しましたが、PCBWayから届いた3Dプリントパーツは非常に綺麗な仕上がりとなっていました!

設計段階からカスタムケースを作るなら透明なカラースケルトンケースで作りたいと思っていたのですが、ここまで綺麗に仕上げてくれるともう大満足です。

PCBWayではUTR-8100という透明マテリアル(レジン)が扱われていますが、さらに染色オプションを付けることにより、このように希望の色味のカラー透明ケースとして仕上げることが出来ます。

色味はPANTONEカラーコードから指定出来るので、膨大な色数の中から自分のイメージに合った色味を選択することが出来るので、CADのレンダリングイメージに近いものを製造してもらうことが出来ます。

PCBWayの透明レジン『UTR-8100』はPANTONEカラーを指定して染色(Dyeing)が出来る!超綺麗なケースに仕上がりました

これまで何度かPCBWayでの透明レジンの染色を試していますが、どれも非常に綺麗な仕上がりで、そして反りや大きな収縮といったものもこれまで発生していないようなので、その造形精度は高いようです。

PANTONEカラーを指定して透明カラーレジンでの造形物を製造出来るのは、現状おそらく他社では出来ない?PCBWay独自のサービスなのかなと思います。

個人レベルの製作物で、これだけクオリティーの高いケースや造形物を作ることが出来れば、いろいろと活用出来ると思います!

ただ、染色オプションを付けるとそこそこ高額な製造料金となってしまうのは、自作で製作するプロジェクトにおいて少し痛い部分ではありますが・・・

パーツの実装

それでは基板のパーツ実装です。
リフローでの実装を想定していたので、基板と一緒にステンシル(メタルマスク)も発注していました。

いつものようにステンシルを使いはんだペーストを塗布します。

本基板は、カスタムケースを使ってType-C端子&ケーブルで使うことや、またUSBケーブル(Type-A)を接続し本家コントローラーのケースとの組み合わせでも使えるように基板設計しています。

カスタムケースを使わず本家コントローラーのケースをそのまま活かして使いたい場合は、Type-C端子など一部実装不要なパーツが出てきますが、今回の実装では面倒なので全てのパーツを実装してしまいました。

ただRGB LEDは本家ケースでは点灯が完全に見えなくなってしまうので、未実装にしておいても問題ありません。(詳しくは後述します)

RP2040やType-C端子といったピッチの狭いパーツがいくつかありますが、実装スペースに余裕があったのでブリッジ等の修正がしやすいようにある程度パーツ間のクリアランスを取っているので、はんだ作業に慣れた方なら本基板の実装はそれほど難しいものではないと思います。

ちなみに、ステンシルを使ったはんだペーストの塗布ではいつもこれを使っています。

パーツの実装は、MHP50というミニリフロー装置を使いました。
PD電源が使えコンパクトで作業スペースの邪魔にもなりにくい、自作基板製作でいつも愛用している非常に便利なホットプレートです。

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

そして今回製作した基板はMHP50のホットプレートを超えるサイズ(約125mm×48mm)だったため、以前自作したこのようなMHP50専用のスタンドを使い作業を行いました。

MHP50を使ったリフローで、ホットプレートサイズを超える大きな基板にも対応することが出来るので大変便利です!

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

実装は綺麗にでき、動作確認も問題なく一発OKでした。

本家ケースとの組み合わせで使う場合

本家ケースとの組み合わせで使う場合、以下パーツは不要となります。
私は面倒なので全て実装してしまいましたが、以下赤枠部分のパーツはカット(未実装)しても問題ないパーツとなります!

【不要パーツ】

・J2(Type-C) ・R2/R4(抵抗) ・LED1~LED6(RGB LED) ・C15~C20/C12(コンデンサ) ・F1(ヒューズ)

カスタムケースとの組み合わせで使う場合

Type-C端子が使えるカスタムケースとの組み合わせで使う場合、以下パーツは不要となります。
赤枠部分のパーツはカット(未実装)しても問題ないパーツとなります。

【不要パーツ】

・C24(コンデンサ) ・F2(ヒューズ)

LR基板の取り付け

メイン基板のパーツ実装が出来たら、LおよびRスイッチの基板を取り付けます。

本家コントローラーに付属する基板を取り外して今回使いまわしました。(※LR基板のガーバーも用意しています)

LおよびR基板を本ボードにはんだ付けして基板の実装は完了です!


MEMO
動作確認が完了し問題ないことが分かったので、前回記事にメイン基板やこのLR基板のガーバーファイル、そしてカスタムケースのSTLファイルをダウンロード出来るようにしておきます。
本プロジェクトに興味ある方は、そちらからダウンロードして下さい!

組み立て

カスタムケースで使用

今回PCBWayで製作した3Dプリント製のカスタムケースは、Type-C端子で使えるように設計しています。

スーファミコントローラー型のゲームパッドとして今風にType-Cケーブルが使え、透明ケースで作ればアクセントとなるRGB LEDの点灯も活かせる仕様となります。

スイッチやラバーパーツ、固定用ビスは全て本家スーファミコントローラーのものを流用しています。
アリエクなどでスイッチ部分の互換パーツが多数販売されているので、これを使ってみるのもいいと思います。


PCBWayで製造したカスタムケースは、嵌め合いや強度など特に問題なく、非常にいい仕上がりでした!

本家ケースで使用

本家スーファミコントローラーのケースにもそのまま組み込めるように基板サイズやネジ穴の位置など最適化しています。

本家ケースのケーブル穴から4ピンUSBケーブルを引き出す構成で、外観はそのままに中身だけをアップデートしたUSBゲームパッドとして使うことが出来ます。

お手持ちのType-Aケーブルをカットして接続するか、市販されているUSB4芯ケーブルを使います。

USBの4芯ケーブルは、赤(VBUS) / 黒(GND) / 緑(D+) / 白(D-)となっているのが一般的です。

本基板の対応するパッドにそれぞれをはんだ付けします。

ファームウェアの書き込み

組み立てが完了したらファームウェアの書き込みです。

本ボードは、GP2040-CEファームウェアでの使用を前提としたハードウェア構成となっています。
Web Configuratorを使いWebブラウザ上で各種設定が行え、接続するハードウェアによりスイッチ割り当て(GPIOの割り当て)等を簡単に変更することが出来るので便利です!

GP2040-CEの詳細に関して詳しくはこちらの本家サイトをご覧下さい!

参考 Multi-Platform Gamepad Firmware for RP2040GP2040-CE

それではファームウェアの書き込みです。

本ボードはRaspberry Pi Picoで動作する標準キーマップでGPIOをハードウェア接続しています。
書き込むファームウェアは、以下本家サイトからRaspberry Pi Pico用の最新のものをダウンロードして使います。

参考 Downloads Microcontroller BoardsGP2040-CE

今後ファームウェアのバージョンが上がった際に動作や操作方法等が変わってくる可能性もあるので、動作確認が出来ている現在(2025.08)の最新ファームウェア(GP2040-CE_0.7.11_Pico.uf2)を以下からダウンロード出来るようにもしておきます。

それではファームウェアを書き込みます。

本基板にUSBケーブルを挿し込みPCと接続します。
[BOOT]スイッチを押した状態で[RESET]スイッチを押すとDFUモードに入ります。

PCにUSBマスストレージとして認識されるので、あとは上記ダウンロードしたファームウェアをドラッグ&ドロップして書き込めば完了です。

MEMO
初めてPCと本基板を接続する場合は自動的にDFUモードで起動すると思います!

Web Configuratorを使って各種設定

ファームウェアの書き込みが完了したら、Web Configuratorを使って本基板が動作する最低限の基本設定だけを行っておきます。

Web Configuratorを立ち上げる

Web Configuratorの立ち上げは、[START]スイッチを押した状態でUSBケーブルを差し込み通電するか、または[START]スイッチを押した状態で本基板の[RESET]スイッチを押します

そしてブラウザで以下アドレスにアクセスするとWeb Configuratorが立ち上がります。

アクセスするURL
http://192.168.7.1/

ここから最低限の設定だけ行っておきます。

入力モードの設定

まず[設定]の[入力モード設定]を[標準HID]に変更します。

GPIO端子割り当て設定

次に[構成設定]から[GPIO割り当て設定]へ進みます。

基本的に標準で割り当てられている設定からハードウェア構成(GPIO)は変えていないので変更する必要はありませんが、スーファミで使う12キー以外(使用していないGPIO)を削除しておきました。

LED設定

最後にLEDの設定です。
[構成設定]から[LED設定]へ進みます。

データ端子を28にしておきます。
最大輝度やステップはお好みで!

[割当済みボタン]を全て無効にしておきます。

最後に、[ケースRGB LED]をこのように設定します。

MEMO
各項目の設定変更後は[保存]をクリックして下さい!
RP2040の読み取り専用メモリ内に設定内容が保存されます。

以上で設定完了です。
ブラウザを閉じ、再起動すればゲームパッドとして使えます。

本基板が動作する最低限の設定しか行っていませんが、接続するデバイス(ゲーム機など)によりGPIOピンに割り振られたスイッチを変更したり、複数デバイスで使う場合プロファイルを登録したり・・・、GP2040-CEに関して詳しくは本家サイトを参考に設定して使って頂ければと思います。

LEDの点灯パターンの変更

本基板背面に、ケースLEDとして6つのRGB LEDを搭載しています。

点灯パターンを変更する場合、以下スイッチ操作による変更がデフォルトで設定されています。

スイッチ操作内容
[START] + [Y]LEDの明るさを上げる
[START] + [B]LEDの明るさを下げる
[START] + [R]次の色に
[START] + [L]次のエフェクトに

動作確認(遊んでみる)

接続するゲーム機やPC用エミュレータによってはスイッチの割り当てを変更する必要が出てくる場合がありますが、GP2040-CEではプロファイルを設定することにより切り替えたりも出来るので便利です。(詳しくは本家サイトを参考にして下さい!)

出来る限り本家コントローラーの外観形状やスイッチ部分の作り込みを再現しているので、操作感もいいものが出来たと思います。

GPIO割り当てを変更しWeb Configuratorに入れなくなった場合の対処

以上でスーファミコンコントローラー型USBゲームパッドの完成です!

カスタムケースとの組み合わせで今風にType-C端子&ケーブルで使うか、または本家ケースを活かして使うか、お好みで選択することが出来ます。

あとGPIOの割り当てを変更してWeb Configuratorに入れなくなった場合の対処法を書いておきます。

GP2040-CEでは各種設定をWeb Configurator経由で設定出来るので便利なのですが、先述の通りWeb Configuratorに入るには[START]ボタンを押した状態で通電(またはリセット)する必要があります。

そして接続するデバイスによりGPIOの割り当てを変更して使う場合、例えば[START]ボタンのGPIO割り当てを変更してしまいWeb Configuratorに入れなくなってしまった際は、以下手順により一度本基板で使われているマイコン(RP2040)を初期化(設定情報を消去)してから再度ファームウェアを書き込む事により初期状態に戻すことが出来ます。

RP2040の初期化 & 再度ファームウェアの書き込み
  1. flash_nuke.uf2を書き込み、設定情報を消去 する
  2. 新たにGP2040-CEファームウェアを書き込む

本ボードの[BOOT]スイッチを押した状態で[RESET]スイッチを押すとUSBマスストレージとしてPCに認識されるので、ドラッグ&ドロップで以下ファイル(flash_nuke.uf2)を書き込み、まずRP2040を初期化します。

続いて同様の操作で上記GP2040ファームウェア本体(GP2040-CE_0.7.11_Pico.uf2)を書き込めば設定情報がデフォルト状態に戻るので、STARTボタンを押した状態で通電することによりWeb Configuratorに入ることが出来ます。
そして再度上記手順に従い設定を行って下さい!

使用パーツ一覧

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

パーツ定数入手先
コンデンサ
(0603)
C1/C2/C5/C6/C7/C8/C9/C10/C11
C15/C16/C17/C18/C19/C20/C23 100nF
C3/C4 1μF
C12/C24 10μF
C13/C14 15pF
AliExpress
コンデンサ
(0805)
C21/C22 1μFAliExpress
フューズ(1206)F1/F2 500mAAliExpress
USB端子J2 Type-C端子AliExpress / 秋月電子
RGB LED
(5050)
LED1~LED6 WS2812B(5050)AliExpress / 秋月電子
MOSFETQ1 BSS138(SOT23)AliExpress / 秋月電子
抵抗
(0603)
R1/R8/R10/R1R1 10kΩ
R2/R4 5.1kΩ
R3/R7 1kΩ
R5/R6 27Ω
R9 470Ω
AliExpress
タクトスイッチ
(4P SMD)
SW13/SW14 3mm×4mm×2.5mmAliExpress
フラッシュU1 W25Q128JVPIQAliExpress
ESDU2 USBLC6-2SC6(SOT23-6)AliExpress
MCUU3 RP2040AliExpress / 秋月電子
LDO(3.3V)U4 XC6206-3.3V(SOT23-3)AliExpress
クリスタル
(3225)
Y1 12MHzAliExpress / 秋月電子
MEMO① 本家ケースで使用する場合
J2 Type-C / R2/R4 / LED1~LED6 / C15~C16/ C12 / F1は未実装でも問題ありません!
MEMO② カスタムケースで使用する場合
C24 / F2は未実装でも問題ありません!

最後に!

今回のスーパーファミコンのコントローラーをUSBゲームパッド化させるプロジェクトも、無事に完成させることが出来ました!

PCBWayで製作した基板と3Dプリントケースは設計段階で狙った通りの仕上がりとなり、Type-C端子やRGB LEDを搭載した今風の構成と、本家ケースを活かしたクラシックな使い方の両立を実現出来ました。

特にPCBWayの3Dプリントサービスでは透明レジンにPANTONEカラーでの染色が可能で、これは他社では対応出来ないポイントとなり、今回のように「レトロデザイン × カスタムカラーケース」といったユニークなプロジェクトを形にできたのも、このサービスのおかげだと感じています。

動作確認等が完了し問題ないことが分かったので、基板データやケースデータを前回の記事に追記しておきます。
興味ある方は前回記事も見て頂ければと思います。

【自作基板 / 電子工作】GP2040-CEを使ったスーファミコントローラーUSBゲームパッド化基板&カスタムケースの製作![設計 – PCBWayに発注]

前回のファミコン版に続いて、今回も自分なりのアレンジを加えた“今風なSFCゲームパッド”として完成させることが出来たのは、とても面白い経験となりました。

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

レトロなハードウェアって、本当に触っているだけでワクワクさせてくれる面白さがありますよね!
今回のように少し今っぽいアレンジを加えてみるだけで、昔の懐かしいデバイスがまた新しい形で楽しめるのも魅力だと思います。

これからも遊び心を大事にしつつ、レトロハードを題材にした電子工作や、自分なりのカスタムを加えたものづくりを楽しんでいけたらと思います。

コメントを残す

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