Nintendo SwitchのJoyConのhackの情報が海外で出ている。
JoyConの解析が凄く進んでおり、Switch本体との有線の通信が高速UARTのシリアル通信であることと、そのプロトコルなどが解析されたようだ。
→ GitHub – dekuNukemNintendo_Switch_Reverse_Engineering A look at inner workings of Nintendo Switch
Wiiリモコンの拡張コネクタが活線挿抜できるようにI2Cバスになっていたので、Nintendo SwitchのJoyConのコネクタも活線挿抜のためにI2Cとかではと自分は予想していたのだけど、違ったようだ。
Nintendo Switch本体との接続コネクタのピンについては自分も調べていた。
JoyConの充電について調べるためだ。
JoyConの充電用にSwitchから+5Vを供給しているピンとGNDのピンとかは判明し、JoyConをSwitch本体無しでも単体で充電できるように改造するというのを試した。
→ JoyCon-LをNinendo Switch本体無しでも単体で充電できるように改造してみる
JoyConのコネクタのピンについては、dekuNukemのGitHubページの情報によると、
・1番ピン – GND
・2番ピン – GND
・3番ピン – BT Status? (Bluetooth接続時のみHiレベルになり、未接続時やスリープ時など他はLowとなる)
・4番ピン – +5V (電源供給と充電用)
・5番ピン – Serial Data (Switch本体 → Joycon) 負論理
・6番ピン – Flow Control (Lowになったとき、Switch本体がJoyConにデータを送信する) 負論理
・7番ピン – GND
・8番ピン – Serial Data (Joycon → Switch本体)
・9番ピン – ? (いつもGND)
・10番ピン – Flow Control (Hiになったときに、JoyConがSwitch本体にデータを送信する)
となっているそうだ。信号の電圧は1.8Vだ。
シリアル通信の速度は初期状態で1000000bpsで、そのあと3125000bpsになるらしい。
プロトコルとかデータのフォーマットなども大分判明しているようだ。
Nintendo SwitchのJoyConのコネクタ部分は、拡張ポートとして使えるのだろうか?というのが気になっている。
JoyConに何か機器を繋いで通信をするには信号線の電圧が1.8Vなので弱いし、高速UARTなのであまり距離を引き回すのは難しいだろう。
あと、JoyConから外部に電源を取り出す方法が無い。
周辺機器側に電池を用意するならば、周辺機器は可能かもしれない。
シリアルポートについてはソフトでbpsを変えられるようなので、通信速度を落とすことは可能だろうし、必要ならコネクタ近傍にバス電圧を変換するバッファICを入れるというのは可能だろう。
—
追記
JoyCon-RにはNFCがあるので、NFCで接続する周辺機器が可能なのかもしれない。
NFCキーボードみたいなのが可能だろうか?