I want to make a USB gamepad, and I've heard that an Arduino would be great for this kind of project. But before I start to work on it, I want to make sure I understand some things. Here are my basic diagrams of what the project will look like during prototyping and after prototyping:


"Final" Circuit

Do the diagrams look right? Am I understanding the process correctly? For me to properly build a final circuit, I would have to emulate all the necessary (the most important one being the USB) circuitry that an Arduino has around it's microprocessor.

And my final question is, how would I load my program on to the microprocessor (with and without the "Arduino-like" USB circuitry)?

  • Like this? conrad.nl/nl/…
    – Paul
    Oct 2 '16 at 19:11
  • Yes, something like that. But I want to learn the process of making one, so I would like to build my own circuit. I want to know how to go from prototyping, to a full-blown circuit/PCB.
    – Max Jacob
    Oct 2 '16 at 19:24
  • Please embed your images into your question, rather than posting links. Links can go down.
    – Nick Gammon
    Oct 2 '16 at 21:09
  • 1
    So you've got no experience and want to do one project that involves designing a PCB and programming a joystick? You should break it up in smaller projects or iterations.
    – Paul
    Oct 3 '16 at 5:05
  • 1
    You'll have to make your own board, with the required buttons, but you should really check out blogs/tutorials on creating such a thing.
    – Paul
    Oct 3 '16 at 5:14

Yes, your thinking is pretty much correct.

You can place an ATMega32U4 chip and the associated required circuitry within your own circuit design. The required circuitry is actually quite simple - a crystal for the CPU clock, a few capacitors (load capacitors for the crystal, and decoupling), two 22Ω termination resistors for the USB bus, and a 10KΩ pullup on the reset pin. That's about it (besides power of course).

As far as programming goes, you can either install a bootloader (butterfly - like the Leonardo etc) that works through the USB, or you can directly program the chip using ICSP. It's best to provide an ICSP header anyway (it's the SPI pins plus RESET basically), and if you have done that (which you'd need really to be able to get a bootloader on there) then you may as will skip the bootloader entirely and just program direct through the ICSP header. Of course, you'll need some kind of programmer (an Arduino can do the job at a pinch, but it's worth spending the $10 to get a cheap AVR programmer from eBay).

  • The ATmega32U4 (not 'RC) comes with DFU and crystal fuses preprogrammed, so all you need to make it USB-programmable is the external crystal and load capacitors. Oct 2 '16 at 22:39
  • @IgnacioVazquez-Abrams What do you mean by "'RC"?
    – Max Jacob
    Oct 3 '16 at 0:15
  • An ordering code that starts with ATmega32U4RC, which indicates blank flash and fuses programmed for internal RC oscillator operation. Oct 3 '16 at 0:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.