Tiny PC (Nostalgia Edition)
by salimbenbouz in Circuits > Raspberry Pi
50387 Views, 308 Favorites, 0 Comments
Tiny PC (Nostalgia Edition)
Inspired by the retro machines I grew up with during the 90s and early 00s, I decided to design and build a working tiny miniature PC to bring a little of that nostalgia to my desk. In this guide, I'll walk you through the entire process of building one, sharing detailed steps and tips to help you recreate this project.
Supplies
Custom PCBs from PCB Way - (Get $5 New User Credit)
Bill of materials
- Add-on pcb → BOM
- Waveshare 4inch screen Amazon
- Raspberry Pi 4 Amazon
- Micro SD card Amazon
- 15W USB-C Power Supply Amazon
- Heatsink with PWM Controllable Fan Amazon
- Hook-up wire Amazon
- Dupont Connectors Amazon
- JST-PH Compatible Connector Amazon
- M2 Self-Tapping Screws Assortment Amazon
- Rubber Feet Amazon
- HDMI cable Adafruit - Aliexpress
- 1 × Micro HDMI Plug Right Angle (R Bend)
- 1 × Standard HDMI Plug Right Angle (R bend)
- 1 × HDMI FFC cable (20cm)
- Acrylic Primer Amazon
- Airbrush Paint
- GOLDEN High Flow Titan Buff Amazon
- GOLDEN High Flow Transparent Shading Gray Amazon
- GOLDEN High Flow Neutral Gray 5
- Acrylic White
- Airbrush Thiner
Tools
- Resin Printing System Heygears
- Soldering Station/Iron. Amazon
- Helping hands Amazon
- Precision Screwdriver Set Amazon
- Airbrush Amazon
- Wire stripper Amazon
- Sanding Sponges Amazon
- Crimping tools Amazon
- Heat shrink tubing Amazon
- Flux, Solder, Solder paste
- Sandpaper Assortment
- Flush cutters
- Tweezers, pliers
- Hot glue
Affiliate links may be included in this list. I may receive a small commission at no additional cost to you.
Watch the Build
Before you begin, watch the full build video to get an overview of the project. It will give you a visual understanding of each step and how all the pieces come together.
3D Printing
You can find the enclosure STLs in the project’s GitHub repo, or you can export other formats from the embedded Fusion design provided under this section.
I printed all the enclosure parts (at 50-micron resolution) on the Ultra-Craft Reflex from Heygears using the PAU10 Resin. However, any resin printer with decent dimensional accuracy will do. I tried to support the parts in a way that reduces post-processing and ensures minimal to no supports on the visible sides.
One thing to note is that the bottom base has a thin shell. I made the mistake of curing that part after removing the supports, which caused it to warp a bit. I was able to reform it back to its intended shape, and the two holes for the add-on PCB help pull back the front panel, restoring the intended shape.
Post-processing
After all the parts were printed, washed, and cured, I began the post-processing.
First, I used an X-Acto knife to remove any protrusions from the models. Then, I wet sanded the visible sides that had support marks and the printing stair effect until I achieved a smooth surface.
I took special care not to remove any of the details on the miniature. For the very tiny areas, I used 1000-grit foam strips to gently smooth them out as well.
I repeated this process until I was satisfied with all the parts. After that, I cleaned them with soap and water and let them air dry.
Painting
Before painting, the surfaces need to be prepped with a primer to ensure the paint adheres properly and has a uniform texture. I thinned Vallejo white primer to help with the airbrush flow and coated all the visible sides with 2 to 3 layers.
After the primer fully dried, I mixed a test color to replicate that off-white from devices of that time using GOLDEN High Flow Titan Buff, Neutral Gray 5, white, and thinner to balance it. Once I was happy with the test color, I mixed a larger batch and coated all the parts in 2 to 3 layers, making sure not to clog the recesses and tiny details.
Next, I moved on to detailing the front panel. I diluted a few drops of shading gray to create a black wash and applied it to all the recesses and small details to create a shading effect. I used cotton swabs to remove the excess in a few places and repeated this process until I achieved a good shading effect.
Electronics
On the add-on board, all the SMD parts are on one side. I used a hot plate to solder them and touched up the bridges later, though this can also be done by hand. The tiny MicroSD card adapter also had a small connector to solder.
After dealing with all the SMD parts, I soldered the through-hole components: the USB-C connector, the two headers to distribute power, and the 40-way GPIO header.
Finally, I cleaned the flux residue with isopropyl alcohol.
Screen and Audio
To power the screen, I soldered two wires (about 20 cm long) directly to the pogo pins and isolated them with heat shrink. The other ends of those wires are terminated with two Dupont female connectors that will later plug into the add-on PCB.
After dealing with the screen power, I soldered four wires to the two speakers and terminated them with a JST-PH compatible connector (R-, R+, L+, L-).
Testing
Now is a good time to test if there are any shorts in the add-on board using a multimeter, especially in the micro SD card extension, and to ensure everything works before assembling it all. Once confirmed, I plugged everything in and powered it on for the first time.
I logged into the Pi via SSH and used the Agnostics tool to perform read and write tests for the SD card using this command:
sh /usr/share/agnostics/sdtest.sh
Configuration
This miniature is running Twister OS, so you can grab a copy and install it using the imager software of your choice.
First, download the 4inch HDMI LCD (C) DTBO file from Waveshare and extract the three dtbo files. Copy these files to the overlays directory (/boot/overlays/).
Next, we need to add a few lines to the config file to configure the LEDs, power button, crop a few lines from the top and bottom of the screen, and set up the PWM cooler.
The power LED is driven by one of the UART pins, so enabling it will turn it on at boot and off during shutdown. For the activity LED, we use the existing overlay to drive it on pin 27. The power button is hooked to pin 3 using the existing gpio-shutdown overlay, allowing us to turn the Pi on and off. For the screen, it's important to use the Waveshare overlays and add the HDMI timing modification line and the overscan settings to remove lines from the top and bottom of the screen.
Lastly, the PWM fan is hooked to pin 22 and will turn off at around 60 degrees.
With everything properly configured, we can now explore the different themes and the emulation software that comes with Twister OS to customize the look of the system.
overscan_top=48
overscan_bottom=48
enable_uart=1
dtoverlay=gpio-shutdown,gpio_pin=3
dtoverlay=act-led,gpio=27
dtoverlay=waveshare-4dpic-3b
dtoverlay=waveshare-4dpic-4b
dtoverlay=waveshare-4dpic-5b
hdmi_force_hotplug=1
config_hdmi_boost=10
hdmi_group=2
hdmi_mode=87
hdmi_timings=720 0 100 20 100 624 0 20 8 20 0 0 0 60 0 48000000 6
start_x=0
dtoverlay=gpio-fan,gpiopin=22,temp=60000
Assembly _Screen
First, snap the base into the screen bracket before attaching it to the display using the 4 x M2.5 screws that comes in the package. Note that the opening for the power cables is a bit tight; you might need to remove the Dupont cable shrouds to thread them through. This is also the time to plug in the 90-degree HDMI connector and flat cable to the screen.
Next, fix the entire bracket and screen to the bezel using 2 self-tapping M2 screws.
Before closing the screen, secure the speakers with a couple of dabs of hot glue on the other side and plug the connector into the screen. Then, close everything using 4 x M2 self-tapping screws.
Once that’s done, place the screen on the top desktop cover and align it using the key feature on that part, securing it with 3 x M2 screws. Note that the hole for the cables may not be large enough to pass the micro HDMI connector through. You will need to disconnect and thread the flat cable through before reconnecting the micro HDMI connector later on.
Assembly _Desktop
Now, let's move on to the other side of the assembly. Start by plugging the small SD card adapter PCB connected to the FFC cable into the Pi. Then, place the cooler on top of it and secure it in the bottom desktop case using 4 x M2 self-tapping screws.
Next, position the power button in the bottom case and the light pipes on the add-on PCB. Plug it into the Raspberry Pi GPIO header. You might need to flex the front and back panels slightly to make room for everything to fit.
Once the light pipes are adjusted and the USB-C is placed in the designated opening, secure the add-on board using 2 x M2 self-tapping screws, pulling back on the front panel to keep it as square as possible.
After that, connect the FFC cable to the SD card extension and plug the 3 wires from the heatsink cooler to the add-on board as shown in the image.
Finally, connect the screen HDMI and power from the other assembly and close everything using 4 x M2 screws.
Once everything is closed, add 4 rubber feet and plug the micro SD card into place, covering it with the tiny CD drive part at the end.
Finishing Touches
As a finishing touch, I made some water slide decals to add to the front panel, and with that, it's complete!
Done
Thank you for sticking around until the end!
This was a lot of fun to make and I enjoyed the process.I'd love to hear your suggestions in the comments below.
I have other ideas and I plan on making more projects like these Follow me for more.