Greetings everyone, and welcome back.
This is my Potato PC project, a Raspberry Pi 5-powered computer built from Scratch.
For this project, I designed a custom enclosure that looks exactly like a giant potato, but this isn’t just a random idea. The potato-shaped enclosure has a deeper meaning.
Let me explain.
A “Potato PC” is an internet slang term for an extremely low-powered computer, one so underpowered that it is jokingly compared to a potato.
Traditionally, people use this term for old or budget computers that can barely run modern software.
My project takes that meme and turns it into reality by building an actual “Potato PC”: a fully functional computer housed inside a giant potato-shaped case and powered by a Raspberry Pi 5.
To make the system significantly more capable, I paired the Raspberry Pi 5 with a desktop-class AMD Radeon RX 6500 XT using the Raspberry Pi’s PCIe interface.
With this desktop-level GPU, the Pi is now able to function much more like a standard PC. While some applications do not run natively because the Pi uses an ARM-based SoC, I was still able to run a wide range of software, including games through Steam and many other applications.
This article covers the complete build process, from designing and constructing the Potato PC enclosure to setting up the Raspberry Pi with the GPU and assembling the final system.
So, let’s get started with the build.
MATERIALS REQUIREDThese were the Materials used in this project
- Raspberry Pi 5 4GB Version (16GB is recommended)
- AMD Radeon RX6500XT
- Waveshare PCIE TO 4-CH NVME Board
- 3D Printed Parts
- Deepcool 550W ATX PSU
- PSU Breakout Board
- M3 Screws
- M2.5 Bolts
- NVME Gen3x4 500gb
- Monitor with HDMI Input
The brain of this project is the Raspberry Pi 5. I’m using the 4GB variant, but a 16GB version is recommended for this project, as I discovered that most applications run, but they often crash because of low memory issues. The Pi 5 is paired with the official Raspberry Pi 5 heatsink and fan, which keeps the SoC cool.
Raspberry Pi 5 features the Broadcom BCM2712 quad-core Arm Cortex A76 processor clocked at 2.4GHz, it also has an onboard VideoCore VII GPU, which supports OpenGL ES 3.1 and Vulkan 1.3.
My goal for using the Pi was simple: I was making a Potato PC, and the Pi fits that category perfectly. The Pi itself is a great tool for developers and makers, but when used as a daily driver, it can sometimes feel like a potato PC. So my goal was to make the Pi perform better for tasks where I would normally use a regular PC instead of a Pi.
HARDWARE- WAVESHARE 4 CH NVME BREAKOUT BOARDOur Raspberry Pi 5 does not include a built-in NVMe slot, but it does feature a PCIe connector. This was a revolutionary addition when Raspberry Pi introduced it, as it greatly expanded the board’s storage and expansion capabilities.
Raspberry Pi also released an official HAT that provides an M.2 NVMe slot and connects to the board using the FPC PCIe connector.
Following this, many other companies began developing expansion boards for the Raspberry Pi 5. One particularly useful option comes from Waveshare, which offers an expansion board that includes four M.2 slots.
This board connects directly to the Pi’s PCIe port and supports up to four M.2 NVMe SSDs in 2230, 2242, 2260, and 2280 sizes, all running in PCIe Gen2 ×1 mode.
One of the biggest advantages of this board is that it also supports NVMe booting, allowing the Pi 5 to start its operating system directly from an NVMe SSD instead of a microSD card, giving a huge boost in speed and reliability. We will also paring a PCIEx16 to M.2 Adaptor with this setup in order to connect our GPU with this board.
The board includes helpful onboard LEDs that show power status and drive activity, and it can even supply power back to the Raspberry Pi 5 itself, reducing cable clutter.
With these features combined, multi-drive support, NVMe boot capability, broad SSD size compatibility, and clean power handling, the Waveshare 4-Channel NVMe adapter becomes the perfect backbone for building our Potato PC.
Check out its wiki page for more in-depth info from the link below.
https://www.waveshare.com/pcie-to-4-ch-nvme-board-b.htm?&aff_id=Arnov
ADT-LINK PCIEx16 TO M.2 ADAPTORThis is a truly unique and arguably one of the most important components in this project.
It is an M.2 M-Key to PCIe 3.0 x16 graphics card extension adapter. The adapter operates at PCIe 3.0 x4 speeds and is compatible with most single-board computers.
It also includes a CON4-to-SATA power cable harness, which is used to supply power to the installed Graphics Processing Unit through a SATA power connector from a standard PC power supply.
I purchased this adapter from DFRobot. You can also check the product wiki on their website if you would like more technical details about the adapter.
https://wiki.dfrobot.com/fit0973/
HARDWARE- RX6500XT GRAPHIC CARDThe next major hardware component used in this project is a full desktop-sized graphics card: the Sapphire Pulse Radeon RX 6500 XT. We were able to purchase this GPU thanks to the funding provided by Hackster.io specifically for this project.
The card is based on AMD’s RDNA 2 architecture and comes equipped with 4 GB of GDDR6 VRAM, which is more than sufficient for gaming, hardware acceleration, and GPU-intensive applications on this setup.
Initially, I tried using graphics cards that I already had available, including the NVIDIA GeForce GT 1030 and NVIDIA GeForce GTX 1060. However, due to NVIDIA’s more closed driver ecosystem, these older GPUs did not work reliably with Raspberry Pi OS on ARM. While some newer NVIDIA cards have been reported to work under certain Linux configurations, the specific models I tested were not supported in my setup.
As a result, I switched to an AMD GPU. AMD provides excellent open-source Linux drivers through the Mesa graphics stack, which made the Raspberry Pi 5 and the RX 6500 XT work together with minimal driver-related issues. This open driver support was one of the key factors that made the entire Potato PC project possible.
HARDWARE - NVME GEN3 SSDFor the system drive, we selected a Crucial P3 NVMe SSD, which is used as the primary boot and operating system drive. Using an NVMe SSD significantly improves the overall responsiveness of the Potato PC, resulting in faster boot times, quicker application launches, and much better file transfer performance.
In terms of raw speed, the difference is substantial:
- A typical microSD card used with the Raspberry Pi 5 delivers around 40–90 MB/s.
- eMMC storage typically offers speeds in the range of 150–300 MB/s.
- The Crucial P3 NVMe SSD can reach sequential read speeds of up to 3, 500 MB/s on a desktop system.
Even though the Raspberry Pi 5 cannot utilize the full bandwidth of the drive due to its PCIe limitations, NVMe performance on the Pi is still dramatically faster than both SD cards and eMMC. In practical terms, the NVMe drive can be 5 to 20 times faster than a microSD card and several times faster than typical eMMC storage.
This is why the system boots in around five seconds and feels much more responsive during everyday use. For a project like our potato pc, using NVMe storage is by far the best choice compared to relying on a microSD card or onboard eMMC.
HARDWARE- PSUFor the power source, we used a proper desktop power supply: the DeepCool 550W ATX Power Supply.
A standard PC PSU was the ideal choice for this project because several components require stable power from different voltage rails. The Raspberry Pi 5 and its NVMe expansion board require a stable 12V input, the Sapphire Pulse Radeon RX 6500 XT needs a dedicated 6-pin PCIe power connector, and the M.2-to-PCIe graphics card adapter also requires a SATA power connection.
To power the PCIe-to-NVMe board and the Raspberry Pi 5 setup, we used an ATX power supply breakout board. This breakout board plugs directly into the PSU’s 24-pin ATX connector and exposes regulated 3.3V, 5V, and 12V outputs. For this project, we use the 12V output to supply power to the PCIe-to-NVMe board and the Raspberry Pi 5 setup.
Using a full ATX power supply ensures that the system receives clean and reliable power, while also providing enough headroom for the GPU and any future upgrades.
RASPBERRY PI 5 & WAVESHARE 4CH BOARD ASSY- We begin the assembly by connecting the PCIe FFC cable to the PCIe connector on the Raspberry Pi 5. It is important to ensure that the cable is fully seated in the connector, as a loose connection can prevent the setup from working even if the software configuration is correct.
- The other end of the FFC cable is then connected to the PCIe connector on the Waveshare four-channel NVMe expansion board.
- Next, we mount the Raspberry Pi onto the Waveshare board. We align the mounting holes on both boards and use four M2.5 screws to secure them together.
- The CON3 power connector included with the Waveshare board is then connected to the board. The two red wires are connected to the 5V GPIO pins on the Raspberry Pi, while the black wire is connected to one of the ground (GND) pins.
- Finally, we install four M2.5 PCB standoffs into the mounting holes on the Waveshare board. In this build, we use 20 mm standoffs to provide the necessary clearance for the rest of the assembly.
- After flipping the Raspberry Pi 5 and Waveshare expansion board assembly over, we connected the ADT-Link M.2 NVMe-to-PCIe x16 adapter to the first M.2 slot on the Waveshare board.
- In the second M.2 slot, we installed our Crucial P3 NVMe SSD, which serves as the system drive.
- The PCB standoffs that we installed earlier now act as support legs for the entire assembly, keeping the Raspberry Pi and Waveshare board elevated above the surface and preventing the components on the underside from touching the ground.
Out of the box, the Raspberry Pi 5 does not provide plug-and-play support for AMD graphics cards. To make the Sapphire Pulse Radeon RX 6500 XT work, I installed the required AMD firmware packages and used rpi-update to flash a custom kernel build that includes the necessary patches and driver support for external GPUs.
Before making any system-level changes, the first step was to ensure that the operating system was fully up to date.
sudo apt update
sudo apt upgrade -yNext, we installed the AMD firmware packages and then rebooted the system after the installation.
sudo apt install -y firmware-amd-graphics
sudo rebootAfter rebooting, we log back in and install the updated kernel version, which includes the AMD kernel module.
sudo rpi-update pulls/7113This will update the Linux kernel to the one built off the PR branch. It enables AMD GPU support on both the BCM2711 used in the Pi 4 generation and the BCM2712 for the Pi 5.
Before rebooting, we edited the config file /boot/firmware/config.txt file and added the following at the bottom.
dtparam=pciex1_gen=3 # for faster PCIe Gen 3 speeds on Pi 5
auto_initramfs=0 # to avoid 'weird boot mechanisms or file systems'Doing this allowed the Raspberry Pi 5 to work with our AMD Sapphire Pulse Radeon RX 6500 XT. We simply removed the HDMI cable from the Raspberry Pi’s onboard HDMI port and connected the monitor directly to the GPU, after which the setup started working.
To verify that everything was functioning correctly, we installed Minecraft: Java Edition and ran it with BSL Shaders. The performance was incredibly smooth and did not feel like we were playing on a Raspberry Pi.
Minecraft can run on the Pi without a dedicated GPU, but shader packs are generally too demanding for the onboard graphics. With our external GPU setup, however, the game ran smoothly even with BSL Shaders enabled.
POTATO PC 3D MODELFor the 3D design of our Potato PC, we began by importing the CAD models of all the electronic components used in the build. This included the Raspberry Pi 5 and NVMe expansion board assembly, the Sapphire Pulse Radeon RX 6500 XT, the PCIe adapter, and the power supply.
We first arranged all of these models in their desired positions and then designed a minimal frame to hold the Raspberry Pi and NVMe board assembly, along with the graphics card and PCIe adapter.
This frame assembly served as the central structural component of the design. We positioned it above the power supply and created a base that securely holds the PSU while also supporting the frame assembly.
Finally, we modeled a potato-shaped enclosure around the base using the surface modeling tools in Autodesk Fusion. Our goal was to create an asymmetrical outer shell that closely resembles a real potato.
POTATO ENCLOSUREThe enclosure itself was quite easy to model, but there was one major challenge: its overall dimensions are 350 mm × 257 mm × 340 mm.
The 3D printer I'm using has a build volume of only 255 mm × 255 mm × 255 mm, which meant the enclosure was too large to print as a single piece.
To solve this, we divided the enclosure into multiple parts, printed each part separately, and then assembled them to create a single enclosure body.
JOINTSTo join the enclosure parts together, we added several rectangular slots along the dividing lines between adjacent parts. A rectangular joint fits into these slots and connects the two pieces together.
This joining method was inspired by woodworking, where two parts are connected by cutting matching slots and inserting a third piece between them.
To secure each joint to the two enclosure halves, the joint includes two screw holes. We use M3 screws to fasten all three parts together.
All of the enclosure parts are connected using this same joint design.
FRAME ASSEMBLYI modeled a custom frame that holds the Raspberry Pi 5, GPU, Waveshare expansion board, PCIe adapter, all together as a single assembly.
This frame serves as the primary structural component of the project. It keeps the Raspberry Pi and GPU securely mounted together, making it essential for both the initial testing phase and the final assembly of the Potato PC.
BASEThe base is designed so that the potato enclosure can slide over it and fit securely into place.
To accommodate the build volume of our 3D printer, the base was divided into two separate parts. Both parts were printed individually and then joined together to create a single base unit.
The frame assembly is mounted onto the base, and the entire structure is enclosed by the potato-shaped shell.
To lock everything in place, screw holes are added to the bottom side of the base. M2 screws are inserted from the bottom to secure both the enclosure and the base together, forming a single rigid assembly.
3D PARTS- POTATO ENCLOSUREFor the Potato PC enclosure, I printed a total of 12 parts. The model is divided into three sections: the top section contains four parts, the middle section contains four parts, and the bottom section also contains four parts.
My goal was to assemble these parts like LEGO pieces to create a single PC enclosure. Since my 3D printer has a build volume of 255 × 255 × 255 mm, which is smaller than the overall size of the enclosure, I had to divide the model into multiple parts before printing.
For each part, I used Creality Hyper PLA with a 0.28 mm layer height. For infill, I used 10% gyroid infill for extra strength. Each part took roughly 4 to 5 hours to print.
Some parts were printed in colors other than white for two reasons. First, I ran out of white filament—this project used around seven rolls of PLA. Second, I planned to do a full surface-finishing process on the enclosure, so the original filament color didn’t matter whether the parts were printed in red, blue, black, or any other color.
3D PARTS- JOINTSThere are a total of 12 joints used in the enclosure. These joints were used only to connect the middle and bottom enclosure parts.
For printing the joints, I followed the same approach as before. Most of them were printed using white PLA, and for the remaining joints, I used whatever filament I had left.
The print settings for the joints were kept the same: a 0.28 mm layer height and 10% gyroid infill for added strength.
BASE, Pi FRAME & REST PARTSWe printed the frame, base, and PSU holder using white PLA with the same settings as the previous prints: a 0.28 mm layer height and 10% gyroid infill.
We also printed three I/O parts using black PLA.
Pi FRAME ASSEMBLY- The Pi frame assembly begins by placing the Raspberry Pi 5 and Waveshare board setup onto its mounting position on the frame. We align the PCB standoff holes with the mounting holes on the frame, then use four M2.5 bolts to secure the assembly in place.
- Next, we position the PCIe x16 to M.2 adapter in its designated location. We align it with the mounting holes and use two M2 screws to fasten it securely.
- Finally, we place the GPU into position, insert it into the PCIe x16 slot, and secure it in place, completing the setup.
Before we moved ahead with the assembly, we tested our Pi GPU setup.
We connected the ATX connector from the power supply to the breakout board. The 12V output from the breakout board was then used to power the Raspberry Pi 5 through the barrel DC jack available on the Waveshare board.
Next, we connected the 6-pin PCIe power connector from the power supply to the Graphics Processing Unit. We also connected a SATA power connector to the power harness of the M.2 to PCIe adapter.
After turning on the power supply, the entire setup powered up, and the operating system booted within five seconds, which was incredibly fast thanks to our NVMe boot drive.
For this dry run, we opened YouTube and played a video at 1080p resolution. Everything worked flawlessly. Watching YouTube on this setup felt just like using a regular PC rather than a Raspberry Pi.
BENCHMARKSJust to establish a baseline, we ran GravityMark on this setup. We installed GravityMark and ran the GPU benchmark.
In the Vulkan test, we achieved a score of 14, 000. We then ran the benchmark again using OpenGL, which yielded a score of 12, 000.
These results are particularly impressive considering that the system is powered by an AMD Radeon RX 6500 XT connected to a Raspberry Pi 5 over a PCIe adapter. The RX 6500 XT is substantially more powerful than the Pi’s onboard Broadcom VideoCore VII GPU, and the Raspberry Pi’s PCIe interface offers limited bandwidth compared to a full desktop platform. This means the GPU cannot operate at its full potential, and some bottlenecks are expected, especially in data-intensive workloads.
Even with these limitations, the benchmark results demonstrate that the external GPU setup is functioning correctly and delivering performance far beyond what the Raspberry Pi could achieve on its own.
RUNNING GAMESNext, I verified that games were running on this setup, and to my surprise, they were, and they ran exceptionally well.
I tested several games, starting with Minecraft: Java Edition, which ran flawlessly even with BSL Shaders enabled. I then played MiSide, which also performed very well, as expected, since it is not a particularly graphics-intensive title.
After confirming that games were running properly and that the entire setup was functioning as intended, we moved on to the next phase of the project.
POTATO PC BASE ASSEMBLY- The Potato PC base assembly begins by joining the two base parts together.
- We use three sets of M2.5 nuts and bolts to align and securely fasten both parts.
- To make the assembly permanent and add extra strength, we apply super glue along the seam between the two parts. This permanently bonds them together and helps keep the structure rigid.
We now begin the Potato PC enclosure assembly process by preparing the top section of the enclosure.
- We use super glue to bond all four parts together. First, Parts 1 and 2 are joined together. Next, Parts 3 and 4 are joined together.
- Finally, both subassemblies are connected to form the complete top section.
- Once all the parts are aligned, we use four M2.5 nuts and bolts to fasten them together securely.
We next begin assembling the middle section of the enclosure.
- We start by applying super glue to Part 1 of the middle section, and then attach Part 2 to it. M2 screws are used to secure both parts together.
- Next, Parts 3 and 4 are joined together using super glue.
- From the top side, Joint 7 is inserted into its designated slot. We also apply super glue around the joint to further strengthen the connection. M3 screws are then used to secure Parts 3 and 4 with Joint 7.
- After that, we apply super glue to both the Part 1–2 assembly and the Part 3–4 assembly to join them together.
- Finally, Joint 5 is inserted between the two assemblies and secured in place using M3 screws.
The bottom section of the Potato PC enclosure is assembled next.
- We begin by applying super glue to Part 1 of the bottom section and attaching Part 2 to it. Three M2 screws are then used to secure both parts together.
- Next, Parts 3 and 4 are joined together using super glue. Joint 10 is inserted between these two parts and secured in place with M3 screws.
- To connect both subassemblies, we align them carefully and apply a small amount of super glue along the seam. Joint 11 and Joint 12 are then inserted between the two assemblies and secured with M3 screws.
- Finally, Joint 1 and Joint 3 are installed on the left and right sides of the enclosure, respectively, and fastened with M3 screws to complete the bottom section assembly.
The three sections of the Potato PC enclosure are then joined together.
We begin by placing the top section onto the middle section. The top section is secured to the middle section using the M3 screws installed around the upper perimeter, which firmly fasten both sections together.
Next, the middle section is placed onto the bottom section. The two sections are connected using Joints 2, 4, 6, 8, and 9. Each joint is inserted into its designated position and secured to the enclosure using two M3 screws.
The result is a massive potato-shaped enclosure that closely resembles a giant potato.
ENCLOSURE FILLER PROCESSHere’s my favorite part of this project: the surface finishing process.
The Potato PC enclosure is made up of several separate pieces joined together to create a single enclosure. The structure is strong and sturdy, but it still looks like it was assembled from multiple parts. Since a potato is a single solid object, we need to perform a surface finishing process so the enclosure appears to be one seamless potato-shaped body.
For the filler material, we are using a 3M two-part automotive body filler, which consists of a filler and a hardener.
By adding 2% hardener and mixing it thoroughly with the filler, we create a compound that can be used to fill gaps, layer lines, and other imperfections on the printed enclosure.
Using a paint scraper, we take a small amount of the filler compound and apply it across the front surface of the enclosure.
We begin by filling the gaps between the joined parts, then move on to areas where layer lines are visible. The goal is to spread the filler across the 3D-printed surface so it settles into the layer lines, gaps, screw holes, and joints.
SANDING PROCESSFor the sanding process, we primarily used two grits of sandpaper: 100 grit for coarse sanding and 150 grit for a medium finish.
To use the sandpaper more effectively, we used a sandpaper holder, which is a very useful tool for sanding. I cut the sandpaper into strips, attach them to the holder, and use it for sanding. This method is more effective and works better than using sandpaper by hand alone.
We started by sanding the entire potato enclosure, followed by sanding the gaps between the parts that had been filled with body filler.
The goal here is not to sand down the plastic itself, but rather the added filler. This removes the excess filler while keeping the plastic body intact.
Doing this eliminates the visible gaps between the parts and creates a smoother, more even surface.
SPRAY PRIMER PROCESSNow comes the priming process.
For painting, primer is a mandatory base coat because it helps the paint adhere better to the surface, improves durability, and highlights any remaining imperfections that need fixing.
Here, I used a spray primer, which works just like spray paint but is specifically designed as a base layer.
- I started by applying light, even coats across the entire body, gradually covering the full surface.
- After the first coat, I let the primer dry for a couple of hours, then applied a second coat and allowed it to dry again.
- I performed light sanding across the entire body using 150-grit sandpaper to make the surface smooth.
The goal was to remove the primer until we reached a perfectly smooth surface that was ready for the painting process.
PAINT PROCESSThe painting process begins by applying a light coat of white spray paint over the entire enclosure. We let the first coat dry for about an hour, then apply a second coat and allow it to dry for another hour.
Next, we lightly sand the entire potato enclosure. This sanding step removes the gloss from the paint and creates a slightly rough surface, which helps the next layer of paint adhere more effectively.
Using brown, black, and white acrylic paints, we mix a custom brown color that closely resembles the natural color of a potato. We then add a small amount of water to thin the mixture.
Using a sponge, we absorb some of the paint and dab it across the entire enclosure. Because the surface is slightly rough from sanding, the sponge applies the paint unevenly, creating a natural, irregular texture. This uneven finish closely mimics the bumps, spots, and subtle variations found on the surface of a real potato.
P.S. The painting could definitely be improved, and my artistic skills still need some work. In Version 2, I may seek help from someone with more experience or try a different approach to achieve a more realistic potato texture.
BASE ASSEMBLYWe now begin the base assembly process by placing the ATX Power Supply into its designated position inside the base.
Next, the PSU holder is placed over the power supply. We align the mounting holes on the holder with those on the base, and then use two M3 screws to secure the holder in place.
This PSU holder locks the power supply firmly in position and prevents it from moving inside the enclosure.
WIRING PROCESSWe plug the 24-pin ATX power connector into the ATX breakout board and connect the 12V output of the breakout board to the 12V input of the Waveshare expansion board.
The Waveshare board accepts a 12V input and also powers the Raspberry Pi 5, so to power both boards, we simply solder two wires to the VCC and GND terminals of a DC barrel jack and connect those wires to the 12V and GND outputs of the ATX breakout board.
Next, we connect the PCIe power cable from the power supply to the GPU.
We then connect a SATA power connector from the PSU to the power harness of the M.2-to-PCIe adapter, completing the wiring process.
To verify that everything is connected correctly, we plug the AC power cord into the power supply and turn the system on. Once powered, the Raspberry Pi status LED lights up, and the GPU fans begin to spin, confirming that the entire setup is receiving power properly
FRAME & BASE ASSEMBLY- The frame assembly is positioned over our ATX Power Supply, aligned with the mounting holes, and secured in place using two M3 screws.
- We then tuck the excess wires into the empty space beside the power supply inside the base. We tried to keep the wiring as tidy as possible, and the ATX breakout board was also placed neatly inside the base.
With that, the base assembly is complete.
IO SHIELDS ASSEMBLY WITH POTATO ENCLOSUREWe then install the three I/O shields we printed for the Raspberry Pi 5 ports, the GPU ports, and the power supply.
Each I/O shield is positioned in its designated opening on the back of the Potato PC enclosure and secured permanently to the enclosure using M2 screws.
FINAL ASSEMBLY PROCESSThe complete Potato PC enclosure is then slid over the base and into position. We carefully align the enclosure with the base and press it downward until it fits securely in place.
Next, we tilt the entire assembly and, from the underside, install eight M2 screws to fasten the base to the potato enclosure, securely joining both parts together.
To lift the Potato PC slightly off the ground and provide a stable footing, we attach foam pads to the bottom using hot glue.
With that, the assembly process of our Potato PC is complete.
RESULTHere is the final result of this tedious but incredibly fun build: an oversized potato that is actually a fully functional PC. When you think about it, this is essentially a sleeper PC disguised as a potato.
Jokes aside, this is my Potato PC, a completely working computer built around a Raspberry Pi 5 and paired with a full desktop-class AMD Radeon RX 6500 XT. Using a series of adapters, I was able to connect the GPU to the Raspberry Pi through its PCIe interface.
Using the system is just like using any other desktop computer. I connect my monitor directly to the graphics card, plug the AC power cord into the power supply, and connect it to a wall outlet.
Once powered on, the system boots in about five seconds, which is remarkably fast thanks to the NVMe storage drive.
RUNNING CAD SOFTWARESThe next test for our Potato PC was running productivity software. As an R&D engineer, the primary software I use professionally is SOLIDWORKS, and for personal projects, I typically use Autodesk Fusion. Unfortunately, neither of these applications is natively available for Linux on ARM, so I installed the next best alternative: FreeCAD.
FreeCAD is a powerful open-source CAD package developed by the community. I had experimented with it in the past, but never fully transitioned to it. For this test, I loaded one of my larger design files of the Motorola DynaTAC project, which is approximately 69 MB in size. The file opened within a few seconds, and navigating the model was smooth and responsive. At no point did it feel like I was working on a Raspberry Pi-based system.
Next, I installed KiCad and opened the reference design files for the Raspberry Pi Compute Module 5, which I downloaded from Raspberry Pi’s official documentation. KiCad also performed exceptionally well, with no noticeable lag or rendering issues.
I even tested Gimp on this setup, and of course, it worked perfectly.
These tests demonstrate that the Potato PC is more than just a joke build.
RUNNING GAMESWe installed several games on the system, ranging from classic titles like Half-Life 2 to modern AAA games such as Nier:Automata, The Witcher 3: Wild Hunt, and Cyberpunk 2077.
HALF LIFE 2We started with Half-Life 2, which ran flawlessly. The game was fully playable and consistently delivered frame rates above 60 FPS. This was not particularly surprising, given that the game was originally released in 2004.
However, what was interesting is that I had previously tested the same game on another Raspberry Pi-based system, my Pi 500 Plus, where it exhibited noticeable lag.
NieR:AutomataNext, we ran NieR:Automata on our setup, and it delivered a consistent frame rate of over 30 FPS. I lowered the graphics settings to medium to achieve smoother performance, and the game ran quite well overall.
Witcher 3: Wild HuntWe then tested The Witcher 3: Wild Hunt (the next-generation update). Running at medium settings, the game delivered frame rates in the 30 to 40 FPS range, which made it very playable.
CYBERPUNKWe then installed Cyberpunk 2077 through Steam and used the preset settings optimized for the Steam Deck. The game ran surprisingly well, maintaining a respectable 25 to 30 FPS. Considering that Cyberpunk 2077 is running on a Raspberry Pi with a low-power ARM-based processor, this level of performance is remarkable.
CONCLUSIONOur Potato PC performs surprisingly well at everything we throw at it, far better than what you would normally expect from a Potato PC. These results are especially impressive when you consider that the AMD Radeon RX 6500 XT is not operating over a full PCIe x16 connection. Instead, it is running through the Raspberry Pi’s limited PCIe interface at PCIe 2.0 speeds, which introduces a significant bandwidth bottleneck. Even with this limitation, the fact that these modern games run at all on a Raspberry Pi-based system is an extraordinary achievement.
That said, I did encounter several issues during the testing phase of this project.
The first major issue was the Raspberry Pi 5 itself, or more specifically, the 4GB version I used for this build. While the system works well overall, the limited memory proved to be a significant bottleneck. Many applications launched and ran successfully, but would often crash after a few minutes due to insufficient RAM. The games I recorded for this project worked only for a short time before the system became unstable. Other software, such as CAD applications, ran more reliably, but memory usage remained a constant concern. For Version 2, I plan to upgrade to the 16GB Raspberry Pi 5, which should greatly improve system stability and multitasking performance.
The second issue was cooling. Airflow inside the enclosure is extremely limited. Because I wanted the case to look like a realistic potato, I chose not to include ventilation holes. At the time, I assumed the Pi would not generate significant heat, but after running the system for about an hour, the enclosure became noticeably warm to the touch, and internal temperatures increased substantially.
For Version 2, I plan to take inspiration from my previous LattePanda fan mod project and integrate more powerful cooling fans to improve airflow and thermal performance.
The third area for improvement is the enclosure’s paint finish. From my perspective, the case does resemble a potato, but when I showed it to several friends, they all agreed that it did not look as convincing as I had hoped. Clearly, my painting technique needs refinement. For the next version, I may print a new enclosure and repaint it with improved textures and color blending to create a more realistic potato appearance.
All the problems I encountered during the testing phase of this project will be addressed in Version 2, so stay tuned for future updates.
Special thanks to Hackster.io for making this project possible in the first place, and a huge thank you to everyone who made it this far through the article.
Peace out.






_t9PF3orMPd.png?auto=compress%2Cformat&w=40&h=40&fit=fillmax&bg=fff&dpr=2)






Comments