Arduino as Joystick/Game controller

Hi Guys,

I don't have much experience with Arduino, but how do i take the inputs from analogue and digital inputs to the Arduino and end up with an input that a (windows) game can read.

I can see two ways of doing this, one is to add a new USB socket (or use the existing one) and program the to talk to the computer as if it were a USB joystick.

The other more simple option would be to use a program on the computer which takes serial inputs and turns them into commands which it sends to the game.

I cannot find a program that lets me do that and I don't have the experience to get the Arduino to do something like that.


You are asking the Arduino to become a USB HID Device. It sounds simple enough... but you are really asking a lot of the device.

I would recommend you look here for a blog where someone tried to accomplish this.

I do seem to recall that someone DID come up with a Windows executable that would take commands from the Arduino via Serial port. (sorry, can't find it)

If the game can use keyboard input, you could use something like AACkeys. It's pretty wide range, (it can even do mouse actions), and all you have to do is send serial messages.

You may want to look at hacking an inexpansive joystick/gamepad and connecting the arduino to it. Most joystick/gamepad inputs are just switches and pots connected to the USB part.

Thanks for the replies, I really want something where i can have multiple axes so that I can connect tripots etc so I really need a USB HID interface.

However after reading through some of the stuff in pwillard's link and doing a bit more googling i have decided that that is way above my level.

I think i will end up hacking a playstation style usb controller

If I need more buttons i will use something like AAC keys or this keyboard only interface, with a ps2/usb adapter.

Lot of inputs for an inexpensive USB device.