Raspberry Pi never fails to create a buzz when it launches a new device, most recently with the introduction of the Compute Module 4. The board, which is essentially a stripped-back Raspberry Pi 4 Model B, is aimed at industrial applications and features a more compact design than previous Pi devices. As it turns out, this required a fair bit of technical wizardry, as Compute Module 4 designer Dominic Plunkett has explained.
To recap: the $25 Compute Module 4 is built on the same 64-bit quad-core Broadcom SoC as 2019’s Raspberry Pi 4, offering considerably better performance over its predecessors with faster CPU cores, better multimedia, more interfacing capabilities, and a choice of RAM densities and wireless connectivity options.
In a blog post, Plunkett — who joined the Raspberry Pi team last year — details the work that went into designing a board that not only made integration more straightforward for customers, but also catered for more compact designs without sacrificing on power.
“Many people think design is a nice linear process: ideas, schematics, PCB, and then final product,” said Plunkett. “In the real world the design process isn’t like this, and to get the best designs I often try something and iterate around the design loop to get the best possible solution within the constraints.”
SEE: Virtual hiring tips for job seekers and recruiters (free PDF) (TechRepublic)
Perhaps the biggest consideration for Plunkett and his team was the form-factor change. Previous Compute Modules have been based on the 200-pin SODIMM design, but Plunkett wanted to add extra components to the Compute Module 4, while also making use of additional interfaces available in the newer Broadcom chip.
This meant routing tracks differently to make space on the printed circuit board (PCB) for the additional parts, Plunkett explained. “We knew we wanted to get the extra features of the BCM2711 out to the connector so that users could make use of them in their products,” he said.
“High-speed interfaces like PCIe and HDMI are so fast coming out of the BCM2711 that they need special IO pins that can’t also support GPIO: if we were to change the functionality of a GPIO pin to one of the new high-speed signals, this would break backwards compatibility.”
The Raspberry Pi team also wanted to add additional items to the PCB, making board real estate an important consideration. Plunkett noted that the Compute Module 3 sports tracks that carry signals from one side of the SoC to the pins on the edge connector, taking up valuable space where additional components could be fitted.
This is what led to the decision to instead fit two connectors to each side of the Compute Module 4 board, negating the need to run tracks across the face of the PCB. However, even this took several iterations to get right, Plunkett explained.
SEE: Programming languages: Developers reveal what they love and loathe, and what pays best
“We experimented with trial PCB layouts for the Compute Module 4 and the CM4 IO Board to see how easy it would be to route the signals; even at this stage, the final size of the CM4 hadn’t been fixed,” said Plunkett.
“The IO Board layout was a really important consideration: after we made the first prototype boards, we decided to change the pinout slightly to make PCB layout on the IO Board even easier for the end user.”
However, the most exciting new feature of the Compute Module 4, according to Plunkett, is the new PCIe interface for connecting high-speed components. On the flagship Pi 4, PCIe connects the XHCI controller which provides the device’s USB 3 ports.
“By providing the PCIe externally, we are giving end users the choice of how they would like to use this interface. Many applications don’t need USB 3 performance, so the end user can make use of it in other ways — for NVMe drives, to take one example,” said Plunkett.
For a full deep-dive into the design process for the Compute Module 4, check out Plunkett’s original blog post.