USB/Bluetooth Joystick

A general purpose USB/Bluetooth HID-Joystick interface for Arcade sticks etc.


For many years I toyed with the idea of building my own arcade joystick. For the start I don't like to control the stick with my left hand. Mainly because I grew up with the C64 and Amiga where I always used the right hand to steer. So I feel uncomfortable with using the left hand for the joystick. Also, I wanted to have full control over everything, so I started from the scratch.

The first part was to design a PCB that would allow me to implement all kind of analog or digital joysticks with multiple axes. It's based on an LPC1549 controller.

Joystick PCB

Case Design

I then started to design a case around this. It's mainly build from laser cut acrylic with some 3D printed parts. The laser cut parts are from two material: matte black for the shell and cheaper translucent acrylic for the inner frame:

The four corners and a bracket to hold the OLED are 3D printed:

The result looks like this

Note that the PCB is screwed to the lower panel of the inner frame construction (so the mini-USB adapter fits into the according hole) while the OLED bracket is screwed to the upper smaller panel. There is a JTAG/SWD connector directly above the mini USB connector. This is using my own JTAG adapter PCB. Admittedly I had to cut off two millimeters or so to make it fit, but yeah well.

As a side note: when I assembled the case, I noticed I forgot to place recesses in the upper and lower frame panel. I used a file to add them and was too lazy to change the CAD drawings. Not a major problem though.


The idea of my own design was also to be able to use it as Bluetooth joystick with a rechargeable battery. So the PCB contains a LiPo charge controller (MCP73831) and there is a 18650 battery holder for a LiPo cell build into the case. The Bluetooth functionality is implemented through a RN42 Bluetooth module controlled through UART. Well, honestly I used a cheap Chinese HC05/HC06 module partly patched and reflashed with the RN42 software, but that's another story.


All files related to this project can be found in the BitBucket repository


License Information

This is a spare time project I did without any commercial interest.
Everything is released under the Creative Commons CC-BY license.

Creative Commons License

In a nutshell this means that you can do share, modify and use everything released under this license even for commercial projects.
You just need to give me appropriate credit, indicate what changes you made and agree not to try to force a more restrictive license on my work.
See the CC BY license for details.