Ultimate Raspberry Pi 5 Desktop Server with UPS, NVMe Drive & Stats Display

Today I’m taking my Raspberry Pi 5 to the next level by building the ultimate desktop server. This build will feature an NVMe drive for fast storage, a UPS to keep it running during power cuts, and a real-time OLED display to show system stats. I’ll also be designing a custom 3D-printed case for it, complete with active cooling for overclocking.

Here’s my video of the build, read on for the write-up;

Components Used To Build The Ultimate Pi 5 Server

Tool & Equipment Used:

Ultimate Pi 5 Server Hardware

Let’s start out by taking a look at the hardware that I’m going to use.

The Pi 5 is the brain of the project. I’m using the 8GB variant, so it’s got 8GB of LPDDR4x RAM and a BCM2712 SOC that has 4 arm cores running at up to 2.4GHz.

Raspberry Pi 5

For storage, I’m going to add a 512GB NVMe SSD which will be connected to the Pi’s PCIe port using an NVMe hat. I wanted to keep the design as generic as possible to accommodate a range of NVMe hats, so it will accommodate most NVMe hats that have a similar footprint to the Pi and don’t need the GPIO pins for power. All NVMe bases will need a 50mm PCIe extension, or longer to get up over the UPS.

The reason they can’t use the GPIO pins is that between the Pi and NVMe hat, I’m going to install a UPS hat. I’m using the SupTronics X1200 UPS that is powered by a USB C power supply like the Pi. It then passes power through to the Pi using a range of pogo pins that make contact with the test points and GPIO pins underneath it. It stores power in two 18650 cells which can be used to power the Pi for up to 2 hours in the event of a power outage.

Because this hat has so many contact points, it has to be installed underneath the Pi, which means that the NVMe hat needs to be installed either on top of the Pi or below the UPS.

Pogo Pins Pi 5 UPS

I’m going to go with below the UPS so that I can still use an Ice Tower cooler on the CPU for cooling. This will provide a lot of additional cooling headroom for overclocking.

Ice Tower Cooler For Pi 5

So that’s my Pi mini server stack, now I need to get the case designed for it.

Pi Stack For Ultimate Server Case

Designing The Pi 5 Desktop Server Enclosure

Like my previous projects, I modelled this case in Fusion 360. I refined my previous Pi 4 case design to make assembly smoother and to accommodate the increased stack height. The Pi 5 sits on top, with the UPS shield directly underneath and the NVMe shield below that, connected via a long PCIe ribbon cable.

For the side panels, I’m still using clear acrylic, giving it a sleek look while keeping the internals visible but the acrylic is now recessed into the side of the case so that the acrylic edges aren’t visible. The panels screw into place using M3 screws into brass inserts, making the whole build sturdy and easy to disassemble if needed.

Corner Accent Pieces

I added a button adaptor to the back to press the Power button on the UPS and I’ve added some design features to the sides.

This case also features an I2C OLED display which will be used to display some stats for the Pi 5 and UPS.

Display and Port Cutouts

With the case design complete, we now need to print out the components.

3D Printing The Components Using The Elegoo Centauri Carbon

To print out the case components, Elegoo have sent me their new Centauri Carbon core XY 3D printer to try out.

Elegoo Centauri Carbon

The Centauri Carbon is their first FDM 3D printer with a CoreXY motion system that provides much better precision, stability and speed. It comes fully assembled and ready to print so you don’t need to tinker with levelling the print bed, adjusting belt tensions or squaring up the gantry.

Centauri Carbon Core XY Motion System

It has a direct drive extruder and a fully enclosed print volume, which means that it can tackle a wide range of print materials.It also includes automatic bed levelling and a magnetic PEI textured build plate.

It does not yet support multicolour printing, filament is mounted on the side with a filament runout sensor above it.

Centauri Carbon Filament Holder

Prints can be started locally using the USB port and full-colour touchscreen or they can be sent over WiFi.

This printer is aimed at being a low-cost Core XY option but Elegoo haven’t cut corners on quality. It still feels like a well-built machine and even has high-end features like a glass door and top cover.

It can tackle a 15-minute benchy and gets pretty good results for the speed.

15 Minute Benchy Test

I printed out a couple of other test prints and aside from a little under-extrusion on the scraper which can be resolved by dialing in the filament settings, I was quite impressed by the results. These were all out-of-the-box prints with no setup or tinkering and I didn’t have a single print failure.

Test Prints

I then prepared my Pi server case print in Elegoo slicer to be printed from PLA with a 0.16mm layer height. The components all easily fit onto the 256mm square build plate so they can be printed in one go.

Elegoo Slider Pi 5 Case

I’ve left all of the settings on their defaults, I’ve only added some supports to the overhung areas and I’ve made some changes to the fan grill settings to get the infill pattern to use as the fan mesh.

Sliced Model Files

All up the print should take 2 hours and 45 minutes and it’ll only use 75g of filament.

The print can then be sent to the printer over WiFi or it can be started locally from a connected USB drive.

Printing Locally From USB

I’m using a metallic grey-coloured filament for all of the case components, hopefully, that looks good with the clear acrylic side panels.

Printing Pi 5 Desktop Server Case

With start-up and levelling, the print took a little under 3 hours to complete but I’m really happy with the quality. The finish is smooth and the layer lines are barely visible. There is some very minor ringing around the button and display cutouts but you have to look hard under bright light to see this.

Finishing Off The Pi 5 Desktop Server Case

Next, let’s make up the side panels from some 2mm laser-cut acrylic. These are slightly undersized so that they fit into the recess that has been designed onto each side of the case.

Laser Cutting Clear Acrylic Side Panels

I initially made these up without a Pi logo on the side but I decided that the logo outline would look quite nice so I added it in afterwards.

Added Raspberry Pi Logo To Side Panel

After the supports are removed, to finish the case off we need to add some M3 threaded brass inserts to the corners to hold the side panels and to the inside of the case to hold the display. These are M3x4.4mm inserts and they’re 6mm deep for the side panels and 3mm deep for the display.

These are melted into place using a soldering iron with a pointed tip. I’m using the Fnirsi HS-02B which has a nice pointed tip for these style inserts and it runs off a USB C power supply.

I’ve already connected the ribbon cable up to the display’s pins to plug into the Pi’s GPIO pins. Remember to take note of the terminal labels as they’re hidden once the display is installed.

I2C OLED Display Leads

The display slides in under the retaining clips in the body of the case and a single screw and bracket secure it.

I2C OLED Display Installed

Assembling The Raspberry Pi Stack

Now we can start assembling the Pi stack to mount into the case.

First, let’s get the UPS attached to the Pi. Rather than using the included screws, I’m going to use the standoffs from the Ice Tower cooler. I’ve trimmed down their threads slightly because we’ll also need to screw another set of standoffs into the bottom of the UPS hat. My standoffs had 6mm threads, which is their usual length, but you can sometimes get standoffs with a 3mm thread length.

Securing Pi Standoffs

Below the UPS I’m using a set of 20mm standoffs that I’ve also trimmed the thread down on.

UPS Secured

Next, we can install the Ice Tower cooler on top of the Pi. I’m going to take the fan off the heatsink as we’ll move this onto the side panel.

Ice Tower Fan

If you’ve got thermal paste, this works better than a cooling pad between the CPU and heatsink. If not, or if you plan on removing the cooler frequently then use the included thermal pad.

To finish off the stack, let’s install our NVME drive and then install the hat underneath the Pi. Make sure that you flash your OS onto the NVMe drive before installing it as well. I’m using Raspberry Pi OS Bookworm on it. I’m installing the desktop version for now but it’ll be running an installation of TrueNAS on it long term.

Lexar NVMe Drive Installed In Base

The hat closes off access to the batteries so we need to install those first and then be careful not to short out contacts on the UPS or press the power button.

Better yet, put some thin strips of film between the battery terminals and UPS contacts and you can pull them out before fitting the side panels to ensure the stack remains unpowered.

18650 Cells Installed

The NVMe hat is then held in place with some 8mm standoffs to give the drive some room for airflow at the bottom of the case.

Installing The Stack In The Case

The button adaptor goes into the back of the case and we can then install the stack in the case. This is held in place with four M2.5 screws through the bottom of the case.

We can then plug the display into the power and I2C pins on the Pi.

Next, let’s mount the Ice Tower fan onto the side panel with the fan grill.

I’ve pressed some M3 nuts into the pockets on the back of the fan and some M3x16mm screws hold it in place.

Fan Screwed Onto Side Panel

Plug the fan into the fan port before closing the case up and remember to pull out the film on the battery terminals.

Remove Film From Batteries

The side panels are each held in place with four M3x8mm button head screws. I’ve got a small 3D-printed accent piece around each screw head.

Screw Side Panel Into Place

On the side with the ports, I’ve got another 3D-printed accent piece that is held in place with some super glue.

That’s the case complete and the Pi ready for it’s first boot.

Installing The OLED Stats Display Script

All that is left to do is install the modified stats script which I’ve upgraded for this use case.

The UPSMonitor.py script cycles between two screens — one showing system stats like temperature, CPU load and the IP address, and another dedicated to the UPS status, displaying the power state and battery level at a glance.

Final Thoughts On My Pi 5 Desktop Server

With the UPS and NVMe drive, this Pi 5 build is now fast and reliable. The clear acrylic design, optimised cooling, and OLED display make it functional and great to look at.

What do you think of this build and case design? Let me know in the comments if you’d add any features or change anything up!

The modified UPS stats script is available to install from my GitHub repository and you can download the 3D printing files to print your own case from my Etsy store.

The Elegoo Centauri Carbon is available for preorder from the 17th of February:

Michael Klements
Michael Klements
Hi, my name is Michael and I started this blog in 2016 to share my DIY journey with you. I love tinkering with electronics, making, fixing, and building - I'm always looking for new projects and exciting DIY ideas. If you do too, grab a cup of coffee and settle in, I'm happy to have you here.

3 COMMENTS

  1. Hi! You had a micro sd card in the stuff you bought for it and i was wondering what it was for. I am thinking about making one myself too.

  2. Hi, the link for the batteries are wrong it seems. It redirects to some brass standoffs. Could you update the link please 🙂

    r

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest posts

This Tiny 3D-Printed Gaming PC Actually Runs Counter-Strike!

This tiny gaming PC is smaller than a can of Coke, runs Windows 11, and can even play Counter-Strike 2! While this might not...

Build a Smart Family Planner with a Raspberry Pi 5

Do You Struggle to Keep Track of Your Family's Schedule? Today, I’m going to show you how to build a simple, smart family planner using...

EcoFlow Delta 3 Plus Portable Power Station

Today we're going to be taking a look at the EcoFlow Delta 3 Plus portable power station. This is the latest iteration of their...

Related posts