I’ve been on mission lately to design a handheld bluetooth game controller. I’ve made a prototype in the past but, it never was really usable as a gaming device. Although the concept worked well the form factor was not quite there.

Well after a few months of tinkering and several designs I finally have one!

The design is based around the Atmega 328 running the Arduino bootloader. There is a RN42-HID bluetooth module that allows serial communication between it and the microprocessor.

I wanted the device to be fully hackable so I designed it with headers for both the bluetooth module and the Atmega 328 chip. I can reprogram the bluetooth module to run HID keyboard or mouse (or combined), it can iterate as a gamepad, or it can reconfigured to run serial protocol and iterate as a virtual com port.

Communication with the bluetooth or the Atmega328 is done through a FTDI header allowing me to keep the board design simple.

There are a total of 12 buttons on the device including two shoulder buttons. I included LEDs to indicate power and the connectivity states of the bluetooth module.

The system runs on 3 AAA batteries that are attached to the bottom of the device.


It works great for both Android devices and iPhone devices. I have it iterate as a HID keyboard and then run code to simulate the iCade, since there are already a lot of games that support this protocol. I also have code that just runs simple keyboard presses and this works great in games that support keyboard input. The nice thing about it is that it can be reprogrammed easily to accommodate any protocol that I need. I have also combined the regular keyboard and the iCade protocol into one code base and switch by holding a button down at boot – multiple protocols!!

I finished off the device with a laser cut acrylic case. I wanted something that would show off the insides of the device. I think it is a great conversation started when people see the insides, they tend to get more curious when they see it is not just another game controller.

The whole device is  4.5 inches wide by 4 inches high and a little under one inch thick which makes it a nice fit for your hands and very easy to carry around.

Over the next few weeks I’ll be working on cleaning up the code and making a video to show more of the functionality, so check back soon for more bluetooth goodness!