Introduction: An Unconventional 3D Printed Retropie Arcade - Part 1 of 2
Ok, it isn't in my nature to do conventional things. For almost a year now, I was thinking of designing my own Retropie powered Arcade machine. After playing around with an initial prototype, I came up with a set of requirements that would make my design a bit more resourceful and flexible beyond a mere Arcade stick.
As this Arcade machine is a product of almost 4 months of work, this IBLE has been split into multiple parts to ease the whole process.
In Part 1 of this IBLE, I will describe the process of how I went about designing and building a portable, standalone LCD-Pi Case. When combined with the Arcade part, this standalone Raspberry Pi functions as the heart of the Arcade machine. Once playtime is over, the case, along with the Pi can be detached from the Arcade unit, rebooted from a different micro-SD card and used for a completely different purpose.
In Part 2 of this IBLE series, I will show you how I designed and printed out the Arcade Joystick part of this Unconventional Retropie Arcade.
Let's get cracking...
Step 1: My First Attempt and Problems
A year or so ago, I saw a YouTube video on how to put together a Retropie powered arcade machine.
As I had been gathering parts to build one even before I ran into the video, all I needed to do was to put something together really quickly.
With that, I came up with the first version using a Radio Shack project enclosure. But after playing with the finished Arcade unit for a few days made me realize that this model was not suited for my needs as it had a few problems:
The standard Radioshack enclosure is too tall - this means that I had to set my palms really high when operating the buttons making extended playtime tiresome. After playing for a while, my tired hands would slack off and the edges of the box would place annoying pressure on my palms.
The box is not too wide - and it was difficult to keep something this narrow on my lap for a very long time.
The Raspberry Pi used for this project was locked down - there was no way to use it for any other purpose unless there was a way to swap SD cards without opening the box each time, or install Berryboot with multiple operating systems such as Retropie and Raspbian Jessie on the same SD Card.
Finally, there was no integrated video display which means that I couldn't take it on a road trip unless my car had some kind of backseat display unit - and it was practically useless if the front seat passenger got an itch to jam on a few games on long trips.
Therefore, I decided to build my own cabinet that would meet at least some or all of the above requirements.
Step 2: The Design Approach
Given that this was by far my largest 3D printing undertaking, the largest chunk of time would be taken up to print the parts out on my 3D printers. As a result, I had to adopt an approach that would help me distribute the printing effort and at the same time iron out the bugs in my designs.
Therefore, I laid out the following design approach before the rubber hit the road.
Breakdown whole parts into smaller components
Design each of the modules as a composition of smaller parts and save the decision to merge them into a single large piece for later
This way, if one part of the larger whole came out bad, I would spend only 2.5 hours correcting and reprinting the bad component instead of the painful 15 hours to reprint a large part, not to mention the sheer waste of PLA filament!
Some of my initial design sketches illustrate the basic idea - the drawings focus on many small components instead of one large monolithic part.
Also shown are some of the smaller parts that I printed out on my Monoprice Mini (AKA the Mini), and later the Creality CR-10 (AKA the CR10) on how this approach translated to practical action.
Support 3D Printer Volume Capacity
Making parts smaller meant that some parts would be printable on the smallest of my 2 printers, the Monoprice Mini v1 - this way I could fire up both my printers and turn out more parts on my "Run printers when the boss isn't around days"!
Using Fasteners
I decided to use inexpensive wood screws from my parts bin to assemble the smaller parts to form larger ones - reason being I had theses screws in surplus and therefore decided to incorporate them in my designs
Filament Material
I haven't had the time to experiment with more modern material such as PETG or Wood filament that would take me away from putting my 3D printers to work. And for that reason, I decided to use Red, Black and White PLA as my materials of choice as it's more user-friendly to work with.
Design Software
I've been working with SketchUp for a while, but also dabbling in Design Spark Mechanical lately, but in the interest of getting the project done as quickly as possible, I had to fall back on the more familiar Sketchup 2017 to speed up the design process.
Step 3: What You Need
The parts list for this project are as follows:
- A Raspberry Pi 2B or later version
- A 5-Inch 800x480 TFT LCD Display with Touch Screen - this one from Amazon worked well for me
- I got one with a touch screen capability as this would make the Pi a little more than just a face on the Arcade machine
- A Wireless dongle to enable the Pi to connect to the internet
- Retropie does not require WiFi to work, but a web connection is handy when scraping game art
- A Wireless keyboard to manage the Pi
- Retropie will require additional configuration to work with the LCD display for which a keyboard is required
- A good quality Class 10 micro-SD card with at least 32GB capacity for the following reason(s):
- I've unplugged the Pi on the fly - a good quality SD card can withstand such shocks pretty well
- If installing multi-boot systems such as Berry Boot, a large SD card is preferable
- The games will take some space and a large card would be definitely helpful
- I've unplugged the Pi on the fly - a good quality SD card can withstand such shocks pretty well
- A Sanwa-style Arcade Joystick - ebay
- A Zero-delay USB encoder - ebay
- A set of Sanwa translucent 24mm arcade buttons - ebay
- Larger buttons will mean increased dimensions of the arcade machine - keeping buttons small keeps the design compact
- A set of #4 and #5 wood screws - most hardware store sell these as part of an assorted set
- A power wall adapter rated at least 2 amps to accommodate all the components of the arcade machine
- A 3D printer, PLA filament of your choice and a Micro-USB cable
- Lastly, a set of suitable screw drivers
Installing Retropie:
There are several articles on the web about installing Retropie to the SD card and this topic will not be elaborated on in this IBLE.
In this project, I have installed the Vanilla version on this operating system on a dedicated SD card as it aligns with my project goals.
Step 4: Designing the LCD-Pi Case
I had to make many number of measurements after mounting the LCD touchscreen on the Pi. Then I used these measurement and designed the Pi case using Google SketchUp to accommodate the entire Pi-LCD sub-assembly. Going by the design guidelines I had laid out for myself, the case was broken down to smaller units so that they could be redesigned individually if needed and the 3D printing effort could be distributed across multiple printers based on how large or small the each part is.
NOTE:
Verifying solidity of the parts before 3D printing
From the pictures you can see that the parts appear transparent and in different colors. This is my way to ensure that the part that I have designed is solid and has a valid volume.
In Google Sketch up, you can combine all sides of an individual part into a single group. When the part is clean, without any hidden lines or incomplete edges, Sketchup computes and displays a valid volume when the sides are grouped. If you don't see a volume, the part may appear solid, but may not be sliced correctly when printed.
If the part is opaque, then it's not always easy to see what's causing it to not have a solid volume. One way to get around this issue is to make every side of the part transparent before you finally group them into a single group. You can select the "Glass and Mirrors" materials from the materials bar and set the material of the part to different shades of transparent glass.
Making the part transparent allows you to see inside of it and delete all the hidden edges or detect incompletely drawn lines that do not meet to form complete corners.
Note that, setting the part material to Glass or Mirrors does not impact how the part is finally converted to GCODE for 3D printing.
Step 5: Prototype Parts and Initial Assembly
When I started out with the printing process, the larger parts like the LCD face trim was printed out on the Printrbot SimpleMetal. Unfortunately, this printer decided to hang up it's boots and not auto-home anymore despite applying all the known fixes to eliminate the problem. Therefore, I decided to bring in the Creality CR-10 that has a great reputation of printing small and large parts.
Because my Pi case was composed of multiple parts, I was able to print out the smaller ones on the Monoprice Mini and keep the project moving before the CR-10 got to my door 4 weeks later!
Most parts in Black were output by the Mini, and the White and Red parts (with exception to the poor quality LCD face trim from the Printrbot) were printed out in the CR-10.
The pictures show the mock up of the LCD face trim and the different sides of the Pi case. The Pi is flipped over because it represents the position when the LCD shield is mounted on to it.
Printing out the sides in White helped greatly in marking out the corrections in the design that I applied to subsequent prints that lead to the first functional LCD-Pi case.
I used #4 and #5 wood screws to assemble the case together. The #4 screws were accommodated by 1.0 mm holes and #5, with 1.3 mm holes built into the design.
Step 6: Merging Elements and Printing the Solid LCD-Pi Case
With all the design corrections applied during the prototyping stage, it was time to reduce the case down to just two parts - the White rear panel would stay as separate and detachable while the rest of the individual parts would be merged into a single box that forms the case.
As shown in the final rendering of the solid part, I decided to retain additional holes that were originally meant to hold each of the individual sides together during prototyping. These additional holes, both top and bottom could be adapted to mount the Pi on a steady mounting surface such as the topside or underside of a shelf or on a bracket that would extend out of the wall surface.
The rear panel in White offers the facility to switch SD cards to boot differently based on what the Pi might be used for. I put in the extra vents because the business end of the Pi would be largely obscured by the touchscreen once it was mounted which means the board would need some additional venting for better cooling.
Unlike the prototype, I decided to make the case in Red PLA because I had a couple of unused rolls of these lying around. The rear panel in White would provide a good contrast in the final assembly.
I had received the CR-10 by this time, and the LCD case was the first part to be assigned to this printer.
NOTE ON PRINT SETTINGS
Print Speeds:
My personal preference - larger the part, the slower the speed! Therefore, I stick with a standard print speed of 50 mm/second.
Why? The larger the part, the greater the risk of failure if the print is rushed through. Not only does this translate to waste of material, but most importantly a humongous waste of time. The print time for this LCD case was about 4.5 hours. Imagine this print started to look terrible after 1 hour just because I decided to jam the print out at twice the speed to bring the print time down from 4.5 to 2!
Raft Supports:
I use Raft on all my prints, especially because all my printers are open bed design and that means susceptibility to rapid cooling or warping. I've discarded several prints that were otherwise good because they peeled off of one corner destroying the look and/or functionality of the finished part.
In my opinion, discarding the Raft is is lot less cheaper than discarding a warped or peeled off print especially those that are large and take several hours to print!
Print Temperatures:
I print with the nozzle at 210-degree Centigrade and the bed at 65-degree Centigrade. Keeping the temperatures a bit on the higher side compensate for the open bed design and also help penetrate the large glass bed of the CR-10.
Layer Height, Shell Thickness and Fill Density
I print with the standard 0.4 mm nozzle. With experience, I find that a shell thickness of 1.2mm (3 x the nozzle diameter) and the top and bottom layer thickness of 1.2 mm work well. Fill Density set at 20% turns out a sturdy part with enough plastic for the wood screws to bite on.
The project would use these settings to print out rest of the parts.
Step 7: Assembling the LCD-Pi Case
The LCD-Pi case was assembled with the following parts coming together:
- Four #4 x 10 mm Wood screws and Phillips head screwdriver
- 3D printed LCD-Pi Combination case
- The 5" LCD Touchscreen Shield for the Raspberry Pi
- The compact HDMI adapter to connect the Pi to the LCD shield
- The Raspberry Pi 2
- The USB Bluetooth Adapter for the Wireless keyboard
- The Edimax USB WiFi dongle
- The 3D printed rear panel for the LCD-Pi case
- The Bluetooth Wireless keyboard
At this point, the Raspberry Pi is a self-contained portable unit that is autonomous with a Wireless keyboard and a touch-screen operated with my fingertips or the stylus that comes with the LCD touchscreen
NOTE
The SD card has already been flashed with the Retropi OS, and the LCD panel worked automatically with the current version of this OS!
However, this is not always the case. When I booted from the Raspbian Jessie, the screen did not work and I had to follow instructions published by an Amazon reviewer to get the LCD working.
These details have not been covered in this IBLE as they would differ based on the software and hardware versions used.
Step 8: Oops! What About the Stylus?!
In the frenzy of getting this project completed, I totally dropped the ball on the stylus!
Although the LCD touchscreen can be operated using my finger tips, leaving the stylus behind would project an incomplete view of the design and would leave a basic feature behind.
The drastic solution was to quickly design and print out an extension that would attach itself to the rear panel of the LCD-Pi case.
I constructed the stylus extension directly on the surface of the rear panel. This way it was easy to borrow some the dimensions like the position and diameter of the mounting holes to make the extension fit right on the case.
And while I was at it, I added a small depression to store a second micro-SD card held on purely by a light interference fit and friction.
So far, the extension seems to be performing as expected , while at the same time, staying out of the way of the ultimate goals of the final functionality.
This concludes Part 1 of this IBLE. In subsequent parts, I will cover the design and building of the rest of the Arcade machine.
Step 9: Printing and Assembly Considerations
The 3 STL files have been attached. Here below are some of the printing and assembly considerations based on my experience with this project. Detailed print settings have been listed elsewhere in the preceding steps.
Orienting 3D Prints:
The 3D prints will complete sooner or later based on how the print is oriented in the Slicer software - my choice is Cura 15.04.2 for both my machines.
To have a good finish, the rear panel was printed with it's outer face oriented up - this means that Raft support has to be enabled in order to successfully print this part.
Conversely, the Case was printed with it's LCD trim face down. As a result, there was not much of Raft support required to print this part and it definitely took less time to print.
Obviously, the Stylus extension has to be printed with the SD card recess oriented up.
Preparing the Holes prior to assembly:
One of the major issues facing FDM 3D printers are the dimensions of circular openings and mounting holes. Unless detailed tolerance tests are performed on your 3D printer, it's difficult to ascertain what the actual diameter of the actual printed holes will be.
This is one reason why I set the diameter of the holes to a smaller value and enlarge them if needed.
Therefore you will need to enlarge the holes after the parts are printed by running a suitable drill bit, or using a screw to gently cut the threads into the part before going for the final assembly.
Similarly, if you're mounting this Case on a steady support such as the top or bottom side of a shelf, you will need to drill the holes to accommodate suitable mounting hardware.
There are more elaborate and classy solutions such as installing threaded inserts into the printed part and using small machine screws instead of wood screws to assemble the parts together. But these solutions take time and can always be built into a later (and more refined) version of the part.
Staying the LCD-Pi assembly inside the Case:
From the assembly pictures, you can see that the LCD panel comes with 3 standoffs - the depth of the Case is based on the height of these standoffs. As a result, when the rear panel is screwed on to the Case, the LCD-Pi assembly is supported on the rear panel by these standoffs.
If your case does not come with standoffs, you may want to get a few of these or design and print your own support.
Step 10: Now on to Part 2
For more on this project, please read Part 2 of this IBLE series.
In Part 2 I will show you how I designed and printed out the Arcade Joystick portion of this Unconventional Retropie Arcade
Thanks for reading this IBLE and Happy Making!