Modularity is a fun topic for us. There’s something satisfying about seeing a complex system split into parts and these parts made replaceable. We often want some parts of our devices swapped, after all – for repair or upgrade purposes, and often, it’s just fun to scour eBay for laptop parts, equipping your Thinkpad with the combination of parts that fits you best. Having always been fascinated by modularity, I believe that hackers deserve to know what’s been happening on the CPU module front over the past decade.
We’ve gotten used to swapping components in desktop PCs, given their unparalleled modularity, and it’s big news when someone tries to split a yet-monolithic concept like a phone or a laptop into modules. Sometimes, the CPU itself is put into a module. From the grandiose idea of Project Ara, to Intel’s Compute Card, to Framework laptop’s standardized motherboards, companies have been trying to capitalize on what CPU module standardization can bring them.
There’s some hobbyist-driven and hobbyist-friendly modular standards, too – the kind you can already use to wrangle a powerful layout-demanding CPU and RAM combo and place it on your simple self-designed board. I’d like to tell you about a few notable modular CPU concepts – their ideas, complexities, constraints and stories. As you work on that one ambitious project of yours – you know, the one, – it’s likely you will benefit a lot from such a standard. Or, perhaps, you’ll find it necessary to design the next standard for others to use – after all, we all know there’s never too few standards!
How Is Modularity Still Alive?
We like repairability and upgradeability. Sadly, many consumer-facing gadget-producing companies don’t tend to appreciate these as much as we do – you will see previously omnipresent aspects of modularity, like swappable CPUs or even RAM on laptops, becoming less prevalent with time. Simply put, having us buy new devices is more profitable than letting us upgrade and repair our old devices. Still, there are reasons why modularity lives on – in some important ways, it’s simpler to design modular products. For instance, you don’t have to layout your own board with high-speed CPU and RAM interconnects, able to instead focus on the part that must fit your IO of choice – greatly simplifying design.
An apt demonstration of modular computing upsides being commercially viable, the PC/104 standard has been a staple of industrial computing, in large part because it’s easy to get a replacement motherboard if your old one fails. After all, industrial customers are willing to pay a premium for some degree of modularity, since it means they can get equipment fixed quickly, without losing large amounts of money as their production line is stuck idle. And, when your equipment could use an upgrade due to system requirements rising the way they always do, there’s hardly ever a shortage of PC/104 boards with increased processing power.
Customers don’t have as much of a sway to make modularity in consumer products everpresent. It makes sense from where we stand nowadays, but it’s sad, and doesn’t have to be this way. It also doesn’t help when we have companies like Google and Intel starting attractive modular projects with their own purposes in mind, then screwing a myriad of important aspects up, and ultimately shelving everything. On one hand, bungling products in such a way is a known M.O. of large companies – on the other hand, it’s frustrating to get our hopes up, then have them be represented by a low-effort flop. If you’re not aware of how bad it can get, here’s an example.
The Corporate Way To Get It Wrong
Intel is a giant company manufacturing CPUs, chipsets and all sorts of things that a hobbyist can only dream to one day tinker with. They have both an inordinate amount of resources and a customer base to develop modular solutions, and they’ve been trying to get their own modular, somewhat hobbyist-accessible embedded ideas off the ground, every few years a new one. These ideas have so far been failing, in large part, due to Intel’s own fickle decisions – as many of us somberly familiar with Intel’s Edison and Galileo product lines can attest.
For instance, in 2017, Intel has unveiled the Compute Card concept – a card with CPU, RAM and storage that you could’ve put in your pocket and plugged into anything. Two years later, they’ve shelved the concept. In particular, a politely scathing blog post from NexDock, a company who was trying to develop a Compute Card dock at the time, sheds some light at how rude Intel’s behaviour was. It’s borderline amusing to read about “overly complicated encryption and authentication requirements of Intel Compute Cards”, and nowhere near surprising to read about insufficient support from Intel.
Even though Intel touted NexDock’s efforts as an achievement, it wasn’t enough to warrant proper collaboration and transparency, and NexDock’s ended up spending tons of money and time on something Intel never took seriously. Intel’s latest effort developing CPU+RAM modules is called Intel Compute Element. This one is expressly not for you: it’s for building custom NUCs and other systems with requirements-tailored hardware, reflected by the modules’ price tag. It looks nice in a “what if” way, but by now, we’ve learned to not expect much.
With Enough Resources, We Can Get There Ourselves
Intel presented their Compute Card concept in 2017. In 2016, a surprisingly similar but open-source and hobbyist-friendly project was taking shape. The EOMA68 project invited us to contribute to a future where CPU cards existed – where you could have the CPU, RAM and storage on a small low-power card able to plug into a laptop-shaped housing, game console, a small NUC-like desktop box, or even usable standalone with a HDMI monitor and a powered USB hub. If you’re going somewhere, you can physically take your system out of your desktop enclosure and plug it into a laptop housing, and plug it back when you’ve returned. A lot of the same goals and same form-factor as an Intel’s Compute Card, but none of the corporate backing, it was an daring goal to set, even if you were to get an A20 CPU instead of an x86 system.
Designed by an ambitious engineer set on getting things done, the aim of the EOMA68 project was to never compromise on compatibility while keeping the cards accessible for small-scale design and production – ensuring that after the first compute cards became outdated, building backwards-compatible ones would remain realistic. In a witty move, PCMCIA connectors and housings were used for IO connections – cheap and still widely available. Care was taken to design a pinout which could be compatible with a few different CPU generations going forwards, aiming for upgradability without losing features – and the crowdfunding drive reached its goal as if effortlessly, showing that people believe in what this project stands for.
Getting a batch of EOMA68 cards built proved to be a struggle, however. Manufacturing was an uphill battle, with troubles like connectors going out of stock one after another and replacements causing low yield issues. Time is a cruel mistress and had only stacked extra problems on top of every delay, and the project’s last update has been reassuring but not yet fruitful. However, it’s a journey that one of us ought to have embarked on – even unreleased, this small project achieved things that Intel couldn’t. In addition to that, the author has kept a rich research database, and the development process has been discussed openly on a mailing list – invaluable resources for anyone looking into modular computing.
CM4 Form-Factor No Longer Just Theirs
You’re no doubt familiar with Raspberry Pi Compute Modules, but perhaps, not with all the pin-compatible alternatives. When the Pi 4 came out, one of the questions was – how would the next Compute Module look, given the newly added PCIe interface? Most expected a new generation of a SODIMM-mountable module, and what we got was far from that. Once laments about low-pitch alignment-pin-less connectors died down, the promise of PCIe was too much to pass on, and hackers have come out with a wide array of carrier boards and Compute Module-based hacks. There’s almost too many to cover, but we sure try!
Of course, there’s nothing exclusive about a pinout+connector+footprint combination of such a SoM (System-On-Module), and the aforementioned myriad of carrier boards is tempting for any designer wise enough to avoid creating a whole new ecosystem. As a result, you have multiple boards with different – Pine64 SOQuartz, Banana Pi BPI-CM4 and Radxa CM3, to name a few. Each has some benefits over the CM4 – my personal favourites are the eDP-compatible DisplayPort on the SOQuartz and the SATA ports on the CM3, but there’s more to it. Hobbyists are also getting on the CM4-compatible board train with projects like the ULX4M FPGA boards, and there’s a RISC-V CM4-compatible from Antmicro in the works, even.
These modules are not exactly like a computer card that you could swap between your tablet and your desk PC on a daily basis, but it does provide unexpected and pleasant upgradability if you happen to have a device expecting a CM4 baseboard. In times of CM4 module shortages, this is a godsend, too. What’s more, players like TuringPi and MNT Reform have created adapters for their own ecosystems.
Reform The Laptop, CPU Module Ecosystem Comes Free
If you’ve followed projects like Novena, you’ll know that NXP’s i.MX series processors are one of the most openness-friendly ARM CPUs available. Six years after the Novena, the MNT Reform laptop wisely picked an i.MX8 CPU. However, they didn’t want to develop a complex multi-layer baseboard, and went for a DDR-formfactor i.MX8M-hosting SoM from Boundary Devices – making the Reform’s mainboard all that cheaper and simpler to design. The unique part about the Boundary Devices’ SoM – it’s the most open i.MX8M module out there, fit for a laptop that strives to be as open as possible.
To reiterate, there’s nothing exclusive about a pinout + connector + footprint combination – and a DDR formfactor module is just a PCB with a set of gold-plated pads at its edge. You can see where this is going, right? MNT Reform’s team developed some custom SoMs and adapters, compatible with the i.MX8 module’s surface-level connectivity. To date, there’s an adapter for the Pi CM4, consequently compatible with three more aforementioned CPU boards, a NXP LS1028A board with half as many CPU cores but twice as much RAM, and even a Xilinx Kintex-7 FPGA-hosting board with talks about a software-synthesized RISC-V CPU ala Precursor.
What’s more – MNT has recently announced development of the Pocket Reform, a 7″ laptop-shaped companion device. Not to miss such a wonderful opportunity, the MNT Pocket Reform uses this exact module form-factor as its bigger sibling. Now, the MNT lineup became an ecosystem with swappable CPU cards – we didn’t quite expect this to happen, but it’s a pleasant surprise of the kind that we don’t get every day. If you’re working on a yet-unrivaled cyberdeck, you too should consider putting a DDR socket on a PCB and benefitting from everything the MNT ecosystem has to offer.
More To Come, Already Plenty
With each project daring to create a standard – or better yet adhere to an existing one – modular computing becomes more and more of a reality in hacker projects. The CM4 and MNT CPU module standards in particular are both accessible and hacker-friendly. If you wanted to develop a custom highly featureful wearable, or a laptop motherboard swap for that old Thinkpad you grew up with, there’s no better time to start than nowadays. Just like I2C devices have slowly been coalescing on JST-SH connectors, perhaps soon, we’ll be building powerful and sleek computers into whatever we want, at a whim, and our parts drawers will get a new drawer named “CPU modules”.
Headline image: “Back-side of an Intel Celeron LGA775 CPU” by Uwe Hermann