I am making a macro keys button box and need something to convert the buttons into keyboard inputs on a PC, such as a shortcut key in a game.

Previously I have used an Arduino Pro Micro, although in order to make it more professional, I am wanting to make a custom PCB with terminals for the buttons to easily connect to. I then want to make a computer app that easily allows me to change the buttons. I am considering using a Atmega32U4 chip to control everything and then simply have terminals for buttons which go to ground and a pin on the chip.

  • Is this a good way to do this and how would I actually program it?
  • Would it be as simple as uploading the Arduino firmware and then uploading my own sketch to it, or is it more complicated than this?

I basically want to make a USB Joystick Encoder which I can program the buttons with my own app. Although, rather then purchasing a USB Joystick Encoder, I want to make the PCB and solder on the parts myself.


closed as too broad by Transistor, Chris Stratton, Elliot Alderson, Hearth, Michael Karas Jul 7 at 11:15

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 2
    \$\begingroup\$ Welcome to EE.SE. (1) Your "question" is way too broad for this site. You're really asking for a complete design and we're not a free design service. (2) You didn't ask a question. (There is no question mark in your post.) (3) For your question to remain open you'll need to edit it down to one specific, answerable, technical question. \$\endgroup\$ – Transistor Jul 6 at 8:45
  • \$\begingroup\$ With reference to point (2) in the comment above, I've now added some punctuation, including the missing question marks. As mentioned, they weren't there originally. \$\endgroup\$ – SamGibson Jul 7 at 17:14

If you have it working with an Arduino, the obvious next step is to use the same microcontroller and the same or similar software.

ATmegas can be programmed using a SPI programmer like STK500 or USBasp. You could load your software directly that way, or just load the Arduino boot loader and use the Arduino loader to load your software.


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