USB HID Specifics for Mac OS?

I am currently developing an USB HID Device, specifically a type of Joystick. However it seems that any attempt of getting a joystick to work on Mac do not work. My prototype works perfectly on Windows, being recognised as such and receiving all data.

On MacOS, the Joystick is not recognised as a Joystick though, and the OS does not seem to receiver any Input from it whatsoever. I have translated my code to use both Mouse and Keyboard, both work perfectly. I have also tried to have the Joystick identify as a Gamepad, but again, it works on Windows and is not recognised on Mac (is not recognised as a Gamepad).

Are there any specific restrictions to HID devices on MacOS? Apple developer only seems to describe specifics from a software standpoint, not from the standpoint of someone developing hardware. And even then it only seems to describe very specific HID devices, such as mouse, keyboard or a stylus.

Please also keep in mind that I don't have much experience developing MacOS applications.

Replies

how exactly do you determine that the joystick "does not work" on macOS? Joysticks are not directly supported by the OS, you need to have code that specifically looks for input from HID joysticks. Do you have such code? There's an old project on GitHub https://github.com/arsdraconis/HID-Explorer which needs a few changes to compile on modern macOS, but you may be able to use this to get more insights into how your device is treated by the OS. Also, see this post on Stack Overflow: https://stackoverflow.com/questions/41715074/simple-hid-osx-application, which refers to the open source parts of IOHIDFamily.

When your device is connected, does in show up in the Game Controllers panel of the System Settings app?