Task: Build a Retro Atari Stream Deck for Launching Games on Your PC
Needed: Pro Micro microcontroller with Atmega32U4 chip, wires, Kailh mechanical switches, micro-USB cable, soldering iron and solder, 3D printer and filament for case, Arduino IDE software for programming
Time: 2-4 hours
Disclosure: Note that as an eBay Partner Network Affiliate, I may earn from qualifying purchases.
Introduction
I love human-computer interaction (HCI) and have often wanted to purchase a stream deck. I often try the Elgato Stream Deck when browsing at Best Buy or Micro Center. Unfortunately, these run $150 and more making them out of reach for me to buy on a whim. This motivated me to develop a DIY project as many other have done. My goal was to build a 12-key stream deck in a retro style reminiscent of the Atari 2600, 400, and 800 (i.e. 1970s brown and orange color scheme) with the use case of launching Atari 2600 or 800 games on the Stella and Altirra emulators, respectively. This was a really fun and rewarding project that is relatively easy and inexpensive (< $20) to do if you can solder and have access to a 3D printer.

Instructions
You should be able to complete this project for less than $20 of materials in four hours or less of printing, soldering, and building time.
First, you will need to purchase a Pro Micro microcontroller. They key is to get one with the Atmega32U4 chip that can read keystrokes. I purchase mine from Amazon for less than $10 each. You can also find them on eBay. Note that I did not buy one with the pin headers pre-soldered because I wanted to solder the wires directly to the board. I tried making my own Dupont connectors for the pin headers but found that process too tedious and prone to setbacks.
Second, you need to purchase mechanical switches for the keyboard. I purchased pack of over 100 Kailh switches on Amazon for a little over $30 or about $0.30 each. These are also available on eBay. Kailh is a popular brand for mechanical keyboards. You only need 12 for this project and might be able to find a smaller set to save some money.
Third, you will need a soldering iron, solder, wire, and a micro–B USB cable to complete this project.
Fourth, you will need to 3D print the key caps, key switch holder grid, and the stream deck base. For the key caps, I used the design posted on Thingverse by Ry7hym under the Creative Commons Attribution license. I liked this design because it was simple and had a flat surface. The 3D prints turned out really nice and no supports are needed. I designed a flat grid to hold the key switches in place along with a case and base for the project. I put the STL files for these on my Etsy shop for $5 (sorry!). I know $5 adds a little expense to this project. However, it is a lot cheaper than the $150 Elegato 🙂 Feel free to reach out by email if you are not able to pay for the STLs. I will send them for free! All printing was done with regular Bambu Lab PLA. As you can see in the photo above, I used some retro colors and set those up in the slicer for printing the case. The brown is actually a Bambu Lab walnut colored wood PLA. The beige is also a Bambu Lab maple wood PLA. The black and orange are plain PLAs. You don’t need wood PLA here. I just thought it would be fun, and I had it sitting around. Any PLA color scheme will work. I printed mine on a Bambu Lab P1S. You could send the STL files off to a 3D printing company if you don’t own a printer. This would add some expense to the project.




Fifth, it is time to wire the mechanical switches to each other (grounding) and to the Pro Micro circuit board. This is the most tedious part of the project and will take about an hour or more depending on your soldering skills.
Before you do any soldering you might skip ahead and load some code into the Pro Micro to make sure it is working to help troubleshooting if it stops working after the soldering. Also, why go to all that trouble if the board is bad from the start.
I also recommend using flexible small gauge wires to make the final assembly much easier. My first time through I used 22 AWG gauge solid core wire that was stiff and made final assembly challenging (but possible). Keep this in mind as you choose wire gauge compatible with the amps needed to run the Pro Micro.
First solder small black ground wires connecting one pin on each switch. The pins on the Kailh switches are not particularly well suited for soldering. I found this to be a bit messy even with pre-tinning of the wires and pins. Maybe some flux would help?? Only one of these pins needs a wire to the circuit board of the Pro Micro. I then soldered one ground wire to a ground on the Pro Micro and then each of the remaining switch pins to one of the data vias of the Pro Micro circuit board. A perhaps easier design would be to create a circuit board that everything plugs into. A project for another time!



Sixth, with all the wiring done it is time to connect your Pro Micro to your PC (I only tried Windows) with the micro-USB cable. Be sure you are using a micro-USB cable that has data transmission and not just power. I always forget this is necessary for the COM port to communicate with the USB device. You will need the free Arduino IDE programming software to do the coding for the Pro Micro. Open that up and select the Arduino Leonardo option on the COM port. Although we are not using the Leonardo here (it is bigger), it has compatibility with the Pro Micro we are using.
Seventh, it is time to write some code, compile it, and flash it to the Pro Micro over USB. Fortunately, Arduino has a Keyboard.h header files with some nice easy to use function calls for communicating keystrokes to your PC from the Pro Micro. The code you will use looks like this:

Eighth, it is time to assemble the final Retro Stream Deck by gluing or fixing the Pro Micro to the platform base and screwing the base to the case. The key grid can also be glued to the case for a more permanent fit. I use Gorilla Glue for both. That is it!!!
Comments
This ended up being a bit more work than I expected, but I am very happy with the results and got a number of compliments on the retro colors and design. I really like the clicky tactile response and sound from the Kailh mechanical keys. So much fun!
The code for the Pro Micro is pretty generic and can easily be adapted to any emulator including Altirra.
I would love to find a way to bypass the soldering phase of this project. The soldering is not hard. It is just tedious and time consuming. I thought I might make several to sell on Etsy. However, I am not very motivated to do that given the time it takes. I would love to develop a circuit board to streamline this.