top of page

Prouct Design:
From Start to Finish

Introducing the AceBox!

A retro gaming console capable of playing thousands of video games from my childhood!

This is a project I devised to attempt to bring all of my self-taught skills together into one project.

AceBox with Controllers


The Idea

-A gaming console capable of running retro games from as many consoles as possible

-Design inspired by aviation

-Compact and portable

-User friendly GUI that the whole family can easily use


The Design and Rendering

The Acebox was designed and iterated using Autodesk Fusion 360. I began by importing a 3d model of a Raspberry Pi 3 B+. The remaining electronic components I carefully measured and and accurately modeled them individually. This made it simple to model the case and aesthetic components around.



I designed the case of the AceBox as two main parts that snap together in the front and is held together by two screws hidden beneath.

I let a number of people handle it and quickly found that everyone wanted to press on the barrels on the front like they were buttons (the center one has a power button, the outer two are aesthetic). This would cause them to break off inside so additional support structures were included to hold them in place.



All parts were optimized for 3D printing to reduce print times, material used, and minimize the need for supports. In order to test the fit of components like the USB ports on the front, as well as the tolerances of the latch that holds the 2 halves together, Those components were cut out of the model in order to print them separately. This made the print times quicker and cut back on material waste.


Circuit Design

The Raspberry Pi does not come with a power button, furthermore, the cooling fan is on at all times, even when it is turned off. I designed my own circuit board that turns on the fan only when needed based on CPU temperatures. More importantly, it turns the AceBox on an off. I programmed an ATtiny85 chip to blink the power button LED long enough to allow the console to perform a safe shutdown and save all of your game progress. This gives a better indication to the user as to when it is safe to unplug the device without risk of data corruption


Programming in new features, creating the GUI

I created the GUI using HTML and my own pixel art (a hobby of mine) to match the WWII aviation theme of the case. Since there are so many consoles emulated on this machine, the loading screen features the controls used for each game. Menu selection is an animated bullet feed belt as well which I am pretty proud of. All menu options that the casual user shouldn't have access to are hidden (yet still accessible if you know the passcode). I also wrote a handful of bash scripts that allow you to easily change features that I added such as menu music, button preferences, viewing the remaining diskspace, etc.


Final Assembly

The entire assembly snaps together with 6 screws total (including those to hold down the Raspberry Pi) with a couple components glued in place such as the mesh over the air vents on the side panels. The custom circuit board, once components are soldered to it, plugs in to the Raspberry Pi, and extension cables are added to the USB ports as well as the MicroSD card for ease of access.


Packaging and Documentation

To finish off the WWII aviation vibe, I designed the console to fit comfortably with two controllers and all necessary plugs inside of an authentic metal ammo can! (foam insert to protect contents is in the works). Product would ship with a "quick start guide" to get  you reliving your childhood as quickly as possible, and also includes a QR code link to full online documentation, written by me, to learn about all included features and how to report bugs.


Final thoughts and planning for the future

I tried my best to make this product "future proof". Most models of the Raspberry Pi maintain the same form factor (so they should be able to use the existing mounting holes in the AceBox) but, they update the ports for HDMI, power, etc. To plan for this, I made the backing plate (which gives access to these ports) interchangeable. When a new Raspberry Pi board comes out with more functionality, only the backing plate needs to be redesigned, not the whole console. I am also in the process of migrating everything over to an online repository to simplify the process of updates when bugs are fixed. The user can click a menu option to update (powered by a bash script that I write).

bottom of page