Subscribe to Arduino Academy and start learning today for FREE!

Interfacing an Old School 15 pin Joystick

Today I’m working with an older PC style 15 pin joystick. This predates the newer USB joysticks by a couple of decades, and makes it a lot easier to interface with the Arduino. I’m using a joystick shield that’s made by Lectrobox, with a Joystick made by Suncom. Any 15 pin IBM PC Joystick will work fine. It’s only wired for one joystick, so you would need two shields for two joysticks, or mod the shield (moderate difficulty), for use with a Y splitter.

There’s no wiring involved, and the onboard jumpers allow you some selection in Arduino pins.

Note: To connect a PS/2 keyboard, see

The sample code provided outputs the analog positions of the stick, and the digital positions of the two buttons:

Become the Maker you were born to be. Try Arduino Academy for FREE!

I’d recommend using interrupts for the buttons (pins 2 & 3) so as to not miss button presses, with some debounce code, but that will take some moderate shield modifications. You will probably have to play with your stick adjustments to get zero readings at rest. You can build your own shield, with a female 15p D Sub, and wire it for 2 joystick operation if you want, or stack a second shield. See for more info. A Y Splitter Cable would allow two joysticks to a single port in this scenario. The joystick Shield above only is wired fore one.


Notify of
Inline Feedbacks
View all comments


Would love your thoughts, please comment.x