This is the Seaberry. Unlike the plant, this board isn't known for it's use in jams, no,
this Seaberry's known for combining eleven PCI Express slots with a Raspberry Pi Compute
Module 4. And it all fits on a mini ITX motherboard!
And you might be wondering already: Jeff... the Raspberry Pi only has one PCI Express
lane. How can all those slots work?
Well, the heart of this board is the chip under this blue heat sink, a Broadcom PCI
Express switch, capable of handling up to sixteen PCI Express devices, all through the
Raspberry Pi's single lane.
I've long complained about the Pi's lack of IO, and the Seaberry comes along like, "I
laugh in the face of IO!" I installed twenty PCI Express devices here, and you know what?
The Pi booted just fine, and can use all twenty at the same time.
Now, the Compute Module 4's still limited to just one Gen 2 lane of bandwidth, so if
you're imagining plugging in 20 NVMe drives and getting a 10 gigabyte per second raid
array, that ain't happening. But this board can be useful for anything
you need to do with less than a few gigabits of bandwidth.
Like using seven TPUs at once to accelerate edge computing. Or driving multiple Ethernet
and WiFi interfaces to wardrive or do advanced networking.
This is also the first CM4 board that puts a Pi into a standard PC form factor—mini
ITX. That means I can install it into a PC case, like this one! And look, even the case
power button and activity LEDs work!
But before we get too wild, let's take a closer look at the board itself.
On the right edge, there's a x16 port, which is still x1 in bandwidth but is physically
capable of holding any size card, including this darn GPU I can't get to work with the
Pi yet.
Across the top of the board, there are four mini PCIe slots, for things like networking
and storage.
Then under each of those slots is an M.2 E-key slot, and you could add WiFi chips, or even
dual-TPU accelerator cards, thanks to the board's design with two lanes per port!
In the middle of the board, there's an M.2 slot for NVMe drives. Then, hiding out on
the edge over here is another x1 PCI express slot, because apparently ten slots just isn't
enough—and we're still only getting started!
The IO side of the board has two USB 2.0 ports, a Cisco-style serial console port, a micro
USB port for flashing eMMC Modules, a microSD card slot for Lite Modules, two HDMI ports,
a gigabit ethernet port, and a 12V barrel plug for power.
Now, when it comes to power, this board has even more tricks up its sleeve! In addition
to the barrel plug—which can handle 9 amps—you could simultaneously power the board with
this 12v aux power jack. The Seaberry'll automatically switch over to it if the primary supply fails!
Pretty neat!
And technically there's also a PoE header, and you could add on high power PoE++ through
a special adapter and power the board with triple-redundant power supplies!
Rounding out the IO, there's a standard 40-pin GPIO header, a 14-pin CM4 IO header, a PWM
fan header, an RTC, a camera and display connector, and even a berg plug for power to internal
devices like SATA drives.
If the Pi Zero is the least IO-capable Pi, this Seaberry, I think, makes the CM4 the
Pi with the most IO, ever. Speaking of IO, I test a lot of PCI Express
cards. The Seaberry is perfect for that. I can test anything on it, and even better,
I can slap the board in my mini PC case so it's even more robust!
So here's my plan: I'm gonna fill up every single slot on this board, and see how many
devices I can get to run on a single Raspberry Pi.
First I'll pop in an 8 GB Compute Module, just so I have as much RAM as possible in
case any of my projects need it.
And for storage, KIOXIA sent me a few XG6 NVMe SSDs for a Ceph storage project, which
I'll be working on soon, but since I had one out aleady, I put it in first.
I wanna see if I can get a few Coral TPUs working. These are great for machine learning,
but it'll be an uphill battle, because of driver support.
I also wanna test out a few networking options, so I'm installing a few WiFi cards, and also
this thick Intel i350 mini PCI Express card. It gives me two extra gigabit network ports,
so I could also do some routing or connect my Pi to multiple networks.
Then I'll install this tiny 2-drive SATA card over one of the TPUs, so I can plug in another
SSD. The tiny ITX case I'm using only has space for one, but I figure three terabytes
of SSD storage should be plenty.
Now, for the big x16 slot... I'm a little disappointed with the built-in USB 2, so I
might as well put on a USB 3 card. The Seaberry has some mounting points so I can mount it
horizontally, so the ports'll all be inside the IO opening of the back of my case.
For now, I'll leave the side slot empty for future expansion.
Finally, I'll install the Seaberry in my case, and wire up the front panel power button and
LEDs to the board. I have a blog post with all the details here; you can actually get
these connections to work with a normal CM4 IO Board, though mounting it in an ITX case
is a bit harder!
All right, it's all wired up. The last thing I need to do is plug in network, HDMI, and
power. Now, because this board can power a dozen PCI Express cards at the same time,
you need to give it a lotta power. I'm using a 96 watt power supply, and I put a link to
it in the description.
The last thing to do is turn it on and see what works!
Last October, right after the Compute Module 4 came out, it was pretty hard getting some
of these cards to work. There were lots of ARM bugs in drivers, Pi OS didn't support
MSI-X, and there was only a tiny bit of BAR space, so fancier cards couldn't even initialize!
Luckily, things have gotten a lot better.
The dual SATA board doesn't need a driver, it worked right away, and I can already use
the SSD I plugged in.
The NVMe drives all work at full speed out of the box, getting around 420 megabytes per
second.
Even this ancient WiFi card has a driver loaded out of the box, but I did have to enable an
old 32-bit memory access option to get it to connect.
There are still a lot of devices like my Intel WiFi 6 card that need custom firmware and
drivers, and I've been working on guides for most of them. I've been experimenting building
custom routers and firewalls, but it's too bad PFSense still doesn't have an official
build that works on a Pi. (wink wink)
Some other things like graphics cards and Coral TPUs are still not working on the Pi,
but it's not for lack of trying! And lucky for us, the Seaberry isn't only compatible
with the Compute Module 4. Any board that uses the same connectors should
work... and what do you know, I have a Radxa CM3 here. I'll be doing a video comparing
it, the CM4, and Pine64's SOQuartz soon, so... yeah. Subscribe!
Maybe I'll get these TPUs working at some point.
And two or three of them are fun... but what if I load up this 12-card carrier board and
run seven!? Oh, and I also installed five more WiFi cards
and three more NVMe drives just to complete the set.
I even had Red Shirt Jeff modify the little ITX case I'm using so it would fit this card.
He's been on probation since cutting my Pi in half, but I'm slowly letting him help again.
I plugged this thing in, and the Compute Module 4 still had no problems identifying everything.
I should note that somewhere around 4 or 5 NVMe drives, I would run into kernel panics
while the Pi was loading it's NVMe driver. I'm not yet sure what the upper limit is for
PCI devices in general, but it's more than 20.
Most things I tested worked without a hitch, but there are a couple things I think the
board could do better, like a true front-panel IO header, a battery holder for the RTC, and
a built-in USB 3 chip, but those are minor complaints for a really specialty board like
this. In the end, this board is a bit wild, but
really fun. You're gonna see more of it in the future as I use it to test a variety of
other cards.
If you're interested in the Seaberry, Alftel's selling it on Tindie, and the price is a bit
high at $435, but that's kinda the world we live in with the ongoing PC parts shortage.
It should be in stock when I publish this video, but I have no clue if they'll sell
out in a day or ever... so I'll just say if you want or need this board, you know who
you are. And for everyone else, just sit back and enjoy the adventures we'll have with this
mini ITX board.
Speaking of mini ITX, you should also subscribe because next week I'll be putting together
another ITX build, but instead of tons of PCI Express slots, we'll see tons of Compute
Module slots! Until next time, I'm Jeff Geerling.