Add four PCIe x1 slots to Raspberry Pi CM4 IO with Waveshare PCIe-Packet-Switch-4P board

The 1-lane PCIe Gen 2 interface in Broadcom BCM2711 processor is exposed in Raspberry Pi CM4, and most carrier boards are exploiting the interface including the official Raspberry Pi Compute Module IO carrier board.

But if you ever wanted to connect multiple PCIe cards to the CM4 IO board, Waveshare has got you covered with the PCIe-Packet-Switch-4P that provides four PCIe x1 slots through an ASMedia ASM1184e PCIe switch.


Raspberry Pi CM4 IO PCIe Switch board

PCIe-Packet-Switch-4P expansion board specifications:

  • Compatible with Raspberry Pi Compute module 4 IO board
  • 4x PCIe Gen 2 x1 expansion slots, compatible with PCIe Gen 1 x1
  • ASM1184e PCIe switch taking 1x PCIe x1 Gen2 upstream port to 4x PCIe x1 Gen2 downstream ports; no driver required, plug and play
  • Power Supply
    • 12V via PCIe interface or
    • 12V via DC jack (or even 5V see warnings below)
  • Dimensions – 82 x 39 mm

ASM1184e PCie switch Raspberry Pi CM4

There are some interesting warnings in the Chinese wiki:

  • “The speed limit is 500Mbps. No matter how it is extended, the speed will not exceed this limit at the same time”. (CNXSoft: That’s really odd as 1-lane PCIe Gen 2 should be around 5 Gbps, so I’d assume it’s a mistake until proven otherwise)
  • “The module is powered by 12V. When there is no way to provide a 12V power supply, it can also use a 5V power supply”
  • “When using a 5V power supply, the power will flow back to the 12V of PCIe. It is necessary to ensure that it will not affect the normal operation of the motherboard before using 5V power supply”
  • “The maximum output current of each PCIe interface 3.3V power supply must be less than 1.5A”

Note that Waveshare will typically provide English documentation, but it’s not available just yet.

PCIe-Packet-Switch-4P is sold in China for 144 RMB, or about $23. Again, I’d expect the board to show up on Waveshare English shop in the next few days or weeks.

Via Will whang

Share this:
FacebookTwitterHacker NewsSlashdotRedditLinkedInPinterestFlipboardMeWeLineEmailShare

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK Pi 4C Plus

14 Replies to “Add four PCIe x1 slots to Raspberry Pi CM4 IO with Waveshare PCIe-Packet-Switch-4P board”

    1. So what are people plugging into these slots? Wireless card is an obvious one, and you could add some fake I/O USB ports this way.

      1. Might as well hang USB off of the existing ports using a hub–you’re not going to magically get more bandwidth after all.

        Can’t put a GPU on them as the BAR is too small in the PCI-E controller of the Rpi (and many ARM SoCs, it’s not just an Rpi problem).

        So, yeah, networking cards are probably it. There’s enough bandwidth to plug in 4 single port GigE cards.

        The power limitations are a concern to me. They’re limiting the cards to 1.5A/slot at 3.3V. That’s half of the spec (3A @ 3.3V) and that’s not even accounting for the strange 12V stuff going on. If 12V is provided, then cards could pull their full 10W power budget as they’re allowed 0.5A@12V and the rest from the 3.3V rail. That would fit within the limitations of this device. I’m really curious what cards can work with this thing because of the power limitations. I’ve got to think that wireless cards draw a bit of power.

      2. I mean there is persistent storage, but there’s really no point when you’re going to be multiplexing them over an x1 lane – no point as in you could get more bandwidth going over USB instead. I guess if you’re getting the drives really cheap…

        Jeff Geerling has tried out a few of this sort of product, and what he normally plugs into them are ML/AI (I don’t know the difference) accelerators. I see this as a pretty valid use-case: AFAIK they aren’t constantly maxing out the bandwidth, and the Pi is a pretty good ‘dumb’ controller to just send them their tasks. I think it would be a pretty good little AI compute farm – I would just worry about the power consumption with this board.

        1. That’s a good use case! If we’re talking the little accelerators that you sometimes see on a USB stick, they’re in the 2.5W to 5W range, so they’d be okay on this board. If you’re thinking of something more beefy–a 1x card can negotiate up to 25W. The good news is any additional power is on the 12V line. That still leaves the 3.3V supply at half of the spec, so it’s possible that a car still wouldn’t function. And 100W over that floppy power connector is also a no-no. That little guy is only spec’ed for 3A–so 36W from there. Anyone who wants to stuff four of anything in this board is going to have to be very careful and know a lot about their particular devices.

  1. Regarding “500 Mbps”, I’m pretty sure they confused lowercase “b” (bits) with uppercase “B” (bytes) and just wanted to refer to disk transfer rates that would be capped to ~500 MB/s.

    1. That’s one possibility. I thought they just forgot a zero, 500 Mbps instead of 5000 Mbps.

      1. You should remember that while marketing usually confuses letters and their case, they never forgets to add zeroes!

    2. Has that CPU actually been clocked running 500MB/s over its PCIe interface? It may be a ‘well, the expander can handle 5Gbps, but what it’s connected to is bottlenecked, so…’ thing.

  2. This is all good and I am glad we have so many options now with IO boards, but try finding a case/enclosure with4 PCI-E X1 low profile slots. I can not even find an enclosure with a single PCI-e card slot (vertically or horizontally). So if you want to start using these products in a commercial project, you have to get enclosures custom made which in the end makes the total solution expensive again. Does anybody know of off-the-shelf enclosures for the CM4 IO with a PCI-E x1 slot?

    1. Raspberry Pis are considered maker’s devices. You have no reason to make/use a highly custom rig if you can’t roll your own case. 😉

Leave a Reply

Your email address will not be published. Required fields are marked *

Khadas VIM4 SBC
Khadas VIM4 SBC