Simply put, I want to make a custom controller for my PC similar to products like the Razer Tartarus and other type keypads.
However, I don't want the key interpretation to be done on the Arduino side, as I want to be able to macro key combinations, etc.... to it.
As well, I also want to have an analog joystick for the thumb control.
As some background, I've been using Arduino's and Raspberry Pi's for about 7 years now, on various costume/cosplay projects that have involved plenty of buttons, servos, motors with feedback, LED's, wireless communications, voice modules, etc.....
But this is my first project delving into the realm of PC control in any way, and in particular, a controller.
I know very little about Windows programming, but I'm less worried about that for now. I have a feeling I can handle it just fine once I get there.
My issue is getting that far.
Personally, I'd prefer to not have it be seen as a keyboard or joystick or mouse. I'd prefer to have it seen as a generic HID device that I can then connect to programmatically on the PC and interpret the data that it sends, and have it function then accordingly.
My issue is I'm not sure how to go about that from a USB perspective, programmatically, on the Arduino side.
I'm planning on using the Adafruit Metro M4 Grand Central board, as this has the ATSAMD51 on it, so plenty of inputs to handle the required buttons, etc.....and should have native USB as well.
I'm planning on having roughly 30 buttons, along with an analog joystick.
The joystick will either be a 'playstation/xbox' thumb type joystick, or possibly a higher accuracy robotics type joystick. Either should work, and generally be the same for all intents and purposes (accuracy will be the biggest difference).
I plan on having at least a 5 x 6 configuration of 'buttons' as well (more or less, half a keyboard).
So, I guess my biggest concerns moving forward. Does this make sense? Is it feasible?
And then, lastly, maybe some links or information on an example for HID input that isn't just a straight up keyboard or mouse or joystick? That's been the biggest issue I've run into, is finding an example that I can understand and relate to.
Thanks!


