Mark McBride

Hardware

I constantly tweak my homelab hardware setup. These are my notes.

Rack 1: Network & SBCs

All the ethernet cables in my house terminate in a small closet. On the wall I’ve got a 9U rack with the core of my network stack as well as my main servers.

            9U WALL-MOUNTED RACK
    ┌──────────────────────────────────┐
  9 │    ▄▄▄  ▄▄▄   SBCs   ▄▄▄  ▄▄▄    │
    ├ └──────────────────────────────┘ ┤
  8 │                                  │
    ├    ≡≡≡  ≡≡≡    8x    ≡≡≡  ≡≡≡    ┤
  7 │    ≡≡≡  ≡≡≡   HDDs   ≡≡≡  ≡≡≡    │
    ├ └──────────────────────────────┘ ┤
  6 │                                  │
    ├  ◌ ◌ ◌ ◌  8-Outlet UPS  ◌ ◌ ◌ ◌  ┤
  5 │                                  │
    ├──────────────────────────────────┤
  4 │          Lockable Drawer         │
    ├──────────────────────────────────┤
  3 │              Router      [┬] [┬] │
    ├───────────────────────────│───│──┤
  2 │ [┬] [┬] [┬] [┬] Switch   [┴] [┴] │
    ├──│───│───│───│───────────────────┤
  1 │ [┴] [┴] [┴] [┴] Patch Panel      │
    └──────────────────────────────────┘
Slot  Part
────┬───────────────────────────────────
  9 │ Single Board Computers, 1U shelf
  8 │ --
  7 │ WD Red Pro HDDs in cages, 2U shelf
  6 │ --
  5 │ CyberPower UPS CP1500PFCRM2U
  4 │ 1U 12" Lockable Drawer
  3 │ Unifi UDM Pro (Router)
  2 │ Unifi USW Pro Max 16 PoE (Switch)
  1 │ Cable Matters 24-port Patch Panel
  0 │ Tecmojo 9U, Swing Gate, 18" Depth
9U Wall-mounted Rack

SBC 1: ODROID H4 Ultra

My main system is the ODROID H4 Ultra. It is what convinced me SBCs could take on server roles. With 4 onboard SATA ports, 1 NVMe SSD port, support for 64GB DDR5 RAM, and a processor that can easily handle several simultaneous 4K video decodes, it checked all the boxes for me. And most impressive, with 8 cores it comes in under 15 Watts of power consumption. I highly recommend this device. I run FreeBSD on it and everything just works.

ODROID H4 Ultra
─┬─────────────
 │
 ├─ CPU: Intel i3-N305          
 │                              
 ├─ RAM: 64GB DDR5              
 │                              
 ├─ SSD: 1TB                    
 │                              
 ├─ HDD: 22 TB ─┐               
 │              ├─ Mirror ─┐   
 ├─ HDD: 22 TB ─┘          │
 │                         ├─ 48 TB Pool  
 ├─ HDD: 26 TB ─┐          │
 │              ├─ Mirror ─┘   
 └─ HDD: 26 TB ─┘               
 Qty  Physical Part
 ───┬────────────────────────────────────
  1 │ ODROID H4 ULTRA SBC
  1 │ Intel i3-N305 CPU w/ Quicksync
  1 │ Crucial 64GB DDR5 RAM
  2 │ WD Red Pro 26 TB HDD
  2 │ WD Red Pro 22 TB HDD
  1 │ Samsung SSD 970 EVO Plus 1 TB


 Qty  Virtual Part
 ───┬────────────────────────────────────
  1 │ FreeBSD - Operating System
  1 │ ZFS - File System

To give you a feel for why I love this system, consider the load I’m running and I never notice a slowdown or lag:

The only time I’ve been able to make it stutter was compiling FreeBSD Ports with poudriere with no constraints set (which, to be fair, can make a proper server choke).

I’m looking forward to see what Hardkernel releases next in this form factor.

ODROID H4 Ultra sitting on a shelf above its 4 HDDs

SBC 2: Radxa ZERO 3E

This system is really great. One tiny board that can run Linux or FreeBSD. I have it running DietPi (Debian) as the Linux support for the 24-pin GPIO is better. I use this system as a BMC alternative. It gives me serial console access to the other systems nearby, and it is wired to power relays which allow me to perform the equivalent of a physical button press on the nearby systems (i.e., I can do a hard reboot remotely if necessary). This tiny thing runs around 1 Watt, 2 max.


Radxa ZERO 3E
─┬───────────
 │
 ├─ CPU: Quad-core Cortex A55            
 │
 ├─ SoC: Rockchip RK3566
 │                              
 ├─ RAM: 2 GB LPDDR4              
 │                              
 └─ µSD: 256 GB          

 Qty   Physical Part
 ────┬───────────────────────────────────
   1 │ Radxa ZERO 3E
   1 │ SoC Rockchip RK3566
   1 │ Cortex A55 Quadcore CPU
   1 │ 2 GB LPDDR4 RAM
   1 │ GPIO Breakout Board
   1 │ SanDisk 256 GB microSDXC


 Qty   Virtual Part
 ────┬───────────────────────────────────
   1 │ DietPi - Operating System
   1 │ ext4 - File System
Radxa ZERO 3E w/ GPIO Breakout and 3 Optocoupler Relays

SBC 3: Raspberry Pi 5

I want to like the Raspberry Pi 5, but I find it to be a total pain. Several operating systems fail to run on it, it uses a lot of power for what it does, has weird failures on things like UARTs, and is missing features that would make it interesting. Especially now with the ODROID and Radxa ZERO systems, it doesn’t really play a “powerful small system” or a “low power system” role well. I keep it available to test things on, but it’s mostly offline.


Raspberry Pi 5
─┬────────────
 │
 ├─ CPU: Quad-core Cortex A76            
 │
 ├─ SoC: Broadcom BCM2712
 │                              
 ├─ RAM: 8 GB LPDDR4              
 │                              
 └─ SSD: 8 TB          

 Qty   Physical Part
 ────┬───────────────────────────────────
   1 │ Raspberry Pi 5
   1 │ Broadcom BCM2712
   1 │ Cortex A76 Quadcore CPU
   1 │ 8 GB LPDDR4 RAM
   1 │ 8 TB WD_Black SN850X
   1 │ GeekPi P33 M.2 NVMe & PoE+ HAT


 Qty   Virtual Part
 ────┬───────────────────────────────────
   1 │ Raspberry Pi OS - Operating System
   1 │ ext4 - File System
Raspberry Pi 5 w/ NVMe & PoE+ HAT

SBC 4: Coming Soon

I was planning to decommission the 24” rack server listed below that’s acting as my backup solution, but the impact of AI on hardware prices in 2026 is something I’ve decided to wait out. I built SBC1 for just over $500 in October 2025. The RAM chip alone now is $800. I’ve got my eye on Hardkernel. If past timing is any indication, they’re due for an “H5” series this year. That said, the latest Intel embedded processors aren’t so different from the i3-N305. We’ll see. No rush, but there’s an ODROID-sized spot for whatever comes next.

Microcontroller

In late December 2025 I grabbed an ESP32 device to control UART consoles and remote power-on/off events for my ODROID H4 Ultra and Raspberry Pi 5. It was my first time building a homelab solution that didn’t depend on a server running Linux or BSD to work. I was pleasantly surprised by how easy it was to build and how effective it has been in operation. In the past, BMC features would be a major consideration leading me to purchase server motherboards. This obsoletes that completely and opens a whole new world of SBCs for me.

That said, I ultimately went with the Radxa ZERO 3E for this problem space. It requires less than a Watt more power and allows me to run a full Linux install, which makes administration a lot easier. I’ll continue to tinker with the ESP32, but for now it’s on standby.

Rack 2: Full 24” Deep Rack

I moved from PC towers to a rack setup in 2013, but as of 2026 I’ve started decommissioning these components in favor of the much smaller, cheaper, and capable SBC components above. The rack servers have served me well over the years. But these days, most things that fit in a 24” rack are overpowered both in terms of capability and electricity consumption. The original thing that attracted me to this space was the ability have a chassis with 8-12 hot swap HDDs. There was a time when one server would have all these slots full. With modern HDD capacities, 4 HDDs are more than enough for my needs, and that likely shrinks to 3 or maybe even 2 HDDs by 2030. For the time being, I still use the lower power system as a backup server. The other is almost always powered off.

               15U ROLLING RACK
     ┌─────────────────────────────────┐
  15 │              ↗    Fiber Switch  │
     ├     Shelf    ↗  Ethernet Switch ┤
  14 │    (Front)   ↗      (Rear)      │
     ├─────────────────────────────────┤
  13 │                                 │
     ├              Drawer             ┤
  12 │                                 │
     ├─────────────────────────────────┤
  11 │                                 │
     ├         Supermicro Server       ┤
  10 │                                 │ 
     ├─────────────────────────────────┤
   9 │                                 │
     ├         Supermicro Server       ┤
   8 │                                 │
     ├─────────────────────────────────┤
   7 │ ════════════ Cover ════════════ │
     ├─────────────────────────────────┤ 
   6 │ ════════════ Cover ════════════ │
     ├─────────────────────────────────┤
   5 │                                 │
     ├                                 ┤
   4 │              Drawer             │
     ├                                 ┤ 
   3 │                                 │ 
     ├─────────────────────────────────┤ 
   2 │                                 │
     │   ◌ ◌ ◌ ◌ ◌   UPS   ◌ ◌ ◌ ◌ ◌   │ 
   1 │                                 │
     └───┬─────────────────────────┬───┘
         Ō                         Ō 
 Slot  Part (Front-facing)
 ────┬──────────────────────────────────
  15 │ --
  14 │ 2U Shelf
  13 │ --
  12 │ 2U lockable drawer
  11 │ --
  10 │ Supermicro 825TQC-R740LPB Chassis
     │ ├ Supermicro X12STH-F Motherboard
     │ ├ Intel Xeon E-2324G
     │ ├ 4 x 16 GB DDR4 UDIMM ECC RAM
     │ └ Intel X710-DA2 Fiber Network
   9 │ --
   8 │ Supermicro 826BEC1C-R920LPB Chas.
     │ ├ Supermicro X12STH-F Motherboard
     │ ├ Intel Xeon E-2388G
     │ ├ 4 x 32 GB DDR4 UDIMM ECC RAM
     │ ├ Nvidia Mellanox ConnectX-4 Lx
     │ └ Supermicro AOC-S3008L-L8e HBA
   7 │ Cover on blank slot
   6 │ Cover on blank slot
   5 │ --
   4 │ --
   3 │ 3U lockable drawer
   2 │ --
   1 │ Schneider/APC Smart-UPS X 1500
   0 │ 15U Rolling Rack, 24" Depth


 Slot  Part (Rear-facing)
 ────┬───────────────────────────────────
  15 │ UniFi 24 PoE Switch
  14 │ UniFi Fiber Switch

15U Rolling Rack