Modder Gets External PCIe Support Running on Raspberry Pi 4

Photo Source: Tom's Hardware

Raspberry Pi devices are kinda like Batman's utility belt. They hold seemingly limitless potential--what other garment allows a trust fund baby to carry shark repellent in style?--but they do in fact have some limitations. A research and technology consultant named Tomasz Mloduchowski has found a way around one of the Raspberry Pi 4's limitations by modifying it to support external PCIe devices.

We hailed the Raspberry Pi 4 as "the new gold standard for single-board computing" when it debuted on July 8. This latest generation of the product offers greatly improved performance, support for 4K video output, and other changes that make it more than just a novelty. Someone could reasonably use a Raspberry Pi 4 as a desktop computer without having to make too many sacrifices along the way.

The Raspberry Pi 4 technically relies on PCIe for its USB chips, but it doesn't offer a way to connect external devices using the standard. That's where Mloduchowski comes in. He published a blog post describing his efforts to remove one of those chips--there's one each for USB 3.0 and USB 2.0--so he could boot the Raspberry Pi 4 Model B with an Adaptec SAS controller. The verdict? It's messy, but doable.

However, if your reason for wanting PCIe is faster storage, we recommend attaching an external drive to your Raspberry Pi 4. When we tested a Raspberry Pi 4 with an SSD, we got speeds that were 3 to 13x faster than a standard microSD card.

Mloduchowski described the process on his blog. We simply want to highlight that this is possible, even if it's a bit more fiddly than some people might be comfortable with, and call attention to his motivation. "I'm sharing it to allow people to learn from this," Mloduchowski said, "and to dispel the myth that PCIe is somehow out of reach of hobbyists due to some concerns over signal integrity or complexities."

That's a big part of why Tom's Hardware has been so keen on the Raspberry Pi of late. It's not just because one accidentally let someone hack NASA's Jet Propulsion Laboratory, or because of all the cool projects built on top of the single-board computer, or because it's become an itty-bitty desktop replacement with a surprising amount of power. Those are part of the reason why, but they aren't the only reasons.

Rather it's because of how useful the Raspberry Pi can be as a learning tool. People afraid to explore a full-blown PC for fear of losing their investment should be more comfortable experimenting on a $35 board. Want to see if a USB chip's PCIe interface can be modified to support external devices? Go for it. Much better to "ruin some of the surrounding components," as Mloduchowski did, in a device like this.

MORE: Raspberry Pi GPIO Pinout: What Each Pin Does

MORE: How to Use Raspberry Pi as a VPN Gateway

MORE: Raspberry Pi Tutorials

Nathaniel Mott
Freelance News & Features Writer

Nathaniel Mott is a freelance news and features writer for Tom's Hardware US, covering breaking news, security, and the silliest aspects of the tech industry.

  • bit_user
    Would be nice to know what version of PCIe. Unfortunately, even the original blog post doesn't say.

    I'm guessing 2.0 x1 lane, but I guess the SSD benchmarks don't rule out the possibility of only PCIe 1.0 x1. Maybe an enterprising person, such as an author of articles about such things, could actually look up the SoC specifications and check what it can support. That would be a really cool and journalistic thing to do, I'd say.

    It'd be sweet if they socketed the USB2 controller, on higher-end versions of the board, specifically so that people could easily swap it out for this sort of mod.

    Anyway, while this is a cool hack, it should be noted that some of the RK3399-based boards (such as the RockPro64) have a x4 slot built right in.