Blog

Pi clusters aren't dumb

...and the video I just posted on the Mars 400 explores the topic a bit more.

Mars 400 DeskPi Super6c and Turing Pi 2 CM4 Raspberry Pi clusters

But every time I've posted a video, blog post, tweet (xeet?), or anything else on the topic of Pi clusters, a common sentiment is "you can do that faster and cheaper with a set of VMs."

Or, during the Pi shortage (which is basically over), when you could only buy Pis from scalpers for insane markups, the sentiment was "you can do that faster and for the same price with a bunch of used mini PCs."

Luckily, with Compute Modules coming back into general availability at MSRP, and Pi 4s being available at most local retailers as well (at least here in the US?), building hobby clusters of 3, 4, or 6 Raspberry Pis is achievable again, for a few hundred bucks, all-in.

HTGWA: How to completely erase a hard drive in Linux

This is a simple guide, part of a series I'll call 'How-To Guide Without Ads'. In it, I'll show you how I completely initialize a hard drive so I can re-use it somewhere else (like Ceph) that doesn't like drives with partition information!

First, a warning: this blog post does not show how to zero a hard drive, or secure erase. That's a slightly different process.

But as someone with way too many storage devices (from testing, mostly), I find myself in the position of trying to use a spare drive in some place where it expects a brand new drive, but winds up failing because the drive had a partition, or had valid boot files from an SBC or something.

I wanted to document the easiest way in Linux to completely reset a hard drive—at least from Linux's perspective.

The impetus was when I was trying to get some hard drives added to a Ceph OSD, and the process that tried adding them ran into an error stating RuntimeError: Device /dev/sda has partitions.

So you want to make a Raspberry Pi killer...

Raspberry Pi CM4 Clones stacked up

I'm in the unique position of owning a collection of Raspberry Pi Compute Modules 4 (CM4).

I also own at least one of every production CM4 clone in existence.

This sets up a quandary: if I have the real thing, what motivation do I have to care about the clones?

There are hundreds of CM4 carrier boards that do everything from restoring retro game consoles to monitoring remote oil rigs in highly-explosive environments.

Since launch, the CM4 has been difficult—and since early 2021, impossible—to acquire. The supply constraints are well documented, and I'm sure a few comments will lament the situation. But the CM4 is trickling back to 'in stock' at many suppliers (about how the Pi 4 was a couple months ago).

A PCIe Coral TPU FINALLY works on Raspberry Pi 5

Coral.ai TPUs are AI accelerators used for tasks like machine vision and audio processing. Raspberry Pis are often integrated into small robotics and IoT products—or used to analyze live video feeds with Frigate.

Until today, nobody I know of has been able to get a PCI Express Coral TPU working on the Raspberry Pi. The Compute Module 4, unfortunately, had some quirks in its PCIe implementation, preventing the use of the Coral over PCIe.

Google Coral TPU running over PCIe on Raspberry Pi 5

The Raspberry Pi 5 has a much improved PCIe bus—capable of reaching Gen 3 speeds even!—and I've already tested the first PCIe NVMe HATs for Pi 5.

So can the Pi 5 handle the Coral TPU natively over PCIe?

Yes. Though currently, you need to tweak a few things to get it working.

How to customize the dtb (device tree binary) on the Raspberry Pi

Every so often, when you're debugging weird hardware issues on SBCs like the Raspberry Pi, it's useful to get way down into the guts of how the Pi represents its hardware to Linux.

And the Linux kernel uses a method called Device Tree overlays to do it. On the Pi 5 (and other Pis), these overlays are stored as .dtb files inside the /boot/firmware directory, and there's an overlay for every major Raspberry Pi hardware model.

I've had to modify the dtb files in the past to increase the PCIe BAR space for early GPU testing on the Compute Module 4. And recently I've had to mess with how the PCIe address space is set up for testing certain devices on the Raspberry Pi 5.