Also looks like PCIe is exposed via an FPC connector. You could probably come up with a scheme to have an M2 device mounted behind the board - if you really wanted.
Only having a single lane of PCIe 2.0 is a little unfortunate. I wonder if the inevitable compute module will get more or not. It seems that their IO chip is also attached via PCIe but it provides a lot of the interfaces that you’d expect to have - so my hunch is that it’ll be included on any CM5.
I think you can have over a hundred different i2c devices connected to the same bus, so it'd get pretty tall if you can power them all. 10-bit i2c (not very common) can do almost a thousand.
Although, you'd need specific rules if you wanted to prevent someone just layering up always-on LED boards.
> you can have over a hundred different i2c devices connected to the same bus
In theory sure, in a world with zero-inductance zero-capacitance busses and infinite-sink-current drivers. In our reality, however, you'll start having issues and start requiring stronger pullups and lower speeds long before you get to a hundred.
One pretty popular home alarm brand uses I2C as “the bus” with somewhat ridiculously large cable lengths for what was designed as a board/enclosure level cheap serial bus. It is in no way a sane design, but it seems to work.
This reminds me of one of the dirtiest things I've seen in this space. Saw i2c buses bridged across multiple chassis by bridging the boards with CAN transceivers. It mostly worked, but I feel like everyone who signed off on that design review should feel bad about the atrocity they created.
A 100kHz I2C with a 10kOhm pullup resistor can only take like... 1nF of capacitance before it all falls apart. (Crude napkin math for RC constant equals 10uS, I'm probably off by a magnitude but I think I'm close).
We're talking about the physical wire and physical electricity. Eventually, the capacitance on the wire grows such that its literally impossible for a 100kHz wave (let alone a 200kHz or 1MHz wave) to be placed upon the wire.
Parasitic Capacitance is real. Each item you add in parallel to a bus will increase capacitance.
--------
Each item you add in serial to a bus will increase resistance and inductance, which also slows down the speed of the bus. Once the speed drops below the specified protocol (ex: 100kHz or whatever you've chosen), it all goes to crap and no one can talk anymore. I don't quite remember the napkin-math formulas for LRC-circuits but... parasitics are hugely important and nH of inductance and nC of parasitic capacitance absolutely can be reached with just a few connectors.
Honestly, I think the earlier estimate of "failing by a hundred connectors" is rather optimistic still. 100kHz I2C and 10kOhm pullup would probably fail within a dozen connectors.
You can have as much addressing as you like and software going on in the background. It don't matter if your literal wires no longer work as you expect.
Well an interesting hack (of a hack) was pirated / imported games couldn't be played because they didn't have a specific chip. They did have splitters so you took the chip signal from a genuine cart, and the other game plugged in the other port.