Six years ago, the Raspberry Pi Foundation introduced the Compute Module: a teensy-tiny version of the popular Raspberry Pi model B board.
Between then and now, there have been multiple revisions to the Compute Module, like the 3+ I used in my Raspberry Pi Cluster YouTube series, but they've all had the same basic form factor and a very limited feature set.
But today, that all changes with the fourth generation of the compute module, the Compute Module 4! Here's a size comparison with the previous-generation Compute Module 3+, some other common Pi models, and an SD and microSD card (remember when the original Pi used a full-size SD card?):
Video version of this post
I also posted a video review of the Compute Module 4, embedded below (scroll past it for the blog post version of the review):
Update: I also did a Live Q&A and Demo Video which has another hour of content going deeper into things I couldn't cover in the review!
Compute Module 4 Overview
The Compute Module 4 is basically a Raspberry Pi 4 model B, with all the ports cut off. Instead of the ports, you plug the Compute Module into another board with its special board-to-board connectors. But the Compute module has a few other tricks up its sleeve:
- Faster eMMC: It has optional onboard eMMC storage, which is now much faster than any microSD card I've tested
- PCI Express: It drops the USB 3.0 interface for a PCI Express interface, meaning you can do some pretty cool things in lieu of having a couple USB 3.0 ports.
- WiFi and U.FL: It has an external antenna connector for its wireless interface. What's that? Oh yes, there's now a version of the Compute Module with Bluetooth and WiFi!
- More Options: There are now thirty two different Compute Module flavors to choose from, whether you want onboard WiFi or not, whether you want eMMC storage, or whether you want 1, 2, 4, or even eight gigabytes of RAM!
You can find all the details on the Raspberry Pi website, but here are the highlights:
The cheapest CM4 is the Lite version with 1 GB of RAM, no wireless, and no onboard storage, and that'll run just $25.
The most expensive, creme-de-la-creme version, with WiFi, Bluetooth, 8 GB of RAM, and 32 GB of faster eMMC storage, costs $90.
But to use the Compute Module 4, you will either need to build your own board to integrate it, or buy the Pi Foundation's new Compute Module 4 IO Board, which is an extra $35. This board turns your Compute Module 4 into a Pi 4 on steroids, because it has all the ports on a standard model B Pi and then some. The only thing lacking is built-in USB 3.0 ports, and that's one of the differences that made me do a double-take.
I remember earlier this year, Eben Upton mentioned in a podcast that the Raspberry Pi would someday have its PCIe 1x interface exposed directly. And now it is!
You get this nice PCIe port on the IO board, and you can plug in any PCIe device, as long as it only uses 'one lane' of capacity. For example, if you just want to have a couple USB 3.0 ports like you would on a model B, you can plug in an adapter like the Syba USB 3.1 PCI express card I used:
Or... if you want to get bleeding-edge performance out of disk storage, pop in an NVMe adapter with an NVMe, and enjoy the fastest disk IO ever—at least on a Raspberry Pi:
I'll be posting a video on my YouTube channel about all the new disk options on the Compute Module 4, so be sure to subscribe to my channel for that, but I'll talk about performance a little later in this post.
A Complete Redesign
First, I want to talk a little bit about why the Compute Module is a complete redesign from past versions:
A few of the things I noted in my Turing Pi cluster review included the lack of enough power and board space to fit in all the features the Pi 4 crams into its small package, especially the un-throttled 1.5 GHz clock of the Pi 4's system on a chip.
Also, because of the physical constraints of the DIMM form factor, it would've been impossible (at least, according to my eyes) to include all the features like WiFi, with a built-in antenna, eMMC storage, and an ethernet controller chip.
For all these reasons, and to make it easier to affix the Compute Module to different boards, a more specialized 'board to board' connector was used. There are two of them, and they each have 100 pins, to connect power, IO, and the GPIO pins to the Compute Module:
One of the biggest changes from the CM3 plus and earlier is the CM4 now includes an onboard gigabit ethernet controller, so you can get the best network performance possible without a manufacturer having to include it on an external IO board or using an external adapter.
About that PCIe Slot
The headline feature, though, especially for me, is the PCIe slot. But to be clear, this is the smallest PCIe flavor, with just 1 'lane', or '1x' bandwidth available. So, not to burst your bubble, but you won't be able to use an Nvidia RTX 3080 on your Raspberry Pi. It still won't run your favorite PC game at 8K resolution and 240 fps.
But it will run a lot of things. For starters, if you are in love with USB 3.0 and are sad to see it missing here, you can buy a USB 3 PCIe expansion card, but be sure it uses the VLI VL805 chipset, otherwise it might not be fully compatible with Raspberry Pi OS and you'll get stuck with USB 2.0 speeds.
I actually bought three different PCIe USB 3.0 cards to see how they worked, and two of the three didn't provide USB 3.0 throughput for most of my devices. They kept mounting drives at USB 2.0 speeds, which was very annoying.
(From left to right:) The first was a generic "PCI-Experss" card from A ADWITS—and no, I that's not a typo, that's how it's spelled on the box—has the VL805 chip in it, but it only mounted a couple of my USB 3.0 drives at that rate. The others, like the fastest one I've tested on a Pi 4, mounted as a USB 2.0 device, and was very slow, but worked fine otherwise.
I had higher hopes for the 2 port Inateck card, but was nervous about the Fresco Logic chip on it. As it turns out, it had similar issues, where it would mount some drives at USB 3.0 speeds sometimes, but not always.
The best USB 3.0 card I tested was the Syba SD-PEX20199, and it even includes a USB Type-C slot! It mounted all my devices at USB 3.0 speeds, and worked perfectly with the Raspberry Pi. Just be careful plugging in power-hungry devices; it can only put through a little power since it shares the 12v power supply with the IO board itself!
The thing I was most excited about was NVMe support. I had to find out if an NVMe drive attached directly to the Raspberry Pi's PCIe bus would be faster than one connected through a USB 3.0 slot.
So I plugged my XPG SX6000 drive into this PCIe to NVMe adapter and... nothing.
So I bought two other NVMe to PCIe adapters and... nothing!
I should note here that NVMe support is not enabled out of the box on Raspberry Pi OS. You have to run the command
modprobe nvme-core and then reboot to enable the NVMe kernel module.
Anyways, I could use the command
lspci and see the NVMe controller from Realtek was at least recognized, but the drive itself wouldn't show up, and I found some weird errors in the system's logs using
So I bought another spare NVMe drive for testing, the Samsung 970 EVO Plus, which is a bit more expensive than the XPG drive. I popped it in the adapter, and booted the Pi.
Bingo! I was able to see the device using
lsblk, so I formatted it and mounted it for testing.
And let me tell you, it is fast. You're hearing it here, first. The Raspberry Pi Compute Module 4 offers the fastest disk IO of any Raspberry Pi yet.
Here's a graph of the four main storage options for the Compute Module:
You can see the performance of USB 3.0 or NVMe drives is far beyond that of onboard eMMC or microSD cards. SSDs are incredibly fast for sequential writes for large files, but what really sets this Pi apart is the ability to get native NVMe performance, which more than doubles the 4K performance over a USB 3.0-attached drive—check out that 4K random write speed!
Sadly, you can't use an NVMe drive as a boot volume, at least not yet. I think it would be awesome if I could use a few Lite CM4s with NVMe drives in a tiny cluster that would absolutely knock the socks off the Turing Pi cluster I built earlier this year.
Speaking of, I heard from Turing Machines that they do plan on building a new 'version 2' board with full support for the Compute Module 4, and I can't wait to see how it turns out!
All right, so you can get USB or NVMe over the PCIe bus, but what about upgraded video cards?
Well, there are some slower PCI video cards that work with just a 1x bus, but most of them either have no drivers for Linux (so they wouldn't work with Raspberry Pi OS), or if they do have Linux drivers, the drivers are only available for 'x86' processors. The Pi uses an 'arm' processor, which would not work with the x86 drivers.
Anyways, in all my searching, I could only find one PCI video card that seems like it would be hardware-compatible with the Compute Module 4, the ZOTAC GeForce GT 710. Note that I said hardware compatible. The graphics chip has Linux drivers, but only for X86. There might be a way to get it running, but I'm not sure. What do you think? Leave a comment if you want me to try to buy one of these cards and test it out on the Pi!
Other PCI accessories
There are a number of other adapters you can get for PCIe, including SATA adapters for hard drives and SSDs, sound cards, printer ports, network adapters, and even old parallel port adapters! The most important thing to look at is whether the card has Linux support. Some things are supported out of the box, but for other things, you need to install a driver, and it has to be compatible with not only Linux, but also the ARM processor architecture.
The other headline feature compared to the older Compute Modules is the inclusion of onboard WiFi and Gigabit Ethernet. You can choose whether to get Wifi and Bluetooth, but all versions come with gigabit ethernet built in, courtesy of this little Broadcom chip:
The CM4 performs just as well as a Pi 4 model B in my testing.
The wired network gets 942 Mbps, which is about as fast as I've seen on my home gigabit network, and it's infinitely faster than the older Compute Module boards—which have no onboard networking at all! Even with the Turing Pi cluster board, it only gave you 100 Mbps per Compute Module, so this alone is a HUGE improvement.
And wireless, which is also not available at all on older Compute Module versions, gets up to 80 Mbps on my home 802.11ac network. Now, here's where it gets a little more interesting. The CM4 is the first Pi of any type to offer a U.FL antenna connector. Because many people who integrate the CM4 into a device may put it inside a metal enclosure, if they want WiFi to work, they need to attach an external antenna.
The Pi Foundation will sell you a certified antenna you can plug into this tiny connector, and that antenna can then be mounted somewhere to allow the Pi to still get a solid WiFi connection.
But technically (and you didn't hear this from me!), you could grab any standard U.FL antenna like the Highfine U.FL antenna I have, and use it.
To enable the antenna connector (and disable the built-in PCB antenna), you need to edit the
/boot/config.txt file on your Pi, and add the following line, then reboot the Pi:
# Switch to external antenna. dtparam=ant2
I did some testing with this antenna just to compare the tiny built in triangle antenna on the PCB, and the results surprised me.
With the built-in PCB antenna, the signal level was -43 dBm (measured with
cat /proc/net/wireless), with a quality rating of 67/70 (measured with
iwlist wlan0 scanning). And that's pretty respectable, even though my router is only about 20 feet away. With the external antenna, I could get -40 dBm (with a quality rating of 70/70), but that was only after I adjusted its position a bit to get the best possible signal.
If I unplugged the antenna, the signal was terrible, at -74 dBm with a quality of 36/70, and it could only do about 6 Mbps. So the onboard antenna is a great design—as long you're not enclosing the Pi in a metal box or faraday cage!
So for both wireless and wired networking, the CM4 is on par with the regular Pi 4, and far beyond the capability of earlier Compute Modules—it surprised me how much functionality is crammed into such a tiny board.
If you've used the Pi 4, you know what you'll be getting with the CM4, performance-wise. But if you used the Compute Module 3+ or an older version, the Compute Module 4 is a huge leap in performance, for a few different reasons.
First, the CPU clock was increased from an underclocked 1.2 GHz to 1.5 GHz. Second, the CPU is upgrade from a Cortex A53 to an A72, and that means there's more bandwidth, more caches, and all-around better performance even at the same clock speeds.
But don't take my word for it. Here are some benchmarks between the Compute Module versions:
These three benchmarks represent some real-world scenarios that require good CPU performance to run well. In every case, the Compute Module 4 is twice as fast as the previous 3+. It's barely even a contest.
In real-world use, for things like web browsing and playing games, the difference isn't usually as stark, but it does feel a lot faster, and every time I go back to my 3+ I realize how big the performance gap is.
Some people spend a bit of time working with external storage and try to get the best disk performance possible. But for most people considering the Compute Module (especially for embedded use), the built-in eMMC offers the best performance for the dollar.
The Pi engineers increased the eMMC bus from 4 bits to 8 bits, so you can get more bandwidth out of the eMMC storage. And it really shows in the benchmarks I ran:
Random IO is twice as fast on the CM4 than it was on the CM3. And sequential performance is a way better too. The Compute Module 3's eMMC had slower sequential performance than the fastest microSD cards I tested, but the CM4 is neck-in-neck, meaning there are no tradeoffs with eMMC storage on the Compute Module anymore.
And since random IO is more important for most computing tasks, that makes built-in eMMC the best option for most people, especially since it keeps the whole compute module package tiny, so it'll fit almost anywhere.
Now, if you need to flash a new OS to the eMMC, it's a little more complicated than doing the same thing with a microSD card, but thanks to Raspberry Pi's
usbboot utility, it's not too hard as long as you have another computer or Pi handy. I'll cover how to do that in a later video.
Speaking of USB boot, what about booting the Compute Module from a USB drive? After all, I did a whole post on how to USB boot with the Pi 4. Can you do it on the Compute Module? Well, yes, but if you want USB 3.0 speeds, you'll need to drop a PCIe USB adapter card in the single PCI express slot and plug in your drive through that. The ports from the Pi itself on the IO board are USB 2.0 only.
But it works just as well as on the Pi 4, assuming you use a USB 3.0 adapter.
I was really hoping to be able to boot the Pi off an NVMe and do some more testing that way, but alas that is not yet supported, and if you try it with a Lite Compute Module, the Pi just sits there looking aimlessly at microSD, then USB, then microSD, forever:
Technically you can still boot off an NVMe, but only if you put it in a USB 3.0 adapter, plugged into a USB 3.0 PCI adapter... but that's not the same as booting directly off an NVMe drive and you miss out on a lot of performance!
One other thing I wanted to check is how well the Compute Module performs as an NFS (Networked File System) server. I currently have an old 2011 Mac mini that I still use to store many terabytes of old video files and backups of my computers, but it's so old it's not even supported by Apple anymore.
So I wanted to see if the Compute Module could be faster than the ten-year-old Mac mini for file storage, and—spoiler alert—it is!
On the Mac mini, the fastest consistent write speed I could get is around 35 MB per second, mostly because the drives are all attached to old USB 2.0 ports. On the Pi, if I wrote to either an external USB 3.0 drive or an NVMe drive, I could write over the network at about 70 MB per second (2x faster than the old Mac mini).
Now, a brand new Mac mini would saturate the network's bandwidth and give me somewhere around 100 MB per second, but that would also cost at least $800, and that's a lot to pay to get that extra 30 MB per second.
IO Board - New Features
All right, so enough of the Compute Module itself, it is, to put it in the words of Steve Jobs, a 'screamer' compared to all the previous Pis.
What about its official companion development board?
The Compute Module 4 IO board has a few new tricks up its sleeve, too.
Not only does it have all the same breakouts and connections that the old IO board had, it also has PoE (Power over Ethernet) support (provided you add an appropriate PoE or PoE+ HAT), so you can power the board from an Ethernet cable.
We've already covered the PCIe slot, but right above it is a 4-pin PSU connector that can be used to provide power to accessories, as well as a 4-pin fan connector that can power and control a fan.
Down along the bottom, there's a 12v barrel plug power jack. I'm using this jack to power the IO board using a generic TMEZON 12v 2A power adapter. Any power adapter should work as long as it supplies 12v at 2A or more, and has a 2.1mm X 5.5mm barrel plug.
Then there's a microSD card slot for use with the Compute Module Lite version (the slot isn't recognized at all for eMMC versions), two USB 2.0 ports (along with a header for two more USB ports), and the RJ45 network jack.
It also has two full-size HDMI ports so you can drive up to two external displays.
It's interesting that they're full-size, because now when I'm switching between my Pi projects I have to deal with the following:
- Full-size HDMI on the original Pi, Pi 2, Pi 3, and Pi 3+
- Mini HDMI on the Pi Zero
- Micro HDMI on the Pi 4
- Full-size HDMI on the IO board
Go figure! People who complain about USB-C dongles have not had to put up with testing multiple generations of Raspberry Pi :)
There's a built in RTC, or Real-Time Clock, with a slot for a standard CR2032 backup battery.
And there's a standard HAT ('Hardware Attached on Top') connector, and it allows you to interface with the Pi's GPIO. It has mounting holes in the same place as a standard Pi B model, so you can mount HATs within the board's footprint. And finally there are some display and camera connectors along the side and top edge, along with a set of jumpers to help when flashing an eMMC module or to disable firmware updates.
There are two things I think I could call out as downsides to the IO board and Compute Module board-to-board designs: first, the IO board is pretty large. I understand why, since it support every feature of the CM4, including mounting full-size Pi HATs, but it would be nice if it took up a little less desk space even if a few features were dropped.
Second, having two 100 pin board-to-board connectors close together makes attaching and removing the Compute Module a slight bit more tricky than it should be. You're supposed to pull straight up to detach the module, but it's pretty much impossible to do that unless you use spudgers. With your fingers, you kind of have to pry up one side first, and then the module pops out. Plugging it in is a little easier, since you can just push down with equal pressure on both sides.
There are a ton of other little details that I haven't had time to convey in this post, but I think the Pi Foundation did a great job with this board, given the constraints of the form factor and price. I'm sure keeping the new version starting at the same price as the old version was no small feat!
I'm really happy with the Compute Module 4. It delivers on the promise of native PCIe support, and uses a form factor that will fit well into embedded systems, with some great new features like onboard WiFi, Bluetooth, and Ethernet, and substantial performance improvements to boot!
As I mentioned earlier in the post, I also talked to Turing Machines and they said they're already hard at work on a 'version 2' of their Turing Pi cluster board. Once that comes out, I'm going to do all I can to get it immediately, load it up with Compute Modules, and rebuild my Pi Dramble cluster on it.
Edit: Turing Machines have officially announced the Turing Pi V2. I'm excited to see it!
The Compute Module 4 offers all the performance of the Pi 4 model B, far surpassing the features and performance of the Compute Module 3+ and all the other versions that came before.
Check out the Compute Module 4 on the Raspberry Pi website and see where you can buy one: Compute Module 4.
Can you tell me the brand of the monitor in the animated gif. Thx.
Sure thing! It's a 1024 x 600 7" monitor, made by Loncevon: https://amzn.to/3m1pknQ
Not amazing quality but great for random little projects or monitoring something that's normally headless :)
Slightly higher resolution, looks good too:
Thx for the great article here!!!
it's incredible how in a blink of a eye I turned from exited to frustrated, immediately after seeing the module and his way of connection.
Definitely with a very hard working my Turing Pi will be compatible with the new modules. I hope they can do this magic because it's frustrating looking at my 3 weeks old brand new Turing PI getting obsolete right now.
It's true Raspberry did a great job about power and new features but reverse compatibility is, as far as i can see, hard to have.
BTW I'm Crossing fingers.
Thanks a lot for all your videos and tutorials: you're doing a great job !
Unfortunately, that's the way of things in the computing industry :( — I remember one time I finally decided to buy the top-end Power Mac G4, and just a month later the G5 came out making my decision seem foolish... but in hindsight, I did a lot of great work on that G4 and especially considering the Turing Pi V2 board may be months away, take the time with the Turing Pi V1 to learn a lot about the basics of clustering with the Pi. The CM 3+ is still a decent little board to play with, even if it's a bit slower.
Ha! So I'm not alone ... c]:-D
I agree with you: the V1 is still good for learning even with 3 modules, may be I'll buy the last 4 when the price will drop down (hope so ...). At the moment I'm right at the beginning of my study path and Ansible, Kubernetes, Lens an so on were pretty unknown few weeks ago. I started to "taste" Docker on my NAS but it's almost a black box and can only install and update services and I don't really have the control of it. So time to learn and test and vice-versa.
Thanks a lot for your time
Thank you very much for this awesome review!
There one question left for me:
Do you know which component(s) limit the operating range below 0°C?
This is far beyond the op. temp. range of the CM3+, which is -25 °C to 80 °C
Thanks in advance,
I know you were asking for challenges for video cards, but I've a use case for some serious SATA connectivity. Any chance of you trying the Syba SD-PEX40105 (8 Port SATA III and eSATA 6G PCI-e 2.0 x1 Card) please? It has 1-Lane PCI-Express 2.0 interface. It has Linux support, but I guess the crunch comes when it's revealed as x86 only. Still the 8No SATA ports are very attractive! For my serious storage, I still use spinning rust in mirrored pairs. I've used software raid (for over 15 years) and it hasn't let me down yet. I realise that there's a large (more like huge) discrepancy between the BW available, and the possible demands of 8No 6G SATA drives, but in the reality of a large file store (in a large domestic or small business) environment one is probably only reading (streaming) 1-3 files off one or two disks at a time, so the BW mismatch will not be so apparent. It'll probably be far worse shuffling existing files between different mirrors - each move will involve one read (from the mirror master) and two writes. I wouldn't mind betting that that will still be faster than my 8-year old HP microserver with its 3G SATA interfaces.
If you do try this i/f, or another with serious SATA attitude, then CHEERS!
The chipset seems to have ARM support, someone seems to have used it on a Espressobin.
I hope someone makes a makes a NAS platform on this, would be superb for starters.
That's very encouraging news! Now we just need someone with a CM4+IO board (looking at you JG...) to try it. Please.
I can't comment on that exact board, but one page I've found says it's a Marvell 88SE9215 + 88SM9705.
I have an alternate 4 port SATA board with Marvell 88SE9215 chipset, and that works fine. You just need to enable CONFIG_ATA and CONFIG_SATA_AHCI in the kernel config, rebuild the kernel, and away she goes.
The 88SM9705 is a SATA port multiplier, so I guess that board is 2 ports off the 9215 and the rest as 2 5-way fans off the 3rd and 4th ports of the 9215, giving 12 ports total. Sorry, I haven't looked into port multiplier support within Linux, but it's been around as a standard for a fair while.
What platform did you test it on, CM3? I'm planning to test it on the CM4 .
"for it's wireless interface" ->
"for its wireless interface"
"would someday have it's PCIe 1x interface" ->
"would someday have its PCIe 1x interface"
"What about it's official companion development board?" ->
"What about its official companion development board?"
Yikes! Those "it's" get me every time. Thanks for pointing out the grammar errors, they have been fixed!
As previously discussed, perhaps other SBC makers might standardise on this connector so one can mix and match CM modules from different vendors on the Turing Pi 2.
Anyhow, might tempt me to throw out my various power hungry ageing desktops that use a KVM switch. A separate 8GB compute module each for RPi OS, Android, Windows on ARM etc.
Is this IO Board Open Source? This is long-awaited, especially for early-stage startups, small businesses, Industrial IOT to reach the market with a smaller investment. The feature of PI is not just the hardware, the fantastic community around it, let it be hardware, interfacing, OS, software. With WIFI Antenna, PCIe makes it more complete board,12 V DC, the best ever ample power supply for other IO ports.
The IO Board product page does have a KiCAD file and a thorough datasheet, though I don't know if it's technically "open source." Instead it's an open reference design that you could modify to suit your needs.
The big question is where to buy the CM4108032?
Only the lower specs model are availanle to buy in single order, the beefier model has to be both in bulky order of 200 minimum...
I suspect that you may be trying to buy from suppliers in the UK and Farnell was quoted as a source (actually, I think they're a manufacturer in the sense that they place the orders to build). Anyway, Pimoroni will be keeping a limited range, once there's some stock, and the distributor with the biggest range is Okdo ** (though they are probably also manufacturers in the same sense that Farnell are since they're part of the Electrocomponents Group). Okdo have no stock either at present.
Really looking forward to see a ZOTAC GeForce GT 710 test on CM4 specially since Nvidia has released arm64 GPU linux drivers just recently.
Just been to the Nvidia download site and it appears that there are "Linux 32-bit ARM Display Driver" -
Release Date: 2020.6.24
Operating System: Linux 32-bit ARM
Hope that helps.
I will be trying that out with the Zotac. Wish me luck!
Actually this link has more:
Latest Long Lived Branch Version: 450.80.02
Latest Short Lived Branch Version: 455.28
Linux 32-bit ARM
Latest Legacy GPU version (390.xx series): 390.138
I checked out the new Turing PiV2 Compute Module 4 from your link and found that the cluster isn't stacked or multiple flat mounted as discussed in your recent video but rather mounted to SO-DIMM cards that plug in vertically to the cluster motherboard. With 2 Sata ports and 2 pci-E X1 slots, this is going to be amazing. I wish the cluster motherboard would fit more than 4, but that's all good.
Thanks for the links and I appreciate your articles/videos.
Wanted to confirm, whether IO Board/RI CM4 module capable of handling 4G LTE connection via PCI? Can you share a link to 4g LTE module via PCI for if you are aware of?
12 vdc, emmc, pci , more uart port is a gift to people who are in industrial automation, a lot could be saved and cost can be optimal.
Could the problem with some of the USB 3.0 add-on cards that you don't supply additional power?
Also I was wondering if you can update the firmware on cards with the Via VL805 chip with the same firmware update utility that is used to update the firmware on the Raspbarry Pi 4 boards. Could you test?
By the way, most of these PCIe x1 Video cards use older nvidia chips. These chips are supported by the open-source Nouveau driver in Linux.
But I still think it probably won't work on the CM4, not all PCIe devices are created equal, and the Broadcom PCIe driver doesn't seem to support IO resource mappings:
For the 'Experss' card, it did require an extra power supply, which I had, and which gave it power (without it, the board did not function at all). With power it mounted some devices at USB 3.0 speeds, but even there, if I unplugged and replugged a device, it would sometimes mount at USB 2.0 speeds, sometimes at USB 3.0.
" Any power adapter should work as long as it supplies 12v at 2A or more"
Be careful. Most power supplies are positive centre but some are negative centre. It is possible to design a circuit to accept either using an isolated switchmode PSU but I haven't checked if the Pi people have done this.
Could we put a Dell H200 mini sas card and build a nice 8x hd NAS with Docker apps capabilities?
Thanks Jeff for your posts and videos. Love the tinkering mindset and of course great educational value as well.
Would the CM4 IO board/PCIE slot support an AI accelerator like the Coral with *dual* TPUs given that there is a single PCIe lane?
Jeff- the comment on the NVIDIA card is v. interesting. It's tempting to buy a compute module and breakout board and neutering half-height graphics card to try it myself for novelty value, although I can't help suspecting- without any real experience of such configurations- it would probably fail to function simply due to lack of available power.
As far as support goes- I don't know if the official NVIDIA drivers would work, but the noveau open source drivers should. Probably? I would recommend subscribing to the noveau mailing list on freedesktop.org and asking about the specific ARM architecture that the RPi 4 compute module uses. I don't see any mentions of the Pi as yet.
Can this be booted from a microSD card like a normal RPi?
Yes, but only the 'Lite' version that doesn't have built-in eMMC.
"The best USB 3.0 card I tested was the Syba SD-PEX20199, and it even includes a USB Type-C slot! It mounted all my devices at USB 3.0 speeds"
What is the speed you have got?
I need something like ~700Mbytes/sec
Does anyone have a rough idea of when the wireless versions will be available (specifically the Compute Module 4 with 4GB RAM, 32GB eMMC, WLAN)? I'm working on an embedded systems project with very limited space and it would be a HUGE help to have one of these, rather than trying to cram a model B into the enclosure. Unfortunately the project is time sensitive, so waiting a few weeks ok, but anything longer than that isn't really an option, and I'll just have to find a way to make the model B work...
On a related note, does anyone know if physically removing bulkier items like the Ethernet and USB ports would cause a problem for the os? My original plan was just to desolder them for the board to save on space...
Could you please test if the micro USB can be used as OTG
I would like to instal the PiKVM project on this Board but I couldn't find a lot about it, just that the micro USB has to be used to perform some update.
In my opinion it means that the Board appears as a periferal when connected to a host but as there is no mention about OTG anywhere, I was wondering if you could try this
It doesn't seem so on the IO Board as shipped, but if someone designed a carrier board with the right circuit, it should be doable (just like on the Pi 4).
Thanks a lot for the quick feed-back and for the the information
Do you know any sound card 5.1 out which can be used in pcie slot of compute module io board
Why no audio out on PWM_0 and PWM_1.
so no 3.5 mm audio jack out on IO board.
Uses simple circuit like RC filter in earlier versions of rpi 4 & 3
Have to use PCIE slot for audio out , not cost effective
same condition here too.
Please send the circuit diagram for audio (PWM0 &1)
Where did you get the CM4 and IO Board from? I cannot find it anywhere except for pre-order?
I pre-ordered on the day it was released... and am still awaiting shipment.
I ordered from CanaKit on October 19 at 2:30 a.m. US Central — got an email saying "estimated to ship on November 9." Here we are on December 4, and looking at the site, it shows "Pending" for my Order Status :(
The unit I'm testing with was a pre-production sample that I happily received from the Pi Foundation for testing and to help write up this review. I really want other people to start getting shipments, because I know there are a ton of great projects out there just waiting for the right person to get a CM4 and design it!
About video drivers, what drivers does the Nvidia Jetson Nano use? It has a 128 CUDA core Maxwell GPU, so slightly more modern than the GT 710 you tried.
Great series! It would be great to have this card with 4 SATA drives or a PCIe01 port so you could do RAID too. !
Great timing! I have a blog post for you: Building the fastest Raspberry Pi NAS, with SATA RAID.
You mention the only video card that’s hardware compatible is the GT 710; I found an HP GTX 950 with a 1X slot on eBay recently. It comes from an AIO PC, so I’m not sure if it would have funky proprietary pin outs, but it might be worth investigating.
As it turns out, I can plug in larger (4x, 8x, 16x) cards using adapters :)
Hi Jeff, do you know if the Global Enable pin causes the Pi to shutdown nicely, go to sleep, or is it more akin to pulling the plug? Does it reboot when this line is released? Thanks in advance
I am about to migrate my FreeNAS disks to FreeBSD setup with rpi 4 compute module 8 GB RAM /16 GB eMMC with a SATA controller on the PCI slot. Want to have a fan-free setup, so was wondering when you were running the rpi CM4 with the SATA tests, did you notice the typical temp ranges while testing? Did you use any fans, heatsink, cooling?
I had a fan blowing over the whole setup, just to remove heat more efficiently than convection. If you enclose anything, you would need to definitely add some heat sinks (bigger is better), and make sure there is ventilation so air can naturally come in and rise through the top to take away the waste heat.
For any SATA controller, you'd need to check how much heat it puts out on your own—even card to card, there can be differences, and overheating storage controller chips isn't a great thing to have :D
I am planning to use CM4 with 8GB RAM and wireless. I am also planning NVMe SSD for all storage with CM4 IO board.
I understand that as of now I cant boot from SSD, and only option is eMMC for speedier boot up.
I am planning use for day to day activities (multimedia/browsing/etc.) and some development activities using Python and Visual Studio Code (with some C# at later stage).
Given the requirement, what size I am eMMC storage will be appropriate? How do I maximize use of SSD over eMMC (I primarily want to use SSD for as many things as possible).
Also, please suggests anything additional that will increase value of the setup?
Is there an audio output, does it have a dac?
The official board doesn't have one, but some other boards like the MirkoPC do. I reviewed it in this post: MirkoPC - a full-featured Raspberry Pi desktop computer.
Hi Jeff. I love your work. Can you comment on the feasibility of a CM4 cluster based on a pcie backplane (PLX switch with NTB)?
Good article on the CM4. I was reading it though and you say the I/O board does not have USB 3 which is correct, but I have recently seen the WaveShare version of that board that does have USB 3 support.
Indeed! There are now a few boards that have USB 3.0 ports built-in (usually to the exclusion of any PCI Express slot, since adding both would require a more expensive PCI Express switch chipset.
Ok oi board with pcie slot + thunderbolt pcie card + Mac egpu = raspberry pi with external gpu
Can anyone point me in the direction of a pcie parallel port module? All I've seen is that none of them work :/
hello, i am wondering if you could provide a link to the power supply you used
Sure thing! I used this one early on: https://amzn.to/3IIFpe0. That one works for simpler use cases, but if you need more juice for USB devices, PCIe, and HDDs, consider a 5A supply (like this one) or even one with 8A for maximum powah!
I'm designing a PCB for the pi cm4 which uses 4 USB 3.0 ports. Would you know if you would need a hub, or does the pi have enough bandwidth so I can do it without the hub?
i know i need those special hats for audio output on the cm4, but for audio input? i would like to know which is the best circuit for audio input and output.
not i don't want to use the usb ports.
I want to ask you if the Raspberry Pi Compute Module 4 IO board is compatible with ReSpeaker 2-Mics Pi HAT. I want to make a vocal recognizer like alexa. Thank you
I'm trying to make the IO board plus CM4 4GB/8eMMC work correctly, but other than Batocera, no os is working correctly with it.
This is so frustrating, I'm about to sell the whole thing and forget about it.
Even the newest RPI OS 64 bit is showing the desktop for a few seconds, and then is going black. And yes, the blanking option is off, Safe HDMI = 1 has been tried.... nothing helps. The fan is running at 100% and doesn't react to any driver or setting.
The USB ports must be enabled in most OS'ses, and you'll need to SSH via your computer.
There're too much limitations with this IO board, it's not even funny anymore.