Skip to main content

Upgrade Chip Connects PCIe Cards to Raspberry Pi 4

A Raspberry Pi 4 connected to a PCI-Express breakout card
(Image credit: Zak Kemble)

The Raspberry Pi has a strong selection of ports, including four USB Type-A connectors, Ethernet, 3.5mm audio and two microHDMI outs. But what if you want to take a PCIe card, the same kind you use in a PC, and attach it to your Raspberry Pi? Believe it or not, now you can, with the help of a $6 chip and a soldering iron. 

One of the less talked about features of the Raspberry Pi 4 is the PCI Express interface which is dedicated for use with the VL805 USB 3.0 controller. The Raspberry Pi 4 is the first Pi to use this interface, and this has led to many hackers such as Thomasz Mloduchowski and Colin Riley to investigating PCI Express on the Pi 4 and their documentation of the process is superb.

This week, developer Zak Kemble announced a breakthrough. Kemble has created the RPi4 PCIe Bridge Chip , a PCB which is soldered in place of the VL805 and bridges the PCI Express interface to a USB 3.0 port. By doing this, you'll obviously void your warranty and you will lose access to all of your USB ports, though you can use the Pi 4's Type-C connector as a host (if you power the Pi from GPIO pins). Kemble is currently selling the Raspberry Pi 4 PCI-Express chip for just $6 so anyone can try this.

Close up of the bridge soldered on to the Raspberry Pi 4

(Image credit: Zak Kemble)

So what could you do with a PCIe cards on a Raspberry Pi 4? Kemble says you could get faster Ethernet -- 2.5 or 5Gb -- for turning your Pi into a router. You can also attach SSDs or Flash cards that go directly to the PCIe bus. He noted that graphics cards will not work because the "CPU doesn't have enough BAR space for them."

"With a PCIe switch you could have both faster storage and faster networking. An RPi4 NAS could double in performance compared to using the onboard 1G ethernet and a USB-to-SATA converter," he told us.

Also, in practice, many cards will not work with this chip and we don't know which. In his limited experiments, Kemble had success with an RTL8111 1G Ethernet card which would allow the Pi 4 to act as a router.

Kemble also managed to connect a 4-port USB 3.0 PCI-e expansion card that allowed him to combine four Flash drives into one and get a throughput of 3 Gbps, though more is possible. 

It is still very early days for this hack, so we don't now what else will or won't work. But if you want to try it for yourself, see Zak's Electronics Blog.

  • bit_user
    I'm waiting for someone to use the Ubuntu image and compile a custom kernel with AMD GPU support.

    Then, you could put a real GPU in there. Even though it'd be limited by just a x1 PCIe 2.0 link, I'm sure even a RX 550 would still run circles around the Pi's integrated VideoCore GPU!

    The Pi's GPU is definitely one if its weakest aspects, in the current generation.
    Reply
  • Rdslw
    That does not go though the usb translation twice then it makes a bit of sense,
    but if its sent though that port -> usb protocol -> backward translation -> pcie
    then the lag on this must be making it pointless.
    Reply
  • JarredWaltonGPU
    bit_user said:
    I'm waiting for someone to use the Ubuntu image and compile a custom kernel with AMD GPU support.

    Then, you could put a real GPU in there. Even though it'd be limited by just a x1 PCIe 2.0 link, I'm sure even a RX 550 would still run circles around the Pi's integrated VideoCore GPU!

    The Pi's GPU is definitely one if its weakest aspects, in the current generation.
    LOL. I mean, it's inevitable, right? Someone will almost certainly do this. The CPU in the Pi is also going to be a limiting factor, but I'm looking forward to someone posting Pi + RX 5700 XT performance results. "I bought a $50 Pi, then attached a $375 GPU to it via a $25 adapter setup!"
    Reply