GP2040-CEはv0.7.4で特定の機器を接続することで「未認証機器は8分間で接続解除」する制限をクリアできる機能が追加されました。 しかしながら私はPS5は持っておらずまたPS4もほぼVO専用機になってるせいもあり、今まで特に必要性を感じていなかった為スルーしていました。
しかしv0.7.6*1にてXBOX SX/SS/OneについてもUSBパススルーで認証突破できる機能が付いたこともあり、ちょっと試してみようかという気になったので新しくGP2040-CE内蔵のアダプタを作るついでに検証してみました。
結果として以下2点を確認しました。
- USBパススルー機能を利用することで8分間制限のない状態でPS4でGP2040-CEが利用できる
- 認証用に接続できる機器に制限がある
- Mayflash MagicBoots FPS v1.1 では期待通り動作した
- 手元にあった別のコントローラーでは8分で接続が切れた(期待通り動かなかった)
少し悩んだこともあったため、確認した手順や設定内容について以下にメモを残しておきます。
注意点
ここに記載しているのは、現状の v0.7.6-RC2を用いて私の手元で検証した結果です。機器のバージョンやGP2040-CEのバージョンやビルドの差で結果が変わる可能性はあります。 またこの内容にそって同じように検証した結果、機材や部品を破損他なんらかの損害が発生した場合も私は一切責任を取ることはできない点ご了承ください。
またオフィシャルのドキュメントの内、特に以下については参照したうえで実行するのが良いのではないかと思います
使用機材やソフトウェアについて
以下のものを利用しました。
- マイコンボード : Raspberry Pi Pico
- GP2040-CE : v0.7.6-RC2
- USB 2.0 Type-A メスコネクタ
- 今回は2.54mmピッチへの変換ボード付きのものを使用
- 例:
- 100均等で安価に買えるUSB 2.0延長ケーブルをカットして使っても良いと思います
- 今回は2.54mmピッチへの変換ボード付きのものを使用
- 認証用ドングル : Mayflash MagicBoots FPS v1.1
- OLED
- なくても良いがあるとわかりやすい
- I2C/128*64のもの適当
- 例:
- ブレッドボード/配線材料
接続について
USBコネクタとRaspberry Pi Picoの接続は、使用する予定のないGPIO26と27を利用しました。
USB | Raspberry Pi Pico |
---|---|
Vcc | VBUS |
D+ | GPIO 26 |
D- | GPIO 27 |
GND | GND |
公式ドキュメントのサンプルではGPIO0と1をD+/D-としてアサインしていますが、私は0と1はOLEDに使用したかったので26と27にしました。 なお、D+/D-にアサインするGPIOは必ず連番である必要があるようです。
Web Configuratorによる設定について
いくつかWeb Configuratorでの設定が必須となります。恐らく以下の順序で設定することになるかと思います。
※それぞれの設定ページで都度Save
をすること
- USBコネクタを利用する端子の設定
- メニューの
Configuration
-Peripheral Mapping
にて設定 -
- D+ に
26
を選択 - 5VはGPIOからではなくVBUSから取得することにしたため
Unset
を選択 - Pin Orderは 'D+/D- -0' を選択(27をD-に割り当てるため)
- D+ に
- メニューの
- USBパススルーを有効にする設定
-
Configuration
-Add-Ons Configuration
より、PS Passthrough
を有効に- 直上の
PS4 Mode
とは排他のようなのでそちらは無効にしておくこと
- 入力モードの設定
Settings
-Settings
より設定Input Mode
でPS4
を選択し、表示されるプルダウンリストでArcade Stick
を選択
PS4との接続
PS4との接続については特にそのままです。
事前にUSBコネクタにMagicBoots を接続した上でPS4と接続し、PSボタン(…に相当するA1ボタン)をクリックして、しばらくするとOLEDの左上部分のモード表示が PS5
から PS5:AS
に変化すればOKです。
あまりPS4用のコントローラを持っていないので他に試せたのは純正の『DUALSHOCK 4』とHORI製の『ワイヤードコントローラーライト for PlayStation 4』だけなのですが、それらではOLEDの表示がPS5:AS
とならず、実際に8分経過で接続が解除され使用できなくなりました。
いくつかサイトやオフィシャルのdiscordのチャンネルなどでDUALSHOCK 4でも認証が通るような記述も見たと思うのですが、とりあえず手元ではうまくいきませんでした。
現状のまとめ
とりあえず私の手元では、特定の機器との組み合わせにおいてUSBパススルー機能を利用することでPS4本体で8分の制限を受けることなくGP2040-CEを利用することができることを確認しました。
v0.7.6で対応となったXBOX系については、XBOX Oneについてはそのうち動作確認をしたいと思っていますが、持っているはずの対応機器(MAGIC-X)が見当たらないので少し後回しになると思います。
(なおPS5は所持しておらずまた購入予定もないことから当面検証の予定はありません。またSeries X/Sは所指示しておらず購入予定もありませんので検証の予定もありません。)
*1:このエントリを執筆している2023/12/26現在はv0.7.6-RC2