Support DIY devices and/or random gamepads/joysticks? #74
-
I have made a DIY 6dof device that registers as a regular HID joystick with 6 axis. I would like to try and use this with various programs, but it appears the space navigator devices use some custom protocol? What would be the best way to get for example Blender talking to my custom device? I imagine I can approach it from two sides: I could spoof the protocol used by the official devices, or I could extend spacenavd to support generic joysticks. Do you have any insight into what would be preferable and the best way to go about it? It would be much appreciated to have a few pointers about the protocol used by the space navigators and what would need to be modified in spacenavd. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 2 replies
-
USB 3dconnexion devices do not use a custom protocol, they are HID devices, they just don't identify themselves as joysticks, but rather as multi-axis controllers. Here's the HID report descriptor of a spacemouse wireless (while connected wired over USB) if it helps: https://pastebin.com/GD5mEKW6 Having said that, you can already use a joystick device with spacenavd. Spacenavd ignores them by default, because most joysticks are not 6dof devices, but you can specify your device id in the /etc/spnavrc config file and it will pick it up. You can then remap axes and buttons if they don't happen to be in the correct order. See options: Edit: of course you can do all that from the spnavcfg GUI too if you prefer. |
Beta Was this translation helpful? Give feedback.
USB 3dconnexion devices do not use a custom protocol, they are HID devices, they just don't identify themselves as joysticks, but rather as multi-axis controllers. Here's the HID report descriptor of a spacemouse wireless (while connected wired over USB) if it helps: https://pastebin.com/GD5mEKW6
Having said that, you can already use a joystick device with spacenavd. Spacenavd ignores them by default, because most joysticks are not 6dof devices, but you can specify your device id in the /etc/spnavrc config file and it will pick it up. You can then remap axes and buttons if they don't happen to be in the correct order. See options:
device-id
,axismap#
andbnmap#
inspacenavd/doc/example-sp…