Is the Photon capable of running as a custom USB HID device such as a Joystick?

I noticed in the Particle docs that the Photon is capable of USB HID natively, in the form of a keyboard or mouse. Does it also support acting as any other type of USB device, with custom HID descriptors such as a joystick? This would be necessary if I want to build something like an EDTracker out of a Photon, and the Photon would be ideal for that thanks to its very fast clock speeds for doing IMU integration.

1 Like

Generally you can make it act as any USB HID device as long you provide the descriptors and endpoints.
You can have a look at the USB Mouse & Keyboard implementation in the firmware repo

But @avtolstoy is the pro on this topic

1 Like

Apologies for a late reply on this :cold_sweat: I somehow managed to miss it.

Currently we only implement standard HID Mouse and Keyboard and there is no API or an easy way to implement a custom HID device like a joystick, however it was one of the features that we were going to support later on.

I have created an issue in github to track this feature: https://github.com/spark/firmware/issues/1294

1 Like

Hi
I am really new to github and photon. I was wondering how to implement a photon as a partial USB keyboard(just the arrow keys and enter) both code wise and wiring wise. Help would be appreciated.

That’s already part of the system.
https://docs.particle.io/reference/firmware/photon/#keyboard

And the codes for the arrow key can be found at this link

As for wiring, you just need to plug in via USB.

3 Likes

Hey - sorry to drag up an old thread, but thought it better than to make a new one.
@avtolstoy I see the ticket in GitHub has been closed (#1294 above)

Has the HID code been abstracted out and available for us to use now? If so - any pointers?

Cheers,
Dave