以前からやろうやろうと思っていたPS4用のコントローラー/DUALSHOCK 4のアナログスティック乗っ取り。

Twitterに触発されて重い腰を上げる気になった。

とりあえずデュアルショック4のアナログスティック周りがどのような実装になっているのか、何が必要かを見極めるために分解と試験を開始することにした。

 

 

 

【まずは情報収集】

すでにある情報は有効活用しよう!

 

松蔵さん家の物置場(仮)/デュアルショック4乗っ取り
https://rezius2.jimdo.com/工作の棚/デュアルショック4乗っ取り/
アナログスティックの乗っ取りが必要なければこのサイトで全て解決。画像が豊富でとてもわかりやすい。

デュアルショック4の型番が違っていても重要なポイントは変わらないので大変参考になる。

解説の中ではアナログ入力周りを誤動作防止のために潰しているのだけどこれのおかげで仕様が見えてきた。

私的にはFFC変換基板を活用するというアイデアがスマートで好き。ラクをして完成度を上げるとか…最高でしょ。

 

PS4 Developer Wiki/DualShock 4

http://www.psdevwiki.com/ps4/DualShock_4

こっちも合わせて見ておくとよいかも。

 

この2サイトの情報で内部構造は大方把握できた。

 

 

【生贄となるデュアルショック4を入手】

これは以前にアナログ操作に不具合があるというものをメルカリで入手した。

受け取り後から1ヶ月ほどPCで試用した結果何の問題もなく使えていたのでもったいない気もしたが分解することに。

今回使った生贄の型番はCUH-ZCT2J。それ以外でも問題ないでしょう。

 

 

【分解】

私にはツメを折らずに分解することができなかった。

ツメが折れてもネジ止めすればカバーは閉まるのでバリバリゴリゴリ無理やりオープンしてもよいと思うけど、勢い余ってフレキシブルケーブルを傷めないように注意。

分解を続けてスティックコントローラの搭載された基板を取り出す。

 

 

【不要なパーツの排除】

試験時に邪魔なので振動用モーター結線を排除。こいつは簡単に取れた。

次にスティックコントローラを剥がすことに。これがとんでもなく骨が折れた。金属面積が広くて熱がすぐ逃げるのか?ついでに私の技量不足もあってキレイにハンダ除去できなかった。

時間をかけるのが面倒になってスティックコントローラをニッパーで破壊&切断する方針に変更。最初からこうすべきだった。

 

 

【標準搭載されているスティックコントローラ】

ALPS/サムポインタ™ (スティックコントローラ) RKJXK/RKJXVシリーズ

https://www.alps.com/prod/info/J/HTML/MultiControl/Potentiometer/RKJXK/RKJXK122400Y.html

多分これ。もしくは同等品。

PS4に限らずあらゆるゲームコントローラーで使われがち。

 

 

【乗っ取り用に必要な信号線を引き出す】

L/Rスティックを乗っ取るために引き出す箇所は6つL3、R3ボタンも使うなら8つ

電子工作の知識が浅いので言葉の使い方が間違っているかもしれないが参考にはなると思う。

 

  1. グランド(0V)L3ボタン、R3ボタン、Lスティック-X/Y、Rスティック-X/Y共通のグランドとして使用する。基板上に山程あるので取り出しやすい所から1つ引き出す。
  2. +3.2VLスティック-X/Y、Rスティック-X/Y共通の入力電圧として使用する。基板上に複数あるので取り出しやすい所から1つ引き出す。
  3. Lスティック-X0〜3.2V。中間の1.6V付近の時にニュートラル可変抵抗の2番目(中央)の足が接続されていた所を引き出す。
  4. Lスティック-Y:同上。
  5. Rスティック-X:同上。
  6. Rスティック-Y:同上。
  7. L3ボタン+3.2V(GNDではないので注意)と接続すると入力される。2箇所あるので取り出しやすい方から1つ引き出す。
  8. L3ボタン:同上。
 

 

※基板の表裏に注意。これはデュアルショック4裏側からの視点。

※型番が違うと(同じでも)基板デザインが異なることもあってもスティックコントローラーの足の位置は変わらないと思う。

 

 

【乗っ取り動作検証】

手持ちのアーケード用アナログスティックをいくつか接続してWindows10で動作確認。

一般的なBカーブ可変抵抗を使っているもので可動域が狭い場合はアンプが必要。

 

 

【回路図】

元の回路を再現するだけだけどDS4のアナログスティック周りの回路図は参考になると思うので記録しておく。

 

 

※標準搭載の可変抵抗(ポテンショメーター)の抵抗値は10kΩ(Bカーブ)。可変抵抗は抵抗分圧回路として機能すればよいので10kΩ以外(1kΩ、5kΩ、その他)でも機能する。選べるのであれば10kΩがよいんじゃないでしょうか。

 

【この先やりたいこと】

  • 手軽にセンター合わせと感度調整をするためのアンプ作成。(済:記事あり)
  • 上下入れ替え回路の作成。下に入れて上に動いてほしいとき、そのまま上に動いてほしいときというのはゲームやレバー形状によって変わるため。(済)
  • デジタルスティックを接続可能にする回路作成。(済:記事あり)
  • ネジコンやラジコン用プロポを使っての乗っ取り。