Introduction: OpenCADE Modular Retro ARCADE Console (3D Printed)

I wanted to provide the Retro Gaming community with a 3D-printed arcade solution which could be expanded, customized and enhanced however you wanted. After a number of iterations and late nights, the first model was built. Started with a 1-player only version and tested it out. It WORKED! Then, decided to print the 2-player side and it also worked. At this point, it really needed side covers and the USB connection so I didn’t have to open the case to attach a keyboard. Spent some time on that, installed it and it worked as well.

I've since created additional components such as the ability to add Trackballs, Spinners, Wrist Supports and much more. This guide and the above video will help you build your own OpenCADE!

Advantages of this Solution

  • You can start off with a single RPi build quite inexpensively.
  • You can add additional controllers, bases, etc.
  • It can grow with your needs!
  • Make it what you want, in any color! Want a Galaga Decor go for it. DK, the same!
  • Did we mention, the case is basically FREE (minus the cost of the printer filament)
  • Additional options can be added as they are developed
  • Include a cover plate for the expansion holes. In addition, the package includes a USB female plate that will allow you to attach keyboards, spinners or trackballs directly to your OpenCADE!
  • A base with no front holes is provided in the package, in case you don’t want two front button holes (great for Player 2…4)
  • An Empty Control Panel is included in the package to allow you to custom design the control panel however you wish. The holes that are pre-designed are for the Joystick and screw holes so you don’t have to worry about that.
  • Can be used with our Arcade Restrictor for an easy and simple solution for playing those classic 4-way games (Ms. Pac-Man, DK, etc.)
  • We have also designed an spinner and trackball attachment which you can place in any segment you wish. This panel is design to work with the Glen's Retro Show Trackball, Spinner and Interface board!
  • Expandable by you, since we have provided the .stl files, you can create new components that can be used by any OpenCADE user!
  • We will be developing new add-on’s, components and customization’s as well. This project has ONLY STARTED! Much more to come…


Below is a list of parts we purchased for our builds, in addition to a 3D Printer ( minimum print bed dimensions needed to print this project is 227mm Length X 148mm Width X 150mm Height). You can get your parts anywhere you want, this list is provided as a reference and what we used in the video above.

Step 1: Prerequisites / Tools Needed

3D Printer

For the model I built, I used PLA plastic. It’s not as durable as other options such as ABS, PETG, etc. However, PLA is much easier to work with and doesn’t require a heated print bed. It’s up to you what material you want to use, PLA is just a suggestion. The printer I used was a Flash Forge Creator Pro and the build volume is 8.9 X 5.8 X 5.9 inches. You will need a printer with dimensions this size or larger to print this case, so do check that first before continuing.

In the archive you’ll find a few .STL files, these are the files that you load into your splicing software for your printer. There are a number of packages for that, so I can only assume you already know how to load a .STL into the splicer and generate the file output needed for your printer. I used FlashPrint with my printer and it’s free for Flash Forge printers and one I recommend. There’re many others that range in price from free to a few hundred USD.

Recommended Tools

Aside from the obvious, access to a 3D Printer, you’ll need the following additional tools:

  • Philips head screwdriver
  • Small needle-nose pliers
  • Hot glue gun (optional - for the USB Plate)
  • Ink/Laser Printer to print button labels (optional)

Step 2: The Models

First, you'll need to download the .STL files or 3D Models that you'll use to 3D print your OpenCADE. Since OpenCADE has been released, it has had a number of new options added. Most of which are included in the Expansion Pack. The Expansion Pack as well as the Spinner+Trackball are completely optional depending on what you want on your panel. At a minimum, you'll want the following models as part of the base-kit ( which includes everything you'll need to build something like the ones pictured above. I recommend starting there, then expand from there.

Download and extract this to begin:

Step 3: Getting Familiar With the Components

The above components have been developed as part of the base OpenCADE kit. Their design and number of components may change. However, those will likely be added to supplemental documentation or part of the Expansion Pack. For now, let’s just consider these components.

*NOTE: At any point in this document, if you see (# some number), it is referring you to this component list.

Base (1) – This is the largest of all the components and it will take time to print. It’s one of those prints you start early in the morning and it might be done by late evening or the next morning. It all depends on your printer, speed/quality settings. This is the key component, everything else you see somehow attaches to this piece. There are 8 standoffs on the bottom. The opening near the back is where the Raspberry Pi connections will be made. The standoffs near the front are for the Joystick encoder board, you'll use M2 screws for the RPi and Encoder Board and will self-tap into the standoffs. There are 4 tabs at the top of box where an M3 screw will pass through with a nut. You can find the screws at your local hardware store or online. At the bottom of the base, you’ll find two holes where two additional buttons may be installed. There is also a version of the box with no front buttons if you prefer not to add them.

*NOTE: While not pictured, there is a notch in the back-middle that was created for the base which allows you to take the cord going from the Encoder and plug into another RetroPie console (wrap some electrical tape around the cord to eliminate stress on the encoder). For example, if you have one of the Retroflag cases with a Raspberry Pi already installed, you can use OpenCADE as an external Joystick Enclosure!

Control Panel (2) – This is where you will install a joystick and buttons. Notice, the very top holes are slightly smaller than the other holes. This is typically where the Start/Select buttons will be installed. The other buttons will be installed in whatever arrangement you wish.

Side Cover (3) – This cover can be used to cover the holes on the left/right side of the Base (#1) until such time that you decide you want to expand in those areas

USB Tab (4) – This small piece will be used to keep the USB Cable (Female → Male) from sliding out the back of the adapter. You first slide the Female end into the USB Adapter (#5), then slide the Female portion out the front of the plate. Add large amounts of hot-glue into the holes where the USB Tab will reside and slide the Female USB cable so that it’s flush against the USB Adapter (#5). Let the glue dry, then break-off the square portion of the USB Tab (#4) to make a solid seal that will keep the USB cable from moving back or forwards. If this is difficult to picture, please see the video at the beginning of this instructable for a demonstration.

USB Plate (5) – This plate will house the Female end of the USB Cable to the Raspberry Pi. This allows you to easily connect a keyboard, Trackball, spinner, etc. without having to open the case. Keep in mind, this plate should only be installed on the Right-Side of any case. Installing it on the left-side is likely not going to work well and interfere with the ability of the joystick to move freely. It can be installed on the right-side of any 1, 2, … n case but not on the left side.

Step 4: Getting Started

The following are some general assembly guidelines. Keep in mind, you are free to customize this case however you wish and therefore there are a number of permutations. For a more helpful assembly explanation, please the video at the beginning of this instructable.

Getting Started

It is assumed that you have already 3D Printed the following components:

  1. x1 Base (#1)
  2. x1 Control Panel (#2)
  3. x1/2 Side Covers (#3) - Optional, but recommended
  4. x1 USB Plate (#5) - Optional
  5. x1/2 of USB Tab (#4) - Optional

The above will allow you to build a single 1 player case. Additional components will be needed if you want to turn it into a 2-player, 3-player, etc.

Step 5: Burn RetroPie to the MicroSD Card

  1. Download RetroPie from
  2. Burn the image to your microSD card (32Gb or higher is recommended by us) using Win32 Disk Imager or Etcher.
  3. Insert the microSD card into the Raspberry Pi 3B/B+

If you are unfamiliar with installing/setting up RetroPie, please see these detailed instructions.

Step 6: Install Raspberry Pi and Encoder to the Base

  1. Using x4 (or x2 diagonal from each other) M2 screws, attach the Raspberry Pi to the standoffs located at the very back of the Base (#1). The Audio, HDMI and Power connectors should be facing out the back. Securely tighten the screws.
  2. Repeat the same for the USB Encoder board that came with the Joystick kit. Make sure the USB Female connector is facing towards the middle of the inside of the case (see image above).
  3. Attach the USB cable from the encoder to the Raspberry Pi.

Step 7: Install Joystick to the Control Panel

  1. Using x4 M3 screws and nuts, attach the Joystick to the control panel using the 4 holes provided in the control panel.
  2. Make sure the center of the stick is centered to the hole in the top of the control panel.
  3. Install the Joystick cover (round plastic washer)
  4. Screw the Joystick ball to the rod.

Step 8: Install Buttons to the Control Panel

  1. Install the Button on the top of the control panel. *Note – we also provide a sheet you can print and install the artwork inside the plastic cap of each button. This is optional, but eliminates wear on any external labels and looks a bit more professional. Though, takes more time to do. See for the downloadable button sheet.
  2. Install the black or white nut to the bottom of the button. The white nuts are for the two smaller buttons. The black nuts are for the larger buttons.
  3. Repeat steps 1-2 (above) until all buttons are installed.

Step 9: Wire Up the Buttons to the Encoder Board

  1. Follow the manufacturer’s information on installing the wires.
  2. Repeat for all buttons.
  3. Attach the connectors from each button to the encoder. Typically, it doesn’t matter which button is connected where (again, see manufacturer’s instructions to verify).
  4. Repeat the above steps for all buttons.

Step 10: Install Side Cover (Left Side)

If the case being assembled will not have another case assemble don the left, install a side cover on the left-side.

  1. Align Side Cover (#2) holes to the Base (#1).
  2. Insert x4 M3 screws with the heads on the outside of the box, going into the case.
  3. Install x4 nuts to the inside of the case.
  4. Tighten well.

Step 11: Install USB Adapter

If you want to provide easy access to a USB port, you can install the USB Plate (#5) on the right-side of your build. Keep in mind, installation of this component should always be on the far-right. Installing to the left side will most likely impede the ability to use the Joystick properly.

  1. Using a 1-3 foot USB Female → Male extension cable, slide the female in to the adapter.
  2. Align the female adapter so that the connector is flush with the outside of the adapter.
  3. Slide the Female USB adapter out slightly and apply some hot glue through the holes in the USB Plate.
  4. Push the Female adapter back into the plate so that it is flush.
  5. Insert x1 USB Tab through an appropriate hole to secure the movement of the USB Female end.
  6. Add more hot glue at the end and install a 2nd USB Tab.
  7. Allow the hot glue to dry completely, usually 2-3 minutes.
  8. Break off the top piece of the tab (larger square), it's only needed to get the plastic legs through the holes and can be broken easily with a pair of pliers.
  9. You can now slide the USB cable through the side expansion and mount the USB Plate to the side of the Base.
  10. Install the male end of the USB cable into the Raspberry Pi.

Step 12: Install Control Panel

The moment you’ve been waiting for! Keep in mind, if you are making this control panel a 2 (or more) player controller, you will need to screw the two sides of each Base (#2) together first. Make sure you tighten them well to prevent any movement. Don’t hand-tighten (as we did), you’ll have to open it back up later to secure them better. A washer can also be used, if you have them, to help add extra support. Also route/connect the 2-player USB cable to the RPi in the primary control panel.

  1. Install an M3 screw in any corner going from the top of the control panel down into the provided Base support holes. Make sure there are no wires obstructing any buttons or joysticks (press/move each to make sure). You may need to adjust at this step to make sure everything fits well. Once OK, install the nut.
  2. Repeat the above for all 4 nuts.
  3. Tighten well, but don’t over tighten (too much torque could potentially break the base supports). While this hadn’t happened to us, theoretically it could.

Step 13: Try It Out!

  • Attach the HDMI cable from the back of the Raspberry Pi to your TV
  • Attach the power cable to the Raspberry Pi’s micro usb connector. If the power supply has a push button, make sure it’s turned on.
  • Make sure your HDMI TV’s input is set correctly.
  • You should see the Raspberry Pi booting into Emulation Station.
  • For more information please see the OpenCADE page at

Step 14: Troubleshooting

The following are some issues that we encountered and their solution:

  • Joystick won’t move – First, make sure you did not install the USB Adapter plate on the left-side of the case. It should only be installed on the right-side of any segment. The reason, the bottom of the joystick needs to be able to move freely. Also, any USB cables should be routed such that it won’t interfere with the joystick operation.
  • Buttons Stick – The reason for this is typically there are wires below the button or the nuts of the button washer are applying too much pressure to the button. Try Rotating the button+nut such that the flat end is facing the side of the case. Re-install the control panel (without screws) by holding it down with one hand. Press each of the buttons to see if there is anything preventing the button from being depressed. Once all is OK, screw the control panel (#2) to the Base (#1).
  • Where can I get the latest information? – The latest information regarding OpenCADE will always be available at . Including all links to the 3D Model download, any potential expansion designs and other artifacts. We'll also make it a point to update this instructable as well!

Games Contest

Participated in the
Games Contest