Project DIVA Arcade FTの本物アケコンをPS4に繋いだときのメモです。
※画像はクリックでだいたい拡大します

■作成物概要

・DualShock4を1台生け贄にします。以下DS4。
・コンパネの△□×○はそのままPS4の△□×○として繋ぎます。
・タッチスライダーはDS4のタッチパッドとして認識させます。
・PS4のその他ボタンはコイン投入口付近に設置します。
・DS4はCUH-ZCT1J(JDM-001基板とJDM-030基板)で確認しています。その他形式は不明です。タッチセンサーがMXT112Sならおそらく同様です。
・DS4引き出し部(写真白箱)と、コンパネIF部(写真黒箱)に別けて作りました。
 



■作成詳細(DS4引き出し部)

■作成詳細(IF部)

■作成詳細(ハーネス部)

   
コンパネとIF部を接続するためのハーネス。
アケコンは純正ハーネス(BRK-60301)付き前提。

■部品

JST YLR-16V1ボタン系コネクタ
JST YLR-08V1LED制御系コネクタ
JST BYM-01T-P0.5A14YLコネクタ用コンタクト
JST SMP-05V-BC1スライダー制御系コネクタ
JST SMP-03V-BC1ヘッドホン端子用コネクタ
JST BHF-001T-0.8BS6SMコネクタ用コンタクト
2x8qiコネクタオス一式PS4ボタン部コンパネ側
2x8qiコネクタメス一式PS4ボタン部IF側
2x2qiコネクタメス一式SM05の反対側
2x4qiコネクタメス一式YL16の反対側
2x3qiコネクタメス一式YL08の反対側
D-Sub15オス一式ここでコンパネ部→IF部の結線変更。
D-Sub15メス一式
3.5mmステレオミニプラグ1完成品の延長コード切って作る方が楽

■結線

・ボタン系ハーネス
YLR-16Vqi 2x8備考
21+5V
32START(未使用)
86
95
104×
113
157GND
168GND

・LED制御系ハーネス
YLR-08Vqi 2x3備考
11+12V
22+12V
56LED△
65LED□
74LED×
83LED○

・スライダー制御系ハーネス
SMP-05Vqi 2x2備考
23RXD(IF側基準)
31TXD(IF側基準)
52GND

・PS4ボタン用ハーネス(コンパネ側)
qi 2x8D-sub 15備考
1赤8R3
2茶7R2
3黄14PS
4橙15Touch
5青3down
6緑11L3
7灰5right
8紫1GND
9黒4left
10白1GND
11赤10L2
12茶2up
13黄12Share
14橙9L1
15青6R1
16緑13Option
※PS4ボタン部のメスコネクタと中継する都合、表裏が逆になるので注意。
同じ色同士を繋ぐように作ると誤接続が減るかもしれない。

・PS4ボタン用ハーネス(IF側)
D-sub 15qi 2x8備考
11GND
12GND
23up
34down
45left
56right
67R1
78R2
89R3
910L1
1011L2
1112L3
1213Share
1314Option
1415PS
1516Touch

・ヘッドホン端子用ハーネス
SMP-03Vステレオミニ備考
11(先端)L
22R
33(根元)GND


■作成詳細(PS4ボタン部)

  
コンパネの料金表示パネルとコイン投入口パーツを外して、PS4ボタン一式を取り付ける。
コンパネのコイン投入口は2列qiコネクタがぎりぎり通るサイズなので、
先に作ってからコンパネに取り付け可能。
印刷したラベルはダイソーの手張りラミネートフィルムを貼っておくとちょっとだけかっこいい。

■部品

タクトスイッチ12mm x 12mm14
2x4qiコネクタメス2

cadデータ

ラベル


■回路図

 
この通り配線を引き回すと綺麗に収まります。







■mcs

・お試し版(連続使用時間30分限定)。
evalution.zip

・フル版
有償です。希望者はご相談下さい。


ソースコード提供は(糞ソースすぎるので)無し。

■おまけ

・動作確認用ds4のタッチスライダー状況を表示するツール
usbhidtest.zip
VID_54c&PID_5c4(CUH-ZCT1J?)
VID_54c&PID_9cc(CUH-ZCT2J?)
で動くはず。
・MXT112Sのプロトコル
MXT112S.zip
・タッチスライダーのプロトコル
概要
 [FF] [コマンドコード(1byte)] [実データレングス(1byte)] [実データ(可変長)] [sum(1byte)]
 ※sumは全バイト足すと下位8bitは00。FDの時だけその後にFCも送信
 ※(tx)ff1000→(rx)ff1000→(tx)fff000→(rx)fff012....fdfc→(tx)ff0300→(rx)ff0120....→(tx)ff09020000→(rx)ff0900→(tx)ff0a0100→(rx)ff0a00→(tx)ff02613f....の順
詳細
 別ページ

■保守関連情報

・スライダーフィルム
液晶保護フィルム(反射防止) エレコム EF-M23W https://www2.elecom.co.jp/products/EF-MF23W.html

494mm×38mmにカットして、角を落とす(φ3mm?)。7枚作れるはず
本物より滑りがいい気がする。

綺麗に作るなら、
かどまる http://www.sun-star-st.jp/private_brand/kadomaru.html
とか良さそう(未確認)。

■その他

・あえて引き出し部とI/F部を分けて作ったのは、ツインスティックとかアーケードスティックとか、
なんかそのほかのコントローラーでも似たような物作るときに便利かなーとか思ったりなんかして。
一体で作るときは、外付け3.5インチHDDのケースとかに組み込むと、
USB端子とか電源端子とか最初から付いてて、しかも12Vと5Vの電源も内蔵されてるし、
大きさ的にもちょうどよさそうかななんて思ってたり。
・12Vの電源が安定しないと、タッチスライダーの誤認識が発生する模様。
HDD-USB変換アダプタとかに付いてくる安物のACアダプタだと、ちょっと負荷かけただけで電圧ドロップしたりして、
上手くいかない奴とかありました。
・5Vからダイオードで電圧降下させてDS4のバッテリー代わりに電源供給してるので、ダイオード1個で0.7Vくらいドロップしたりすると、
それだけで5-0.7x2=3.6VとなってDS4のバッテリー残量無し切断ぎりぎり。
3.4Vくらいで切断されるようだ。
なので安物のACアダプターだと(略)。
本当はきちんと定電圧回路で3.7V作ってDS4のバッテリー代わりに供給した方がいいかもね。
DS4のD+/D-をリレーなどで切断して、ACアダプタ側からUSBに5V供給と同時にD+/D-を接続する方法もあるかもしれない。
それだとFPGAのコンフィグと同時になるので、間に合わないかもしれない。
・というわけで電源は12V単一入力にして、ダイソーとかで売ってる車載用USB充電器とかばらして12V→5VのDD乗せた方がいいかも。安定性謎だけど。
・デバッグシリアルはタイムコード付きでボタン操作のログ送信と、外部からのボタン操作ができるようになっている。PNP Tr使えばFPGA経由しなくてもLED制御できるんだけどFPGA経由してるのはこういう理由。
・SPDIFの入出力を付けて、スタートボタン押しながらスライダー操作とかでボリューム調整できるようにしたいなとか。遅延1サンプル以内でいけるはず。
・ぶっちゃけ、スライダー→I2Cの変換はFPGAなんて使わなくても、Arduinoとかで十分速度足りると思う。
・I/F部は34pinのL型コネクタ付ければわざわざ延長しなくてもいいんじゃないかという気がしてきた。
ホリの専コンのスライダーの専用モードのお話。




質問はtwitter:@r_y_u_nへどうぞ。