USB Geckoの修理

USB Geckoを使用していると、miniUSB端子がとれるというトラブルがよく発生します。私が所有しているUSB Geckoも、2つとも同じように壊れてしまいました。おそらく構造的に負荷がかかりやすい設計なのでしょう。オリジナル版は販売終了していますが、USB-TypeC版が現在も販売されているのでこちらに買い換えてもいいですが、せっかくなので壊れたUSB Geckoを修理することにしました。

  • 修理方法
  • miniUSB端子が基板から外れた際、基板のパターンが剥離してしまっていたためminiUSB端子を復旧するのは諦め、その代わりUSBケーブルを基板に直接はんだ付けすることで修理することにしました。

    1.適当なUSB 2.0ケーブルを用意し、適当な長さで切断。
    2.以下の図に示した4か所に、それぞれ対応する同色の配線をはんだ付け。
    3.はんだ付けが終わったら、配線がちぎれないようにホットボンドなどで固定。

    USB 2.0ケーブルの配線色は規格で指定されており、ほとんどのUSBケーブルでこの配線色が共通しているようです。

    赤: 5V
    黒: GND
    緑: D+
    白: D-

    修理後は問題なく動作するようになりました。壊れたUSB Geckoが手元にある方は、この方法で修理を試してみるのも良いかもしれません。

    USB Geckoを使ったデバッグ出力

    Wii/GCのHomebrew関係を片付けている際にUSBGeckoが出てきたので色々調べなおしています。
    自作プログラム作成において本体からのデバッグ出力をUSBGeckoを介して取得できる機能があるのですがメモとして残しておきます。

    USBGeckoとはIan Callaghan氏によるWii/GCの開発/ハッキングツールで、コンピューターのUSBポートとWii/GCメモリーカードスロットとを接続することでゲームなどの本体とのデータのやり取りをしたり、デバッガ的な使い方をすることができました。オリジナル版はすでに販売されていませんが本体のPCB設計図、回路図などが公開されているためいくつかクローンが作られており、現在は接続端子をUSB TYPE-Cに変更したものが販売されています。
    USB Gecko (Type-C) debugging tool for GameCube/Wii – webhdx’s retro store
    https://store.webhdx.dev/products/usb-gecko-type-c-debugging-tool-for-gamecube-wii

    ドライバはFTDIのサイトからFT245RL向けのD2XX Driversをダウンロードし、インストールするか、おそらくWin10/11ならUSBケーブルを指せば勝手に認識されると思います。もしCOMポートが追加で認識されない場合は、「デバイスマネージャー」→「ユニバーサルシリアルバスコントローラー」から「USB Serial Converter」のプロパティ→詳細にある「Load VCP」等書いてあるところにチェックを入れて設定を保存したあと、USBケーブルを接続しなおせばCOMポートが認識されるはずです。

    この時認識されたCOMポートの番号でTeraTermProなどで接続すれば実行中のデバッグ出力を取得することができます。

    具体的なプログラミングは既存のプログラムのソースを見てもらえればいいかともいますが、例えばCleanRipならprint_gecko()関数で文字列を表示させればよいようです。
    https://github.com/emukidid/cleanrip/blob/master/source/main.c#L1327

    また、wiiへプログラムを転送するwiiloadはUSBGeckoからプログラムを転送することも出るのですが、「set WIILOAD=COM6」と入力するか、環境変数の設定にWIILOAD、値を先ほどのCOMの値を追加しておくと使えるようになります。