HID Compliant Device not recognized by [hi]
[hi] is not recognizing my HID Compliant input device
I recently picked up some USB arcade buttons. I plugged one in. It appears in Windows Device Manager at "twokey." But [hi] does not find it. Any suggestions?
[key] catches the input and reports it as spacebar (per device specs). But I have several of them, so I need to find them in [hi] in order to differentiate them.
Any input would be appreciated. Many thanks!


Windows does not allow usage of keyboards, trackpads, mouse as game controllers.
That is system restriction, not form Max.
You can not use that device on windows, as long as it emulates keyboard.
A cheap gamepad would work.
On the other hand, if you can program that thing and change keys they send,
than you could use key - keyup object to recognise which one is sending.
P.S.
John Burton (aka Leafcutter John) makes this devices,
I am pretty sure some sort of arduino compatible chip sits inside, like attiny etc
and that one can eventually reprogram it using arduino.
Thanks! This makes sense. Though judging by how the device appears in Device Manager it looks like it's recognized as a keyboard AND as an HID device. Is it possible to do both?
In this thread klif seems to be able to get that result:
"I did some quick testing now (using Hi.help and 4.5.7 Runtime)... Keyboard and mouse are recognised but are at the same time used by the system as usual."
I would be fine with that. It's what I would expect given what's appearing in device manager.
I sent a message to John as well. Glad to know he's recognized in this parts!
USB keys and mouse etc as well as gamepads, joysticks are all HID devices,
only that windows blocks allready mentioned ones for security reasons,
(preventing malware key loggers etc)
That link to old post had different problems, only Mac related.
If one selected keyboard in HI object in Max, it got exclusively reserved for Max and disconnected as system-wide input.
Honestly, I find that USB arcade buttons devices nice etc, but one little arduino for few bucks,
like 32u4 micro could act as joystick or gamepad HID device and host many buttons and axis on single USB cable.
Interesting! I dont really have much (any) Arduino experience. You saying I could source the plastic buttons and the actuators myself, plug them into an Arduino and then Max would recognize the Arduino as an HID device?
Yes, you would only need to solder them on dedicated pins.
The rest is then just a matter of programming that few buttons that you need using joystick library for arduino, and they will nicely output button presses via HI object in max.
Atmega 32u4 is simplest board variant and really is small and cheap.
just one example :
https://keeb.io/products/pro-micro-5v-16mhz-arduino-compatible-atmega32u4
Very interesting! I found the exact buttons John is selling on Amazon.
This may be a much better solution. Thanks!
There are thousands of models of momentary switches that one can use,
depending on if one wants footswitch, finger touch, size, mechanic, weight and so on.
Only it is important that they have a good definite contact, and don't fluctuate.
I made own footswitches with little springs, which have only 0.5 mm action, and
are absolutely silent, can't wear as there is no mechanical strain.
Just an update here, and a huge shoutout to the guys at Leafcutter labs.
At the same time I posted here I sent a support message to Leafcutter. While I waited for their reply I went and got myself the ProMicro board and the set of buttons mentioned above.
The order arrived and I started studying up on how to make my very first arduino project happen. About that time, the guys from Leafcutter Labs got back to me. We exchanged a few emails and they informed me that their board is running QMK Firmware. We discovered together that QMK does indeed have the option to support joysticks.
They said they would work on adding this and send me a new firmware file to load, but it would take a few days. Meanwhile they also sent me the source code for their firmware so I could poke at it myself. I was able to look up an example of joystick implementation in the default firmwares that ship with the QMK release. Ten minutes later I was able to add joystick functionality to their firmware. And just like that, the board is functioning the way I envisioned it.
I'm very happy with the results here. Thanks, Source Audio for the backup plan! Getting the leafcutter hardware to work proved so easy I'm just going to go with their devices for this project. Having four independent devices could even be convenient, say if I need to do something with one or two of them in the future. But if I ever run into a need to have lots of these buttons (which I very well may) I've got the arduino solution in my back pocket ready to go.
Grateful as always for this forum. I never imaged dipping my toe into hardware and microprocessors, but this experience has whetted my appetite!