DualSenseの動作を確認するために、LVGLを使ってボタンやセンサーの動きを表示する簡単なデモを作ってみました。
ボタン機能については、押された時に該当する位置に赤丸を表示。アナログスティックは、動きに応じて青線を表示しています。トリガーは、引き方に応じて赤マルサイズを変更。最後に、DualSense全体を前後、左右に傾けて、DualSenseの姿勢状態を右側の円形表示部分を変化させています。
Linuxのドライバーコードでは、アダプティブトリガの機能については、サポートされていないのでトリガがスカスカのままだったのですが、このサイトの情報を見つけて、USB経由でトリガの強さもHIDのOutput Reportで変更できることがわかりました。やはり、ちょっと手応えが無いとダメですね。
このデモを動かしている程度では、ほとんどUSBのエラーは発生しません。複数のボタンを同時に操作しながら全体を動かしたりして、画面変化量を増やすと時折TXERR が発生するようです。どうも、SDRAMへの書き込みが頻繁に発生するとエラーが発生しやすくなるような気がします。
ボタン機能については、押された時に該当する位置に赤丸を表示。アナログスティックは、動きに応じて青線を表示しています。トリガーは、引き方に応じて赤マルサイズを変更。最後に、DualSense全体を前後、左右に傾けて、DualSenseの姿勢状態を右側の円形表示部分を変化させています。
Linuxのドライバーコードでは、アダプティブトリガの機能については、サポートされていないのでトリガがスカスカのままだったのですが、このサイトの情報を見つけて、USB経由でトリガの強さもHIDのOutput Reportで変更できることがわかりました。やはり、ちょっと手応えが無いとダメですね。
このデモを動かしている程度では、ほとんどUSBのエラーは発生しません。複数のボタンを同時に操作しながら全体を動かしたりして、画面変化量を増やすと時折TXERR が発生するようです。どうも、SDRAMへの書き込みが頻繁に発生するとエラーが発生しやすくなるような気がします。