Home Blog

BIGTREETECH Panda Sense Pro, Air Quality Monitoring for Your 3D Printer

Air quality around 3D printers is something that’s increasingly being discussed, particularly as enclosed printers and higher-temperature engineering filaments have become more common. While most modern printers do a reasonable job of keeping the printing process contained, they’re not completely sealed, and according to some, filament materials can produce particulates and volatile organic compounds while printing.

This is the BIGTREETECH Panda Sense Pro, and it has been specifically designed to help keep an eye on what’s happening around your printers.

It’s not just a simple temperature and humidity sensor, it monitors eight different environmental metrics, including airborne paritcles, CO₂, volatile organic compounds and formaldehyde. It also includes Wi-Fi, logging and integration options for common 3D printing setups.

BIGTREETECH sent me this Panda Sense Pro to try out, so I’ve spent some time using it around my printers to see what it can tell me about the air in my workshop.

Where To Buy The Panda Sense Pro

What Can The Panda Sense Pro Monitor?

The Panda Sense Pro has sensors that allows it to monitor eight parameters:

MeasurementWhat it tells you
PM2.5Concentration of fine airborne particles up to 2.5 µm
PM10Concentration of airborne particles up to 10 µm
CO₂Carbon dioxide concentration
FormaldehydeHCHO concentration
eTVOCEstimated total volatile organic compounds
AQIOverall air-quality indicator
TemperatureTemperature
HumidityRelative humidity

This is quite a broad combination for a workshop or printing room. It covers a range of common environmental indicators rather than focusing on a single pollutant.

PM2.5 and PM10 give you an indication of airborne particulate matter, while eTVOC and formaldehyde monitoring indicates changes in airborne chemicals. CO₂ is useful as an indication of how well ventilated a room is, especially when people are present. Temperature and humidity are also useful measurements for printing and filament storage.

The measurements are all shown simultaneously on the built-in display, so you don’t need an external app or computer to see what’s happening.

What’s Included In The Box?

The Panda Sense Pro isn’t supplied as a completely assembled product, ready to use. In the box you get the Panda Sense Pro PCB, 3.5″ display, temperature and humidity sensor, USB power cable, mounting hardware and a couple of hex keys.

And, because this is BIGTREETECH, there’s also the obligatory little BTT rubber duck.

You may have noticed by now that it doesn’t include an enclosure. Instead, BIGTREETECH provides the enclosure design as an open-source 3D-printable model.

I don’t mind this approach for something aimed specifically at people who already own a 3D printer, although it may limit their market a little. This approach keeps the hardware accessible and gives you the option of modifying or completely redesigning the enclosure if you’d like to, allowing you to mount it onto your 3D printer for example.

Printing The Panda Sense Pro Enclosure

I printed their standard enclosure before assembling the monitor. The complete enclosure uses a little over 100 g of filament with stock settings on my Bambulab X2D, so it’s not a large or expensive print.

Because the enclosure files are available to download, you can also print it in whatever colours or materials suit your setup, or modify the design if you want to mount it somewhere specific. The downside is that you need access to a printer to end up with a finished product. Out of the box, you’re buying a PCB and display rather than a completed consumer product.

The enclosure is relatively straightforward to print and assembly is also simple. The included screws secure the PCB and enclosure, while the display sits at the front.

The temperature and humidity sensor in installed behind the PCB and then the back cover closes it up. There are also loads of ventilation openings around the enclosure, which are obviously important for the sensors to accurately sample the surrounding air.

The assembled unit measures around 117 × 80 × 74 mm, so it’s small enough to sit alongside a printer without taking up much room.

Hardware & Sensors

The Panda Sense Pro is designed on a compact PCB which measures 111.5 × 54.8 mm. On the front is a ribbon cable connector to attach the 3.5-inch 480×320 colour TFT display. It’s not a touchscreen, but that’s not really necessary for this device. It displays all eight measurements simultaneously, with colour coding and guiding descriptions like Good, Fair or Severe, making it easy to quickly see if the air quality has changed.

There are several dedicated sensors mounted onto to the PCB, including a laser particle sensor for particulate measurements, an electrochemical formaldehyde sensor and an NDIR infrared sensor for measuring CO₂.

Sensors on the Panda Sense Pro

That last one is worth highlighting. A dedicated NDIR sensor is better for measuring actual carbon dioxide concentration than inexpensive monitors that derive estimated CO₂ figures from their VOC measurements.

The brains of the Panda Sense Pro is a ESP32-S3 and through this, connectivity is provided using 2.4 GHz Wi-Fi, and the device is powered by a USB-C port, which requires a 5 V, 1 A supply. This means you can power it from a normal 5V USB charger, power bank or potentially a spare USB port on your 3D printer.

Setting Up The Panda Sense Pro

Setup is really simple. Once the board has been installed into the enclosure and the temp & humidity sensor unit and display are connected, the Panda Sense Pro just requires a USB-C input for power. It can run from any suitable 5 V USB power supply, so it doesn’t need its own dedicated power adapter. It can be powered from a free USB port on a printer or computer or even a cheap charger.

Once running, it’s again pretty easy to use. Rather than needing to open an app every time you want to check the environment, you can glance over and immediately see PM2.5, PM10, temperature, humidity, eTVOC, CO₂, AQI and formaldehyde on the well laid out display. eTVOC takes a few minutes to start up, so shows up as a “-” when you first power the Panda Sense Pro up.

Panda Sense Pro Display

You can also connect to it’s own WiFi network and access a small web dashboard with instantaneous readings, historical trends and settings, or use that interface to tell it to connect to your own WiFi network and you’ll then be able to access the dashboard from any device on the same network.

Historical Monitoring

The Panda Sense Pro also provides historical data rather than only showing instantaneous measurements.

It’s got an on-device trend showing changes over the past hour, grouped over two pages, and then both 24-hour and 30-day history through the web dashboard, allowing you to look back at environmental changes over time.

This is arguably more useful than the live display. An instantaneous VOC or particulate reading on a device like this doesn’t necessarily tell you very much on its own. Being able to see that a measurement consistently increases after starting a printer or using a particular filament is a lot more useful.

It’s also helpful for testing ventilation. You could run a print with the room closed, for example, record the resulting measurements, and then repeat the experiment with an extractor fan or window open and see how the results compare. This turns the Panda Sense Pro into a useful testing tool.

Running Some Tests In My Workshop

To demonstrate how the Panda Sense Pro works, I ran some tests in my workshop, but rather than deliberately creating extreme pollution to make the numbers move, I wanted to see what happens during normal day-to-day tests and use.

Baseline Test

I first left the Panda Sense Pro running in the workshop without any printers operating to establish a baseline.

After allowing a few hours for the readings to stabilise, I recorded:

MeasurementBaseline
PM2.53 µg/m³
PM103 µg/m³
CO₂427 ppm
eTVOC0.1 mg/m³
Formaldehyde0.01 mg/m³
Temperature17.4 °C
Humidity63.2 %
AQI5

This gives me something meaningful to compare subsequent tests against.

PLA & PETG Printing Test

Next, I ran some overnight PLA and PETG prints across 3 of my 3D printers that I have in the room. I ran two printing dual colour PETG prints and one printing in PLA. These are all enclosed printers and also using an enclosed AMS.

Here are the results overnight (roughly 11 hours):

MeasurementPLA & PETG Test
PM2.58 µg/m³
PM1010 µg/m³
CO₂445 ppm
eTVOC0.1 mg/m³
Formaldehyde0.01 mg/m³
Temperature14.4 °C
Humidity68.8 %
AQI11

So there was a small increase in PM2.5 and PM10 measurements but no significant changes or dangerously high readings. These are still within the Panda Sense Pro’s “Good” range for each result.

Ventilation Test

I also ran a test while I was working in my workshop over the course of an evening to see how CO₂ levels change. I had the windows and door closed and I was in the workshop for about 2 hours.

These were the results after the 2 hour period:

MeasurementVentilation Test
PM2.53 µg/m³
PM103 µg/m³
CO₂1032 ppm
eTVOC0.2 mg/m³
Formaldehyde0.01 mg/m³
Temperature17.2 °C
Humidity52.6 %
AQI5

So again, no major changes to most metrics but a noticeable increase in the CO₂ concentration over the evening, which was to be expected. At over 1,000ppm, it’s starting to get to the point where I’d be feeling fatigued and sluggish.

Important Limitations When Interpreting The Results

It’s worth being careful about what these measurements actually mean. Like many other consumer-grade air quality products, the Panda Sense Pro is an environmental monitor, not laboratory analytical equipment.

A TVOC sensor, for example, measures the overall response to a range of volatile organic compounds. It doesn’t tell you exactly which chemical is present or precisely where it came from. Likewise, PM2.5 and PM10 measurements tell you about the quantity of airborne particulate matter within those size categories, but they obviously don’t identify the particles.

The AQI is also a calculated air-quality metric rather than being based on an independent physical sensor.

The Panda Sense Pro is useful as a relative monitoring device. If your workshop or printer room normally sits at a particular level and VOC or particulate readings repeatedly increase while a certain printer is running, that’s useful information. Similarly, you can see whether your installed ventilation or filtration is improving air quality.

Integration With Other Systems

The Panda Sense Pro also supports Home Assistant and Moonraker for Klipper based printers, which both substantially increases what you can potentially do with the data. Rather than simply viewing the measurements on the Panda Sense Pro, you could incorporate them into a wider workshop and printer monitoring system and build automations around them.

For example, you could potentially use increasing particulate or VOC measurements to trigger ventilation, send a notification when air quality deteriorates, or log environmental conditions alongside other workshop data. So the device doesn’t necessarily become another isolated smart gadget with its own ecosystem.

If neither of those suit your needs, the Panda Sense Pro also has MQTT cloud synchronisation and remote monitoring through an app.

At the time of testing, there is mention of an app in development, but that is still “coming soon”.

What I Like

The biggest strength of the Panda Sense Pro is probably how much information it puts into one compact device. Having particulate, VOC, formaldehyde, CO₂, temperature and humidity monitoring in a single unit is really useful in a workshop where many devices or machines could affect air quality.

The colour display is also a great inclusion. A lot of environmental sensors become invisible once they’re set up because accessing their data requires opening an app or dashboard. Here, the data is always visible.

I also like the printed enclosure approach. Requiring customers to print their own case certainly won’t appeal to everyone, but for the intended audience it makes sense. The enclosure is easy to print, only uses around 100 g of filament, and you can modify it if you want something different or want to integrate it into a custom setup.

Finally, the Home Assistant and Moonraker integrations make the device more functional than a generic desktop air-quality monitor, particularly if you already have a smart-home or complex 3D printing setup.

What Could Be Better

The obvious drawback to one of the strengths that I listed is that the Panda Sense Pro arrives without an enclosure. If you’re buying it specifically because you’re into 3D printing then is a non-issue, but if you’re just looking for a good air quality monitor for your workshop then its something worth considering.

I’d also like BIGTREETECH to publish some more detailed information about the individual sensors, their specified accuracy, measurement ranges and calibration behaviour. For an air-quality monitor, the quality of the measurements matters more than the number of measurements displayed on the screen.

Some of the connected functionality is still being worked on. So, I wouldn’t purchase the device on the promise of future app/cloud functionality until those features are actually available.

Final Thoughts On The Panda Sense Pro

The BIQU Panda Sense Pro is another great addition to their growing ecosystem of accessories around 3D printing.

At the time of writing this post, it’s currently listed on their website for $89.99 and it seems to be available for a similar price across other platforms like Amazon and Aliexpress. For the price, I think it’s good value for money. You’ll struggle to find another air quality monitor that covers a similar range of sensors for a similar or cheaper price.

With measurements for PM2.5, PM10, CO₂, formaldehyde, eTVOC, temperature and humidity, it provides a lot more information than a conventional temperature and humidity monitor, and the 3.5-inch display makes that information immediately accessible.

The printable enclosure is also a nice fit for the intended audience, and I like that BIGTREETECH has provided a finished design while still leaving users free to modify it.

Disclosure – BIGTREETECH provided the Panda Sense Pro used in this review. They have not paid for or had any editorial control over this review, and the opinions and test results are my own.

I Built a Portable Offline Internet with Maps, Wikipedia and Local AI

What if you could take a useful portion of the internet with you anywhere, completely offline?

In this box is access to Maps, Wikipedia, an AI assistant, useful tools, and even things my own media library, all running locally, without needing an internet connection.

Project Nomad Case Folded Up

This is Project Nomad, a portable offline internet and I’ve built the whole system into this portable case, with its own computer, network infrastructure, Wi-Fi 7 router and OLED touchscreen.

You can use it like a standalone computer, or connect your phone, tablet or laptop to it and access all of these offline services over the network, just like you would normally access things on the internet.

While something like this obviously has applications for emergency preparedness, there are actually practical everyday uses for it too. You can take it off-grid camping, use it on a boat, keep it at a remote property or on a farm with unreliable internet, take it travelling, or just use it as a portable homelab.

Let me show you how I built it.

What You Need For This Build

Tools & Equipment Used:

Some of the above parts are affiliate links. By purchasing products through the above links, you’ll be supporting this channel, at no additional cost to you.

What Is Project Nomad?

The starting point for this build is open-source software called Project Nomad. The idea behind it is to give you a collection of useful services and information that are hosted entirely locally.

Command Centre Setup Screen

So, instead of opening Google Maps and downloading map data from the internet, you can host your own offline maps.

Instead of going to Wikipedia, you can have an entire copy of Wikipedia stored locally.

And rather than sending a question off to ChatGPT or another cloud AI service, you can run a large language model locally on your own hardware.

None of these require an internet connection once everything has been downloaded and configured.

Making It An Offline Internet

There’s an important distinction I wanted to make with this build. I didn’t want an offline PC, I wanted an offline internet.

I want to be able to open my phone, connect to this system over Wi-Fi, and access Wikipedia, or open a tablet and look at a map, or have somebody else connected to the same network using the AI assistant from their laptop.

So the next step was to build a complete portable network around Project Nomad and for that I’m using three main pieces of hardware.

Beelink SER9 Max

At the centre of the build is the Beelink SER9 MAX.

Beelink SER9 Max

Beelink provided this PC for the project and it’s quite a lot more powerful than you need to just to host offline maps and Wikipedia.

This model has an AMD Ryzen 7 H 350 processor, 32 gigabytes of RAM and a 1 terabyte SSD. Importantly for this project, it has a fairly powerful Radeon 860M integrated GPU.

Beelink SER 9 Max Front

Memory is dual channel and it’s got a second NVMe slot internally so you can easily upgrade storage for more media. 

Beelink SER 9 Max Internals

Wikipedia and maps are quite easy to host but the demanding part is running the AI models. You can run smaller local models on less powerful hardware, but if you’re waiting around for each word to appear, it quickly stops feeling like a useful assistant.

The RAM, CPU and GPU performance of the SER9 Max means I can run more capable models locally and still get useful inference speeds.

The SER9 MAX also has built in 10-gigabit Ethernet, which is another feature that works particularly well with the rest of this build.

Beelink SER 9 Max Back

GL.iNet Slate 7

The second part of the system is the router. I’m using the GL.iNet Slate 7, which creates the Project Nomad network.

GLinet Slate 7 side

This gives me a portable Wi-Fi 7 access point that phones, tablets and laptops can connect to. So once you’re connected to the network, you simply open a browser, enter the address of the Nomad server and you’ve got access to the dashboard and all of the locally hosted services.

If I’m somewhere with an internet connection, I can connect the Slate 7 to that network and use Project Nomad alongside the normal internet. Project Nomad automatically recognises this and keeps maps, wikipedia and the other applications updated.

Then when that connection disappears, the local network doesn’t.

The router keeps running, Project Nomad keeps running, and all of the locally hosted services are still accessible. You lose the outside internet while keeping yours.

10G QNAP Network Switch

I’ve then added a QNAP network switch. This has two 10-gigabit ports and four 2.5-gigabit ports.

QNAP Network Switch

Because the Beelink SER 9 has 10-gigabit networking, I can connect the Project Nomad server to the switch at the full 10 gigabits per second.

That is obviously overkill for serving maps or a wikipedia page, but this is effectively a portable homelab. I can also run Jellyfin and take a complete offline media library with me, accessible by all devices on the network. So I could also host file storage, documentation, photo libraries or other Docker services.

Designing & Building The Case

This brings me to the carry case. I initially looked at putting all of this into something like a Pelican case, but I didn’t really want to buy an expensive case and then immediately start drilling holes and cutting chunks out of it. Because I wanted this to work almost like a chunky portable laptop, I needed some fairly specific features anyway. So I designed my own enclosure from scratch in Fusion.

The design is intended to be 3D printed, so I’ve deliberately kept the geometry relatively simple.

The bottom half of the case contains a 3U 10-inch rack.

I 3D printed the case components from grey and black PETG, which took around two and a half days to complete. Depending on the print orientation it will also need some supports. 

Installing Cover Plate
Noctua Fans On Cover Plate

To finish them off, I installed some M3 heat set brass inserts for the top cover plate and M6 ones for the racks.

Powering The Portable System

I wanted the complete system to be as simple as possible to power. So, despite having three main pieces of hardware inside, the entire case is designed to have one 19-volt DC input.

Power Cable To System

This directly powers the SER 9 and on the side I’ve got a buck converter which steps the 19 volts down to 12 volts for the network switch.

The Slate 7 is powered over USB-C PD from the Beelink mini PC.

USB C Power Supply To Router

So from the outside, I only need to plug in a single barrel connector. 

Power Supply For Whole System

It’s worth mentioning that this isn’t battery powered. It’s portable in the sense that it’s a self-contained system you can carry somewhere and set up, but it still needs a suitable mains power source, although you could obviously run it from a portable power station if you wanted a genuinely off-grid setup.

The 3U Rack Assembly

Next, moving on to the rack assembly, I’ve designed custom rack mounts for each component. I’ve also added things like keystone jacks so I can bring the connections I actually need out to the front of the rack.

So I’ve got Ethernet and HDMI connections easily accessible on the Mini PC and the two Ethernet ports accessible on the router without needing to open the case or reach around behind the equipment.

The Beelink SER9 MAX sits at the bottom, above that is the QNAP switch, and the Slate 7 sits at the top.

Main Case Components

Adding The Case Components

The case itself is quite easy to assemble because it consists of a small number of large printed parts.

The hinges, front panel, bottom section and latches are assembled using eight M4 x 50mm button head.

Installing Screws For Case

The handle uses another two M4 x 30mm button screws.

Cooling And Cover Panel

With all of the rack hardware installed, I’ve then got this cover panel over the top. This separates the rack hardware from the upper part of the case and makes the lower section feel much more finished.

Installing Cover Plate

I’ve integrated three 40 Noctua millimetre fans into the panel for cooling. These are USB powered and help move air through the enclosure when the PC, switch and router are all running.

The cover plate is secured with 6 M3 x 8mm button head screws.

M3 Screws For Cover Plate

Fold-Down Keyboard

At the front of the case, I’ve designed another hinged panel.

When the case is closed, this covers and protects the front of the rack, and when I open it, it folds down and becomes the keyboard tray.

Keyboard Tray On Front

The keyboard itself is stored on the panel with a hook and loop tie.

Keyboard Stored For Fold Up

UPERFECT 3K OLED Display

Then we’ve got the part that really makes the whole system look like a sort of oversized cyberdeck. The display.

UPERFECT provided this 14-inch 3K OLED portable touchscreen for the build. It’s a 120 hertz OLED panel, so you get the contrast and deep blacks you’d expect from OLED, along with the really sharp 3K resolution and great refresh rate.

OLED Display From UPERFECT

Because it’s a touchscreen, I can use Project Nomad directly without necessarily needing the mouse and keyboard.

A single USB-C cable runs from the display to the mini PC and handles the DisplayPort video connection, touch interface and power. So again, I’m keeping the wiring inside the case as simple as possible.

Single Cable For Display

I’ve designed the screen into the lid itself and it screws into place using two M4 x 16mm button-head screws, which keeps the outside of the lid relatively clean.

Installing Screws To Mount Display

The low profile of this portable monitor makes it possible to integrate into the top of the case in a size that’s still printable as a single piece on my 3D printer, even if I only had a millimetre to spare.

That’s the hardware side of this project complete. I’ve now got a portable 3U homelab in a case along with a keyboard and monitor with touch display.

Booting Project Nomad

To boot it up, we just need to plug in the single power connector. The router and network switch come on automatically and we need to press the power button on the PC.

The mini PC is running Ubuntu, so when I boot it up, it can be used like a normal computer.

I can use a browser, office applications, file management or anything else I’d normally use an Ubuntu PC for.

Running HTOP

Project Nomad runs through a web interface and starts automatically when the computer boots up. So if I open up the browser, we can go to the Project Nomad dashboard.

So let’s disconnect the internet connection and you can see how the system runs.

Offline Maps Demo

Let’s start with maps.

For my system, I’ve downloaded the complete map of Australia. You could actually download the entire world if you have enough storage, but Australia is obviously considerably smaller and makes more sense for what I’m going to use this for.

I can move around the map, zoom in and even search for locations. This is really useful if you’re travelling through remote areas where mobile coverage is unreliable.

Because it’s being hosted as a web service, I don’t have to use it on here. I can pull out my phone, connect it to the Project Nomad Wi-Fi network and open the same map.

Maps Available On Phone Too

So I’ve got an offline map server available to everybody connected to the network.

Offline Wikipedia Demo

The same applies to Wikipedia.

I’ve downloaded the complete version of Wikipedia including images locally, so I can search for a topic, open an article and follow links between pages.

It’s quite cool having this much accumulated knowledge in a portable box.

Local AI Assistant

Next is my favourite part of this Project Nomad build, the AI assistant.

I’ve got three models installed locally, Llama 3.1 and 3.2 and DeepSeek R1.

When I ask it a question, the prompt doesn’t leave this computer. There isn’t an API call going out to a cloud service, the model itself is stored on the SSD and the inference is being done locally by the mini PC’s GPU.

AI Chat Running Locally

So even with the internet completely disconnected, I still have a general-purpose AI assistant.

And this is where having the more powerful hardware pays off. You can see in my video that the output is actually running at a useful speed. We don’t have to wait minutes for each response to be generated. 

Again this is great for offline use, you have access to so much knowledge in a portable package. 

Other Offline Services

Project Nomad also includes more than just the three services I’ve focused on. There are a few other applications that can be configured depending on what you want the system to do.

Additional Services Available

Things like Vaultwarden, IT tools, data tools, MeshCore-related services and a range of other self-hosted applications.

Because this is ultimately an Ubuntu server, there’s also nothing stopping you from adding your own services. You can store a couple of terabytes of movies and TV shows for your own Jellyfin server, add a file server and even host technical manuals or equipment documentation.

The UPerfect OLED display on here is actually really good for watching movies and series too.

Big Buck Bunny Running

Real-World Use Cases

It’s obviously easy to frame this as a doomsday-prepper computer. And sure, if the internet suddenly disappeared, having maps, Wikipedia and an AI model in a box would probably be quite useful. But you don’t need an apocalypse for offline infrastructure to be useful.

Project Nomad Case Folded Up

Imagine a remote farm where the internet connection is unreliable. You could have locally hosted equipment manuals, maps, documentation and AI tools that remain accessible around the property regardless of the outside connection.

For field work, you could load it with project documentation, drawings, procedures and reference material.

If you’re travelling, camping or on a boat off-shore, you’ve got maps, reference information and entertainment without relying on mobile reception.

Final Thoughts On My Internet In A Box Build

So that’s my complete offline internet built into a portable case.

We’ve got the SER9 MAX providing the compute power and 10-gigabit networking, the Slate 7 creating the portable network, the QNAP switch giving us high-speed wired connectivity, and the UPERFECT 3K OLED display turning the whole thing into a self-contained workstation.

Fully Runing Portable 3U Homelab

What I like most about this project is the idea of taking services that we’ve become completely dependent on having an internet connection for, like maps, information, AI, media and useful tools, and bringing them back onto hardware that you actually control.

Let me know what you’d use a device like this for in the comments section below.

Lab Rax Upgrades: Design Improvements & New Accessories for My 3D-Printed Homelab

Over the past year, I’ve been using my Lab Rax system for a few different homelab builds. The basic design has been working quite well, but there were a few things I wanted to improve. Some were small changes to make the rack stronger and easier to assemble, and I’ve also designed and upgraded a few new accessories, including wall mounting, storage and probably my favourite upgrade, a programmable logo that can be used to display useful information.

So today, I’m going to show you what’s changed and how you can use these parts to build a capable homelab for yourself.

Here’s my video showcase of the improvements and accessories, read on for the write up and download links:

Parts Used In These Builds

  • M6x10mm Button Head Screws – Buy Here
  • M6 Brass Inserts 8mm OD, 4mm Length – Buy Here
  • M6 Brass Inserts 8mm OD, 5mm Length – Buy Here
  • M6 Nuts – Buy Here
  • Wall Mounting Cleats
    • Wall Mount Screw & Plug Kit – Buy Here
  • NeoPixel Light-Up Lab Rax Logo
    • 2 × 8-pixel NeoPixel LED bars – Buy Here
    • 2 x M3 Brass inserts OD 4-5mm – Buy Here
    • 2 x M3 x 8mm Button Head Screws – Buy Here
    • Breadboard jumpers – Buy Here
    • Microcontroller or Pi, an ESP32 is a cheap and easy way to drive the light – Buy Here

Tools & Equipment Used

Some of the above parts are affiliate links. By purchasing products through the above links, you’ll be supporting my projects, at no additional cost to you.

Improvements To The Lab Rax Homelab

Let’s start with the improvements that I’ve made to the rack itself. The overall design hasn’t changed because I want to keep the parts all compatible, it’s still a modular 10-inch rack system that’s designed to be entirely 3D printed and all of your older prints will still be compatible with the upgraded parts.

Brass Insert Lab Rax Homelab 3D Print Files

Nut Version Lab Rax Homelab 3D Print Files

The main changes are ones that aren’t immedietly obvious. I’ve gone through the main structural components, stiffened them up a bit and tightened some of the tolerances. These obviously aren’t visually exciting changes, but they make quite a noticeable difference to its overall strength and rigidity. There’s less movement between the components, and the assembled rack feels a lot more solid.

I’ve also redesigned the handles. They’re a little bigger and stronger than the originals, so they’re more comfortable to actually grab and carry the rack with. They keep the generaly profile of the originals, so you may not immedietly notice a visual difference but it’s very apparent when you pick the homelab up.

Strengthening Handle

I’ve also made a couple of changes to make assembly easier. There are two versions of the Lab Rax homelab, one that uses heat-set brass inserts and another that uses standard M6 nuts.

On the brass insert version, I’ve adjusted the insert holes to accommodate two different length inserts, which makes them easier to source and you don’t need to find the exact inserts I originally designed it around. You can now use M6 x 8mm OD brass inserts in either 4mm or 5mm lengths. The 5mm ones are more commonly available on both Amazon and Aliexpress.

The nut version now has nut retaining clips. On my previous version, if you didn’t glue them into place then the nuts could move around slightly or fall out while you were assembling the rack. With the retaining clips added, you now press them into the pockets. It’s a tight fit, but you only have to do it once and they’re then captured by the print. This is a small change, but it makes assembly quite a lot easier.

New Lab Rax Accessories

Wall Mounting Cleats

The Lab Rax Wall Mounting Cleats provide a simple and secure way to mount a Lab Rax homelab directly onto a wall. The system uses a pair of interlocking cleats. One set attaches to the rear posts of the Lab Rax and the opposing set mounts to the wall. Once installed, the rack simply slides down onto the wall-mounted cleats and locks into position. A pair of lower spacers is also included to keep the bottom of the rack correctly spaced from the wall so that the Lab Rax sits vertically.

For heavier builds, or if you’d simply like some additional support, a second set of cleats can be installed at the bottom of the rack instead of the spacers.

Download the Wall Mounting Cleats

Hardware Required

For a standard installation using one pair of upper cleats and two lower spacers (or a pair of cleats at the bottom too):

  • 8 × M6 × 10 mm screws for attaching the rack cleats and lower spacers to the rack – Buy Here
  • 4 × 3–5 mm diameter screws and plugs for securing the cleats to the wall – Buy Here

If you’re using additional cleats for a heavier rack, you’ll need additional mounting hardware accordingly.

Printing & Installation

The cleats should be printed in the orientation provided in the print profile. This orientation is intentional so that the weight of the rack is not supported across the layer lines, significantly improving the strength of the printed parts.

3D Printing Arrangement For Strength

Make sure the wall-mounted cleats are fixed into a suitable structural surface using fasteners appropriate for your wall construction and the weight of your completed homelab.

Once everything is installed, simply align the rack with the wall cleats and slide it down into position.

Handing Lab Rax On Wall

Mounting Template

I’ve also designed two printable mounting templates to make installation and alignment easier:

  • Single Cleat Template – correctly positions the two wall cleats for a standard installation.
  • Up to 5U Template – includes mounting positions for racks up to 5U, allowing additional sets of cleats to be installed for heavier racks or additional support.

The templates take the guesswork out of positioning the individual wall cleats and ensure that they line up correctly with the cleats installed on the rack.

Template To Mount Cleats

New Lab Rax Expansion Module

Next is probably my favourite mechanical upgrade. Lab Rax has always been expandable using a set of small domino connectors. They work, but they’re a little light and require a special set of side panels to use as extensions. So, I wanted to rather design something that felt more like a proper structural extension and eliminated the side panel issue.

The Lab Rax 1U Extension provides a stronger and more useful way to expand an existing Lab Rax homelab. Rather than simply joining two sets of posts together, the extension adds an additional 1U of usable rack space while also creating a structural cross brace between the front and rear posts. This helps strengthen and stiffen the connection between the two sections of the rack.

The extension is fully compatible with the original Lab Rax posts and side panels, so you can expand an existing build without having to reprint the rest of your rack.

Each extension attaches using 4 × M6 button head screws per side, creating a secure connection between the existing sections.

  • M6 x 10mm Button Head Screws (8 Required In Total) – Buy Here

This is a useful option if you’ve outgrown your original Lab Rax and want to add more equipment without printing an entirely new rack.

Download the Extension Module Print Files

So, like with the original domino connections, you can start with a small homelab and when it inevitably gets out of control, you don’t have to print an entirely new rack. You can just keep expanding it.

Stackable Handles

What if instead of extending your homelab, you went and built two? The Lab Rax Stackable Handles are an alternative to the standard handles that allow multiple Lab Rax homelabs to be securely stacked on top of each other.

Lab Rack Homelab Extension Installed Outside Brand

Download the Stackable Handles Print Files

They retain the general profile and function of the original handles, but the top has been redesigned to locate and support the original Lab Rax feet from the rack above. Rather than simply balancing one Lab Rax on top of another, the feet locate into the stackable handles, keeping the two racks aligned and creating a much more stable stack. This is particularly useful if you want to keep different parts of your homelab separate, for example, using one Lab Rax for networking equipment and another for servers or storage, while still keeping everything together in a compact setup.

Hardware Required

Each handle is attached to the Lab Rax using:

A set of two handles therefore requires:

The upper homelab needs to use the standard Lab Rax feet, which locate directly into the recessed sections on top of the stackable handles.

Stacked Lab Rax Homelab

NeoPixel Light-Up Lab Rax Logo

Next, if I dim the lighting you’ll notice that the Lab Rax logo on this build is glowing.

Lab Rax Glowing Logo

Download the NeoPixel Light-Up Lab Rax Logo

This turned into a slightly bigger project than I originally intended. I’ve integrated addressable NeoPixel LED bars behind the logo.

The NeoPixel Light-Up Lab Rax Logo replaces one of the standard horizontal front pieces with an illuminated Lab Rax logo that can be used for decorative lighting, animations or even homelab status information.

The logo is illuminated using two 8-pixel addressable NeoPixel LED bars, giving you 16 individually addressable LEDs that can be controlled using an ESP32, Arduino or Raspberry Pi.

This means the logo doesn’t have to be just decorative. You can integrate it with your homelab and use different colours and animations to indicate things like CPU load, temperature, network activity, storage usage, Docker container status, backup progress or system warnings.

Hardware Required

  • 2 × 8-pixel NeoPixel LED bars – Buy Here
  • 2 x M3 Brass inserts OD 4-5mm – Buy Here
  • 2 x M3 x 8mm Button Head Screws – Buy Here
  • Breadboard jumpers – Buy Here
  • Microcontroller or Pi, an ESP32 is a cheap and easy way to drive the light – Buy Here

Assembling the NeoPixel Bars

The lighting assembly uses two 8 pixel NeoPixel bar lights, which need to be positioned end-to-end and soldered together to bridge their terminals. Bridge the corresponding power and ground terminals between the two bars and connect the OUT terminal of the first bar to the IN terminal of the second. This allows all 16 pixels to operate as a single addressable LED strip.

You’ll also need to solder a set of jumper wires onto the IN end of the first bar for power, ground and the data connection to your chosen controller.

The combined NeoPixel bar assembly mounts to the rear cover plate, positioning the LEDs directly behind the Lab Rax logo.

There are two mounting options:

  • Secure the bars using small screws through the provided mounting holes.
  • Glue the bars directly onto the cover plate using 3D print compatible glue.

If using screws, make sure the screw heads and hardware do not contact or bridge any of the surrounding electrical components or PCB traces on the NeoPixel bars. The microcontroller can then either be mounted to the rear of the cover plate or installed separately on a tray inside the Lab Rax.

The rear cover can either be glued permanently into position or made removable using M3 screws.

To keep the cover plate removable, install the brass inserts into the two holes alongside the logo. The cover plate can then be secured with the M3x8mm screws, allowing access to the NeoPixel bars if you ever need to repair or modify the lighting.

The main logo piece is designed as a direct replacement for an original Lab Rax horizontal front edge piece, so it integrates into the existing rack structure.

It’s designed to be installed across the front of the rack where the illuminated logo is easily visible, but it can also be installed at the bottom or rear of the Lab Rax if that better suits your build.

ESP32 Driving Neopixel Bar Light

Example Illuminated Lab Rax Logo Code For an ESP32

Here are some ideas for it:

  • Decorative white or blue light glow
    • As a decorative effect, during normal operation, it’s just got a subtle white and blue glow.
  • Activity white pulse across the logo
    • When there’s significant network or CPU activity, a white pulse travels across the display.
  • Boot up animation
    • When your main rack computer boots up, the light sweeps across the logo.
  • Amber warning pulse
    • A warning or notification changes the logo to a slow amber pulse.
  • Red service alert pulse
    • If a service or node goes down, the logo pulses red.
  • CPU Load Monitor
    • At low load, the logo is green and it then progresses through yellow towards red as CPU load increases and drops back towards green as the load decreases.

These are just a few easy examples. You could tie it into CPU temperature, storage usage, network activity, Docker container status, Home Assistant alerts, or pretty much anything your server can monitor. I really like this because it gives the lighting an actual purpose. You can now glance across the room and immediately get an idea of what your homelab is doing.

Lab Rax Bottom Accessory Drawer

The Lab Rax Bottom Drawer makes use of the otherwise wasted space underneath the lowest rack unit, turning it into a convenient storage drawer for small homelab accessories.

Rather than adding a drawer to the existing base, this model replaces the entire lower section of the Lab Rax with a single printable part. The bottom panel, two lower horizontal members and two lower edge pieces have all been combined into one part, with the drawer integrated into the free space.

Once printed, the original Lab Rax vertical posts can be installed directly onto the new base.

It’s not very big, but the drawer is ideal for storing the small parts that tend to accumulate around a homelab, such as short patch cables, keystone jacks, USB adapters, rack screws and small tools.

Download the Bottom Accessory Drawer Print files

Hardware Required

No additional drawer hardware or parts are required.

You’ll only need:

  • 4 × M6 × 10 mm screws for securing the four vertical posts to the new base (from standard Lab Rax build) – Buy Here

Everything else required for the drawer assembly is 3D printed.

What’s Replaced?

The new one-piece drawer base replaces the original:

  • Bottom panel
  • 2 × bottom horizontal pieces
  • 2 × bottom edge pieces

These are all incorporated into the single printable base, so you don’t need to print the original parts as well.

Drawer End Stops

Two printable end stops are included to prevent the drawer from being accidentally pulled completely out of the rack.

With the drawer already installed, press the two end stops into the receivers in the base, located behind each of the front vertical posts.

The stops capture the drawer once installed, so make sure the drawer is in place before fitting them. Once the stops are fitted and the rack is assembled, the drawer cannot be removed without removing the stops.

The stops should be a press fit. If they print slightly loose on your printer, either reprint them with a 1.05% scaling and try again or a small amount of glue can be used to secure them in place.

Cable Management Add-ons

Lastly, there’s one thing that ruins every nice-looking homelab, and that’s a mess of cables. So I’ve done a bit of work on cable management.

First up are some cable guides for the sides. These keep cables bundled together and against the posts. This is particularly useful around the back of the rack.

Lab Rax Cable Guide

Rather than having cables hanging through the middle where they interfere with connectors, USB devices or ventilation, the guides keep them all running neatly down the structure of the rack. They’re also designed in a way that keeps the cables securely within the guide, but cables can be easily added or removed without unscrewing anything. They fit into one rack unit, so you can add them wherever you need them.

I’ve also designed two simple cable combs for network and power cables. These mount directly onto a post and keep individual cables separated and evenly spaced. I’ve made them for either horizontal or vertical cable runs, depending on how your equipment is laid out.

Lab Rax Cable Management Combs (6 Cables)

That’s everything I’ve added to Lab Rax for now, but I’m sure it won’t be the last round of upgrades. One of the things I enjoy most about a modular system like this is that there are always new ways to improve it or another accessory that could make it more useful.

If you’re using Lab Rax yourself, or you’ve got an idea for an accessory or upgrade that you’d like to see added, let me know in the comments below. I’m always looking for ideas for what to design next.

Build a Desktop Arcade Machine with a Raspberry Pi and RetroPie

I’ve been wanting to build a proper desktop arcade machine for a while now, and I finally got around to making one. It’s powered by a Raspberry Pi 4, has a 10-inch touchscreen, real arcade controls and a custom-designed laser-cut enclosure with printed graphics.

In this blog post, I’ll show you how I built it so that you can build your own.

Here’s my project video, read on for the write-up:

What You Need To Build Your Own Desktop Arcade

  • Raspberry Pi 4 – Buy Here
  • 32GB MicroSD Card – Buy Here
  • Sunfounder 10″ Touch Display For Raspberry Pi –Buy Here
  • Arcade Controller Set (One I Used From AliExpress) – Buy Here
  • Arcade Controller Set (Similar One From Amazon) – Buy Here
  • Pi 4 Aluminium Heatsink – Buy Here
  • 40mm 5V PWM Fan – Buy Here
  • 10 Sheets of 3mm Plywood (400mm x 300mm) – Buy Here
  • 8 x M3x8mm Button Head Screws – Buy Here
  • 4 x M5x10mm Button Head Screws – Buy Here
  • 4 x M5 Nuts – Buy Here
  • Barrel Jack Extension (Similar To What I Made) – Buy Here
  • Ethernet Extension Cable – Buy Here
  • Wood Glue – Buy Here
  • Stick-On Rubber Feet – Buy Here

Tools & Equipment Used

xTool Store:

  • xTool M2 Laser Cutter & Engraver – Buy Here
  • xTool CMYK Inkjet Printing Module – Buy Here
  • xTool SafetyPro AP2 Air Purifier – Buy Here

Amazon:

  • xTool M2 Laser Cutter & Engraver (xTool Store) – Buy Here
  • xTool CMYK Inkjet Printing Module – Buy Here
  • xTool SafetyPro AP2 Air Purifier – Buy Here
  • USB C Screwdriver – Buy Here

Hardware I Used To Build The Arcade

There are a lot of Raspberry Pi projects that benefit from the extra performance of the Pi 5, but this isn’t one of them. RetroPie still isn’t officially available on the Pi 5 and even if it was, a Pi 4 already has more than enough performance to play most retro games anyway.

With the prices of Pi’s at the moment, saving some money and getting a Pi 4 is an easy choice. I actually ended up going with a 2GB Pi for this project.

The Pi conveniently mounts directly onto the back of the 10-inch touchscreen from SunFounder, using their included mounting hardware. I quite like this display because it already includes a built-in 5-volt, 5-amp power supply for the Pi and it includes all of the hardware and cables required to connect it.

That means one short USB-C cable powers the Pi directly from the display, so there’s no need for multiple power supplies or extra wiring inside the enclosure. It’s a display solution for a Pi 4 or Pi 5 that doesn’t require any other hardware.

To keep the Pi cool, I’ve added a small stick-on heatsink together with a 40mm PWM fan mounted to the acrylic cover above it. The cover’s holes aren’t designed for a 40mm fan (it looks like it may be designed for a 50mm fan), but I managed to mount it anyway using the ventilation slots.

I’m not sure if the fan is necessary, but at least this way it’s there if I need it, and this is a PWM-controlled fan, so it can be turned on and off through Pi OS if it needs to be.

Then no arcade machine is complete without proper controls. Rather than a handheld controller, I got a complete USB joystick and button kit from AliExpress for around fifteen dollars. Given the price, I wasn’t expecting much, but I was pleasantly surprised.

The joystick feels reasonably well built and the buttons have a satisfying click. It’s also completely plug-and-play with RetroPie. It didn’t need any drivers or configuration. I just plugged it in and it worked.

The display originally came with its own speakers that receive audio over HDMI. These come with a short lead and stick-on pads. You should use these for your build. Unfortunately, I’ve managed to lose my set in moving to a new workshop, so instead I sacrificed a tiny USB speaker set and removed the internals to use for this build. 

This set of speakers took a lot more time than I expected to get it to work. Because the display allows for HDMI audio, RetroPie kept defaulting to sending the sound to the display instead of to my USB speakers. After a bit of experimenting with ALSA and RetroPie’s audio settings, I managed to convince it to use the correct output. If you use the speakers that come with the display, then they should just work right away.

Now that we have the hardware sorted, we need something to install it in.

Designing The Arcade Cabinet

I designed the cabinet as a flat pattern in Inkscape to be laser cut from some 3mm pine or basswood plywood. I like the retro feel that a wooden cabinet brings.

I have removed the artwork from my design file to comply with copyright laws.

For the layout, I went with six gameplay buttons alongside the joystick. Like with a handheld controller, this gives me everything I’d normally need for Super Nintendo games and is still usable for classic arcade games too. From my limited research, it looks like the most common layouts use either 6 or 8 buttons, the additional two buttons are for triggers.

Above those, I added dedicated Start, Select and Menu buttons.

I then added some decals, button labels and a retro pattern to the side panels.

The enclosure itself uses interlocking tabs on each panel which automatically align all of the parts during assembly to make the whole cabinet easier to build. 

I also designed removable access panels for the back and underside. So if I ever need to replace a component, troubleshoot something or upgrade the hardware later on, I don’t have to take the whole cabinet apart.

Making Up The Enclosure Components

To make up the enclosure parts, I’m using the xTool M2. One of the things I really like about this machine is that it can both print onto and laser cut materials.

So I can print the graphics directly onto the plywood first, then swap over to the laser head, and then cut every part out using the same machine. Everything lines up perfectly because the material never has to move.

The side panels came out really well and I love the Pac-Man graphics on the front panel.

After an evening of printing and laser cutting, the panels are all complete and ready for assembly.

Assembling The Arcade Cabinet

Assembly is pretty straightforward and I used some basic wood glue for all of the joints.

The interlocking tabs line everything up, so we can add some wood glue to the edges, slot the pieces together and then hold them together with masking tape until the glue is dry. 

As with most of my flat pattern 2D designs, it didn’t all work out perfectly on the first go. I switched the back and bottom panels around when making the port cutouts and labels so the Ethernet and power port were underneath the console. So I had to remake the one small panel for the bottom and print and make the cutouts on the back panel. 

With the enclosure finished, now we can start installing all of the hardware.

Let’s start with the speakers, which I stuck into place on the inside with some double-sided tape. Mine plug into the Pi’s USB port, but if you’re using the speakers that came with your display, then these plug into the small white port at the top of the display’s PCB.

The joystick is secured with four M5x10mm screws and M5 nuts through the control panel surface. The buttons are pushed in through the top surface and clip into place using their own built-in retaining clips.

For some reason, the hotkey is a smaller button, which I only noticed when I tried to install it. So I had to make a little adaptor to hold it in place too. I’ve corrected this in the design file, check what size your buttons are before you cut your panels out.

Plug the buttons into the joystick control board. If you’re using the same one that I did, plug them into the bottom row of ports, as the top row is reserved for special functions. RetroPie allows you to remap all of them to specific controls, so it doesn’t matter which button is plugged into which port.

To make powering the system easier, I built a short extension cable from the display’s power connector out to the rear of the enclosure. So the whole arcade will get power from a single connector on the back. I made mine up using spare parts that I had lying around my workshop, but I’ve left a link to a similar pre-made version that you can use as an alternative.

I also added an Ethernet extension because having a network connection on the back makes it much quicker to copy ROMs and update the system whenever I need to. I glued this into place with some hot glue.

Next, I flashed RetroPie to a microSD card using Raspberry Pi Imager.

We can then put the card into the Pi, and the display assembly then mounts onto an internal support bracket which positions it the right distance behind the front opening. This is held in place with some M2.5 screws that were supplied with the display. Remember to plug all of the USB devices into your Pi before mounting it, as you won’t be able to do so after it’s mounted. If you want to use a wireless controller or mouse and keyboard, plug the dongle into the Pi at this stage too.

Lastly, close up the cover panels with M3 screws, four for each cover, and then stick four rubber feet onto the bottom, one in each corner.

First Boot and Arcade Setup

That’s the arcade complete. Plug in a power cable, and you can then boot it up. The first boot might take a little longer than subsequent ones but it should boot up to the RetroPie home screen.

The joystick and controls also need to be mapped to the correct functions in RetroPie. You can do this through the input configuration option in the settings menu.

You can then install your ROMs. There are a few ways to do this, the easiest two are to copy them over to your Pi using the network connection (like a NAS) or plug in a flash drive with the ROMs loaded into the correct folders. Also, make sure you only use ROMs you’re legally allowed to use and comply with the copyright laws in your country.

Final Thoughts On The RetroPie Arcade

I now have a fully self-contained desktop arcade machine that doesn’t take up much more space than a computer. It can run a huge number of classic arcade and console games and because it’s based on a Raspberry Pi, it’s also easy to customise, repair and upgrade in the future.

I’m really happy with how this project turned out. It’s compact but still has a nostalgic arcade feel to play.

If you’d like to build a similar arcade, I recommend looking at the xTool M2, it’s a great machine for making up custom laser-cut parts and you can print directly onto the parts too. The SafetyPro AP2 air purifier also makes it easy to work in a small workshop without having to worry about venting the laser out of a window.  The print and cut workflow on the M2 really steps laser-cut projects up to the next level.

TRMNL X: A Larger Smart E-Ink Display That’s Built to Last

Last year I built my own version of the TRMNL from scratch, and it quickly became one of my most popular projects. Rather than simply showcasing their own hardware, I took advantage of the fact that the platform is open source. I designed my own enclosure, added a display and electronics, installed TRMNL’s software, and created a completely custom BYOD (bring your own device) version.

Now TRMNL has released their latest model, the TRMNL X, and it isn’t just a larger version of the original. It introduces a number of hardware improvements while keeping the same minimalist philosophy that made the original so appealing, displaying useful information without notifications, distractions or another bright LCD screen in your house competing for your attention.

After spending a couple of weeks with it, here’s a look at what’s changed and whether it’s worth considering over the original.

Here’s my video of the TRMNL X, read on for my write-up:

Where To Buy The TRMNL X

Use the code mklements at checkout to get $10 off

First Look At The TRMNL X’s Hardware & Features

The TRMNL X comes in a large black box with white text on it and includes the TRMNL X itself long with the charging puck and mount, a charging cable, microfibre cloth.

A Much Larger Display

Let’s start with the most obvious change, the display size.

The original TRMNL was designed as a compact desktop or wall-mounted information display. The TRMNL X significantly increases the available screen space with a 10.3-inch e-ink display running at a resolution of 1872 × 1404 pixels.

The extra screen area makes a noticeable difference to day to day use. There’s enough room for larger text, more detailed graphics and, perhaps most importantly, layouts that combine multiple pieces of information without feeling cluttered or too small to read.

Whether you’re displaying a calendar, weather forecast, task list or system dashboard, the larger display allows much more information to be shown at a glance.

A Clever Magnetic Mounting System

One of the new hardware additions is the new magnetic mounting puck.

Magnetic Charging Puck

Rather than plugging a charging cable directly into the display, the USB cable plugs into to the mounting puck. The display then snaps onto it magnetically using built-in contacts.

USB C Port On Magnetic Charging Puck

This simple design makes the display easy to mount for charging, rotate between portrait and landscape orientations, or relocate entirely. The puck itself can be mounted to a wall, desk, refrigerator or almost any flat surface using the included mounting plat and the display then attaches and detaches as needed.

There’s also a new touch sensitive bar beneath the screen. Pressing or swiping it manually refreshes the display or reloads the current page or playlist, making it easy to cycle through screens without waiting for the next scheduled update. Since this e-ink display is designed to refresh infrequently to maximise battery life, having a manual refresh option is quite useful.

Touch Bar In The Middle

Other Hardware Improvements

Internally, the TRMNL X includes a number of other welcome upgrades.

Battery options have increased to either 6000mAh or 12000mAh. These provide approximately two to six months of runtime between charges depending on how frequently you set it to refresh.

TRMNL X Internals

Wireless connectivity has also been improved and now supports both 2.4GHz and 5GHz Wi-Fi, this is great considering the 2.4GHz band is often flooded with smart home devices.

TRMNL X Wifi Antenna

An integrated accelerometer automatically detects the display’s orientation, allowing it to easily switch between portrait and landscape layouts.

TRMNL X Portrait Mode

The Software Is Still The Important Part With The TRMNL X

As good as the hardware is, it’s only half of the TRMNL experience, the software is the important part.

Web Dashboard

Content displayed is managed through TRMNL’s server, where everything revolves around three main areas:

  • Plugins, which are essentially the applications that display individual content pages.
  • Recipes, which are community created plugins.
  • Playlists, which control how different screens are displayed throughout the day.

The playlist system is particularly flexible. Rather than simply rotating through screens in sequence, you can configure exactly what appears based on the day of the week, time of day or even set up multiple plugins or recipe to be displayed on a single page, as feature that’s particularly good on the TRMNL X.

For example, you could display your calendar, weather and news each morning or create a combined “Start My Day” dashboard, then show only your task list and calendar while you’re working, and automatically change to a dinner recipe in the evening.

The larger display on the TRMNL X really enhances this functionality because there’s enough room to easily combine multiple plugins onto a single screen without everything feeling cramped.

Photos Look A Lot Better

One area thats easy to see the upgrade is with image quality. The TRMNL X has roughly 80% higher pixel density than the original display and increases greyscale rendering from 4 levels to 16 levels.

In principle those numbers don’t sound anll that exciting, but the real-world improvement is very noticeable.

Displaying Images On The TRMNL X

Photographs look significantly smoother, gradients are much cleaner and overall image quality is a lot more natural. This improvement doesn’t come across well on camera, but it’s immediately obvious when you see the display in person.

Repairability Is One of TRMNL’s Biggest Strengths

There’s another aspect of the TRMNL ecosystem that I think deserves far more attention.

I use my original TRMNL on our refrigerator as a family calendar. I glued a couple of magnets to the back so it sticks to the fridge for day to day use and can be removed whenever it needs charging.

Magnets On Back Of TRMNL

A few weeks ago, however, I accidentally knocked it off. It landed face down and cracked the e-ink display.

Cracked eink Display

For most consumer electronics, that would be the end of the device. Either replacement parts aren’t easily available or the cost of repair exceeds the cost of buying a new one.

TRMNL takes a different approach. They openly support repairs and hardware modifications. They sell replacement parts for failed components, publish part numbers and make it straightforward to source compatible hardware yourself.

Replacement Parts

So rather than replacing the entire device, I found the correct display through a local supplier, bought it for much less than the cost of a new TRMNL and replaced it myself.

After waiting for shipping and spending only a few minutes fitting the new display, the TRMNL was working again.

It might not be the most glamorous feature, but it’s one of the things I appreciate most about the platform. TRMNL isn’t trying to stop you opening the device or force you to replace the entire product when one component fails. Their focus on repairability is rare and I think deserves more recognition.

Should You Upgrade To The TRMNL X?

So is the TRMNL X more useful than the original?

For me, the answer is yes, but not simply because it’s bigger. It’s because the additional display area changes how the device can be used.

The original TRMNL works really well as a personal desktop display or a dedicated information panel showing a single application.

All Three Versions Side By Side

The TRMNL X feels much better suited to shared spaces such as a family kitchen, home office or workshop where you want several pieces of information visible at once.

Weather Bar Display

The magnetic mounting system also makes moving, rotating and repositioning the display quite convenient.

That said, I do have a concern about the pogo pins attaching the USB port to the TRMNL X. Since charging is done through the pogo pins, I would have liked to see a secondary USB charging port on the display itself as a backup in case those contacts eventually wear out.

Charging Puck Pogo Pins

Still Open, Customisable and Self-Hostable

One of the biggest reasons I like TRMNL is that the platform remains open and highly customisable. It’s easy to use TRMNL’s hosted service, but you’re not locked into it.

If you’d prefer to keep your data entirely within your own network, you can self-host the server locally and serve your own content directly to your TRMNL. That means your information never has to leave your own home.

TRMNL X First Look

The team has continued to improve both the software and documentation, making self-hosting quite accessible. Today it’s essentially as simple as spinning up a Docker container on a PC or server within your home network.

Terminus To Run Own Server

For anyone already running a homelab, NAS or always-on server, this is an especially attractive option.

Final Thoughts On The TRMNL X

The TRMNL X is much more than just another e-ink display.

It’s a flexible platform for building an information display tailored to your home, workshop or office. Whether you want a family dashboard, a home status display or a workshop command centre, the larger screen makes those use cases a lot more practical than the original model.

TRMNL Open Source BYOD Build

Perhaps most importantly, they continue to support open hardware, repairability and user customisation rather than locking owners into a closed ecosystem.

At over US$300, it‘s not exactly cheap. However, that price includes continued access to TRMNL’s hosted platform without an ongoing monthly subscription, a pricing model that’s quite rare and one I’m sure most people would prefer.

If you’d like to learn more, here are the links to each display. For anyone looking for a distraction-free information display that can grow alongside their projects, it’s well worth a look.

I Built a Smart Ventilation System for My Workshop

Every evening I spend a few hours in my workshop filming videos, designing parts, editing, or just working on projects. It’s only about three by four and a half metres, and because I don’t want dust blowing in and I’m often filming, I normally keep the door and windows shut.

My Workshop

But recently that had me wondering… What’s actually happening to the air in there? I’ve got printers, printers, dust from outside fumes from soldering, or is there something else I should be worrying about?

So over the past week I’ve been measuring the air quality, and the results weren’t quite what I expected.

Here’s my video of the project, read on for the write-up:

What Your Need To build Your Own Workshop Ventilation System

Tools & Equipment Used:

Some of the above parts are affiliate links. By purchasing products through the above links, you’ll be supporting my projects, at no additional cost to you.

Investigating My Workshop Air Quality

Networked Artifacts recently sent me one of their Air Lab air quality monitors. Rather than doing a traditional review where I spend ten minutes talking through specifications, I thought it’d be more interesting to actually use it to answer a few questions that I’ve had about my workshop.

The Air Lab measures a range of metrics including temperature, humidity, carbon dioxide, volatile organic compounds, nitrogen oxides and pressure and it continuously logs all of that data over time. That logging is really the important feature here because instead of looking at one measurement, we can actually see how the environment changes over an entire evening.

Air Lab Logging Functions

So I set up three different tests, each running for 2 hours in the evening, a baseline, a 3D printing test and then an evening working.

Baseline Test

First I wanted to establish a baseline. What does the workshop actually look like when nothing’s happening? So I left the monitor running for an evening with no printers running and nobody working inside.

As you’d expect everything stayed pretty stable. CO2 stayed around an average of just over 500ppm. Temperature slowly dropped through the evening and humidity increased. VOCs stabilised because I moved the Air Lab to my workshop and then trended towards the average of 100 and NOx didn’t have any notable change.

So nothing particularly surprising here, but this gives us a useful reference point before we start changing things.

3D Printing Test

The next question was one I’ve seen discussed online countless times. What effect do 3D printers actually have on air quality? To find out I loaded up all three printers with roughly two-hour prints, closed everything up, and let the AirLab continuously record what happened.

This wasn’t intended to be a lab test. It’s simply representative of a pretty typical evening in my workshop and within the capabilities of the airlabs sensors. It would have been great if it had a PM2.5 sensor too, but perhaps that can be a followup video.

PM2.5 Sensor

After two hours of printing, the results were somewhat unexpected. I only really print in PLA and PETG, which are considered cleaner filaments but I didn’t expect there to be hardly any change over time. CO2 was similar to the previous evening, this time just under 500ppm. Temperature and humidity looked similar to the previous evening too. Despite the printers dumping heat into the workshop, it’s quite poorly insulated as you can see from the ambient temperature and so the temperature doesn’t increase over the 2 hour period.

The most interesting is VOCs, I expected this graph to slowly trend upwards and instead there is hardly any change. It looks almost identical to the previous evening too. NOX is again expectedly uneventful as printers don’t give off any nitrogen oxides, that’s usually increase by burning fossil fuels.

Working In My Workshop

But interestingly… as I discovered working in my workshop on this third evening. The printers weren’t actually the biggest issue. I was.

Working In My Workshop

Carbon dioxide steadily climbed throughout the evening. This room only has a volume of round thirty-two cubic metres. With the windows closed and me sitting in here for a couple of hours, I was gradually replacing fresh air with exhaled carbon dioxide.

Working CO2 Levels

Over the evening, it climbed to just under 2000 parts per million. As a rough guide, clean outdoor air is around 400-500ppm, good indoor air is under 1000ppm and anything over that could do with some ventilation improvement. Over 1500ppm you’ll start noticing signs of fatigue and sleepiness, and over 2000ppm you may experience headaches and drowsiness. So an increase to over 1800ppm in only 2 hours with just me in the workshop is quite bad.

Once I saw this graph, it made sense why after editing for a few hours I’d sometimes walk back into the house feeling a little sluggish.

Designing The Workshop Ventilation System

So now I had a problem. I clearly needed more fresh air and the obvious answer is simply opening a window, but that creates other problems. Dust, noise and rain. What I really wanted was filtered fresh air entering the workshop automatically whenever it was actually needed.

Opening a Window

So naturally… I opened Fusion and started designing this ventilation system.

On the outside is a rain hood to stop water entering. Behind that is a removable filter which uses inexpensive air-conditioning filter media to catch most of the dust. Then five 140-millimetre Arctic fans draw the filtered outside air into the workshop.

The whole assembly is designed to slot into my open window tracks and seal off any gaps around the fans

The assembly is 3D printed from PETG so it’ll happily survive being partially outdoors. I had to split it up quite a bit to allow it to be printed on the bed of my printers.

3D Printed Workshop Ventilation System Parts

The parts then all screw together using a combination of brass inserts and M3 button head screws.

Internally, I’ve cut a section of air conditioning filter media which sits between the rain hood and the fans. This is held in place by some 3D printed retainers and behind that sits the five fans.

I bought a 5 pack of 140mm Arctic P14 PWM fans which should be good for the pressure restriction that the filter media creates and that leads me to the next design addition.

Automating Running The Fans

Although the fans solve the air quality issues, I don’t really want five fans running flat out continuously. Most of the time the air quality in my workshop is perfectly fine.

Arctic P14 PWM Fans

So instead of building a simple fan system, why not use the Air Lab to make it smart?

One of the nice things about Air Lab is that it’s got some GPIO pins. These can be configured as PWM output pins, which is perfect to control the fans.

GPIO Pins On Air Lab Monitor

The Air Lab is open source, so you can edit or write your own firmware for it to use these pins to add functionality, but they’ve also cleverly included an option to create and run your own plugins on the device. So, I wrote a custom plugin that continuously monitors the sensor data and automatically adjusts the fan speed on the stack accordingly.

package main

func main() {
	
	// Set GPIO pin as PWM
	PWMConfig(1, 10000)
	
	for {
		// Clear screen
	    Clear(White)

		// Lookup info
		tmp := Lookup(SensorTemperature)
		co2 := Lookup(SensorCO2)
		voc := Lookup(SensorVOC)
		nox := Lookup(SensorNOX)
	
		// Format string
		strtmp := Format("Temp: %.1f C", tmp)
		strco2 := Format("CO2: %.0f ppm", co2)
		strvoc := Format("VOC: %.0f ", voc)
		strnox := Format("NOX: %.0f ", nox)
	
		// Write string
		Write(Width/2, 10, 0, Pixel16, Black, "Workshop Ventilation", AlignCenter)
		Write(Width/4+10, 75, 0, Pixel16, Black, strtmp, AlignCenter)
		Write(Width/4+10, 40, 0, Pixel16, Black, strco2, AlignCenter)
		Write(Width*3/4+10, 75, 0, Pixel16, Black, strvoc, AlignCenter)
		Write(Width*3/4+10, 40, 0, Pixel16, Black, strnox, AlignCenter)

		// Set fan duty
		duty := 0 // Default 0% or Fan Off
		fanPercent := 0
		reason := "CO2 Normal"

		if co2 >= 1500 {
		    duty = 4095
		    fanPercent = 100
			reason = "CO2 High"
		} else if co2 >= 1250 {
			duty = 3072
		    fanPercent = 75
			reason = "CO2 Elevated"
		} else if co2 >= 1000 {
		    duty = 2048
		    fanPercent = 50
			reason = "CO2 Elevated"
		} else if co2 >= 750 {
		    duty = 1023
		    fanPercent = 25
			reason = "CO2 Rising"
		}

		// Temperature override
		if tmp >= 35 && duty < 3072 {
		    duty = 3072
		    fanPercent = 75
		    reason = "Temp High"
		}

		// VOC override
		if voc >= 150 && duty < 3072 {
		    duty = 3072
		    fanPercent = 75
		    reason = "VOC High"
		}

		// NOX override
		if nox >= 6 && duty < 3072 {
		    duty = 3072
		    fanPercent = 75
		    reason = "NOX High"
		}
		
		strfan := Format("Fan Speed: %d%", fanPercent)
		Write(Width/2, 105, 0, Pixel16, Black, strfan, AlignCenter)
		Write(245, 108, 0, Pixel8, Black, reason, AlignCenter)
		
		PWMWrite(1, duty)
	
		// Wait for input or timeout after 1s
		event := Yield(1000)

		// Handle escape
		if event == Escape {
			return
		}
	}
}

If CO₂ starts climbing, the fans slowly increase over four different levels.

Similarly, if VOCs, NOx or temperature increase, airflow increases too.

The workshop effectively ventilates itself only when it actually needs to, and the rest of the time the fans are off. 

Troubleshooting The PWM Control

Of course, nothing ever works perfectly the first time. I connected a fan up and nothing happened, it just ran at full speed even when the Air Lab said it should be off or at a low speed.

Air Lab Workshop Ventilation Plugin

So out came the oscilloscope. It turns out I had set the PWM frequency to 25kHz, which is ideal for the fans I’m using, but that seems to be out of the range that the ESP32 in the Air Lab can produce, so it just outputted nothing. 

After a few iterations, I reduced the frequency to 10kHz, which then seem to work on the Air Lab and the fans seem happy with it. So then I could get this fan reinstalled and try it out.

The fans now spin up when CO2 increases and automatically stop when it comes back down again. 

Testing The Ventilation System When Working

Now for the real test. I repeated the same two hour work experiment the following evening, but this time with the automatic ventilation running and the difference was immediately obvious.

CO2 Levels With Ventilation System Running

Instead of continuously climbing, as CO2 rises, the fans ramp up automatically, fresh air is brought in and the CO₂ level drops again. This keeps the average at a much healthier level.

Better yet, when I’m not in here or I’m only in here briefly, the fans simply stop.

Fans Stopped On Ventilation System

Final Thoughts On My Workshop Ventilation System

This actually turned out to be a much more interesting project than I expected.

I originally set out just to see what was happening to the air in my workshop and instead I discovered that the biggest issue wasn’t the printers as I had thought, it was simply me spending hours in a small sealed up room.

Now the workshop monitors itself, logs everything continuously and automatically brings in fresh filtered air whenever it needs to, and because it’s driven directly from AirLab, I can keep extending it with additional logic or changing parameters as I think of new ideas. They even have integration with Home Assistant.

Let me know in the comments section below what you think of my Workshop Ventilation System.

I Rebuilt My 3D Printed Lab Rax Homelab… in Wood

This entire homelab rack took less time to cut than a set of these Lab Rax corner pieces take to 3D print. Today, we’re going to find out whether laser cutting is a good alternative to 3D printing for a Lab Rax homelab.

Lab Rax is a 3D printable 10” homelab system, and over the last year, it’s become one of the most popular projects on my channel. During my recent move to a new workshop, I found myself staring at a stack of plywood sheets that I uncovered and wondered if there was another way to build one.

Laser cutters are incredibly fast compared to 3D printing. They’re great for producing flat-pack components, and the new M2 that xTool sent over for a project can not only cut the parts out, but it can actually print directly onto them too.

So I’m going to try to convert the Lab Rax design into a laser-cut wooden homelab system while still keeping parts compatible with the original 3D printed version.

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

What You Need To Build Your Own Wooden Lab Rax Homelab

Tools & Equipment Used:

  • xTool M2 Laser Cutter & Engraver – Buy Here
  • xTool CMYK Inkjet Printing Module – Buy Here
  • xTool SafetyPro AP2 Air Purifier – Buy Here
  • Gorilla Wood Glue – Buy Here
  • USB C Pencil Screwdriver – Buy Here

Designing the Wooden Version

The first step was converting Lab Rax from a 3D printable design into something that could be laser cut from flat sheets of material. Rather than redesigning it from scratch, I wanted this version to look as close as possible to the original Lab Rax design, so the overall dimensions, shape and styling are all based on the existing design. I also wanted the racks to remain cross-compatible with the 3D printed components.

To do that, I started out by creating a flat pattern in Inkscape. Every panel, slot and mounting feature had to be laid out as a 2D profile that could be cut from 3mm plywood.

One neat feature of laser cutting is that you can create strong structures using interlocking tabs and slots. So, instead of relying on screws or printed brackets, many of the joints are designed to interlock before being glued together.

After an hour or two of design editing, I had a complete set of panels ready for cutting. Before we cut them out, I want to add a little bit of Lab Rax branding.

Printing and Cutting the Homelab Parts With The xTool M2

This is where the xTool M2 really allows you to build interesting projects. Unlike a traditional laser cutter, the M2 combines printing, laser cutting and engraving into a single machine.

For this project, I’m using xTool’s print-and-cut workflow. The process starts by swapping to the printing module and printing the graphics directly onto the plywood surface.

I created some Lab Rax branding and decorative elements that would normally require stickers, decals or paint masks. Being able to print them directly onto the material makes the finished build look much more polished.

The M2 has a pretty clever head design. Rather than fiddling around with screws and cables, each module is held in place magnetically and just requires a single usb c cable to connect it, so swapping between modules takes a couple of seconds.

Now let’s get the first panel printed. I found that light colours tend to work better on plywood than darker ones and black. The colour on these runs in the wood grain.

Once the printing is finished, it’s simply a matter of swapping over to the laser module and running the cut job to cut the profiles out.

The machine I’m using has the 10-watt laser module installed, but xTool also offers a more powerful 20-watt module as well as a 3-watt infrared laser. All of them are designed to swap onto the same gantry system.

Now let’s get the rest of the rack parts made up.

The working area is the M2 is impressive for its overall size. It’s 610 by 569 millimetres, which is a huge step up from the original M1 that I used previously. It gives you a lot more flexibility when working with larger panels and project parts like these.

After about an hour, the M2 had produced a complete set of Lab Rax parts ready for assembly.

Smoke Management and the SafetyPro AP2 Air Purifier

One thing that anyone who’s used a laser cutter knows is that cutting plywood sheets like this creates a lot of smoke. This is something that xTool have put a lot of effort into addressing.

The M2 is fully enclosed and can either be vented outside through a window or connected to xTool’s new SafetyPro AP2 Air Purifier.

The SafetyPro AP2 is impressive. The filtration process starts with a layer containing 36 cyclones that separate larger visible particles before the airflow passes through five additional replaceable filter stages.

The final stage is a HEPA filter capable of removing 99.97% of particles.

What makes it even more convenient is that it connects to the M2 over Bluetooth, and the purifier can automatically start and stop with the machine. xTool’s Creative Space software automatically adjusts the extraction settings based on the material you’ve selected.

It’s a really neat setup that makes running a laser cutter indoors much more practical. I’ve cut all of these parts in a small workshop, and the area is still completely usable. An air quality monitor didn’t register any significant change over an evening of cutting. 

Assembling The Laser Cut Lab Rax Homelab

With all of the parts cut, it’s time to find out whether this design actually goes together as intended. Unlike a 3D model, these flat designs are a bit more difficult to visualise how they will fit together once complete, so there’s more room for error.

Assembly is pretty straightforward.

I’m just using some basic wood glue to hold the pieces together. I started with the two main side panels and then slotted the top and bottom sections into place. The laser-cut tabs help align everything, while a small amount of wood glue holds the joints together. I used masking tape to hold the pieces in place while the glue dries.

Once the main outer frame was assembled, I added the vertical rack posts. These contain all of the rack mounting holes and are what make the system compatible with the existing Lab Rax ecosystem.

Finally, I installed the corner pieces that give the rack its distinctive Lab Rax appearance, these also help square all of the parts up. 

I then flipped the rack over to do the other side.

At this point, it was already looking really similar to the original 3D printed version.

The last addition is the laser-cut handle reinforcements. These strengthen the handles and make them a bit more comfortable to carry when the rack is fully loaded.

And that’s the plywood Lab Rax 10″ home lab rack complete and reayd to install hardware into:

Making Up The Hardware Trays

With the main rack complete, it was time to cut and assemble the rack trays for the homelab equipment. For this first test setup, I’m using a fairly typical home lab configuration from my first Lab Rax build.

At the top is a mini PC, below that is a TP-Link network switch, underneath the switch is an SBC shelf with four Raspberry Pi’s installed in it, and finally, at the bottom, is a slim NAS.

I’ve also got a large 120mm fan to install at the top to provide some cooling to the rack.

Just like the rack itself, these trays are adapted from the original 3D printable versions, so they are all cross-compatible. The designs were modified to suit laser-cut construction while still maintaining the same overall dimensions and functionality.

The print-and-cut workflow on the xTool M2 came in handy again here because I could add labels and graphics directly onto the trays before cutting them out.

These then glue together much the same way as the main rack.

Now, let’s get the hardware installed into the trays and then get them into the homelab.

Completed Wooden Lab Rax Homelab

With all of the equipment installed, the wooden Lab Rax homelab is now complete.

I wasn’t sure how this project was going to turn out when I started, but I wanted to see whether a system originally designed for 3D printing could be successfully laser cut, and it has come out better than I expected. I actually quite like the light wood look.

It’s recognisably a Lab Rax homelab, it’s compatible with most of the existing components, and the opposite is true too, you can install 3D printed gear into this wooden version. Best of all, it can be produced much faster than waiting for 3D printed parts.

The only thing that’s a bit fiddly is installing the screws because you can’t use brass inserts like on my printed racks, but it could easily be adapted to use square nuts or rack studs for mounting.

I’m interested to hear what you think of it. Would you build a laser-cut version like this, or do you still prefer the original 3D printed design?

Let me know in the comments section below.

Final Thoughts

A big thank you to xTool for sending over the new M2 to make this project possible.

If you’d like to learn more about the M2 or the SafetyPro AP2, take a look at the product pages below:

If you enjoyed this project, follow my blog or subscribe to my YouTube channel for more tech and electronics projects, tutorials and reviews.

I Built a Compact Raspberry Pi Cluster Using The Makera Z1 Desktop CNC Machine

This entire Raspberry Pi cluster fits in the palm of my hand. Inside this small acrylic enclosure is four independent Raspberry Pis, their own dedicated network switch, a system monitoring display and enough compute power to run a homelab stack.

I built the entire thing myself from sheets of acrylic and aluminium using the new Makera Z1 desktop CNC machine.

Today I’m going to show you how I designed it, cut and engrave all of the parts and see if we can turn four Raspberry Pis into the cool mini datacenter.

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

Where To Buy The Components To Build Your Own Compact Pi Cluster

Tools & Equipment Used:

Some of the above parts are affiliate links. By purchasing products through the above links, you’ll be supporting my projects at no additional cost to you.

Designing The Compact Raspberry Pi Cluster Enclosure

Over the past few years, I’ve built a lot of Raspberry Pi projects, NAS systems, Routers, Homelabs & Mini racks, but apart from the large 8-node cluster that I built a while back, I’ve never revisited a Pi cluster. Not because they’re difficult to build, but because most of them just end up looking like a pile of boards cabled together.

I wanted to build something that looked like a bit of thought and design had gone into it. Something that would look at home sitting on a desk. So I started by designing this.

The cluster houses four Raspberry Pi’s. Two Raspberry Pi 5s and two Raspberry Pi 4s. Although the trays are swappable so you can run any combination of Pi 3, 4 and 5s. Below them is a dedicated five-port network switch, and on the left is a built-in system monitoring display.

This is all enclosed in a custom acrylic chassis with a tinted top and side panels so you can see the hardware inside it.

Node 1 is the primary Pi 5 and drives the portrait-mounted 4.3-inch DSI display alongside it. Next to it is a second Pi 5, which becomes Node 2 and so on.

Makera Z1 Desktop CNC & Cyclone Dust Extractor Lite

To make up the enclosure, I’m going to be using the newly launched Makera Z1 CNC machine. Makera sent over both the Z1 and their new Cyclone Dust Collector Llite system for me to try out. Unlike the last time I tested one of these, this is now a production model which they’ve made some improvements to.

One of the things I really like about it is that it’s capable of working with a wide range of materials. For this build we’re going to be cutting and engraving acrylic, cutting aluminium, engraving labels from bicolour stock and even adding chamfers to some of the edges. Normally that would require several different workshop tools.

Making Up The Acrylic Enclosure Components

The enclosure is primarily made from acrylic, and I used Fusion360’s manufacturing workspace to create and set up the CNC files for the parts.

The front, rear and bottom panels are opaque black acrylic, while the top and side insert panels use a tinted grey acrylic so that the hardware remains partially visible inside.

I started out by machining all of the main panel profiles. To make up these panels, I’m using Makera’s 2 millimetre diameter end mill, which leaves really clean finished edges in acrylic.

First, I made up the front panel. The Z1 has some helpful features like an outline trace to help confirm that the stock is correctly in position, and that there’s enough of it, and it also has auto levelling, which probes the bed and compensates for any gradient or warping.

One thing I always enjoy about machining acrylic is watching the parts gradually emerge from what starts as a completely blank sheet.

One of the strengths of a CNC machine over a laser cutter is that you can precisely control the depth of cuts in materials, so you can create pockets for inlays and steps for stronger joints. I’ve used these for each node’s faceplate as well as the handles and side panels.

With the main profiles cut, let’s move on to the top tinted panel, which features a large Raspberry Pi logo that sits directly above the display. To do that’ we’ll switch over to an engraving bit using the Z1’s quick tool changer. The Z1 also shows you which tool to change to using the led bar on the tool head.

The engraving adds a nice visual detail without making the design look busy, and because it’s machined directly into the acrylic it feels a lot more premium than just adding a sticker to it.

This panel also gets chamfered edges, so again we can switch tools, now over to a chamfer bit.

Machining The Aluminium Handles

Next, let’s make up the aluminium handles. The handles added to either side of the enclosure are decorative rather than functional, but they help reinforce a miniature rack-mount aesthetic.

To machine these, I switched over to a 1/8” metal cutting end mill. The thicker tool helps with rigidity to cut the aluminium.

Once the outside profiles were complete, I also added chamfers to soften the edges and make them feel more like a finished product.

You can also get a 3D probe for the Z1, this makes it really easy to pick up a reference point for two-sided jobs or to get the centre of cylindrical work pieces. It’s load-based, so it works on both conductive and non-conductive materials. I used this to flip the handles over to machine the step on the back of the handles that interfaces with the acrylic side panels.

Cutting & Engraving the Node Labels

Lastly, we need to make up the aluminium labels for each node. These are cut from a piece of bi-colour stock with aluminium on the front and a black backing. To engrave and cut these, I’m going to use a cool accessory available for the Z1, a vacuum bed. This bed cleverly makes use of the cyclone dust extractor to suck the workpiece down onto the bed, allowing you to quickly and easily use thin stock without having to clamp it down each time.

For smaller aluminium sheets like these node labels it works really well. It also means that there are no clamps getting in the way of the tool path so you can run closer to the edges.

We’ll use an engraving bit to cut the label text and then an end mill to cut them out.

Finishing Off The Parts

And that’s all of the parts complete. Now, I just need to go through the usual cleanup to remove their tabs and sand the edges smooth. I did this using a combination of a Dremel rotary tool and a simple sanding block with different grit sides.

I’ve found that very fine-grit sanding blocks are great for polishing up the edges of the acrylic parts, and abrasive wheels are great in the Dremel to clean up the aluminium parts.

The cyclone dust collector lite works really well to collect chips during cutting and engraving and to vacuum up the inside of the Z1 after use. It’s also impressively quiet, running at just 70dB flat out, which is a lot less than a typical shop vac, which would sound about twice as loud, around 80-90dB. 

Assembling The Acrylic Pi Cluster Enclosure

With that all done, we can then move on to assembling the acrylic compact Pi cluster enclosure.

Most of the acrylic structure is bonded together using Weld-On #3 acrylic cement. This creates a really strong joint and leaves the assembly looking almost seamless. I like using this particular cement because it’s very thin, so you can set a joint using clamps and the cement wicks into the seam afterwards and creates a quick and strong bond.

The top panel is removable and secured using four M2.5x6mm screws afterwards so that the cluster can still be serviced later.

The handles are also screwed on, this time using M3x8mm screws since acrylic and aluminium don’t really like being glued together. You could use some epoxy adhesive for this but I think the two screws add some nice detail to the sides.

Lastly, I stuck some rubber feet onto the bottom so that it doesn’t slide around and has a bit of vibration dampening. 

Installing The Pi’s and Electronic Components

The cluster is powered from a single 5 volt power supply connected through an XT60 connector on the rear. I usually use barrel plugs for power supplies but they can’t handle the combined amperage of all four Pi nodes. Instead of having four separate USB power supplies, all four Pis are powered directly through their GPIO pins. This keeps the wiring cleaner and makes the entire system much more compact.

Each Raspberry Pi is mounted onto its own removable sled using M2.5 screws into tapped holes in the acrylic. The sleds can slide out individually if a board ever needs to be replaced or upgraded.

The Ethernet and USB ports all face forward to plug into the network switch, and the microSD cards remain accessible through cut-outs on the back panel. This means I can swap operating systems or update individual nodes without dismantling the cluster.

The switch mounts underneath the nodes. Four ports on the switch below connect the nodes together, and the fifth is left available so the cluster can connect to the rest of my network.

Alongside node 1 goes the IPS touch display, which is held in place with four M2.5x6mm screws. It connects to the node 1 Pi alongside it with a DSI ribbon cable.

A single 5V 60mm fan on the top panel provides cooling to the four Pi’s beneath it. This is powered by one of the Pi’s beneath it through its GPIO pins. It doesn’t matter which one since the fan isn’t PWM controlled.

The top panel can then be closed up with the M2.5 screws in the corners. These holes need to be drilled and tapped into the acrylic enclosure. I’ve tried adding these during CNC cutting previously, but with mixed results. They usually land up in the wrong place due to the combination of tiny manufacturing inaccuracies and slightly misaligned glue joints.

And that’s the hardware complete.

Creating The Cyberpunk Themed Stats Display

For the display, I created a custom cyberpunk-inspired dashboard running in Chromium kiosk mode which opens up automatically on startup.

The display shows information from node 1 including system load, storage usage, memory utilisation, network information and some other live statistics.

It doesn’t just make the cluster easier to monitor, it also acts as a mini control panel. It’s a full touch display than you can use to do anything you’d usually be able to do on the Pi desktop, albeit a bit small.

You can also set it up to provide summary stats for all four nodes or cycle through pages for each node if you’d like to.

Final Reveal & Thoughts On The Compact Raspberry Pi Cluster

So here’s the final build. We’ve got the cluster of Raspberry Pis in a compact acrylic enclosure with networking and custom monitoring, and without a mess of cables.

The tinted acrylic panels let you see the internal hardware, the aluminium accents add a bit of contrast to the black panels, and the display brings the whole thing to life.

A huge thank you to Makera for sending over the Z1 and the Cyclone Dust Collector Lite for this project. The Z1 has just been launched and is now available to order. Check out the product page if you’d like to learn more about them or get one for yourself.

They’re also soon launching Makerables, a CNC project sharing platform for the community to share designs and files.

If you’ve got ideas for what I should run on this Pi cluster, then let me know down in the comments. Kubernetes? Docker Swarm? Or something completely ridiculous?

This setup would be great for Kubernetes because you can use the display to run the web dashboard and see resource usage and the pods you have deployed across the cluster.

Let me know what you think of the cluster and if you’d do anything differently in the comments section below.

Pironman 5 Pro Max, A Raspberry Pi 5 Case with Touchscreen, Camera and Speakers

Today, we’re taking a look at what might be the most over-the-top Raspberry Pi 5 case I’ve tried out so far – the Pironman 5 Pro Max by Sunfounder. At first glance, it looks like it’s just a bigger version of the Pironman 5 Max that I reviewed last year.

You’ve still got a very similar aluminium shell with acrylic panels, dual NVMe support, a tower cooler and RGB fans, and the same general layout, but the big changes are around standalone usability. We now get a 4.3″ touchscreen, dual speakers, a USB microphone, and a camera module with a dedicated mount. So this is no longer just a Pi in a nice case, it’s more like a self-contained mini computer or AI terminal.

These features come with an increase in price, though, pushing this case up to $146. So let’s get it assembled and find out if the additional features are worth it.

Here’s my video review of the case. Read on for the written review:

Where To Buy The Pironman 5 Pro Max & Test Components

Some of the above parts are affiliate links. By purchasing products through the above links, you’ll be supporting my projects, at no additional cost to you.

Unboxing The Pironman 5 Pro Max

The case comes in a similar kit to the Max.

Inside the box you’ve got, the aluminium panels, acrylic side panels, cooling hardware, NVMe and expansion boards, an OLED display and a lot of screws. There’s also a touchscreen, a camera module, two small speakers, and a USB microphone.

So there are a few more components to install compared to the Max.

Assembling The Case

Assembly is very similar overall to the Prionman 5 and 5 Max, and is again done by following a large picture-guided instruction sheet. All of the screws are also well labelled, so it’s really easy to do. They even include a small screwdriver.

Like with the other Pironman series cases, you start off by installing the standoffs on one half of the case. Then connect some expansion boards to your Raspberry Pi 5 and screw that into the case.

Next up, you install some cables and the speakers, and then comes the tower cooler. You install the thermal pads onto the CPU and surrounding heat-producing components, then mount the cooler using the spring-loaded push pins.

After that, you install the dual NVMe adaptor and your SSDs or an SSD and AI accelerator like the Hailo-8L. If you’re using your NVMe drive as the boot drive, remember to flash your OS to it before installing it.

The RGB, display and GPIO adaptor plugs into the Pi’s GPIO pins. Next, two fans go onto the back panel with some screws, and two speakers are stuck on underneath them.

The camera cable is the same design as it is in the Max case, but this time they include a camera and the adjustable mount. The OLED stats display on the front is also the same.

With those all installed, we can start closing up the case, firstly by screwing the two aluminium case halves together. The acrylic front panel gets the power switch installed on it and can then be screwed into place.

And the display then gets mounted onto the acrylic side panel. It then plugs into the Pi, and we can then close the case up.

To finish it off, there are some rubber feet for the bottom of the case, the USB microphone plugs into one of the USB 2 ports on the back, and the camera gets mounted on top of the case.

And that’s the case assembly complete. All up, this took me about 45 minutes to assemble, and that’s while recording it too. So, like with Sunfounders’ other cases I’ve put together, this one is fairly easy to assemble and has a well-guided process.

Like with their other cases, they also give you some extra screws and hardware in case you lose or break any of them.

First Boot and Software Installation

Next, we need to boot it up and install the software to use some of the included accessories.

I’ve preinstalled Raspberry Pi OS onto the NVMe drive, so we just need to plug in some cables for the power supply, network and monitor, and it’s ready to go. I plugged it into my monitor because I wasn’t sure if the display would work straight away, but it was recognised, and it even came up as the default display. So technically, you could set this up with just a power cable being plugged in.

The OLED display and internal RGB lighting, however, need the software to be installed. This is easy to do by following their Wiki and just requires a single-line command to run in the terminal, which requires a reboot at the end.

cd ~
git clone -b pro-max https://github.com/sunfounder/pironman5.git --depth 1
cd ~/pironman5
sudo python3 install.py

After the reboot, the case comes to life.

Pironman 5 Pro Max Features and Inclusions

The most noticeable addition is definitely the touchscreen. Instead of just showing simple stats like the OLED display, this gives you a full interface that you can use to display system info, run dashboards, or build custom interfaces for.

Their Pironman dashboard, which is installed as part of the script, includes a nice monitoring page that can be displayed on your main monitor or full screen on the cases display. You can access this dashboard by going to your Pi’s IP address and port 34001 in the browser:

http://<ip>:34001

This display makes this setup far more usable as a standalone device rather than something you need an external monitor for or need to SSH into.

It’s also still got the OLED stats display in the front, which, like the other Pironman cases, can be set up to display a couple of different metrics or cycle through them.

The integrated RGB lighting is also controllable with a number of options. It’s really cool that they’ve synced the fans up with the LEDs at the top so they’re all working together.

Next up is the audio. The built-in speakers are ok for their size. I get why they’ve gone with two so that stereo audio plays back correctly, but with the space limitations, they would have gotten much better audio quality out of a single larger speaker.

That said, they’re ok for system sounds, basic voice output or light media playback. You’re not going to want to watch a movie on here, but that’s not really what it’s made for anyway.

Display Playing Back Big Buck Bunny

The microphone works straight out of the box and is detected as a USB device. This is useful for voice assistants, like the one I built a few months ago.

Lastly, let’s look at the camera. With the built-in mount, it’s easy to position it to focus on your target. This addition fits in with the theme of the other inclusions, allowing for face tracking, object detection, or general vision-based AI projects. And you can use the accelerator in the second M.2 slot to help out with these.

Camera Module Working

Thermal and Noise Testing

I’ve already thoroughly tested the thermals and fan noise levels on the Pironman 5 Max case, and while this case does have a few new features, the cooling system and fan choices are unchanged. Both have the same tower CPU cooler with 40mm fan and dual 40mm fans on the rear, so I expect the results will be comparable.

Thoughts on the Pironman 5 Pro Max & the Pironman 5 Lineup

So, having tried both the Pironman 5 Max and this Pironman 5 Pro Max, I’d say that the Max is designed to be a high-end Pi case, which is great for servers, NAS builds, or desktops, while the Pro Max is better suited for AI applications, dashboards, and smart systems, or projects requiring human interaction with the device.

Pironman 5 Pro Max Case

The Pironman 5 Pro Max basically turns your Pi into something closer to a smart assistant, kiosk or an edge AI workstation.

It’s an interesting addition to the Pironman lineup. I don’t think it replaces the Max, but rather changes its purpose. I do wish they got a bit more creative with the naming scheme, though. We’ve got the Pironman 5, Pironman 5 Max and now the Pironman 5 Pro Max – which I think serve different functions rather than just to be better versions than their predecessor, as the name suggests.

As with the other cases in this line, though, it’s no longer just a small computer that you hide away. It’s something you actually want to look at and interact with directly.

Pironman 5 Pro Max By Sunfounder

The only thing I don’t really like is the cable management to the camera. It looks a bit messy and a bit like an afterthought. They could rather have fed the ribbon cable through to the camera internally with just a short exposed section underneath the camera.

Let me know what you think of the Pironman 5 Pro Max case. Is this something you’d actually use, or is it a bit overkill?

At $146, it is quite an expensive case for a Raspberry Pi, but when you consider that this case turns the Pi into a full standalone workstation that includes quite literally almost every accessory you might need to add on, it’s not terrible value. Especially given that it’s assembled into a really good-looking package.

Let me know what you think of the Pironman 5 Pro Max or their other Pironman series cases in the comments section below.

I Designed A Mini ITX PC Shelf For My Lab Rax 10″ Homelab

I’ve built a lot of Raspberry Pi and Mini PC setups in my Lab Rax system, but they all hit the same limitation, no real computing expandability.

So today I’m fixing that by mounting a full Mini ITX PC inside a 10” rack. This gives you access to features like full-size PCIe ports to add functionality to your home lab, like a GPU for AI or Plex transcoding, or 10 gig networking. They also generally have additional SATA ports that you can make use of for storage drives for a NAS, or even just to give you the flexibility to use an older platform that allows you to use DDR4 RAM, so that you don’t have to sell your house to build it.

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

What You Need To Build Your Own Mini ITX PC Rack Shelf

Tools & Equipment Used:

Some of the above parts are affiliate links. By purchasing products through the above links, you’ll be supporting my projects, at no additional cost to you.

Designing & Printing The Mini ITX Shelf

I wanted to come up with a way to mount a Mini ITX motherboard into a 10” rack. It has to be Mini ITX as micro ATX or ATX boards are just too big, but there are some really powerful Mini ITX options available.

Because of the height of the IO shield and the CPU cooler, we need to use two rack units. That also gives us a fair amount of headroom around the motherboard for ventilation.

The tricky part here is fitting a full PC into just 2U of space without killing airflow, so here’s how I approached the design.

I started out with a simple shelf in Fusion360, and I then added the motherboard footprint, a cutout for the IO shield, a recess at the back for cable management and a hole for the power button.

It’s quite a simple design, but I think it fits the aesthetic of my home lab quite well.

Download the Mini ITX Shelf 3D Print files (Ports Forward)

Download the Mini ITX Shelf 3D Print files (Ports Reversed)

So next, let’s get it printed out. Because it’s holding heat-producing components, it’s best to print it out from PETG.

Assembling The Mini ITX PC Shelf

With the shelf complete, we can get the Mini ITX motherboard installed on it. If you haven’t already, make sure that all of your components (CPU, cooler, RAM and NVMe drive) are installed on the board.

First, lets press the IO shield into place, making sure that it’s the right way around. There’s a small retaining lip in the print that holds it in place, so it doesn’t require any screws. The IO shield is pressed into place from the back of the cutout (from the motherboard side).

Next, add M3x6mm nylon standoffs, each secured with an M3 nut on the back. We can then mount the board with M3 screws. You don’t have to use nylon/plastic hardware for these, you can use brass standoffs and metals screws if you’d like to, but the nylon ones provide an extra layer of protection against short circuits and damage to the surface mount components.

Now we can add the power button to the front. I’ve added a hole which will fit 12mm push buttons. These are quite commonly available online, and they work well with this style of build. Some of them, like the one that I’ve used, even have an integrated ring LED around the button that you can use for power indication.

Just feed the cable and button through the hole and secure it with the nut on the back.

Then plug the button and LED into the correct pins on your board. Your motherboard should have a front panel pinout in the user manual. Depending on where you get the button from, you might need to solder these leads onto your button, but that’s quite easy to do.

Power Supply Options For A Homelab PC

There is one last thing that we need, and that’s a power supply. We have quite a few options here, depending on what devices you’re adding and what CPU you’re running.

If you have a very lightweight system with a low-power CPU then you can use one of these PicoPSUs. These usually come in an 80W and 160W version. This is by far the most compact option and doesn’t require anything more than a 12V supply through a barrel jack to get you up and running.

If that’s not enough power, then my go-to for this size build is one of these HDPlex power supplies. They make two options, a 250W version and then this 500W version that I’ve used. This gives you quite a lot of capacity if you’re planning on adding drives for a NAS build or a small GPU for encoding or AI tasks.

If you outgrow the 500W, you can also sync two or more together with a short jumper and then use multiple supplies to power more peripherals or even additional computers and network switches in your home lab.

It’s also compact, completely modular on the cable side, so you just plug in the cables that you actually need, and probably the best part is that’s it’s very nearly silent. It’s got a tiny low-speed fan near the back that only turns on when necessary. So it makes very little noise.

To mount this, I again wanted to keep things simple so that it is compatible with a range of hardware options. So I designed a small shelf that goes at the back of the home lab. This fits in above the rear shelf supports in the second unit of space that the PC tray occupies, so it doesn’t need a separate rack unit.

Because of the way it’s designed, you also have two options to install it. You can use it as I’ve drawn in the CAD model with the power port above it, or you can flip the shelf over and install the power supply the other way around so that the port is at the bottom, which is probably what I’m going to do for my build.

Download the HD Plex Power Supply Shelf

With the shelf printed out, the plug mounts onto it with two M3x16mm screws and M3 nuts on the back and then the power supply fits in underneath it. That’s held in place with four M3x4mm screws – the same type used to secure storage or optical drives.

And this small power unit is now ready to install. We just need two power cables between the power supply and the motherboard for my basic build. Let’s start by plugging one end into the motherboard before installing it.

We can then install the PC tray in our rack. I’m just using four M6 screws, one in each corner to hold it in place. You could add another two M6 screws in the middle to make it more secure or rigid for a heavier PC build.

Then, flipping the rack around, we can install the power supply on the back.

First, plug in the cables from the motherboard and then mount the power supply in the rack. As I mentioned earlier, because I’ve got a MiniPC tray above it, I need to install the power supply inverted so that the power input is at the bottom. Again, it’s held in place with four M6 screws.

And that’s the build complete and ready to boot up by pressing the power button on the front.

Other Mini ITX PC Mounting Options

This basically turns your Lab Rax system into a proper home server platform, and not just a Pi cluster.

At a total cost of just 240g of filament, which is less than $4, this is also a considerably cheaper option than a commercial rack-mounted PC case, even once you add in the power button and some screws.

I like how it’s turned out, but the IO shield is a bit glaring in silver. I’ll probably paint that black to match the rest of the rack.

After building this, I realised not everyone will want front-facing IO, so I designed a second version. This has a ventilation grill and power button on the front and then flips the motherboard around so that the ports all face the back of the rack.

This arrangement makes powering the board a little more difficult as the power supply can’t block off the ports, which are now at the back. It can, however, be mounted in a free unit above or below the PC, and there’s a gap near the front of the shelf for cable routing.

Let me know what you’d like to see added to or changed on this build, and if you’ve got any ideas for future additions to the Lab Rax system. As with my other Lab Rax designs, these models are all available on Makerworld for you to print out to add to your homelab.

Download the Mini ITX Shelf 3D Print files (Ports Forward)

Download the Mini ITX Shelf 3D Print files (Ports Reversed)

Download the HD Plex Power Supply Shelf