Where do you draw the line between the CM4 carrier and the STM32 on a mixed board?

Oct 15, 2026 Last reply: 18 hours ago 5 Replies

First reply

HandBrass

I actually did this last year on a data logger board and it worked out fine. The connector position is the same for both modules, so the mechanical side is easy. I just drew one footprint with the full row layout and kept all the pins connected where the two modules agree…

Read the full reply

Also, anyone found a clean way to do CM4 vs CM5 in one footprint so the design survives the module swap? I've seen the footprint trick mentioned but never tried it myself.


I actually did this last year on a data logger board and it worked out fine. The connector position is the same for both modules, so the mechanical side is easy. I just drew one footprint with the full row layout and kept all the pins connected where the two modules agree, which turned out to be the vast majority of them. The handful of signals that moved between the modules I brought out to solder bridge jumpers on the back of the board. That way I could build the same PCB for either module and just set three or four jumpers depending on what I had in stock. I put tiny labels on the silkscreen like 'CM4 side' and 'CM5 side' so future me woud not have to dig through the schematic again. One thing I would do differently: I skipped the ECO checklist the first time and missed a pin that only powers up on the newer module, which cost me a bodge wire. Now I print both pinout tables and tick through them side by side before sending the gerbers off. Took an evening, saved a second board spin. If your design avoids the pins that changed at all, you can even skip the jumpers and just leave those nets unconnected on both variants.

I tried the combined footprint on my first pass and ended up abandoning it. On my board the differences snowballed once I actually sat down and compared the datasheets, not just the pinout charts. What looked like five or six moved pins turned into more like fifteen once you count the analog channels and the SDIO lines, and every one of them needed some kind of tie-off point anyway. A shared footprint with a pile of pads on the back just made the layout messy. What I do now is keep one symbol in the schematic and two footprints, then pull every pin that moved through a 0-ohm resistor position. For a CM4 build I stuff the resistors one way, for a CM5 build the other way. It costs me a dozen parts but the layout stays clean and I can see the differences right on the schematic instead of hunting through footprint pads.

KiCad's assembly variants handle the BOM side of that nicely too, so the two builds come off the same panel without me editing anything by hand. More work up front, way less head-scratching when the second module shows up in the mail and something doesn't boot.

Back when we did this sort of thing with mylar and tape, a dual-stuffed part meant two artwork layers and a prayer. KiCad makes it easier than that: you can drop both module footprints on the same pads and only populate whichever one the BOM calls for. Works fine as long as the module outline and keepouts are close enough, which they mostly are here, though check the antenna end and anything tall nearby before you commit. I keep a simple spreadsheet with one column per module and mark each pin shared, moved, or dead. Paper works too, I did it that way for years, but the spreadsheet sorts itself when the datasheets get revised.

Following this with interest since I'm basicly in the same boat but a step behind. My carrier is only planned for the CM5 right now, but after reading this I'm wondering if I should design for both from the start before I lock the layout. My situation is a bit diffrent in that an STM32 on my board handles the USB side, so a bunch of the module pins I'd be wiring are just going to that chip anyway. One thing I'm unsure about, if I do the shared footprint thing, does KiCad throw a fit in DRC over the pads that end up tied to nothing on one variant? First proper board for me so I don't know what's normal noise versus an actual mistake.

Update: I sat down with both datasheets like the second poster suggested and yeah, the differences multiply fast once you count the analog channels and the GPIO shifts. Now I'm wondering about the dual footprint approach the third reply described. If I drop both module footprints on the same pads, how do you handle the pins that don't line up? Tie-breakers on the board or cut traces later?

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required