3. In your example you sift for "Space", but the newer SpaceMouses use the universal receiver which will create 9 HID Devices, conviniently they are all called "3DConnexion Universal Receiver" /s So basically trying to find the active one is a matter of trial and error I have found so far. The info for all 9 devices is identical.
4. I couldn't get it to output any data trying all 9 devices :/
Really hoping for something that works well for SpaceMouse. All the current solutions in VVVV and VL are either buggy or slow.
unfortunately I don't have access to wireless spacemice to test this, only wired. If it's anything like the Steam Controller wireless receiver then they might instantiate all possible connected device slots. Keep in mind these nodes are spreadable so you can open all 9 devices and actually determine which spacemouse is active based on the ChangeCounter. Don't forget to turn on Read to receive data (it's there and off by default for performance reasons). DevicePath of the HidDevice node should be unique for each HID interface, I'm sure you can use that to distinguish between individual spacemice in runtime.
If despite all of that no data is received from them, then they changed their HID protocol for the wireless spacemice which is sad.
microdee Thanks for the tips. I just tried it again and I don't know what I did differently, but it seems to be working now - might just be because I did a restart and havent opened anything else that might use SpaceMouse. Just changed the sift to "3Dconnexion" and added another GetSlice before Device. Getting some byte values that correlate to all the movements. I'm getting 52 floats out of the data, 2 for each axis at the end and the buttons towards the beginning.
Do you have a patch that does the conversion to angles and frame differences already? Otherwise I'll just make one up quickly. Seems pretty straightforward, one float for direction, one for angle - times 6 for all the axis.
Hey microdee
Just playing around with the new HID nodes and your example patch in the picture above.
We have several SpaceMouse Wireless, so I thought I'd share some of my findings:
1. The VID for 3DConnexion is: 9583 (256f in hex)
2. Here is a complete list of all PIDs and VIDs: https://www.3dconnexion.co.uk/nc/service/faqs/faq/how-can-i-check-if-my-usb-3d-mouse-is-recognized-by-windows.html
3. In your example you sift for "Space", but the newer SpaceMouses use the universal receiver which will create 9 HID Devices, conviniently they are all called "3DConnexion Universal Receiver" /s So basically trying to find the active one is a matter of trial and error I have found so far. The info for all 9 devices is identical.
4. I couldn't get it to output any data trying all 9 devices :/
Really hoping for something that works well for SpaceMouse. All the current solutions in VVVV and VL are either buggy or slow.
unfortunately I don't have access to wireless spacemice to test this, only wired. If it's anything like the Steam Controller wireless receiver then they might instantiate all possible connected device slots. Keep in mind these nodes are spreadable so you can open all 9 devices and actually determine which spacemouse is active based on the ChangeCounter. Don't forget to turn on Read to receive data (it's there and off by default for performance reasons). DevicePath of the HidDevice node should be unique for each HID interface, I'm sure you can use that to distinguish between individual spacemice in runtime.
If despite all of that no data is received from them, then they changed their HID protocol for the wireless spacemice which is sad.
microdee Thanks for the tips. I just tried it again and I don't know what I did differently, but it seems to be working now - might just be because I did a restart and havent opened anything else that might use SpaceMouse. Just changed the sift to "3Dconnexion" and added another GetSlice before Device. Getting some byte values that correlate to all the movements. I'm getting 52 floats out of the data, 2 for each axis at the end and the buttons towards the beginning.
Do you have a patch that does the conversion to angles and frame differences already? Otherwise I'll just make one up quickly. Seems pretty straightforward, one float for direction, one for angle - times 6 for all the axis.
in mp.essentials there's the SpaceMouse (HID) module, it's based on the old HID node still but you can connect the dots ;)