[MiniCad Project] - Mini Arcade Cabinet (21cm high) - 5" HDMI screen + RaspberryPi + arcade controls


Hey everyone!

I’ve started a couple of weeks ago building a mini arcade cabinet. The goal is to make something tiny enought to be on a desk, but with a screen big and fast enought to be used.

A bit of history:
Last year, after buying a cheap mini arcade machine and be uterly desapointed, a friend asked me if I could build him a small arcade cabinet, but with real arcade game: he insists on Final Fight, Shinobi, etc… in shrot, he wanted MAME but in a tiny build.
After showing him “small” ones with 10" screen and real controls (Sanwa and all) he says it was too big and wanted something small like the cheap one.

So here’s the first draft I’ve made in cardboard to check with him the size:

After agreed on the size I went into making it with a 3.5" TFT screen in SPI mode.
Fast forward one year later (yeah, I know, but to my defense I’ve build him a GameBoy Nano) I’ve finally make the screen working:

Unfortunately, the refresh rate didn’t satisfied him.
I went back on the bench and check what screen I could use.

I found a great 5" TFT screen, with a HDMI driver:

Screen is 120mm large (4.7") and so will my cabinet be.
To give the abilty to print sticker easily on a A4 sheet (21cm*29.7cm), the cabinet must be 21cm height tops.

So here the goals I fixed for the build:

Main Goals:

  • Raspberry Pi 2/3 with easy access to replace/upgrade later
  • Screen, small as possible but with a good refresh rate
  • Controls looking as an arcade: Stick and 6 buttons (plus start/select/home)
  • Power on/off switch
  • 21cm height TOPS.

Secondary goals:

  • HDMI output possible to hook it up to a big screen,
  • Same with audio/video jack,
  • Should be build as a “kit” in mind, especially the structure,
  • Internal sounds,
  • Accessibility to the SD slot of the Pi without dessambling everything,
  • Close as possible to a real arcade shape,

Fancy-pantsy features:

  • Lit Marquee
  • Volume Control with jack sense (cut the internal sounds when plug on the jack)

Design was finished in a CAD software

This would help me to keep track of measurements and test before printting the space inside the cab.

At first, I intended to use balsa wood sticks, make the parts as counter molds, then resin-cast them.

But eventually, I bought a cheap 3D printer which accelerate drastically the build:

This is a Anycubic Kossel Linear Plus. Structure will be printed in PLA.

Edit: tipos and better english :stuck_out_tongue:


######## Electronics #########

— Controls —
For the controls, I’ve design my own PCB, which is exactly the width of the screen:

It will use the GPIOs of the Pi.

The buttons are simple microswitches. The sticks is an ALPS RKJXL100401L which I deeply regret to use.
It’s a real 8 directions without microswitch contact. It’s overkill and don’t feel great. To give you an idea of what it feels, it some kind of very stiff analog control.
I was seduced but the fact it has a real shaft, and was really small.
I had to re-encode the 8 directions to 4 with diodes.
Next revision will have something different for sure.

— Sounds ----

in progress.
Will have potentiomter for volume control, a 0.2Watts mono speaker and an Adafruit amplifier with a proper stereo to mono conversion.
On/Off switch will be on the same board for practical reason.

— Outputs board —

in progress.
Will deport HDMI, Power USB and A/V jack from the Pi. A/V jack will have a sense to cut off the internal speaker.

— Splitter —
I’m going to use a cheap HDMI splitter. It’s not self-powered so I need a use a +5v from GPIO of the Pi.

— Connexions —

Most will be custom cables (USB and TRRS Jack). HDMI will use FPV/Drone connectors and flat ribbon cables.

Edit: tipos and better english :stuck_out_tongue:


The Build

Before everything: Does it work?

Flawlessly. Screen is more than decent.

Let’s start to print.

Studs take 40mn to be printed. Sides around 3 hours. Neon holder about 1.5 hours, and the “bed” took 5 hours.
Here’s all the part:

I’ve glued them with cyanoacrylate (Super Glue Gel Control from Loctite), but quickly found welding the part by melting a PLA string directly on joint is more efficient, and after sanding, it’s seamless:

Here’s the neon for the marquee. Two 5mm high lumonisty 3.3V leds in an acrylic rod frosted. Results are meh, even if on the picture it looks cool.

Testing the FPV HDMI connector, works great, even with the HDMI splitter


Can’t wait to see this all finished. Will you be posting a video onYouTube then?


Yes, of course. This is also why I can’t go as fast as I wanted to: I need to film it.


Great work yet again. Looking forward to seeing the finished build.


Thanks. This week-end I should be able to finish the structure once for all, then put the Pi, the splitter, the screen with its board and the controls and all the cables for them.
I should also be able to finish the PCB then send them to fab, and prepare the Illustrator file with the shell for getting a quote on the laser cut.
After that I’d have of to wait all of them to come back.
This will also give me the last prices I need to make a global cost of this mini cad.


Are you still going forward with that stick though?


Yes, I’m going to stick (pun intended) with it and finish this build. Other solutions are either too big or doesn’t feel right.
I’ll try to patch it somehow by cutting an octogate in the shell: at least I would be able to feel the directions.


Would you be able to suggest an alternative?


Nothing on top of my head, it’s been a while since I looked through a mouser catalog.

Gating will probable help the issues a bit, at least help lessen the wear on the thing.


Got a quote from Ponoko.
Their “Free Making” is in fact up to 20$ and only runs for 10 days after you create your account. So much for me since making the cab’s shell is 30$ USD and my account was created month ago. Well I could try to create a new account though.
But shipping costs are even worse: 38$ to send it to Canada. (only 4$ if I was in the US)
I’d have to find somewhere else.

I’ve finished to weld all the studs and sand everything. Everything feels solid.
Fixed the Pi, but the splitter which was supposed to be on top prevent to close the cab.

Pi in its bed:

Closing it:

Here’s where the splitter was supposed to be:

Too high! x(

For an other command, I bought an other splitter, wich turns out to be a bit smaller:
On the downside, the connector on the input is a mini HDMI. But it gave me ideas.

Edit : tippo and better english.


Not much visible work today. Spend a lot on preparation for the laser cut dimensions and PCBs (creating the component is a long process)

Here’s a (failed) test print to see if my measurements are correct for the screen bezel and the buttons layout.

Also, the HDMI connector on the LCD driver board seems too long and will prevent to put the sound board on the top. Tomorrow I’ll print the PCBs on cardboards to see what I can do.


Wow 2 weeks already.

No much change since, I’ve found a good place to put the HDMI splitter, and received the mini HDMI I need:

I can still close the case and only have to unplug one HDMI connector to free the bed. For now it doesn’t requiered an external power but I still have one +5V free on the GPIOS of the Pi.

I’ve also received the parts for the sound, which will look somthing like that:

This is a cardboard to check dimensions and positions. Also the power button and potentionmter will be inverted in the final design.
I also need to print some kind of adapter to give enought space since the speaker is freaking tall.
The amplifier will be on the back, and I added a proper stereo to mono conversion.

Because of the HDMI driver, it will be a this place:

For the lasercut shell, I’m in contact with a place in my city (Montréal) which should give a fair price (50$ CAD, so 37$ USD) and I can pick it up, sparing shipping cost.

Still waiting for the PCBs, should be there before mid-june (hopefully next week).


Got the PCBs yesterday.

i/o board:

sound board:

Turns out I made the same mistake in each: I frogot to move ONE trace, leading something to be grounded when it souldn’t be.
After some debug with my multimeter, and some cut with an X-acto, everything is now working:

i/o board populated:
Plug something in the jack cut the internal speaker.

sound board populated:
On the second picture restistor are missing because this is where the problem was. The resistors are here for a proper stereo to mono conversion.

Here’s everything screwed and in place. Electronic is done! :slight_smile:


Do you do custom order?


Well, it will depends a lot of the final quote for the lasercut plexi. I have also co-workers who want one, so I’m thinking about it.
The original goal was to produce a DIY kit.

Right now since I can’t produce in high volume, the unit is pretty expensive: if I include the previous rought quote I hade for the lasercut, the total is something around 160/180$ USD WITHOUT the Raspberry Pi, and I’m not making profit. The screen+driver costs 60$ per exemple, the laser cut is 30$ USD (50$ CAD)

If I want to drag down the price, I’ll have to find another place for the screen and build myself the driver as long as the ampli audio rather than buying all of them from Adafruit.
Also, I could have a better price for the laser cut, but I would need to order 20pcs.




Got the lasercut parts. Took their sweet time but here they are.
Guys from Umake.ca were nice so they give me leftover piece to test how I can bend the parts nicely:

After some test, the acrylic support 200° Celsius without burning, bubbling nor turning yellow, and it bends nicely.
I’m not afraid for 90° right angle, but a bit scare for 45° and freaking the hell out of it for the angle of the screen and control panel: if I’m getting wrong, this would leads to buttons not align properly.

Speaking of the controls, I’ve maybe found a replacement for the stick, but I need to make an adapter to fit with the current design.
I’ve also seen 4k screen slightly bigger (5.5") so maybe I’ll design a “deluxe” version.

Sneak peak!

(the brown thing is protection and needs to be peeled out)


Looking good! Thanks for the update.



Last night I print this:

This big chunk of plastic look like this after a bit of aluminum foil and Kapton tape:

The purpose of this thing is to be heat resistant to help me to bend with the proper angler the screen/control part.
After spending my whole day to find the right way to do it, here’s some good result:


I’m feeling more confident now I have repro step to bend the acrylic like I want. Still have to cut a pice of wood for the 45° angle though.
I’ve also test some countersink for the screwholes with also good result:

Tomorrow will be the big day for bending and finishing this project!