USB joypad to X680x0

接続例

HUYE氏が中心になって開発している USBコントローラ→ATARI変換機の改変版です。
プログラムバージョン3.60以降を使用した場合、追加された回路を自動で認識・利用します。

USB host shieldの空き端子を利用した基板を試作していたところ、
HUYE氏からお声がけいただき、氏のご厚意により現在の形に至っています。ありがとうございます。

!注意! 必ずお読みください

昨今のPCにおけるUSBのように、ケーブルを挿せば何でも使えるようになるわけではありません。

まず、お手持ちのUSBコントローラが上記webサイトの対応リスト、またはプログラム内部に記述されているかを確認してください。
記載がない場合、Wiresharkなどを使って利用者ご自身でUSBコントローラの挙動を推測し、プログラムを書き換えていただく必要があります。

ご自身で試行錯誤された上で、対応を強く望まれる場合は、HUYE氏へ相談していただければ進展があるかもしれません。
HUYE氏の所有していないUSBコントローラである場合は、実機の貸し出しや往復輸送費の負担などのご協力をしていただくことになります。
ただし、ご協力をいただいても、対応作業はHUYE氏の義務ではありませんので、ご希望が叶わない場合もあります。
これらを理解できない方は連絡をご遠慮ください。

作者それぞれが趣味の成果をお裾分けしているだけであって、義務の類は存在しないということを理解していただきたくお願いします。

誰の作品であるかに関係なく、

は使用をご遠慮ください。

実装密度や連結コネクタの数が増えているのも相まって、控えめに言っても初心者向けではありません。
連結部分 連結部分

HUYE氏頒布の純正基板との差異

機能面での差異

変換機能自体には一切の差異がありません。

私の改変版は変換モード切替操作を直感的にする事を目的としています。

白窓君を本来の用途以外で利用しています。
白窓君についてはTNB製作所さんのページを確認してください。
白窓君の完成品はTNB製作所さんの頒布ページにて購入できます。

基板を組み立てる視点での差異

純正基板の長所としては これを裏返しにすると私が頒布した基板の弱点ということになります。 というわけで、前述の追加機能/組み立ての難易度/追加部品の価格を比較検討して選んでいただくことになります。

使い方

接続するその前に《重要な注意事項》

ケーブルの着脱はX680x0を含む全ての機器の電源を切った状態で行ってください。
この頒布品以外での話ですが、通電中にケーブルを着脱したため、X680x0が故障したという事例を聞いております。
昨今のPCが便利になりすぎて皆忘れているかもしれませんが、X680x0には通電中に着脱されることを意図した構造のコネクタは存在しません。

設定スイッチの使い方

SW1がPORT1、SW2がPORT2の設定スイッチです。
詳細については、HUYE氏の解説ページに掲載の一覧表を参照してください。

白窓君の使い方

白窓君はArduinoの電源を入れる前に接続してください。通電中の着脱は故障の原因となります。
白窓君には現在の変換モードが表示されます。
LED の点滅パターンを見ても変換モードを思い出せない時や、変換機本体を見えない場所に設置する場合などに便利でしょう。

回路図および部品配置(20221114版)

回路図 天面部品配置 底面部品配置

部品一覧(20221114版)

利用したい機能に応じて、調達する部材が増えていくという構成になっています。
20230311版の基板を入手された方はこちらを参照してください。

HUYE氏オリジナルの変換機能のみを利用する場合

部品配置 部品名 秋月電子の通販コード 解説
- 専用基板 - BOOTHにて頒布していました。 専用基板
- Arduino UNO M-07385 または M-15574
- USB host shield 2.0 for Arduino UNO
(以下UHS2と略)
- 原作者のページはこちら
2.0以外、例えば1.2やminiを選んでしまうと大改造が必要なので注意。
J1 2階建ての D-sub 9ピン(DE-9)レセプタクル C-02870
- Arduino用6ピン連結コネクタ C-04045 2個必要
- Arduino用8ピン連結コネクタ C-04046 2個必要
- M3ネジ穴に適合する11.2mm前後のプラ製スペーサー - UHS2のUSBコネクタとの短絡を防ぐための支え棒として2組以上を使用します。
導電性のネジ/ナットを使ってはいけません。
一部部品セットとして頒布した際には【P-03002】の長さを13mmに切ったものと【P-03584】を組み合わせていますが、 絶縁性材料であれば、この組み合わせ以外でも問題ありません。 スペーサーの例
- 粘着式の絶縁シートまたは絶縁テープ - 上記J1の端子部分がUHS2のUSBコネクタ近傍に露出しており、短絡事故を防ぐために必要です。
覆う範囲は基板裏面に印刷してあります。

変換モード表示LEDを増設する場合

変換モード表示LEDは全く同じ機能のものがArduino UNO上に載っています。
ただし、基板やコネクタの隙間から覗き込まないと見えません。
部品配置 部品名 秋月電子の通販コード 解説
LED1 2012(0805)サイズの面実装LED I-06419
R1 2012(0805)サイズの680~750Ω程度の面実装抵抗 - 秋月電子では当該サイズの扱いがありません。
千石電商や共立電子、マルツなどで調達してください。
輝度やLED自体を変更する場合、一般的には電流制限抵抗R1の値も変更する必要があります。
電源電圧を5.0Vとして、秋月電子の計算用ページ などを利用して抵抗値を求めると良いでしょう。

モード設定スイッチを使う場合

部品配置 部品名 秋月電子の通販コード 解説
GPIN Arduino用8ピン連結コネクタ C-04046
- UHS2側のGPINソケット C-05779 8ピン分だけ切って使います。
UHS2にソケットを実装していない場合に必要です。
SW1およびSW2 ECE製 ERD216RSZ P-02276 正論理(リアルコード)のロータリーDIPスイッチです。16ポジションのものを使用してください。
指定品が入手困難な場合は、NKKスイッチズの FR01-KR16P / FR01-KR16H のいずれかで代用できます。
どのスイッチを使う場合にも、実装方向と半田付け時のスイッチ位置に注意してください。 ロータリーDIPSWの実装方向

状態表示LCDを使う場合

部品配置 部品名 秋月電子の通販コード 解説
GPOUT Arduino用8ピン連結コネクタ C-04046
- UHS2側のGPOUTソケット C-05779 8ピン分だけ切って使います。
UHS2にソケットを実装していない場合に必要です。
C1 耐圧16V以上、2012(0805)サイズで 0.1uF の面実装セラミックコンデンサ P-00093
C2 耐圧16V以上で47~100uFの電解コンデンサ - 通常は必要ありません。
白窓君の表示や輝度が不安定な場合に実装してください。
F1 リセッタブルヒューズ P-12631
J2 スルーホール垂直取り付けタイプのD-sub 9ピン(DE-9)プラグ - アンフェノール LD09P24A4GV00LFなど。
半田付けタイプのボードロックが必須です。
ソルダカップ端子のコネクタは使用できないので注意してください。
なお、ジョイパッドのケーブルで使われる事が多い総プラスチック製のコネクタですが、 D-sub 9ピンと称しつつ形状が微妙に違うため、そのまま挿すと角が削れてしまう問題があります。 予防するためには受け側(J2側)の金属枠をラジオペンチ等で矯正してください。
U1 東芝製 TC74VHCT541AF - 代替品は存在しません。
必ずSOP20(ピン間隔1.27mm)の方を購入してください。
- 白窓君 - TNB製作所さんから購入してください。

パターンだけ存在するが実装しない部品

部品配置 部品名 解説
SW3 リセットスイッチ 同じ機能のスイッチがArduino UNOとUHS2のそれぞれに実装されています。
JP1 - X680x0を破損する危険があるため、部品を実装してはいけません。


回路図および部品配置(20230311版)

回路図 天面部品配置 底面部品配置

部品一覧(20230311版)

利用したい機能に応じて、調達する部材が増えていくという構成になっています。
20221114版の基板を入手された方はこちらを参照してください。

HUYE氏オリジナルの変換機能のみを利用する場合

部品配置 部品名 秋月電子の通販コード 解説
- 専用基板 - BOOTHにて頒布予定です。 専用基板
- Arduino UNO M-07385 または M-15574
- USB host shield 2.0 for Arduino UNO
(以下UHS2と略)
- 原作者のページはこちら
2.0以外、例えば1.2やminiを選んでしまうと大改造が必要なので注意。
J1 2階建ての D-sub 9ピン(DE-9)レセプタクル C-02870
- Arduino用6ピン連結コネクタ C-04045 2個必要
- Arduino用8ピン連結コネクタ C-04046 2個必要
- M3ネジ穴に適合する11.2mm前後のプラ製スペーサー - UHS2のUSBコネクタとの短絡を防ぐための支え棒として2組以上を使用します。
導電性のネジ/ナットを使ってはいけません。
- 粘着式の絶縁シートまたは絶縁テープ - 上記J1の端子部分がUHS2のUSBコネクタ近傍に露出しており、短絡事故を防ぐために必要です。
覆う範囲は基板裏面に印刷してあります。

変換モード表示LEDを増設する場合

変換モード表示LEDは全く同じ機能のものがArduino UNO上に載っています。
ただし、基板やコネクタの隙間から覗き込まないと見えません。
部品配置 部品名 秋月電子の通販コード 解説
LED1 お好みのLED I-01318 大電流のものを選ぶとUHS2の動作に影響が出るので、安価な標準的な物を選んでください。
R1 上記LEDに合わせた1/4Wの抵抗 R-25681 赤色LEDであれば680Ω付近が妥当かと思いますが、正しい値はLEDのデータシートから算出してください。
屋内で使うものですから、定格目一杯でギンギンに光らせるものでもないでしょう。
輝度やLED自体を変更する場合、一般的には電流制限抵抗R1の値も変更する必要があります。
電源電圧を5.0Vとして、秋月電子の計算用ページ などを利用して抵抗値を求めると良いでしょう。

モード設定スイッチを使う場合

部品配置 部品名 秋月電子の通販コード 解説
GPIN Arduino用8ピン連結コネクタ C-04046
- UHS2側のGPINソケット C-05779 8ピン分だけ切って使います。
UHS2にソケットを実装していない場合に必要です。
SW1およびSW2 ECE製 ERD216RSZ P-02276 正論理(リアルコード)のロータリーDIPスイッチです。16ポジションのものを使用してください。
指定品が入手困難な場合は、NKKスイッチズの FR01-KR16P / FR01-KR16H のいずれかで代用できます。
どのスイッチを使う場合にも、実装方向と半田付け時のスイッチ位置に注意してください。 ロータリーDIPSWの実装方向

状態表示LCDを使う場合

部品配置 部品名 秋月電子の通販コード 解説
GPOUT Arduino用8ピン連結コネクタ C-04046
- UHS2側のGPOUTソケット C-05779 8ピン分だけ切って使います。
UHS2にソケットを実装していない場合に必要です。
C1 耐圧16V以上で 0.1uF のセラミックコンデンサ P-04064
C2 耐圧16V以上で47~100uFの電解コンデンサ - 通常は必要ありません。
白窓君の表示や輝度が不安定な場合に実装してください。
F1 リセッタブルヒューズ P-12631
J2 スルーホール垂直取り付けタイプのD-sub 9ピン(DE-9)プラグ - アンフェノール LD09P24A4GV00LFなど。
半田付けタイプのボードロックが必須です。
ソルダカップ端子のコネクタは使用できないので注意してください。
なお、ジョイパッドのケーブルで使われる事が多い総プラスチック製のコネクタですが、 D-sub 9ピンと称しつつ形状が微妙に違うため、そのまま挿すと角が削れてしまう問題があります。 予防するためには受け側(J2側)の金属枠をラジオペンチ等で矯正してください。
U1 東芝製 TC74HCT541AP - 3.3V系から5.0V系へのレベル変換に使用しています。
他の部品を使う場合、以下の要件を満たす必要があります:
  • 入力電圧の閾値が目的を満たすこと
  • 出力側がトーテムポール(プッシュプル)出力であること
- 白窓君 - TNB製作所さんから購入してください。

パターンだけ存在するが実装しない部品

部品配置 部品名 解説
SW3 リセットスイッチ 同じ機能のスイッチがArduino UNOとUHS2のそれぞれに実装されています。


故障かな? と思ったら

SW1またはSW2で変換モードを切り替えられない

ファームウェア4.20以降をインストールした場合、初期状態ではSW1およびSW2はロックされています。
ジョイパッドのSELECT+START同時押し3秒でSW1やSW2での操作の有効/無効が切り替わります。
より詳しくはHUYE氏のページに掲載された変換モード切替方法一覧を参照ください。

動作が不安定になる場合

連結コネクタ部で接触不良を起こす事例が報告されています。 など、特定の現象に限りません。
他の基板を含めた作者の経験では、 に誤動作の頻度が上がるように思います。

白窓君に何も表示されない

RESETしても現象が変わらない場合 が疑われます。

その他

上述の通り、必要な部品だけを実装することで という構成が可能です。

勿論、部品を実装しておいて、拡張部分を使わない事も可能です。
例えば、コントローラから変換モード切替ができなくなる訳ではありませんし、白窓君を外して使用しても何も起こりません。