Home Blog

Beelink ME Pro, A Small Form Factor NAS with Serious Home Server Potential

Today, we’re taking a detailed look at the Beelink ME Pro, a new two-bay NAS that packs some surprisingly unique features into an extremely compact chassis. It’s smaller than most mini PCs, offers 5 gigabit networking, includes three NVMe slots, and even features a slide-out, upgradeable motherboard. There is quite a bit going on inside this small enclosure, so in this review, we’ll take a look at the external and internal hardware, install some drives in it, and run performance testing to determine whether this compact NAS is worthy of storing your data.

Here’s my video review of the Beelink ME Pro. Read on for my written review:

Where To Buy The Beelink ME Pro

  • Beelink ME Pro (Beelink’s Amazon Store) – Buy Here
  • Beelink ME Pro (Beelink’s Web Store) – Buy Here
  • 2TB Crucial P3 Plus – Buy Here
  • WD Red NAS Drive – 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.

Unboxing and First Impressions

Inside the box, Beelink includes a user manual, the ME Pro itself, and a separate accessories box. The accessory box includes a 120W external power brick, a network cable, an HDMI cable, and two sets of drive mounting screws, one for 3.5-inch and one for 2.5-inch drives. The NAS arrives well protected with foam inserts and plastic wrapping.

The first thing that stands out when removing the ME Pro from its packaging is its size. Measuring only 166 x 121 x 112 millimetres, it is noticeably smaller than most traditional two-bay NAS units. This compact footprint provides obvious space-saving advantages, although it also introduces some design trade-offs that will become clearer later. The chassis features an all-metal unibody construction, giving it a premium feel and a surprisingly solid weight of 1.5 kilograms when empty. In hand, it feels closer to a high-end mini PC than a typical NAS.

External Design and Connectivity

On the front of the ME Pro, we’ve got reset and clear CMOS access holes, a USB 3.2 Type-A port, and the power button. The front panel design uses a clean, retro look, a bit like a Marshall amplifier, complete with a dust-filtered grille. The top and sides don’t have any ports or interfaces on them.

At the back, we’ve got all of the main IO. Power is supplied through a barrel jack from the external 120W power supply, which differs from some recent Beelink devices that incorporate internal power supplies. Networking is handled through two Ethernet ports, a 5-gigabit port driven by a Realtek RTL8126 controller and a 2.5-gigabit port using an Intel i226-V chip. Next to those, we’ve got an HDMI output supporting 4K at 60Hz, two USB 2.0 ports, a USB 3.2 Type-C port, and a 3.5mm headphone jack. Above those are the ventilation holes for the integrated cooler.

At the bottom we’ve got a little storage bay for the hex key for the trays and covers, which is kinda cool and useful.

With these interfaces, you can already see that this isn’t just a NAS, it’s designed to be a small home server platform.

Drive Bays and Storage Design

Behind the magnetic removable front grille are the two 3.5-inch drive bays. Unlike many modern NAS devices that use tool-less drive trays, Beelink has opted for a screw-mounted design. They’ve said that this approach helps reduce operating noise, which makes sense given that this unit is intended for home or desktop environments. The drive trays use dual-sided silicone plugs and mounting screws to secure drives, while also incorporating thermal pads that conduct heat away from the drive PCBs and into the chassis. This is an uncommon approach, and the first time I have seen thermal pads used directly on drive PCBs in a NAS enclosure. The trays also include mounting points for 2.5-inch SATA SSDs.

So this NAS is better suited to users who intend to install drives and forget about them for a long time, which, to be fair, is probably most users, especially on a two-bay. I’ve had my main NAS set up for 3.5 years, and I’ve never removed a drive from it.

Modular Motherboard and Internal Hardware

Beneath the drives, we’ve got the motherboard, which again has some unique features. By removing a couple of hex screws on the rear and bottom of the unit, the entire motherboard tray can be pulled out, providing direct access to the cooling system, CPU, and NVMe storage slots. This design simplifies cleaning, maintenance, and potential upgrades. The motherboard seems to connect to the drive backplane using a PCIe-style connector, enabling this modular approach.

Beelink has indicated plans to release additional motherboard options, including an AMD and ARM version, which is really interesting to see. I can’t think of any other NAS solutions that offer this level of modularity.

This version is equipped with an Intel Twin Lake N95 processor, paired with 12GB of LPDDR5 memory running at 4800MHz. The RAM is soldered to the motherboard and is therefore not upgradeable. The system also includes a 128GB NVMe SSD dedicated to the operating system. The N95 processor provides four cores running at up to 3.4GHz. In addition to the wired networking options, the ME Pro has WiFi 6 and Bluetooth 5.4.

Storage expansion is handled through three M.2 NVMe slots, each supporting drives up to 4TB. One slot is occupied by the operating system drive and operates at PCIe 3.0 x 2 speeds, while the two additional storage slots run at PCIe 3.0 x 1. Combined with the two SATA bays, each capable of supporting drives up to 30TB, the system can accommodate a maximum total storage capacity of 72TB.

Cooling System

Beelink has implemented an unconventional cooling solution in the ME Pro. Instead of relying on a single rear exhaust fan, the system uses an internal blower-style fan that pushes air through a copper heat pipe cooler. The aluminium chassis itself also acts as a large heatsink. Heat generated by installed drives is transferred through thermal pads to the tray and chassis, while the blower fan draws air in across the drives and exhausts it through the heatsink and out the rear of the case.

Test Setup

To evaluate thermal and performance characteristics, the system was populated with two full-size 3.5-inch WD Red NAS drives rated at 4TB each, along with 2TB Crucial P3 Plus NVMe drives installed in both available M.2 slots. With all drives installed, the system’s weight increased to 2.6 kilograms. This feels quite solid due to the metal construction and screw-mounted drive trays.

The ME Pro ships with Windows 11 preinstalled, but it’s not locked to this operating system, allowing users to install alternatives such as TrueNAS, Unraid, or Proxmox, depending on their use case.

Storage Performance

Drive performance testing was conducted by reading and writing files directly to each drive without caching. The SATA drives achieved write speeds of approximately 150MB/s and read speeds just under 200MB/s, with both drives delivering nearly identical results. The NVMe storage drives produced read and write speeds just below 800MB/s, again showing consistent results between drives. The operating system NVMe drive performed faster, achieving over 1000MB/s write speeds and just under 1500MB/s read speeds due to its additional PCIe bandwidth.

These results are right on what we’d expect from the available lanes, so the drives aren’t thermal throttling, and the controller and PCIe routing doesn’t seem to have any issues.

CPU Performance

Next, I tested the CPU. Geekbench 6 gives a cpu score of 1,051 single core and 2,935 multi-core. This is a low-power CPU, so we’re not expecting it to win any awards. The results are very roughly comparable to something like a Celeron J4125 or N5105 used in entry-level Synology or QNAP devices, but this one is probably a bit more power efficient.

Thermal Performance

To test thermals, I ran Furmark for 30 minutes and had the drives under a read and write load. The CPU temperature began at 34 degrees Celsius while the drives idled between 28 and 30 degrees. After the stress test, the CPU temperature rose to only 50 degrees, and drive temperatures increased modestly to between 32 and 35 degrees. So the single blower fan cooling solution on this NAS is really effective.

Noise Levels

Speaking of the fan, in terms of noise level, it runs consistently under 32dB with the CPU fully loaded or at idle. Which is basically the lowest ambient sound level in my workshop and is near silent. With the mechanical drives being written to, you get an odd spike up to 33 dB, but that’s also quite near being silent and not something that you’d find distracting. Beelink have done very well at isolating noise on this unit, it’s by far the quietest NAS that I’ve used that has mechanical drives in it.

Network Performance

Network throughput was measured using iperf3 to isolate network performance from storage limitations. Testing on the 5-gigabit Ethernet port produced transfer speeds between 550MB/s and 560MB/s, which is consistent with expected real-world performance for this interface. Testing on the 2.5-gigabit port resulted in speeds of approximately 280MB/s, again matching expected throughput.

So both NICs are capable of running at their rated speeds. Some low-power mini PCs would struggle to saturate a 5-gigabit connection, but the N95 has no trouble doing so.

In real-world terms, the two mechanical drives would top out before the network does on the 2.5 gigabit port, and so the 5 gigabit port is only really going to be useful for your NVMe storage or for serving multiple clients at once.

Power Consumption

Finally, I tested power consumption. At idle with no drives installed, the system draws about 16W. With all drives installed and spun up, but not under a write load, idle power increases to around 22W and under full CPU and GPU load, as well as actively writing to one drive, power increases to 44W. Even at the top end, this is very good for the networking and drive performance that this NAS can deliver. This also makes it a great option for those in areas where power is expensive, since it’s going to be running 24/7.

Pricing and Value

Pricing is pretty good. I think the lower-end models are really good value for money, starting at $369 for the base N95 version with 12GB of RAM and 128GB of OS storage, and increasing to $479 for the same version with 1TB of storage. The N150 versions do go up a bit, so I’d probably only look at these models if you’re really going to be using the increase in CPU and RAM. These top out at $559 for the version with 16GB of RAM and a 1TB OS drive.

Final Thoughts

So, if you’re looking for a compact NAS or home server that offers multi-gig networking, NVMe storage, and good power efficiency, the ME Pro delivers exactly that.

It’s not trying to replace a high-end mini PC or NAS, but as a storage-focused home system, it’s well balanced and does what it says on the product page.

You get a solid set of ports and features, performance that matches the hardware, and with Beelink already working on additional motherboard options, the platform also looks like it could become quite modular over time.

As always, if you’ve got any questions or want to see specific workloads tested, let me know in the comments section below, and I’ll try test them out and add them to my results.

Turn a Raspberry Pi Zero into a Global Ad Blocker with Pi-hole and Tailscale

Today I’m going to show you how to block ads and trackers, not just at home, but on every network you connect to. We’ll do this for the once-off cost of a Raspberry Pi Zero, which costs about the same as a takeaway meal and has no ongoing subscription fees.

This is done by running Pi-hole on a Raspberry Pi Zero and pairing it with Tailscale. Your phone, your laptop, your tablet, whether you’re at home, at work, in a coffee shop, or using your mobile data, all your traffic is still filtered through your own Pi-hole.

Here’s my video tutorial, read on for the written version;

What You Need To Build Your Own Pi-hole Global Ad Blocker

Quick Explanation On How Pi-hole Works (Quick Explanation)

A popular question on my last Pi-hole project was “How can a Pi Zero handle all of your web traffic?” “Isn’t it slow?”. So to clear that up, Pi-hole doesn’t inspect or handle all of your web traffic, and that’s why even a Raspberry Pi Zero can handle it.

When you visit a website, you type in a name like google.com, but computers don’t actually use names, they use IP addresses. The job of the DNS server is to translate the name into an IP address that your computer can connect to.

DNS Server

Most websites don’t come from just one place. The main content might come from one server and the ads from a different server. So when your computer asks where the website is, and where the ads and trackers are, Pi-hole responds by saying the website is here, but there’s no address for that ad server.

Pi-hole Blocking Ads

So your computer can load the website, but it can’t load the ads or trackers because it never gets their address.

Assemble Your Ad Blocker Hardware

To build the Pi-hole Ad Blocker, you’ll need a few basic components. We’ll start with a Raspberry Pi Zero, which is one of the cheapest Pi’s you can buy at only $10. It’s important that you get the W version with Wifi. If you use a standard Zero, then you’ll need to add a USB network adaptor or wifi adaptor to it, which adds to the cost.

Raspberry Pi Zero

You can also use another model Pi, but they’re going to be overkill for this project, so save some money and go with a Zero. You also don’t need the increased processing power of a Zero 2 W, the original Zero W works perfectly for this project.

In addition to the Pi you need a heat sink. I’m just using a small passive aluminium heat sink. You’ll also need a MicroSD card for the operating system. Get a good quality card as it’s going to be running 24/7.

Lastly, you need a power supply to power it. The Zero is powered through a microUSB port, and you’ll need one that can do 5V and up to 3A. Most good quality USB power supplies will be able to power it.

Pi-hole Hardware Required

That’s it for the hardware. The heat sink goes onto the Pi’s CPU and then we can move on to flashing the operating system to the microSD card.

All up, this costs around $15-20, depending on where you get the parts.

Flashing Raspberry Pi OS Lite

We will use Raspberry Pi Imager. Since we’re not going to have a monitor hooked up to the Pi, it’s quite important to get the setup right here. So don’t skip any of these steps.

First, we need to select our device as a Pi Zero W.

Raspberry Pi Imager

Then for the operating system, we’re going to go to Other and then choose the legacy Bookworm version of Pi OS Lite. This works more reliably than the newer Trixie version for the time being.

Then select your microSD card as the storage device.

Under customisation, give your Pi a name. I’m calling it pihole so that it’s easily identifiable on my network.

Choose Hostname

Select your localisation settings to match your location.

Set a username and password, which you should take note of.

Then you need to enter your WiFi network name and password. It’s very important that you get this right. If your Pi can’t connect to your WiFi, then it’s not going to show up when you power it up, and you’ll need to then either hook it up to a monitor, mouse and keyboard or reflash the card.

Choose WiFi Network

It’s also important that you enable SSH, or you won’t be able to log into your Pi remotely.

Now leave Pi Imager to finish writing and checking the card.

Booting the Pi

Insert the microSD card into the Pi, then plug in the power adaptor. You’ll then need to wait 5 minutes for it to boot up. The first boot takes a bit longer, and the Pi Zero is not particularly fast, so be patient with it.

Find the Pi’s IP Address & Set A Static IP

After 5 minutes, we then need to find the Pi’s IP address on our network. To do this, you can use a utility like AngryIP Scanner, or the easiest way is to log in to your router and look for the Pi in your list of online devices or DHCP table.

This is a bit different on each router, but to start, your routers default login details are typically on the bottom or back of the router. You then usually go to the router’s IP address and then use the provided login details to access it’s settings. Finally, look for something called online devices, clients or DCHP.

Here, you’re looking for a device that recently joined the network, and it should be given the name that you set up when flashing the microSD card.

Pi-hole on Routers DHCP

We need this IP address to log in to the Pi to continue setting up Pi-hole and subsequently to maintain it, so write it down somewhere.

While you’re logged in, we also don’t want this address to change if the Pi or router is rebooted. So we need to set it as a static IP. If you choose change it, reboot the Pi so that the new IP address is assigned to it.

Making Static IP Address

Install Pi-hole

Now that we have the Pi’s IP address, we can log in to it through ssh. This can be done in the terminal on another computer or through a utility like Putty. You’ll need to log in to the Pi using the credentials you set up when flashing the microSD card.

Next we can install Pi-hole, which is the software that’s actually going to be doing the ad blocking on the Pi. To do that, we just run this single line.

curl -sSL https://install.pi-hole.net | bash
Installing Pi-hole on Pi

Accept all default options during installation.

You’ll then land up with an installation complete dialogue that has some information on it. The most important bit of information that you need from this page is the password that has been generated. You’ll need this to log in to the Pi-hole dashboard.

Access the Pi-hole Dashboard

In your browser, go to:

http://<Pi-IP-address>:80/admin

Here you can enter the password that was given to you to log in.

You will now see the Pi-hole dashboard.

Pi-hole Dashboard - No Stats

Now you should see your Pi-hole dashboard, which gives you stats like the number of queries blocked, the top sites and devices blocked and how many domains you’re blocking. You’ll notice that most of these are zero at the moment, and that’s because we haven’t told our router to use the Pi-hole as our DNS server, so let’s do that next.

Configure Your Router to Use Pi-hole as DNS

This step again depends a bit on the router you’re using, but you typically need to log in to your router again and then find a page or setting called DNS. This page should have the options to set a primary and secondary DNS server. Set these both to your Pi’s IP address. Some routers have weird rules guiding when they use the primary and secondary servers, so it’s most reliable to just set both of them to the Pis.

Setting Pi-hole as DNS Server

And that’s the basic setup complete, and your ad blocker should now be working.

Verify That Pi-hole Is Working

To check that your Pi-hole is working, visit a website that normally displays ads. Firstly, and obviously, you should not see any ads on the page. As a secondary check, go to your Pi-hole dashboard and check that the counters are increasing.

We’ve had 733 requests, 214 blocks and that means over a quarter of all requests are being blocked, mostly because I’m intentionally going to a site that I know serves ads.

Pi-hole Dashboard - Stats Now Showing

If we temporarily turn the blocklist off, you can see we now have ads on the same page that we visited earlier.

So now we’ve got an ad blocker working for all devices on our home network.

But as soon as I take my phone or laptop away from home, I’ll start seeing ads again. So that’s where Tailscale comes in. Tailscale provides a way for your devices to access your Pi-Hole remotely, so all of your DNS queries from your devices will still be sent through your Pi-Hole even when you’re not at home.

Install Tailscale on the Pi

To install Tailscale on your Pi, loging through SSH and run these two commands:

curl -fsSL https://tailscale.com/install.sh | sh

Wait for the setup process to complete, then run;

sudo tailscale up
Installing Tailscale

Once complete, it’ll tell you to go to an address to register the device to your Tailscale account. If you don’t have an account, you’ll need to create one.

Tailscale Add Device To Network

Configure Your Pi & Tailscale

Once your Pi-hole is added to your Tailscale network, we need to tell Pi-hole to listen on Tailscale.

Open up your Pihole dashboard and go to Settings, then DNS. You might need to enable or disable Expert mode to see the right bar.

Check Permit All Origins and then Save/Apply

Edit DNS Settings On Pi-hole

Then head back over to Tailscale and note your Pi-Hole’s Tailscale address.

Pi-hole On Tailscale Network

Then go to the DNS tab.

Scroll down to nameservers and click add name server. Enter your Pi-hole’s Tailscale address and leave the default selections. Click save. Then enable Override DNS servers, and also make sure that MagicDNS below is enabled.

Adding Pi-hole as Tailscale DNS Server

And that’s it as far as setup goes.

Now all of your devices connected to your Tailscale network will have their ads blocked, wherever they are. With it set up on my iPhone. If I’m on my home network, then ads are blocked, and if I turn off WiFi as if I’m away from home, ads are still blocked, now through Tailscale.

Setting a device up on Tailscale depends on the device, but is usually as simple as downloading an app from the device’s App Store, logging in and following a couple of prompts.

You Now Have A Global Ad Blocker

You now have a fully self-hosted, global ad blocker running on a tiny Raspberry Pi Zero W.

It protects you whether you’re at home or on the move, filtering ads and trackers on any device you connect to your Tailscale network, from phones and tablets to laptops and desktops. Best of all, you’re in complete control of the entire setup. There are no subscriptions, no third-party services deciding what gets blocked, and no limits on how far you can customise it.

You can tweak blocklists, monitor traffic, add new devices, and expand the system as your needs change, all while knowing exactly where your data is going and how it’s being handled.

If you found this tutorial helpful, please consider sharing it with others who might benefit from it, and feel free to leave any follow-up questions, feedback, or suggestions in the comments below.

I Built an AliExpress Homelab, Is It Surprisingly Good or Total E-Waste?

Today I’m building a complete 10-inch homelab using only components bought from AliExpress. No name brands, no local retailers, no trusted vendors, just the cheapest parts I could find that technically met my requirements.

For this build, I wanted to find out a few things:

  • Can you actually build a functional homelab by only using parts from AliExpress?
  • Does it perform well enough to be usable and practical?
  • And most importantly, is it actually any cheaper than buying entry-level name-brand gear locally?

By the end of the build, we’ll know whether this is a budget win, or just future e-waste.

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

Purchase Links For Parts

Unlike with most of my builds, I’ve left these links here for reference only. I don’t think that these components are good value for money and don’t recommend that you buy them.

These are ok to buy:

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.

What Does The Homelab Need To Include?

To set a goal for the build, I defined a basic homelab as something that could realistically live in a home or small office and actually be useful. For me, that means:

  • A 5–6U 10-inch rack
  • A router for internet access
  • A mini PC to run services
  • A gigabit switch to connect the homelab devices and others on my home network
  • A patch panel for clean I/O access
  • Some form of shared storage acting as a NAS

Every one of these components had to come from AliExpress, and for each category, I deliberately chose the cheapest option that met my minimum specs and obviously didn’t look like a total scam. All the pricing I talk about is in US dollars and includes delivery to my address.

The Aliexpress Homelab Parts That I Ordered

After around two weeks of waiting, this is what turned up.

All Components From Aliexpress Arrived

Let’s start with the router. My requirements for the router were simple: I wanted Wi-Fi, preferably Wi-Fi 6, and gigabit Ethernet.

I found this FENVI AX3000 router, which claims Wi-Fi 6 on both 2.4 and 5GHz, gigabit networking, and even has a disclaimer about Australia’s 3G shutdown. That’s interesting, given it doesn’t appear to have 3G at all.

This cost me just $28.70. If it actually works as advertised, that’s quite a lot cheaper than an entry-level name-brand AX300 router locally, which would usually be closer to $80.

Next up is the network switch. This was more difficult to find than expected, because AliExpress is absolutely flooded with 10/100 switches that are still being sold for budget CCTV systems.

After some careful filtering, I found this Ling Pao 8-port gigabit switch, although it had a different name on the product listing. There’s not much to say here. If it switches packets at gigabit speed without dropping out, it’s technically done its job.

This cost me $9.73. Again, that’s quite good, as something similar locally would cost around $20.

Next up is the mini PC, and honestly this was a hard purchase. I wanted something that could actually run an OS from this decade, but I also didn’t want to spend a fortune on a component that’s likely going to end up being e-waste.

I settled for this brandless industrial fanless mini PC with an i3-4005U CPU, 8GB of RAM, and 128GB of SSD storage. It’s got pretty basic IO, including a now archaic VGA port and zero USB-C ports, but at least it has HDMI, gigabit Ethernet, and some USB 3 ports.

Finding a half-decent mini PC for a reasonable price is also made difficult because they often sell mini PCs on AliExpress without RAM or storage. Or they have listings that advertise an i7 at a cheap price, but when you click through, the i7 is actually much more expensive and the advertised price is for the i3 “coloured” PC.

For this mini PC I paid $104.26, which I feel a bit ripped off about. We’ll see how it performs, but this is essentially a 12-year-old piece of hardware, and you’d be able to buy a much better second-hand brand-name workstation locally for a similar price. The only things going for it are that it’s probably new hardware and likely low power draw, since it’s fanless.

Next is storage, and I know that buying storage on AliExpress is pretty high up on the list of things to never do, but for this build it had to be done.

To try to minimise the chance of being scammed, if that’s even possible, I decided to buy two 1TB drives. 1TB SSDs have been around for a while and aren’t high capacity or pushing any technical limits, so in my mind these were the least likely to be misrepresented or scammy.

I set out looking for two 1TB SATA SSDs and found these “100% original” drives that look like they’re trying to knock off Western Digital’s colouring, although pricing between colours doesn’t change. They also had 79 reviews, with a lot of them being positive.

These drives cost me $20.36 each, which is about a fifth of what they should cost locally. They should be closer to $100.

To plug those into the mini PC, I used SATA-to-USB cables, which were $2.14 each.

I also picked up a few other components to finish off the homelab, including keystone jacks, patch leads, a cool power switch, and a 120mm fan. We’ll take a look at the total cost of everything once it’s fully assembled and compare that to a name-brand system.

Finding A 10″ Homelab Rack

Next comes the homelab rack. Being a 10-inch rack, there aren’t many prebuilt options available. I could buy a DeskPi Rackmate for around $80–120 depending on size and accessories, or I could 3D print my own.

I went with 3D printing a 5U Lab Rax homelab using materials sourced from AliExpress. I bought two rolls of PETG, some M6 brass inserts, M6 screws, and some coloured M6 screws for the front. All of this came to a total of $34.00 and was enough to print shelves to hold all of the components, so I didn’t need to buy any additional shelving hardware.

Next, I printed the homelab and shelves. Honestly, this went quite well. I dried the filament for eight hours before printing and all of the parts came out nicely, so I can’t really complain. These two 1kg rolls were each just over $10 including delivery, which is quite good.

As with my other builds, this version of the Lab Rax system uses brass inserts melted into the parts with a soldering iron and M6 screws to hold everything together.

And that’s my 3D printed 10″ homelab rack complete and ready for the heardware to be added. I’m quite happy with how this has come out.

Assembling The Aliexpress Homelab Hardware Into The Rack

I started off assembling the Aliexpress homelab hardware by installing the 120mm fan on the top panel using M3 screws.

Next, I started populating the shelves. I initially went top down from smallest to largest so that the fan at the top would be most effective at cooling the lower components. So, at the top is the switch, then the mini PC below that. Under the mini PC I installed the drives in my NAS tray setup, followed by the half-U patch panel and half-U vent panel. The router sits at the bottom.

When I started plugging in patch leads and other cables, I realised that my layout wasn’t going to work with the hardware that I had available, so I had to rearrange the shelves slightly to get everything to fit. At this point, the AliExpress homelab is effectively complete.

Totalling everything up, the homelab cost me $216.05. That actually seems like a fairly good deal, assuming all of the components do what they claim and hopefully for longer than a couple of hours. I did a rough estimate of what this would cost using locally available, budget-friendly name-brand components and came out at around $490.00, so this build is less than half the price.

Testing The Aliexpress Homelab To See If It Was A Good Deal

Next, it was time to test everything and see how the components perform, or whether they work at all.

I wasn’t going to hook this homelab up to my main home network. I have no idea what spyware or other questionable software might be installed, so I ran it on an isolated guest network with internet access only, just in case.

The mini PC arrived with Windows 10 installed, but I wasn’t sure what else might be on it, so I wiped the OS drive and installed Ubuntu, which is more appropriate for a homelab anyway.

Aliexpress Homelab Booted Up

Testing The Mini PC

Starting with the PC, I ran a CPU stress test. It’s passively cooled, but I had the 120mm fan above it turned on, which likely helped.

CPU Stress Test in Mini PC

It did reasonably well. Temperatures started at around 35 degrees and stabilised at about 45 degrees after ten minutes.

Running a Sysbench CPU benchmark, I got an average score of 6,148 over three tests. That’s not great and is roughly on par with a Raspberry Pi 4, which is a bit disappointing, although not entirely unexpected for a 12-year-old CPU.

Sysbench CPU Benchmark

Testing the OS drive speed showed around 537MB/s buffered reads, which is quite good for a SATA drive.

Storage Drive Speed Test

In terms of power consumption, the mini PC uses 6W at idle and 14W under full load. That’s a bit higher than more modern systems using something like an N100 or N150 CPU, but it’s still reasonable for a simple homelab PC.

Overall, I can’t really fault the PC. The CPU is old, but that was known going in, and it performed as expected. Being passively cooled is also a plus, as it produces no noise.

Testing The Router

Next, I tested the router. The web interface seems fine, it’s in English and has all of the basic features you’d expect. It even includes parental controls and blocklist features.

I tested internet speed over both wired and wireless connections. Wired, I saw between 850 and 900 Mbps download and around 95 Mbps upload, with a ping of 5 to 7ms.

Running Internet Speed Test

Wireless speeds were between 60 and 110 Mbps download and a little over 80 Mbps upload, with similar ping times.

The wired results were reasonably close to what I get from my main router. The ping was slightly slower, but this router was on an isolated guest network and had the overhead of another router and switch in the path, so the results weren’t too bad. Wireless performance was pretty poor, but the mini PC is using a Wi-Fi 4 adapter from around 2012, which is almost certainly the limiting factor.

Testing The Network Switch

Next, I tested the switch. Running iperf3, I saw transfer speeds just over 940 Mbps, which is solid. I didn’t want to connect more of my everyday devices to this network, but heavier traffic would have made the test more demanding.

Network Speed Test Results

Testing The Storage Drives

Then it was time to test the storage drives, where I didn’t have high hopes that I had avoided being scammed.

I started by formatting the drives on a burner PC, just in case they had anything on them. After that, the drive showed up as readable and appeared to have its stated 1TB capacity, or very close to it at 953GB.

However, what often happens with these drives is that they actually only have 32GB or 64GB of real capacity. They either refuse to write more data or silently overwrite older data, so files seem fine at first but disappear later.

To test this, I used H2testw, which writes the drive full and then verifies the data to check for errors or fake capacity.

The test initially estimated just over an hour. Write speeds started above 250MB/s, dropped under 80MB/s after about ten minutes and around 50GB written, and then fell below 30MB/s for the remainder of the test. There are several reasons for this drop, but it clearly shows the drive is using very budget-tier hardware.

After two and a half hours, the real issue appeared. The test stopped being able to write at 122GB. I was able to verify the data written up to that point successfully, but the drive would not allow any more data to be written. I ran the test again on the same drive and then on the second drive, and got similar results every time. Sometimes the test ran faster, but it always stopped around 122GB.

So it looks like these are actually 128GB drives, which aligns much more closely with the price I paid.

Running transfer tests from the mini PC showed buffered read speeds of just 23MB/s, which is very poor.

The drives also don’t report any useful manufacturer or model information. I opened one up and found a reasonably normal-looking PCB. These SSDs are never physically full; they’re only that size to match the old 2.5-inch mechanical drive form factor.

Searching the chip part numbers didn’t bring up technical documentation, only other people complaining about being scammed by drives with the same chips from unreliable sellers.

So this result aligned with my expectations. I suspected I’d be scammed, and despite trying to avoid it, I wasn’t successful.

Final Thoughts On My Aliexpress Homelab Build – Was It Worth It?

Completing my testing leaves the question of whether it’s worth building a homelab from AliExpress, or whether you’re better off buying name-brand hardware.

From a pure “does it function” perspective, this homelab does work. But realistically, you’d be far better off spending a similar amount of money on higher-quality used hardware.

The homelab frame itself, made from AliExpress filament, brass inserts, screws, and even the fan, is actually quite good. It printed well, everything fits properly, and there are no issues. If you’re prepared to wait, AliExpress makes sense for these kinds of passive components.

All Aliexpress Components Homelab

The mini PC is usable, but it’s already a decade out of date. You could likely get a better deal on a second-hand workstation like a Lenovo ThinkStation or Dell Precision T-Series.

The router is similar. It works, but you could probably find an older Netgear Nighthawk or TP-Link Archer locally for a similar price.

The switch is decent value for an 8-port model, but I doubt it will last very long. For an extra $15, you’d be better off buying a name-brand one.

The drives are a straight-up scam and reinforce the rule that you should never buy storage from AliExpress. At their real 128GB capacity, they’re actually more expensive than equivalent name-brand drives.

Aliexpress Bought Homelab

So, my takeaway is this. AliExpress can make sense for passive components like mechanical parts, cabling, hardware accessories, and even racks or enclosures if you’re willing to wait. But for core infrastructure, you’re almost always better off spending similar money on used, name-brand hardware that was designed to last.

Let me know what you think of the build in the comments section below, and what you think I should do with this homelab next.

Pi 5 NAS With Custom Carbon Fibre Panels, Made on the Makera Z1!

Today, I’m going to be building a low-power SSD NAS that is built around the Raspberry Pi 5. This Pi 5 NAS offers flexible storage options, a stats display, and custom carbon fibre panels. To build a NAS on a Raspberry Pi, you typically need to use one of two hats, a SATA hat to connect 2.5″ SSDs or an NVMe hat to connect M.2 NVMe SSDs. I wanted to do things a little differently for this build, so this NAS uses both 2.5-inch SATA SSDs and NVMe storage drives. This is achieved by using an NVMe hat for the M.2 storage, along with USB to SATA adaptors for the 2.5″ drives.

I’ve used OpenMediaVault (OMV) as the NAS operating system, and I’ll run some real-world tests on the NAs to evaluate real-world performance across different drive options.

Makera recently reached out and asked if I’d be interested in trying out their new Makera Z1 Desktop CNC machine, so I’ve used that to create some custom components to assemble the NAS into a compact and standalone device.

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

What You Need To Build Your Own Pi 5 NAS

Tools & Equipment Used:

Use my coupon code below to get $100 off the Carvera or Carvera Air

MichaelK100off

Once per order, one use per customer

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.

Hardware Used To Build The NAS

As mentioned in the introduction, the Raspberry Pi 5 provides a single PCIe port, which typically forces you to choose between a SATA or an NVMe expansion hat. I wanted to try use both for this build, so in order to avoid the performance limitations of a PCIe switch, this build uses an NVMe hat connected to the PCIe port, while the SATA drives use USB-to-SATA adapters to take advantage of the USB 3.0 ports.

So, all up in hardware, the list includes:

  • A Raspberry Pi 5 with40mm fan and heatsink
  • An NVMe hat and NVMe storage drive, although a dual hat and two drives could also be used.
  • Two 2.5-inch SATA SSDs with USB adapters
  • An I2C OLED display for system stats.
  • To assemble these components, custom carbon fibre and acrylic panels will be made up.

Designing the Assembly

As with most of my projects, the enclosure was designed in Fusion360. Two carbon fibre side panels support the 2.5-inch drives and the acrylic base for the Pi stack. A clear acrylic top panel holds a fan above the Pi’s heatsink, with a carbon fibre accent piece tying it into the side panels. A black acrylic front panel houses the OLED display. The layout is designed around easy of assembly and providing airflow to the drives and Pi.

I then used Fusion360’s manufacturing options to generate the NC toolpaths. It’s simulation function is particularly helpful to validate the cutting processes before moving onto the machine.

Tool Paths For CNC

Cutting the Panels on the Makera Z1

Once the toolpaths were prepared, the NC files were exported and loaded into Carvera Controller for machining.

The Z1 is Makera’s new beginner-friendly CNC, with a 200×200 mm bed and 100 mm of cutting height. This provides more than enough volume for smaller projects like this NAS enclosure.

Like with the Carvera Air, the Z1 uses an integrated auto-levelling probe to probe the stock at a number of places across the surface before machining to account for any height differences. This probe also has an integrated laser pointer so it can be used to trace an outline or cutting margins on your stock for you start cutting, which is a helpful check and useful for alignment.

Once auto-levelling is done, again like the Carvera Air, it also has single level based tool changer which allows you to quickly and easily switch between tools. I’m using three tools for this project, a 2mm single flute endmill for the larger profile cuts, a 0.3mm engraving bit for the Raspberry Pi logo and a 0.6mm corn bit for the small accent details. The Z1 has an LED strip light integrated into the tool head, which amonst other things, helpfully indicates which tool number to change to.

The dust port can connect to either a standard shop vacuum or Makera’s Cyclone Dust Collector. The Cyclone offers several advantages: automatic control via the Z1, quieter operation (under 70 dB), compact desktop sizing, and a 6 L capacity with a 200 W motor and HEPA filtration. While it does not capture all debris, it reliably removes 80–90% of chips, significantly improving visibility during machining.

One thing that has changed quite a bit between this machine and the larger Carvera and Carvera Air is how it handles chips and dust. The Z1 has a blower integrated into the tool head. This blows chips and dust away from the work area and towards the back of the machine where there is a port for a vacuum. The base under the bed is also slanted towards the back so chips vibrate their way to the vacumm port on the back of the machine as well.

This port allows you to hook up a shop vac or Makera’s Cyclone Dust Collector.

Their Cyclone Dust Collector has a few advantages over a shop vac, it can be automatically controlled by the Z1, both in switching it on or off and in setting the power level, it’s also noticeably quieter than a shop vac, running at under 70dB, and its compact enough to sit on the desk next to the Z1.

This dust extraction system obviously doesn’t catch everything but it does get 80-90% of the chips and particles out of the way so you can keep an eye on your project while it’s cutting. For comparison, this is what is looks like when you turn the blower and extraction off while cutting a side panel.

To make up the panels, this is what I used for each:

  • Side Panels: Cut from 1 mm carbon fibre using a 2 mm endmill, 0.3 mm engraving bit for the Raspberry Pi logo, and a 0.6 mm corn bit for accent details.
  • Acrylic Base Panel: Cut from 5 mm black acrylicusing a 2 mm endmill, requiring only contour and hole cuts.
  • Clear Acrylic Top Panel: Double-sided machining for fan mount pockets and contours using a 2 mm endmill. The laser outline assisted in aligning the fan cutout after flipping the stock over.
  • Front Panel: Machined with the pocket and cutout for the OLED display, again using a 2 mm endmill.

The Cyclone dust collector looks like it’s worked really well, you don’t realise how much it’s collected until you open it up.

Dust & Chips Collected By Cyclone Dust Collector

To finish the components off, I’ve sanded the edges and added the holes for the side screws to screw into.

Clear Acrylic Top Panel Finished Off With Tapped Holes & Sanded

I’ve also added some metallic silver paint to the engraved portion of the Pi logo so that it stands out a bit more. Carbon fibre always looks great, but machining it this cleanly on a desktop machine is really satisfying.

Carbon Fibre Side Panel With Engraving

Assembling the Pi 5 NAS

With the components all made up, we can get the Pi 5 NAS assembled. Let’s start with installing the NVMe drive onto the hat and connecting it to the Pi’s PCIe port. The hat mounts beneath the Pi using the included standoffs, and the Pi stack is then mounted onto the acrylic base plate using four 5 mm brass standoffs. A small stick-on aluminium heatsink is added to the CPU.

I’ve installed Pi OS Lite, along with OMV onto a microSD card and I’ll be using that to run the OS. If you’d prefer, you can use a dual NVMe hat and run the OS from one of your NVMe drives, keeping the other for storage, or you can use my configuration but run the OS from one of the available drives and keep the others for storage.

To make up the fan assembly, we need to mount the 40mm fan beneath the clear acrylic and carbon fibre accent piece, and then secure it with four M3x16mm screws and nuts.

Lastly, the I2C OLED display is held in place with some hot glue along the edges. I didn’t want to use screws to mount the display as I prefer this clean look on the front.

Gluing OLED Display Into Place

The storage drives are mounted between the carbon fibre side panels, followed by installation of the Pi stack, front panel, and top fan panel. The drives are held in place with M3x8mm button head screws and the acrylic components with M2.5x6mm button head screws. The display connects to 5V, GND, SCL, and SDA. The fan connects to 3.3 V and GND.

Once fully assembled and squared up, the screws can be tightened up. Then the SATA adapters, power cable, and Ethernet cable are connected to finish off the Pi 5 NAS.

And thats the Mini Pi 5 NAS complete.

Configuring OMV and Testing the NAS

As I mentioned previously, I’ve installed OMV on it as the NAS software, which requires a bit of setup. You’ll need to mount your drives and create file systems and shared folders on them, setup user access accounts and create shares so that they’re accessible over your network. You can set up the SATA drives in a RAID configuration but I wouldn’t recommend this for USB connected drives.

The OLED stats display script provides live system information on the front panel.

OLED Stats Display Running on Pi

File shares are easily accessible from any computer on the same network.

NAS Drives Mapped To Windows PC

Performance Testing

To test the Pi 5 NAS, I first ran some automated tests using AJA System Test

NVMe drive:

  • 1 GB file: ~110 MB/s reads and writes
  • 16 GB file: ~105 MB/s writes and ~95 MB/s reads

2.5-inch SATA SSD:

  • 1 GB file: ~110 MB/s reads and writes
  • 16 GB file: ~105 MB/s writes and ~95 MB/s reads

The CPU temperature remained around 40°C throughout all tests. This confirms that the 40 mm fan and heatsink work well in this application.

Next, I tried copying a 30 GB video file as a real-world test:

  • NVMe drive: ~110 MB/s writes with small dips; ~112 MB/s reads
  • SATA drive: Similar average speeds with fewer dips

So the gigabit ethernet connection is now the bottleneck for file transfer speeds. On some of my other Pi based NAS builds, I’ve used a 2.5G USB adaptor to significantly improve transfer speeds. With this build it’s not as easy an option as we have both drives hooked up to the USB 3 ports. But you could use a hub and since you’d then be limited by the 2.5G throughput of the network adaptor, there should be enough remaining bandwidth on the USB bus to handle this same throughput to the drive as well.

USB Network Adaptor For 2.5G Networking

Power Consumption

The entire Pi 5 NAS draws only 6 W at idle and 7–7.5 W under full write load, making it a silent, energy-efficient storage solution.

Power Consumption During Idle and Load

Final Thoughts On My Pi 5 NAS

This custom carbon fibre Raspberry Pi 5 NAS turned out really well, it’s a clean build that performs better than expected for such a compact system. It offers ample storage flexibility, strong performance within gigabit limits, and extremely low power usage.

If you want to check out the Makera Z1 that I used in this build, they currently have an active campaign on Kickstarter which has over 6,000 backer and only a few hours to go. Go check it out to learn more about the Z1 or support their campaign. It’s a really great desktop machine and they have a proven track record with their Carvera and Carvera Air.

If you liked the build, please comment on what features you’d like to see added to it for a future build!

I Built a Pi 5 AI Chatbot That Talks, Blinks, and Looks Around!

There’s something fun about bringing tech to life, literally. Today’s project is all about that, building an AI chatbot that blinks, looks around, and even talks back using a set of custom animatronic eyes and a mouth made from a Neopixel LED light bar. The AI chatbot runs on a Raspberry Pi 5, and the result is a lively little assistant sitting on your desk.

Animatronic Eyes on Chatbot

This idea started after I experimented with the Whisplay Hat by PiSugar. It’s a clever add-on for the Pi Zero 2W that turns it into a compact, portable AI chatbot. You press a button on the side to speak, and it replies through a small onboard speaker while also showing text and emojis on its built-in display.

PiSugar Whisplay Hat Chatbot

It’s a surprisingly capable setup considering its size. After playing around with it for a while, I wondered whether I could build my own version with a bit more life-like appeal. There’s something fascinating about giving an AI a face, not just a screen, but expressive eyes that blink and move around while it talks. This makes it feel more “alive”, which is exactly what I wanted to explore.

Here’s my video of the build and the AI Chatbot in action, read on for my write-up;

Where To Buy The Parts For This Project

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.

Revisiting My Animatronic Eyes Design

To bring the AI chatbot to life, I used a Raspberry Pi 5 as the brain and went back to my old animatronic eyes design from a few years ago.

The original version worked, but it relied on fishing line between the servos and the eyes, and the servos were glued in place, which made adjustments and repairs a bit of a pain. So for this build, I updated and expanded the design. I added a proper supporting stand, a mouth, and a mount for the Pi 5 and electronics on the back.

Design of Animatronic AI Chatbot

Download the 3D Print Files

So with that sorted, it was time to print out and assemble all of the parts. I printed out the parts in PLA, black for most of the components, white for the eyeballs (aside from the pupils) and mouth diffuser and then grey for the eyelids.

3D Printed Parts For Chatbot

Each eyeball uses a small universal joint to give it a full range of motion. They’re held in place with a drop of hot glue.

The new base includes screw-in mounts for the servos, each one attached using two M2 screws.

The eyes are driven using small RC pushrods for each axis. The z-bend goes through the printed arm on the inside of each eye-ball and the rod attaches to each servo with the included screw-on clamp. Don’t worry too much about adjusting these at this stage. It’s actually better to leave them loose so that they can be adjusted when the servo’s are centred in the code.

Each eye gets three servos: one for horizontal movement, one for vertical movement, and another for the eyelids.

The eyelids pivot around adjustable M2 screws on either side of each eye. These are screwed in from the outside of the bracket towards the eyeball and should almost touch the eyeball (about a 0.5mm gap). The eyelids can then be snapped into place on these screws, starting with the upper eyelid (larger one) first.

A two-part pushrod connects the eyelids to the servo. This also attachs to the eyelids with M2 screws and a single M2 screw acts as the pivot point in the middle to make the two parts into a single pushrod.

With six servos in total, the mechanism is a bit more complex than it needs to be, but it gives you independent movement of both eyes and eyelids. That means winking, going cross-eyed, or expressing more subtle movements becomes possible.

The mouth uses an 8-LED Neopixel bar. A soldered on jumper cable runs through the holder and the bar then screws into the stand again with some M2 screws. A white clip-on cover plate acts as a simple diffuser. If you’d like a more or less diffused mouth, play around with the infill settings on this part when printing it out.

With the mouth done, we can add two M2 screws to join the left and right eye bases to make a single assembly. The whole eye assembly then mounts onto the stand and is held in place with four M2 screws.

Electronics: Giving It a Brain

All six servos connect to a PCA9685 control board, which handles their power and PWM signals. This makes servo-control much easier, since the Pi just sends position commands over I2C and the board deals with the actual movement. It also avoids voltage-level issues, because the Pi’s 3.3V logic often isn’t compatable with servos that expect a stronger 5V PWM signal. This board is connected to the Pi’s I2C pins (SCL and SDA) as well as 5V and GND.

The Raspberry Pi 5 is mounted below the servo board, and the Neopixel bar connects directly to GPIO 13, physical pin 33. It also needs a 5V and GND input.

Circuit Diagram

Animatronic AI Chatbot Circuit

Wiring Connections Summary:

Servos to PCA9685 Board:

  • Left Eye X Movement – Servo Port 0
  • Left Eye Y Movement – Servo Port 1
  • Left Eye Blink – Servo Port 2
  • Right Eye X Movement – Servo Port 3
  • Right Eye Y Movement – Servo Port 4
  • Right Eye Blink – Servo Port 5

PCA9685 Board to Pi 5:

  • GND – Pi 5 Pin 6 (GND)
  • OE – None
  • SCL – Pi 5 Pin 3 (SCL)
  • SDA – Pi 5 Pin 5 (SDA)
  • VCC – Pi 5 Pin 4 (5v)
  • V+ – External 5V Power Supply +
  • GND – External 5V Power Supply –

NeoPixel Bar to Pi 5:

  • 5V – Pi 5 Pin 5 (5V)
  • GND – Pi 5 Pin 9 (GND)
  • Din – Pi 5 Pin 33 (GPIO13)

Building the Chatbot: Three Stages

With all of the electronics wired up, I put together a short Python test script to make the eyes roam around and blink at random intervals. This was just to test the movement and controls out, it makes the eyes feel alive even before adding the chatbot. I also added variables in the script so you can adjust things like movement speed, blink frequency, travel limits etc.. You can download this version of the code from my GitHub repository.

Animatronic Eyes Basic Eye Movement Script

With the animatronics working, the next step was building the actual chatbot. I broke this into three stages:

1. OpenAI API for Conversation

I started with a simple terminal-based chatbot using OpenAI’s API. To get started, you need to register an account and create an API key. You’ll also need to load some account credit to be able to generate responses, a chatbot uses very little so just load the minimum allowable balance to start out.

The OpenAI API also makes it easy to experiment with tone and personality, so you can tailor it to be friendly, sarcastic, calm, chaotic, or create your own custom personality prompt by changing these lines in the code.

2. Text-to-Speech

Once the text conversation worked, I added text-to-speech so the chatbot could talk back. This code takes the return text response and converts it into speech and then plays back the generated audio file.

Adding A Voice To The Chatbot

The voice options are also very flexible. You have different basic voice options, but can also tailor accents, styles, and levels of expression through the same text prompt as the previous step. You can go flat, dramatic, natural, robotic or whatever suits the personality of the chatbot you’re building.

3. Speech Recognition

Lastly, I added speech recognition. This code listens for spoken audio, which it then saves as an audio clip. It then converts it to text which is then used as the chatbot prompt and the rest of the code the same as in the previous steps. At this point, the system can listen, think, and respond entirely on its own.

Adding Listening For Input To The Chatbot

Adding Expression: The Neopixel Mouth

With the AI chatbot’s logic complete, I tied in the Neopixel mouth. The 8-LED bar lights up dynamically based on the volume and intensity of the speech. Soft sounds only light the middle LEDs, while louder or more expressive moments light the whole bar.

It’s a small detail, but it adds a lot of personality. Paired with the blinking animatronic eyes, the chatbot now feels quite lifelike.

The Complete AI Chatbot (And It’s Few Personalities)

And that’s the full AI chatbot build, complete with its animatronic eyes and a responsive Neopixel mouth, all powered by a Raspberry Pi 5. It’s best to watch my Youtube video linked at the begining of the post to see it in action.

Download the code from my GitHub repository.

I then experimented with different personalities:

  • A mad scientist
  • A grumpy, sarcastic chatbot
  • A chilled, laid back and casual chatbot

Seeing it blink, look around, and talk back never really gets old.

While I could have tried running the language model locally on the Pi 5, using cloud-based models gives significantly better results. There’s still about a 1–3 second delay between speaking and getting a reply, but it’s noticeably faster and far more natural than local models. And using the OpenAI API means you can access models like GPT-4 or GPT-4 Mini, which provide richer and more context-aware responses.

What Should I Add Next?

If you enjoyed this AI chatbot project, I’d love to know what you think I should add next. Should it track your face? Respond with emotions? Use gestures? There are a lot of possibilities for upgrading its personality and expressiveness.

Before we wrap up, here’s the chatbot’s final message to everyone:

“Goodbye, humans. May your code always compile and your servos never jitter.”

I think it has been spending a little too much time on GitHub…

Thanks for reading, and I’ll see you in the next one!

A Pi Cluster That Fits in the Palm of Your Hand – The Sipeed Nanocluster

Building a Raspberry Pi cluster usually means dealing with messy cables, stacks of boards, and a tangle of power supplies. But what if you could shrink all of that into a single, compact board?

That’s exactly what the Sipeed Nanocluster does. It’s a small board and enclosure that lets you run multiple Raspberry Pi Compute Modules together as a compact cluster computer, and it literally fits in the palm of your hand.

Here’s my video review of the Sipeed Nanocluster, read on for the write-up;

Where To Buy The Sipeed Nanocluster

  • Sipeed Nanocluster Preorder – Buy Here
  • Raspberry Pi CM5 Lite Modules – Buy Here
  • Sandisk Ultra MicroSD Card – Buy Here

Tools & Equipment Used

Pricing and Packages

The Sipeed Nanocluster is still in development, but you can preorder it from Sipeed’s website. Pricing depends on the configuration you choose. The basic package, which includes the barebones board and fan, starts at $49, while the fully loaded version with four of Sipeed’s M4N modules and adapters goes up to $699.

That might sound steep, but when you consider what’s included, an 8-port managed gigabit switch, eight power supplies, and all the necessary cabling and cooling, it’s actually quite good value. You’re getting everything you need to build a clean, functional cluster for less than the cost of a single Raspberry Pi Compute Module 5.

Sipeed sent me what appears to be their CM45 package, which includes the Nanocluster board, fan, and seven adapter boards for Raspberry Pi CM4 or CM5 modules (with a small caveat I’ll get to later). This kit sells for $99. They also included a 3D-printed two-part enclosure with clear and white top options. It doesn’t seem to be part of the preorder packages yet, but Sipeed has shared the 3D print files on Makerworld, so you can print your own if you’d like to.

Exploring the Nanocluster Board

The Nanocluster board itself features seven SOM (System on Module) slots, each using dual M.2 M-key vertical connectors. These connect to an 8-port RISC-V-based gigabit managed switch located at the bottom of the board. The switch includes a web dashboard for configuration, somethingthat’s quite nice to see in such a tiny setup.

The slots are directly compatible with Sipeed’s Longan 3H as well as their M4N module and Raspberry Pi CM4 and CM5 modules via the included adapter boards. You can even mix and match different module types if that suits your project.

For power, the board uses a USB-C port supporting up to 20V (65W) or an optional PoE expansion module (up to 60W). Both can be connected simultaneously for power redundancy, so your cluster keeps running even if one source drops out. It’s a thoughtful design that eliminates the usual mess of cables and power bricks. With your modules installed, you just plug in a power supply and Ethernet cable, or a single PoE cable, and you’re ready to go.

Alongside the USB-C port, you’ll find two USB 2.0 ports, a gigabit Ethernet port, and an HDMI port. These are all connected to slot 1, which acts as the master node and can manage power for the other slots too.

Cooling and Connectivity

Mounted to the back of the enclosure is a 60mm 5V fan. It’s a simple two-pin fan that runs at full speed permanently, it’s not PWM controlled, so it’s a bit noisy, but it ensures all modules stay cool regardless of what’s running.

In front of the fan are seven indicator LEDs showing the status of each node, and seven UART ports for debugging and control.

The board measures just 88 x 57 mm, or the whole assembly is roughly 100 x 60 x 60 mm with the fan and modules installed.

Computer Module Adapter Boards

If you’re using Sipeed’s LM3H modules, you don’t need adapters. But if you’re running Pi CM4, CM5, or M4N modules, these adaptor or carrier boards are required.

Each adapter board includes:

  • A connector for the compute module
  • A USB-C port for flashing
  • A boot button
  • A microSD card slot for the OS image
  • An M.2 slot (2230/2242) for an NVMe SSD

In terms of performance, the LM3H modules are the most affordable option, while the M4N modules offer the most processing power, featuring up to eight cores.

Power and Thermal Limits

As compact as the Nanocluster is, there are some limitations. Because of its 60W power limit and small form factor, you can’t populate all seven slots with high-power modules.

Sipeed recommends:

  • Up to 4 CM5 or M4N modules (especially with SSDs or PoE)
  • Up to 6 CM4 or LM3H modules
  • All 7 slots only if you’re using CM4s without SSDs and powered via USB-C PD

Space is also a factor, if you’re using heatsinks and SSDs, you’ll likely only fit four modules comfortably, skipping every other slot for airflow.

Setting Up the Cluster

For testing, I used four Raspberry Pi CM5 Lite modules (no Wi-Fi or Bluetooth) and microSD cards for storage. I also tried to use the official CM5 heatsinks, but they were too thick to fit, so I ran the tests without them. More on this during my thermal tests.

Once the modules were installed in their adapters and plugged into the board, I set up the cluster in the enclosure and prepared for some benchmarks.

Performance Testing

To test the cluster, I ran the prime number test script I used a few years ago on my 8-node water-cooled Pi cluster. The Python script checks each number up to a defined limit to see if it’s prime. It’s intentionally inefficient and CPU-intensive, perfect for testing performance scaling.

I ran the test three times per setup (single node vs. 4-node cluster), with limits of 10,000, 100,000, and 200,000.

Single Node Results:

  • 10,000 → 0.68s
  • 100,000 → 56s
  • 200,000 → 213s (≈4 minutes)

4-Node Cluster Results:

  • 10,000 → 0.19s
  • 100,000 → 14s
  • 200,000 → 58s

Each test ran roughly four times faster across the cluster, and the 4-node Pi 5 cluster even beat my old 8-node Pi 4 cluster, despite the Pi 4s being overclocked to 2.0GHz. The Pi 5s, running at stock 2.4GHz, showed how much progress the hardware has made.

Thermal and Power Tests

At idle, the cluster drew about 14W, which is around 2.5W per Pi, plus 3.5W for the board. Under full CPU load using cpuburn, total consumption rose to 33W, which is an increase to around 7.5W per Pi.

Thermally, the results were excellent. Even without heatsinks, temperatures started around 26–29°C and stabilised at around 60°C after 30 minutes of full load. The large fan does a great job pushing air across the exposed CPU heat spreaders, keeping all nodes within safe limits. The outer modules ran a bit warmer, but still comfortably low.

Fan noise measured about 58dB, which is noticeable but not unbearable for a lab setup.

Network Performance

I also ran an iPerf network test between nodes, and each link hit around 950 Mbps, which is right on target for gigabit networking.

Final Thoughts

The Sipeed Nanocluster is an impressive little system that makes cluster computing accessible and tidy. It packs power delivery, cooling, and an integrated managed switch into a form factor smaller than your palm.

I really appreciate that Sipeed thought about practical usability, power redundancy, active cooling, and clean integration all make this much easier to work with than a DIY setup full of cables and adapters.

It’s obviously not going to replace your cloud server or main NAS, but as a learning platform, IoT hub, or compact homelab, it’s a brilliant piece of hardware. And at under $100 for the board and adapters, it’s hard to beat.

What would you run on your own Nanocluster? Let me know in the comments section below and if you’re curious to see it in action, check out the video on my YouTube channel.

LattePanda’s New IOTA SBC – A Palm-Sized N150 Board for Makers

LattePanda’s latest release, the IOTA, packs Intel’s new N150 processor into a board barely larger than a Raspberry Pi. Despite its small size, it’s packed with features and IO aimed squarely at makers who want desktop-class power with microcontroller flexibility.

In this review, we’ll unbox the LattePanda IOTA, take a look at its hardware and available accessories, then boot it up to test video playback, run some benchmarks, and check its power consumption and thermal performance.

Here’s my video review of the LattePanda IOTA, read on for the written review;

Where To Buy The LattePanda IOTA

Add Ons

Tools & Equipment Used

Unboxing the LattePanda IOTA

The LattePanda IOTA is a single-board computer (SBC) available in several kit configurations with optional add-ons. I’ve got a few of those accessories here as well, which we’ll explore later. In the box is the IOTA, a user manual and a battery for the real-time clock.

The board measures just 88mm x 70mm x 19mm, making it impressively compact for what it offers. It keeps the same dimensions and general port layout as the original LattePanda V1, meaning it’s compatible with most existing enclosures, perfect for anyone looking to upgrade or drop it into an older build.

At first glance, you might think the CPU is on the top side, but it’s actually mounted on the back. The IOTA uses a 4-core Intel N150 CPU running up to 3.6GHz, paired with LPDDR5 RAM at 4800MT/s, available in 8GB and 16GB variants.

For storage, it includes onboard eMMC. It’s got 64GB on the 8GB RAM version, and 128GB on the 16GB version. The model I’m reviewing has 8GB of RAM and 64GB of storage.

Hardware Overview

One of the standout features of the IOTA is its onboard RP2040 microcontroller, which sets it apart from most x86-based mini PCs. This dual-core Cortex coprocessor manages I/O through the GPIO pins, similar to how the Raspberry Pi handles hardware interfacing.

Looking around the board:

  • On the bottom, there’s a power management connector for alternative power options and a fan connector.
  • On the top, you’ll find all the ports and interfaces:
    • Three USB 3.2 ports
    • HDMI 2.1 port (supports 4K @ 60Hz)
    • I2C connector for touch displays
    • eDP display connector
    • PCIe 3.0 x1 interface (similar to the Raspberry Pi 5)
    • Battery connector
    • USB-C Power Delivery input
    • MicroSD card slot
    • Headphone jack
    • Gigabit Ethernet port
    • Power and reset buttons
    • GPIO header
    • MCU reset and boot buttons
    • M.2 E-key slot for adding a Wi-Fi adapter.

The IOTA has a configurable TDP between 6W and 15W, letting you balance performance and thermals. At lower settings, it can run silently with a passive heatsink; crank it up, and you’ll want the active cooler (which I’m using for this review).

Pricing

I think the LattePanda IOTA is priced fairly well;

  • 8GB RAM / 64GB storage – $129
  • 16GB RAM / 128GB storage – $175

You’ll want to budget an extra $12 for the cooler, bringing the total to under $150 for the base setup. I think this is fair for what you are getting.

Optional Add-Ons

LattePanda also offers several add-ons to expand the IOTA’s functionality:

Smart UPS Hat

A plug-and-play uninterruptible power supply, capable of keeping the IOTA running for up to 8 hours depending on the batteries you use. It includes smart features like automatic power-on and safe shutdown when voltage gets too low, connecting via the IOTA’s power management connector.

51W PoE++ Expansion Hat

This expansion board lets you power the IOTA via Ethernet through its onboard gigabit port. It connects to the IOTA’s power input and PCIe port, effectively giving you two network ports.

M.2 Expansion Boards

There are two M.2 expansion options available for the IOTA:

  • One with an M-key slot for NVMe SSDs (2230 or 2280 sizes).
  • Another smaller one for a 4G LTE module for mobile connectivity.

The NVMe board connects through PCIe, while the LTE board uses a USB 2.0 interface via the GPIO pins.

Performance Testing The LattePanda IOTA

Video Playback at 1080P and 4K

For testing video performance, I ran playback at both 1080p and 4K, setting the system display resolution to match each test.

  • 1080p playback both in a window and fullscreen ran perfectly, with no dropped frames.
  • 4K playback dropped some frames, both windowed and fullscreen, but remained smooth enough for casual use. It’s near the performance limit, but still usable.

Benchmarks

I then ran a few standard benchmarks to get a sense of performance:

Unigine Heaven (1080p, High Quality)

  • Score: 221 points
  • Frame rate: 5–20 FPS

As expected, this isn’t a gaming system. The integrated graphics can handle light 3D workloads, but performance is roughly on par with other Intel N100 systems.

Geekbench 6

  • Single-core: 910
  • Multi-core: 2002

That’s enough for everyday tasks like browsing, media playback, and light productivity. It’ll struggle with heavier workloads like video editing or gaming.

CrystalDiskMark (eMMC Storage)

  • Sequential Read: 288 MB/s
  • Sequential Write: 206 MB/s
  • 4K Random Read/Write: ~40 / 46 MB/s

The onboard storage feels snappy for booting and launching apps, but it’s far slower than NVMe storage.

Power and Thermal Performance

At idle, the IOTA draws about 3–5W, rising to 15W under a full CPU and GPU load, with spikes up to 19W.

Reducing the TDP to its minimum 4W limit drops total draw to around 5W, but performance takes a big hit. Windows 11 becomes laggy, so a lightweight OS would be better suited for that mode. Still, it’s impressive that an x86 board running Windows can idle that low.

Thermals with the active cooler are solid:

  • Idle: 45–50°C
  • Full Load: ~70°C

Fan noise is the only real issue that I encountered with this board. It runs at 34–35 dB at idle (20cm away) and up to 50 dB under full load. The tone is fairly high-pitched, which makes it more annoying than the numbers suggest.

GPIO and Maker Features

Since the IOTA is designed for makers, the GPIO pins and RP2040 microcontroller are central to its appeal, and they’re very easy to use.

For a quick test, I connected two LED to the GPIO pins through 220Ω resistors, then opened the Arduino IDE directly on the IOTA. Selecting the RP2040 board profile, I uploaded a basic blink sketch and the LEDs flashed as expected.

That means you get the full power of an Intel PC plus a built-in microcontroller for sensors, motors, or other real-time hardware control, with no extra boards required.

Final Thoughts on the LattePanda IOTA

The LattePanda IOTA is a compact, power-efficient, and feature-rich little board that bridges the gap between a mini PC and a maker’s microcontroller platform.

The integrated RP2040 is what truly sets it apart, allowing hybrid projects that combine PC-level processing with real-time hardware control for robotics, automation, or experimental electronics.

If you’re looking for a cheap everyday mini PC, there are better options for pure desktop use. But if you’re a maker who wants something you can build projects with, the IOTA is a strong and flexible choice.

Let me know in the comments what you think of the LattePanda IOTA and what kinds of projects you’d use it for.

Turn your 10″ Homelab into a NAS with 3D Printable Shelves

If you’ve been following my projects, you’ll probably remember my Lab Rax system, a 10-inch modular and 3D printable rack I designed to make it affordable and flexible to build your own homelab.

Today I’ve got something new to add to it, a set of 3D printable shelves for drives and SBCs (Single Board Computers), designed specifically to turn your Lab Rax homelab into a compact and customizable NAS (Network Attached Storage).

LaxRax NAS Component Design

These shelves can be used as part of a larger Lab Rax setup or on their own as a dedicated NAS. In this post, I’ll walk you through the four new shelf designs, explain how to assemble them, and then show you two example NAS builds, one with a Raspberry Pi 5 and another with a Zimaboard 2.

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

Where To Buy The Components For This Project

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.

A Quick Recap: The Lab Rax System

The Lab Rax framework is 10 inches wide, making it a lot smaller than a standard 19-inch rack. But it still uses the same unit height (U) spacing and hole patterns as a 19-inch rack, so you can mix and match modules from other 10-inch rack systems.

NucBoc K10 In Lab Rax Homelab

The goal is flexibility, start with a small setup and then expand as you need more shelves, drives, computers, or networking gear.

The New 3D Printable NAS Shelves

I’ve designed four new 1U shelves, two for holding drives and two for housing SBCs to run the NAS. Let’s go through them one by one.

1. Dual 3.5″ Drive Shelf (1U)

This shelf holds two 3.5-inch drives, each mounted in a pull-out tray for easy swapping. The trays slide into rails built into the shelf body, and each drive is secured with M3 drive screws through holes in the sides of the tray.

  • At the back of each bay, there’s a mounting point for a SATA data and power cable.
  • Although designed for 3.5″ drives, the bays are dual-purpose, so you can mount 2.5″ drives into the same trays using the appropriate screw holes.
  • For airflow, the front and sides of the shelf are vented. I recommend leaving at least 1U of space for cooling, or installing a 120mm fan on the sides of the rack if you’re stacking multiple of these with spinning hard drives.

Download the Dual 3.5″ Drive Shelf (1U) 3D print files.

Assembly tips:

  • Print the main shelf body and the drive trays separately. I’ve prepared print profiles on Makerworld for Bambulab printers.
  • To mount the SATA cable connectors;
    • Use a soldering iron to add M3 threaded brass inserts into the prepared holes, two per connector.
    • Secure each connector using two M3x8mm button head screws.
    • You’ll need M3 drive screws to secure the drives to the trays.
  • Once the drives are fixed in place, slide the trays into the shelf until they click or stop against the rear cable mounts.
    • If they don’t click into place easily, loosen the M3 screws on the connector slide the drive in and then tighten them with the drive in place to correct the alignment.

2. Quad 2.5″ Drive Shelf (1U)

If you’re using SSDs or smaller mechanical drives, this shelf is ideal. It holds four 2.5-inch drives, again using pull-out trays with the same SATA cables as the 3.5″ version.

Four 2.5 Drives Rack
  • Each drive is secured to the tray with M3 drive screws into the sides of the drive.
  • Because 2.5″ drives run cooler and lighter, this shelf is especially well-suited for higher density SSD setups.

Download the Quad 2.5″ Drive Shelf (1U) 3D print files.

Assembly tips:

  • Print the main shelf body and the drive trays separately. I’ve prepared print profiles on Makerworld for Bambulab printers.
  • To mount the SATA cable connectors;
    • Use a soldering iron to add M3 threaded brass inserts into the prepared holes, two per connector in both the shelf and the SATA connector bracket (for the top two drives).
    • Add another four threaded brass inserts for the SATA connector bracket. One in each end of the bracket and two in the centre of the shelf for the bracket to be screwed onto.
    • Secure the two bottom connectors using two M3x8mm button head screws each.
    • Secure the two top connectors to the bracket using two M3x8mm button head screws each.
    • Screw the SATA connector bracket to the shelf using four M3x8mm button head screws, one on each end and two in the middle.
    • You’ll need M3 drive screws to secure the drives to the trays.
  • Once the drives are fixed in place, slide the trays into the shelf until they click or stop against the rear cable mounts.
  • If they don’t click into place easily, loosen the M3 screws on the connector slide the drive in and then tighten them with the drive in place to correct the alignment.

3. Raspberry Pi 5 NAS Shelf (1U)

This shelf is designed to house a Raspberry Pi 5 alongside the Radxa Penta SATA HAT, which provides up to five SATA connections, four standard SATA ports and one eSATA port.

Pi NAS Shelf
  • The Pi mounts into 3D printed standoffs on the shelf base.
  • The SATA HAT sits directly on top of the Pi, with the four SATA ports facing upward and the eSATA port facing the front of the rack.
  • I also included a space for a small I2C OLED display so you can install my OLED display stats script to monitor system stats.

This compact design allows you to run a full NAS controller with stats feedback in just one rack unit.

Download the Raspberry Pi 5 NAS Shelf (1U) 3D print files.

Assembly tips:

  • Start by installing the Pi on the shelf using the 18mm brass standoffs supplied with the Radxa Penta SATA hat and nuts through the pockets in the bottom of the shelf.
  • Plug the Penta SATA hat into the Pi’s GPIO pins and connect the PCIe ribbon cable. Secure it with brass standoffs on top of the hat.
  • Install the OLED display in the holder. It is held in place at the top using the 3D printed clips and you can secure the bottom with a few drops of superglue or hot glue.
  • A 4 wire ribbon cables connects the display to the GPIO pins. You’ll need to connect GND, 3.3V, SCL and SDA. I’ve soldered the ends to the tops of the GPIO pins on the Radxa hat.

4. Zimaboard 2 NAS Shelf (1U)

The final shelf is built around the Zimaboard 2. I made this one up because the Zimaboard already includes two SATA ports on the back panel and has a PCIe port for expansion, so its a more versatile option for building a multi-bay NAS.

Zimaboard 2 NAS Shelf
  • The Zimaboard mounts neatly into the tray, with easy access to the rear I/O.
  • The design also allows space for a PCIe SATA expansion card. The card I’ve used gives you five additional SATA ports for a total of seven. This makes it a much more expandable option if you’re planning a larger NAS.

Download the Zimaboard 2 NAS Shelf (1U) 3D print files.

Assembly tips:

  • The Zimaboard 2 slides into place and is secured by three M3x8mm button head screws through the sides. These are easily installed using a hex key through the holes in the side walls of the shelf.
  • A PCIe SATA card can then be installed in the slot alongside it.

Example NAS Builds

Now let’s look at two example builds using these shelves, both built into a standard 5U Lab Rax case. The Pi build only uses 4U, leaving one spare unit for future expansion.

Build 1: Raspberry Pi 5 NAS

  • Top unit: QNAP network switch.
  • Second unit: Ventilation panel to allow space for the SATA cables (and can be used for future expansion)
  • Third unit: Raspberry Pi 5 shelf with Radxa Penta SATA HAT and OLED display.
  • Fourth and fifth units: Two dual 3.5″ drive shelves (4 drives total).

This switch is a bit overkill for the Pi’s gigabit ethernet port but I’m going to be using it wit a 2.5G network adaptor plugged into one of the Pi’s USB 3 ports. This gives significantly faster transfer speeds compared to the Pi’s built-in gigabit Ethernet.

Pi NAS Rack Running 2.5G Networking

Running OpenMediaVault (OMV) on the Pi 5 with the drives set up in a RAID 5 pool, I achieved:

  • Write speeds: ~215 MB/s
  • Read speeds: ~240 MB/s
Drive Speed on Pi NAS

The main limitation here is expansion, with only one PCIe lane on the Pi 5, there are limited options for going beyond 5 drives.

Build 2: Zimaboard 2 NAS

  • Top unit: QNAP network switch.
  • Second unit: Zimaboard 2 shelf with space for PCIe SATA expansion.
  • Third unit: Quad 2.5″ drive shelf (4 SSDs).
  • Fourth and fifth units: Two dual 3.5″ drive shelves (4 drives total).

This setup offers much greater expandability thanks to the PCIe slot. With the PCIe card that I used, you can connect up to seven drives in total, but these cards are also available with higher port counts.

The Zimaboard runs ZimaOS, a clean and user-friendly NAS operating system that makes pooling drives and managing shares very straightforward.

In testing, I saw slightly higher performance than the Pi build:

  • Write speeds: ~230 MB/s
  • Read speeds: ~260 MB/s
  • Better handling of multiple simultaneous transfers and generally performs better due to the more power N150 CPU.
  • Dual network ports for redundancy or link aggregation.
Drive Speed on Zimaboard 2 NAS Build

Final Thoughts

These new shelves transform the Lab Rax system from a general-purpose rack into a capable and modular NAS framework.

  • If you want something small and affordable, the Raspberry Pi 5 build is an excellent option.
  • If you need more power and expandability, the Zimaboard 2 build is the better choice.

Because the shelves are 3D printable, easy to assemble, and designed to fit common print bed sizes, anyone can replicate these builds at home. I’m really happy with how they turned out and I’ll be adding more modules in the future as I keep developing the Lab Rax ecosystem.

Which one would you build, the Pi 5 NAS or the Zimaboard 2 NAS? Let me know in the comments below!

TRMNL: The Open Source Smart Display You Can Also Build Yourself

Imagine a little screen on your desk, wall or even fridge, quietly updating you with your calendar, to-do list, or the weather without the distractions of a phone or computer.

That’s what TRMNL is, a sleek, open-source, battery-powered e-ink display that’s built to be simple, low power and easy to use.

Today I’ll show you what the ready-made TRMNL can do and then we’ll go a step further and actually build one ourselves, from scratch, to see if it’s worth making your own or buying their version.

Here’s my video review and build, read on for my write-up;

Where To Buy TRMNL

  • TRMNL – Buy Here
  • Developer’s License (Required To Create Custom Plugins) – Buy Here

To Build My DIY Version

  • ESP32-S3 XIAO – Buy Here
  • 7.5″ Monochrome e-Ink Display 800×480 (Seeed SKU 104990861) – Buy Here
  • E-Ink Driver Board for XIAO (Seeed SKU 114993558) – Buy Here
  • or E-Ink Driver Board for XIAO (Seeed SKU 114993558) – Buy Here
  • 2000mAh Battery – Buy Here
  • BYOD TRMNL License – Buy Here
  • PLA Sparkle Filament – Buy Here
  • M2.5x6mm Screws – Buy Here
  • M2.5 Brass Inserts – Buy Here

Tools & Equipment Used

Unboxing & First Look At TRMNL

This is the TRMNL package that you can order directly from their website from $139. They also have a few different finishes and some add-ons like a battery upgrade and developer license to create your own plugins.

TRMNL Premade Device

I got the Clarity Kit which includes the developer license, a USB-C charging cable, a screen protector, and then the terminal itself, which has the upgraded 2500mAh battery.

TRMNL Unboxing Grey Colour Clarity Kit

This is the grey version and it comes in a total of six different colours.

Design and Features

On the front we’ve got the 7.5” e-ink display, and on the back is the power switch, a button to refresh the screen, and a USB-C port for charging.

It’s also got two mounting options:

  • A hanging point for a nail or screw
  • A flip-out metal stand
TRMNL Stand

I kinda wish it had a magnetic option as well to stick it onto a fridge or filing cabinet.

The device is preassembled and ready to go, with their software already installed.

Setup Process

I found the setup process really easy to work through. You essentially connect to TRMNL’s WiFi hotspot to tell it how to connect to your WiFi network and then link it to your account using a device ID.

After linking to your account, it automatically updates the firmware and the rest is then managed through their website.

Battery Life

One of the best features of TRMNL is that because it’s got an e-ink display and a low power microcontroller, it doesn’t need to be permanently plugged in. The built-in battery will power it for up to 6 months between charges, depending on how often it is updating the display.

Being an e-ink display, it only requires power to change the image. Between updates the display is off and the microcontroller goes into a low power sleep mode.

Software and Plugins

Their website is fairly easy to use once you get the hang of it, but it can be a bit confusing when you first open it up.

Web Interface To Set Up

There are basically three components to what is displayed:

  • Playlists
  • Plugins
  • Recipes

Plugins and Recipes are essentially the apps that provide the content to be displayed. Plugins are developed by TRMNL themselves and Recipes are community-developed.

Plugins

You then load these into a Playlist which allows you to cycle through them so that you’re not limited to just running one app at a time.

Playlist

There are also a few other options, like having up to four plugins or recipes displayed at once through one of eight available layouts, so you can really get quite a lot of information onto it.

Limitations

This is not an LCD or OLED display, so you’re not getting an HD-quality image. The highest refresh rate that you can set is once every 5 minutes, but that’s the point.

It’s intended to be a minimalist display for data that doesn’t change very quickly or often, and that will run for months between charges.

TRMNL Weather Display

You can even set it to only update once every hour and to enable sleep mode during times when you’re not around it anyway, and that’ll extend battery life to over 10 months.

You can use it to display images, and there are a couple of plugins for photos which get the job done, but it’s not what this screen is intended for. The rendered image is quite grainy. It’s far better suited to displaying sharp text and simple graphics.

At the time of making this post, there are over 500 plugins and recipes available for TRMNL, so you should easily be able to tailor it to your needs.

Building A DIY Version

Now let’s move on to the DIY version.

Since the team behind TRMNL have made it completely open source, they’ve also published everything you need to build your own version. You can even register DIY devices on their server to use their web platform too.

They say that their retail price is often cheaper than building your own, and that may be true depending on where you get your components. But I found it to be a tiny bit cheaper.

DIY Component Costs

Here’s what I used:

  • 7.5″ e-ink display – $35
  • ESP32 with antenna – $6
  • E-ink Display breakout board with built-in battery charger – $5
  • 2000mAh battery – $10

That’s just $55 for the components, or $70 including shipping.

BYOD Components

This is quite a bit cheaper than TRMNL’s $139 price tag. But that’s before adding their $50 one-time device fee (BYOD License) to use their server, and without an enclosure, which I’m going to design and 3D print myself.

So all up, I think it’s fair to say that you’ll be in for a similar price either way.

Server Options

You also don’t have to pay the $50 BYOD License fee to use their server. You can host your own server privately if you’d like to. This will do away with the device fee as well as keep all of your data in-house.

Personally, I like the ease of use of their website and I’d rather pay a one-off fee than have to pay a monthly subscription, so I’m glad they’ve gone with this model.

The DIY TRMNL Build

The heart of the DIY TRMNL is the little ESP32 module. This is a 32-bit RISC-V chip that operates at up to 160MHz.

ESP32 Xiao

Its real strength is low power consumption, it can use as little as 44 microamps in deep sleep mode, which makes it perfect for this type of battery-powered project. It’s also got built-in 2.4GHz WiFi and Bluetooth 5.

The 7.5″ display that we’re pairing it with has a resolution of 800×480 and it takes around 3.5 seconds for a full refresh of a single frame. So it’s not winning any awards for performance, but like the ESP32 it’s really good on power consumption. It uses just 8 milliamps during a refresh and doesn’t need any power between refreshes to maintain what is displayed.

7.5 Eink Display

To connect these together, as well as use and charge the battery, we’ve got an e-ink driver board.

Eink Driver Board With Charging Circuit

This has:

  • A 24-pin FPC connector for the display
  • A socket for the ESP32
  • A charging circuit and port for the battery
  • A power switch on the side

Because of the components I’ve chosen, there isn’t a whole lot to build. All of the components easily plug into the driver board. Some versions of the ESP32 module may require you to solder the pins onto the module beforehand.

Eink BYOD Setup

Flashing the Firmware

Next we need to flash TRMNL’s firmware onto it.

There are a couple of options for this depending on the hardware you’re using, and these vary in complexity, from using a simple web tool to having to build the firmware from source code.

Once that’s done, you follow a similar process as before to pair it to your account, and you can then start creating playlists.

TRMNL Firmware Flashed and Running

The Enclosure

I measured up the electronic components and designed a simple 3D-printable enclosure for them.

BYOD TRMNL Housing Design

I wanted to make something a little different to the original TRMNL housing, so I went with this design which looks like it’s holding the ePaper display like a sheet of paper or card, really highlighting how thin it is while also sticking with the minimalistic theme. The electronics are then all stored in the base.

Download my DIY TRMNL Enclosure 3D print files.

Let’s get it printed out.

Printing Out Housing

To finish it off, we just need to install some brass inserts in the base for the M2.5 screws to screw into. We can then install the display, ESP32 and battery, stick the antenna to the inside of the enclosure and then close it up.

And we’ve now got a unique DIY TRMNL which provides similar functionality to the original. The only real missing feature is the button to refresh or change the display.

Final Thoughts on TRMNL

So that’s TRMNL. A minimalist smart display that you can either buy ready-to-go or build yourself.

BYOD and Original TRMNL

Personally, I love that it strips away the noise and just gives you the info you actually want, when you need it.

If you’d like to get your own TRMNL, check out their website. I’ve also put my 3D printable design on Makerworld if you’d like to try build a DIY version.

I’d love to hear what you’d use TRMNL for and what you think of my DIY version, so let me know in the comments below.

This $40 Pi 5 Case By Elecrow Packs In A Lot Of Features

The Raspberry Pi 5 is powerful enough to be used as a mini desktop computer, and many people do, but finding the right enclosure for it can make all the difference. Today I’m looking at the new Mini PC style case from Elecrow, which aims to give your Pi the look and feel of a desktop computer without breaking the bank.

Like some of the other Raspberry Pi cases I’ve reviewed, this one comes with some cool features like a multi-fan cooling system, a port adapter that routes the Pi’s HDMI and power connections neatly to the back of the case, a 1.3″ OLED display, and an NVMe hat for connecting an SSD. What caught my attention, though, is the price. All of this comes in at just $40, which is significantly cheaper than most other cases with similar features.

So let’s find out whether it’s any good.

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

Where To Buy The Elecrow Mini PC Case For The Pi 5

Tools & Equipment Used

  • Video Capture Card AVerMedia GC513 – Buy Here
  • Infiray P2 Pro Thermal Camera – Buy Here
  • Sound Level Meter – Buy Here
  • USB C Pencil Screwdriver – Buy Here

Unboxing the Elecrow Mini PC Case

The case comes in a colourful box.

Elecrow Mini PC Case

Inside it, you’ll find:

  • The two metal enclosure halves
  • A port adapter
  • Two clear acrylic side panels
  • Adapter boards and OLED display
  • Cooling fans and heatsink components
  • Cables, screws, and a screwdriver

Everything is well packaged, with parts and screws are individually labelled to make assembly easy. For a case marketed for both the Raspberry Pi 5 and NVIDIA Jetson Orin Nano, it would have been nice if Elecrow included the small extra components required for both platforms rather than one or the other, but it’s still a solid set of inclusions for the price.

Assembling The Mini PC Case

The case includes an illustrated instruction sheet and even a screwdriver, so assembly is straightforward.

Assembly Instructions and Screwdriver
  1. Brass standoffs are first installed onto one half of the enclosure.
  2. The cooling pads and heatsink are then mounted onto the Raspberry Pi 5’s heat producing components including the CPU, power circuitry, and WiFi chip.
  3. Next, the adapter boards are connected. One handles power, HDMI, and NVMe, another handles the GPIO pins, display, and fans, and the third routes the microSD card.
  4. The Pi assembly is then secured to the enclosure with 10 screws (although I could only install 9, as the last one was blocked by the GPIO adapter).
  5. The NVMe drive can now be installed. I tested a 512GB Lexar NM620. The hat supports a range of drive sizes from 2230 to 2280.
  6. The three 30mm RGB fans are installed on the enclosure halves.
  7. The power button and OLED display module are added. The display is a bit larger than usual at 1.3 inches compared to the typical 1-inch displays used on these types of cases.
  8. The enclosure halves are then screwed together, with the two clear acrylic side panels and rear port cover plate closing everything up. The clear acrylic panels are bevelled, giving the case a premium finish.
  9. Finally, four aluminium feet are installed on the bottom, capped with rubber inserts for vibration dampening.

With that, the case assembly is complete.

OLED Stats Display Software Setup

Getting the OLED display working requires installing a software script. This process is slightly more involved than simply running a GitHub script, but it isn’t particularly difficult. Hopefully Elecrow simplifies this in the future.

Stats Display Script Setup

Once the script is installed and the Pi is rebooted, the display cycles through four pages showing;

  1. System statistics
  2. Storage capacity and utilisation
  3. CPU temperature
  4. Date and time

I would have liked some options here. Personally, I prefer a single screen showing system stats and temperature, but this arrangement works fine too.

Benchmarking and Thermal Testing

Since the case provides both NVMe support and active cooling, I ran a couple of tests to see how well it performs. I used James Chambers Pi Benchmarks script to test the NVMe drive performance and CPUBurn to test the cases thermals.

NVMe Performance

I tested the NVMe drive using the Pi Benchmarks script because this test favours random read/write performance which istypically how an OS uses the drive.

Running James Chambers Pi Benchmarks Script

Over three runs, I achieved an average score of 54,657 (individual scores were: 53,638 / 54,947 / 55,386). This is about what you’d expect from a Lexar NM620 running at PCIe Gen 3 speeds on a Raspberry Pi 5, so there are no issues with the NVMe adaptor.

Thermal Performance

For thermal testing, I used CPUBurn, which fully loads all four Pi cores to generate the maximum amount of heat that the CPU is capable of producing.

Thermal Test Running
  • The test began at 39°C in a 22°C room, which is a little high for idle but not concerning.
  • Within 4 minutes, the CPU temperature rose to 60°C.
  • It then stabilised around 63°C for the remainder of the 20-minute test.

This isn’t bad, but it isn’t outstanding either. There is plenty of unused space inside the enclosure, so Elecrow could have fitted a larger cooler to improve performance. I assume they were with the smaller one to keep costs down.

Fan Noise Level

One of the first things that I noticed when booting up the Pi was that the fans are quite loud. They are not PWM-controlled, so they spin up to full speed immediately. Being 30mm fans, they have quite a sharp noise profile.

At a distance of 20cm, I measured 50 dB, which is on the noisy side for a case that’s designed to be used on your desktop.

Sound Level Measurement

The power button works as intended. Holding it initiates a shutdown sequence, and it then cuts power to the fans and the Pi itself, leaving the system ready for the next startup.

Final Thoughts

For just $40, this case delivers good value. You get NVMe storage support, redirected ports for a cleaner desktop setup, a functional OLED display and active cooling that keeps the Pi stable under full load. It makes the Raspberry Pi 5 feel more like a mini desktop computer than an exposed board on your desk.

Being a first generation product, there are, however, some minor quirks to it:

  • As shown earlier, one screw behind the GPIO adapter is nearly impossible to install. This could quite easily be resolved by installing it at an earlier stage.
  • The display setup process could be easier, ideally with a direct download link rather than a QR code. The Pi doesn’t have a camera installed, so the QR code isn’t particularly helpful.
  • Cable management could be improved. For example, the OLED ribbon cable dangles in the most visible part of the case and could easily have rather been incorporated into the adaptor board alongside it.
  • The redirected microSD slot comes out in a rather strange spot at the bottom of the case.
  • The fans are noisy and could benefit from PWM control.

If these aren’t significant issues to you, then the Elecrow Mini PC Case is a very well-priced option for Pi 5 owners who want a desktop-style enclosure. You can check out the case on Elecrow’s web store.

Let me know what case you’ve got your Pi 5 in in the comments section below.