Open Source Makes This USB Arcade Controller Build A Breeze

[Jamie] built his own USB connected arcade controller. We’ve been seeing a lot of these lately, and they usually involve soldering buttons to a keyboard PCB. But [Jamie] decided to go a different route and use his own microcontroller. This method always gets a bit hairy when it comes to deciding how to connect it to a computer. Dealing with the USB stack used to be quite tricky, but the LUFA project is slowly taking the pain out of the process.

The Lightweight USB Framework for AVRs is an open source project that handles the hard work associated with USB capable AVR microcontrollers. [Jamie] knew that they already had a sample implementation of a hardware joystick. He’s not using one of the supported boards and so wasn’t able to just compile and go. But porting the code to work with his minimus board was simple enough. With the code in place, the physical build was quite simple. The buttons and joystick were mounted on the surface of an overturned drawer. Each is connected to one pin of the controller board and to ground. LUFA makes sure that the device enumerates as a joystick, and [Jamie] was gaming in no time.

18 thoughts on “Open Source Makes This USB Arcade Controller Build A Breeze

  1. My only suggestion would be to lay out the buttons in a more ergonomic fashion. Other then that this looks like an excellent alternative to hacking a keyboard for a mame cabinet controller and probably a bit cheaper too.

      1. I couldn’t decide on how to work out an ergonomic layout that would look good, so just kept them straight. Still works quite nicely though. The buttons are widely spaced because I have mammoth hands :)

  2. LUFA and the USB AVRs are great, I love that LUFA is open. I use the virtual serial bit in programs all the time, and the microcontroller is cheaper than a bloody ftdi chip. :)

  3. I’m in the middle of doing the same thing. Also with a minimus. I’m doing it as a custom HID keyboard, with 20-key rollover. 10 times better than hacking a keyboard. No need to worry about key blocking for larger button layouts!

      1. Dean Camera (the creator of the LUFA libraries) he is an absolute great guy, and if you post on the AVRfreaks forums he will help you with any problems you have. Including rewriting portions of code.

        Also the hardware USB just works!

    1. The smaller Teensy is basically identical to the Minimus, ~same breakout circuit, ~same processor.
      However, the Minimus is pre-programmed with AVR’s default bootloader, which is nicely supported under linux. Teensy looks like it uses a proprietary bootloader / uploading code. It’s also a lot easier to get hold of in the UK.

Leave a Reply to Zack CCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.