If your device is not an XInput game controller, a MIDI keyboard, or a COM port connection, it is most likely a HID (Human Interface Device). HIDs are composed of elements such as joysticks (float values) and buttons (boolean values).
Since the OpenXR revolution in the gaming industry, HIDs increasingly utilize groups of floats to represent Quaternions and Vector3s, while still maintaining simpler float groups for basic input.
A HID consists of a definition for a log report that is sent via USB, along with the actual logs that are, by default, transmitted at high speed over this connection.
If you want to create one yourself, you can buy a DIY arcade board:
75
If you have coding skills, you can use a Raspberry Pi Pico with CircuitPython:
41
Note that if you connect multiple keyboards, each will broadcast keystrokes along with log data. In theory, if you want to experiment during a game jam, you could make a game that uses 10 keyboards as controllers by utilizing HID.
The best way to understand HIDs without coding or reading manuals is to open the Unity3D Profiler:
Note:
You can create your own HID in Windows if you want to experiment with custom input devices. I did this to use the Kinect as a HID in Unity3D.
HIDs are readable by all applications, but to prevent easy access by keyloggers, platforms like C# Form apps, Unity3D, and others restrict developer access to certain HID data.
Human Interface Device
If your device is not an XInput game controller, a MIDI keyboard, or a COM port connection, it is most likely a HID (Human Interface Device). HIDs are composed of elements such as joysticks (float values) and buttons (boolean values).
Since the OpenXR revolution in the gaming industry, HIDs increasingly utilize groups of floats to represent Quaternions and Vector3s, while still maintaining simpler float groups for basic input.
A HID consists of a definition for a log report that is sent via USB, along with the actual logs that are, by default, transmitted at high speed over this connection.
If you want to create one yourself, you can buy a DIY arcade board:
75
If you have coding skills, you can use a Raspberry Pi Pico with CircuitPython:
41
Note that if you connect multiple keyboards, each will broadcast keystrokes along with log data. In theory, if you want to experiment during a game jam, you could make a game that uses 10 keyboards as controllers by utilizing HID.
The best way to understand HIDs without coding or reading manuals is to open the Unity3D Profiler:
Note: