Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Build Your Own USB HID Joystick Device and Game Controller

DZone's Guide to

Build Your Own USB HID Joystick Device and Game Controller

Why buy a joystick when you can build your own? Grab a USB-capable board and, with a few extra components, make your own gaming advice.

· IoT Zone ·
Free Resource

For many projects, it would be cool to build a custom USB joystick, either as a custom game controller for Windows or any USB host that can be used with a USB joystick. Instead of buying one, why not build my version? All I need is a USB-capable board, some kind of input (potentiometer, push buttons) and some software, and I have my USB joystick:

DIY USB HID Joystick Device

DIY USB HID joystick device

In this article, I’m using the NXP FRDM-KL25Z (ARM Cortex-M0+) with a joystick (e.g. from Dx.com) shield:

NXP FRDM-KL25Z with Joystick Shieldv

NXP FRDM-KL25Z with joystick shield

The USB HID Joystick class is very similar to the USB Keyboard one, so follow the “Using the FRDM-KL25Z as USB Keyboard” tutorial for the basic USB setup.

Select the HID Joystick Device:

HID Joystick Device

HID Joystick Device

Then configure the HID device settings, especially the CPU/device used:

HID Device Settings

HID Device Settings

The component offers methods to set buttons, throttle, hat position, and X/Y joystick position:

USB HID Joystick Subcomponent

USB HID Joystick Sub-component

I have published, on GitHub, an example project which uses X/Y analog position, 4 hat switches, a throttle setting plus 3 push buttons:

USB HID Joystick Example Project

USB HID Joystick Example Project

The USB HID device shows up with two devices in the Windows device manager:

USB HID Joystick in Device Manager

USB HID Joystick in Device Manager

Inside the Windows Control Panel, there is a dialog to set up any USB game controller:

Setup USB Game Controller

Setup USB Game Controller

That dialog shows the controls and is used to calibrate them:

Setup USB Game Controller

Setup USB Game Controller

Building a DIY game controller is easy with the addition of the USB HID joystick component and software. With a USB capable device and a joystick shield, I’m able to create my gaming controller.

Happy gaming!

Links

Topics:
iot ,arm cortex-m ,joystick ,gaming accessories ,tutorial

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}