finds.dev← search

// the find

wickerwaka/PicoROM

★ 330 · Rust · MIT · updated Apr 2026

An RP2040-based ROM emulator

PicoROM is an RP2040-based hardware ROM emulator that plugs into a DIP-28 or DIP-32 socket and serves up to 256KB over a bit-banged bus with 70ns access time, controlled from a Rust CLI over USB. It's aimed squarely at people reverse-engineering or modifying arcade boards and other retro hardware who are tired of burning EPROMs every time they change a byte.

The PIO programs (comms.pio, data_bus.pio) doing the actual bus timing on the RP2040 are the real engineering here — hitting 70ns worst-case address-to-output on a microcontroller emulating a ROM socket is a legitimately hard timing problem, and they've measured and published the histograms to back the claim. It's also a genuinely full-stack open project: KiCad schematics and PCBs for three hardware variants, C++ firmware, a Rust host tool, and pyo3-based Python bindings (pypicorom) for scripting. The reset-pin control and makefile-friendly CLI (upload/commit/reset in one invocation) show someone actually building arcade dev workflows around this, not just a demo.

The 2.0 protocol change is a flat break with no compatibility path — anyone with existing 1.x hardware and tooling has to migrate cold, and that's the kind of decision that quietly strands early adopters. There's no visible test suite for the firmware or the Rust host tool beyond lint/build CI (python.yml, tool.yml); for code whose entire value proposition is precise bus timing, the lack of hardware-in-the-loop or even unit tests around the protocol layer is a gap. The repo also commits production gerbers and zipped fab outputs directly into git history instead of using releases, which will bloat clones over time. And it's inherently a physical-hardware dependency — you need to own or build the board to get any value, so this isn't something you can just `cargo install` and try.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →