Eric Schlaepfer Tears a Raspberry Pi Compute Module 5 Down, To Build It Up Again as a KiCad Project
Reverse-engineered board layout, schematic, and parts list could prove helpful for anyone diagnosing a fault.
Engineer Eric Schlaepfer has turned his attentions to the Raspberry Pi Compute Module 5 computer-on-module, tearing one down into its component parts in order to reverse engineer it — and releasing the result as a KiCad project.
"I needed to solve some design issues with a project that uses [a Raspberry Pi Compute Module 5], but the schematic was not available," Schlaepfer explains of his work. "Fortunately, with a little reverse engineering work, I was able to back out the schematic and solve my design issues. It's useful mainly for educational purposes or advanced hacking. For example, now that the PMIC [Power Management Integrated Circuit] pinout is known, the I2C register map could be explored. It's a great little part — if you accidentally blow up a CM5, you might be able to remove everything except for the PMIC, program it over I2C, and use it to power another project."
While Raspberry Pi releases board designs for some of its hardware under open licenses — including the IO Board carrier for the Raspberry Pi Compute Module 5 — most are proprietary. With nothing official to go on, Schlaepfer turned to a classic approach for reverse engineering unknown circuitry: desolder all components, measuring and documenting them accordingly, and then sanding down the PCB layer-by-layer. As each layer is revealed, the PCB is placed on a high-resolution flatbed scanner to capture its layout.
That only gives you a series of images, however. The next step of the process: importing the images into an electronic design automation (EDA) tool — in this case KiCad — and routing traces to match those of the original circuit. Eventually, after some considerable effort, you'll end up with a reproduction of the original.
"The board has 10 layers," Schlaepfer says of his findings. "It is what's known as a 2+6+2 configuration since it has four layers of microvias: layer 1-2, 2-3, 8-9, and 9-10. There are buried mechanical vias from layers 2-9, and standard through-board vias from layers 1-10. The resistors in the upper right corner that select the memory and eMMC configuration are not zero-ohm devices. Each possible position has a specific resistor value, forming a resistor divider with a 10k resistor, so that the RP1 can measure the voltage with two ADC inputs and determine the configuration."
The project files and documentation are available on Schlaepfer's GitHub repository under the Creative Commons Attribution-ShareAlike 4.0 license; those who have visions of making their own Compute Module 5, though, will be disappointed to discover that neither Raspberry Pi nor Broadcom typically make the BCM2712 and RP1 chips available to third parties unless they're soldered tidily onto a computer-on-module or single-board computer.