Over the past 6 months I designed and built an entertainment system, which allows to play movies and all kinds of retro games. I was very grateful for the plans and resources of others, so I will do my part and wrap this project up by sharing an insight into my process, my findings & CAD files.
Most important areas are in bold.
- 1) Requirements: Define goals
- 2) Sketch: Iterate as efficiently as possible
- 3) Mockup: Get a feeling for the idea
- 4) Draft: Based on specific components
- 5) Prototype: Test it before spending weeks
- Errors & Findings
I went through various steps of prototyping before the actual build. I highly recommend doing so, for any nontrivial project! 2 hours up front save a lot of time and frustration in the long run.
The following steps worked out great for me:
1) Requirements: Define goals
I set out to build my take on arcade machines with these requirements:
- Play any classic game (using an emulator such as Retropie/Batocera/…)
- Play videos, from a USB or the internet (Kodi works great for that)
- Removable, classic controllers
- Storage for extra controllers
- Storage for a keyboard
- Made out of (nice) wood
- As pretty and compact as possible
- Ease of maintenance
2) Sketch: Iterate as efficiently as possible
Use the medium you feel most comfortable with: Pen & paper, cardboard, any kind of software – whatever lets you visualize your idea fast and clearly.
For me that was Autodesk Maya (a 3D software I use every day at work). I mocked up all crucial elements: Screen, removable controllers, space for a keyboard and additional controllers. Working in your preferred medium allows you to iterate the fastest on basic proportions. Even though this concept looks very different to the final Arcade, it guided everything to come.
3) Mockup: Get a feeling for the idea
I find it very important to see a design in the real world early on. Especially when starting out digitally or with drawings. What does “70cm wide and 60cm high” really look & feel like? A cardboard model answers such questions. It’s quick to make and practically free.
At this point I only had rough requirements, such as “24inch Display” or “a standard keyboard”.
4) Draft: Based on specific components
Eventually your design has to transition from plan to final product. The problem with that: Reality is unpredictable!
With my latest cardboard design in mind I searched for the critical & unchangeable components in local stores and online: TV, joysticks, buttons, slides and USB plugs. I measured everything, even if there were schematics online. Because remember: Reality is messy 😉
I made a first sketch in Fusion360, which was still far from the final design: The storage drawer was much bigger and it still had the iconic arcade top-bar. Those changed eventually, due to cable management and to save on wood cost.
Note: I should have measured the wood available to me as well. Don’t overestimated the precision of cut wood! 3/4inch Plywood is not 3/4inch thick at all! And don’t get me started on structural wood. “Two by four”? Apparently that means 1.5×3.5inches. I had to spend a couple of hours updating my design with the actual wood thicknesses later on.
5) Prototype: Test it before spending weeks
The controllers are quite densely packed, so I built a prototype with foam walls that were roughly as thick as the wood. I changed the button layout one last time and checked whether it would feel nice, with a scrap-wood mockup.
To test TV inclination, drawer handles, service door and such, I adjusted the cardboard model I made earlier.
Time to apply everything I learned from the prototypes. I continued with the draft I made in Fusion 360 and tried to be as unforgiving as possible: It’s very tempting to think “I’ll make this fit when I get to it”. You probably can make it fit, but you’ll have a really sh*#!y time 😉
If you’re comfortable with setting up constraints in Fusion360 you can even test mechanisms before the build. And if you can afford the time: Let your design sit for a couple of days and come back with an unbiased mind. You’ll spot issues & eye-sores much better.
Tip: Overestimate how much space cables require. Those suckers are harder to tame than my insatiable hunger for cookie dough!
Big printouts are super convenient to read and 1:1 glue-on plans (eg. controller hole layout) make your life much easier. I discovered engineering prints at Staples: They are incredibly cheap for their size! This entire wall of plans cost me 8$ (CAD).
Feel free to use and adapt my design. Of course I appreciate if you credit/tag me in an image of your project 🙂
The final Fusion360 Model Assembly and the individual drawings (grouped by material):
- Housing assembly
- Assembly details
- Structural wood 1in
- Painted plywood 0.5in
- Painted plywood 0.5in
- Walnut 0.75in
- Glue-on plans
- Various pieces
Get your measuring tools out, let’s build!
I spent a long time deciding where to cut these gorgeous walnut planks: Using the most beautiful pieces in prominent areas and ensure consistent wood grain direction.
An overcomplicated box, I guess…
Glue-on plans make your life much easier when drilling the 9 holes! Don’t use too much spray-glue, so you can peel and sand off the excess paper easily.
I had to glue little wood blocks into the bottom corners on the inside (not shown in images). Otherwise I couldn’t have screwed the bottom plate into place.
I planned on painting the plywood, so I only taped the top & bottom pieces together when sanding. That got me a perfectly smooth transition, without glueing them together just yet.
An aluminum plate holds the start & select buttons in place. To cover as much plastic with wood I turned a walnut dowel, cut it into knobs and glued those to small 3D printed pieces that fit snug onto the actual buttons.
Assembly of the controllers was tedious, but I managed to get it done in one evening. A couple of button-connectors had to be bent to fit into the small box.
The USB cable is screwed to the side and tied into a knot. That should prevent mechanical stress on the actual plug, when the controller is moved around. For the light switch I connected all negative wires together and routed them through the switch (at the back of the controller) to a common ground on the encoder.
To make the controllers as wooden as possible, I replaced the plastic joystick knobs and washers with a wood-turned equivalent. A threaded insert was used to attach them to the joystick shaft.
The whole Arcade is built around this piece, hence “backbone”.
Any error in this piece would have a big impact, so I spent a looot of time on getting all grooves, angles and notches as precise as possible. Despite my best efforts there was a slight deviation: The space for the storage drawer was a bit too narrow, but I could fix that by routing out a little groove on the opposite side.
Odd angles and long edges required some strange glue-setups. I need more clamps!
Due to lots of angled pieces I made a jig to clamp the sides together precisely for the glue-up (middle picture):
To prevent the controllers getting scratched I added felt to the ledge and bottom. Gluing the start of the felt into the groove around the ledge should prevent it from peeling off. The top edge of the ledge is sanded back a bit so the controllers are in contact with the felt, not the wood.
Removable controllers are only fun if you can remove them.
Since I was going for a snug fit, those controllers would get stuck in the housing. A simple lever mechanism allows to pop them out enough to grip them. I made some of these parts out of aluminum:
Small space + high(ish) loads = this needs to be metal
A circular piece with a dowel glued into it serves as button & pusher.
I encountered a small design flaw at this stage: The cable would have gotten stuck on the ledge and would have blocked the controllers from ejecting. The simple fix was to add a little notch in the back of the housing, where the cable needs to pass through. I retroactively added this to the CAD design.
Standard drawers with some nice, smooth handles.
I drilled 3 holes in the back of the keyboard drawer to mount USB plugs. This made charging the keyboard and connecting USB sticks or additional controllers quick and clutter-free.
Making the cheaper Plywood look nice.
This is where I made one of the biggest mistakes. I tested the paint and stain I already owned. My idea was to use black paint and wipe it off before it dries. The test worked well and was my preferred look:
The problem is: All the actual pieces were MUCH bigger, which caused these issues:
- Wiping the paint off means that there is only a very thin film on the surface, which dries much faster. It quickly becomes an ugly, sticky paste.
I should have foreseen that, but the test worked so well that I just didn’t use my brain…
- I expected it to be messy, but not THAT messy.
- More waste than I’d like to admit. Because the paint dried so quickly I had to use more of it, which meant I burned through more wipes, etc.
It looks fine on most pieces, but I had to spend way too much time and resources. If you want to tint your Plywood black: Buy black stain!
“Hopefully my CAD design holds up!”
For the longest time I blindly cut pieces according to my plans. It was very satisfying to combine it all at the end and thankfully it fit!
Some pieces had to be sanded after assembling. Using masking tape to sand around corners helped a lot to prevent taking off too much wood from the side I wanted to keep intact.
For a snug fit of the TV I used shims to get the rough measurements. Based on that I cut the blocks that hold the TV in place and sanded them gradually to the perfect fit.
At this point all pieces were painted and it was time to put it all together. A mounted power bar was later soldered to the power plug in the back, to be able to turn the entire arcade on and off.
To play classic games I had to install a console emulator and to play movies a home theatre software. For the longest time I went with the popular RetroPie (emulator) as the main system. But I just couldn’t get Kodi (home theatre) running with it, in a satisfying way. I tried dual-boot, but taking longer than 45 seconds to start is just too slow nowadays. Long story short: Batocera (another emulator) has Kodi built in and works like a charm: Fast boot-up and a clean look.
While setting these systems up I faced 2 major problems that caused a black screen:
- At first, the TV didn’t display anything. I had to force outputting to HDMI by including these 3 lines in the
hdmi_force_hotplug = 1
hdmi_group = 1
config_hdmi_boost = 9
- I used a Raspberry Pi 4 at first (newer is better, right?), but couldn’t fix the above mentioned black screen fully. Possibly because the Pi 4 allegedly ignores the
config_hdmi_boostsetting. After trying for 2 days I gave up and bought a Raspberry Pi 3B+. I will eventually switch to the more powerful Pi 4, once the wonderful people working on Kodi, Batocera & Retropie fully support it 🙂
Errors & Findings
There are some things I would do differently in a second build. But before going over the “bad”…
- It works and me and my lady are super happy with it! 😀
- The two drawers are fantastic! What would have been wasted space is now:
- Storage for a keyboard, 2 N64 controllers and 2 Playstation controllers (with way more room to spare).
- A convenient way to extend the arcade through the hidden USB plugs: Adding controllers, USB sticks, etc. is a no-brainer.
- Prototyping in CAD prevented lots of issues later on. Especially being able to move slides & controllers in & out prevented a lot of frowns!
Could be better
- Don’t “stain” with paint. Just don’t… Get black stain and enjoy your life 😉
- The controller USB cable situation isn’t ideal. Some improvement options:
- Increase the space in the housing: It’s very tight for 5m cables.
- Find a way to make the controllers wireless. An option would be “Brook wireless fighting board”.
- Don’t make them removable in the first place. It adds A TON of extra work and it’s not really necessary.
- Add a hole or two in the corners of the maintenance door to feed cables into or out of the housing. Ethernet cable, USB cords, …
- Try to save weight! My build turned out to be 33,3kg(!). For example the maintenance door could be thinner plywood.
- Put the extension cord above the intermediate floor in the back. All power consuming parts are on top anyways: Raspberry Pi, TV and optional speakers.
- The plug outside is nice, but I could have simply fed the power cord out of the housing. It’s nice to be able to turn it all off with a single lever – but not necessary.
- Soft-close slides are awesome. I would buy them for the keyboard drawer too if I could go back in time 🙂
- Buy your wood early and measure its true thickness! I had to revisit my design after realizing that wood has very loose tolerances.
- Try to have round numbers for angles and distances in your project. It’s possible to measure half-millimetres, but it’s very tedious. Silly me…
- Decide on the metric OR imperial system and stick to it! Since I am in Canada I should have gone for imperial.
- Keep wood grain in mind when you lay out your wood cuts.
To keep it short: I’m really happy with the final result and quite proud that I managed to build this thing in my small 3x3m workshop:
The total material cost was around 1400 CA$. Around 320 CA$ was spent on the fancy walnut wood – now you know why I didn’t include that iconic, but unnecessary top-bar 😀
Not included in this price are things like tools, labour, rental of workspace, etc.
Nobody paid me to recommend any of these products – I’m just a happy customer. But if you buy something through these affiliate links I get a little pocket-money (you don’t pay extra).
- TV: Insignia NS-28E200NA14 (from Craigslist)
- Arcade Push Buttons & Encoder (from eBay or Amazon):