Icepi Zero puts an ECP5 FPGA in a Raspberry Pi Zero outline
An ECP5 FPGA Dev Board in a Pi Zero form
At a glance
- What is it?
- Icepi Zero is a physical board, not a library: a Lattice ECP5 25F with 24k LUT and 112 KiB of RAM, on-board USB to JTAG and a MiniGPDI video port, sized to match the Raspberry Pi Zero. It suits learners and emulator hobbyists, and it leaves hardware and toolchain questions to the buyer.
- Who is it for?
- Adopt the Icepi Zero if you want a cheap, pocket sized ECP5 target for cycle accurate emulation or for learning how a processor is built, and if you are comfortable treating a hardware revision as a moving part. Skip it if you need a documented pinout, a reproducible toolchain command list, or a licence you can read at a glance from the project page.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly HTML, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.
Editorial analysis
An ECP5 FPGA squeezed into the Pi Zero outline
The Icepi Zero is a development board, not a software package, and that shapes everything about how you use it. Its whole premise is physical: it copies the Raspberry Pi Zero outline and fills it with a Lattice ECP5U FPGA carrying 24k LUT and 112 KiB of RAM, alongside 256Mbit of 166MHz SDRAM and 128 Mbit of flash. The argument made for the design is that capable FPGA boards tend to be expensive and bulky, while the author's actual goal, a low cost portable FPGA with video output for building a CPU of his own, was not available on the market. So the scope is deliberately narrow. This is a small board for people who want real hardware logic and a display link without filling a desk with equipment, and the size comes from the reference platform rather than from an attempt to be a general purpose development kit.
The on-board USB to JTAG converter is the part that changes the desk
The single most useful hardware decision here is the on-board USB to JTAG and UART converter, which means an external programmer is not needed to talk to the FPGA. For a board meant to sit in a pocket and run an emulated machine, that removes an entire item from the shopping list and the USB cable count. The rest of the board is deliberately spare: a 50MHz external oscillator, four user LEDs, two user buttons, a MicroSD card slot, three USB-C ports, and one MiniGPDI connector for digital video output. The MiniGPDI is described as the same interface used on the Pi Zero, so display work that needs a small HDMI style plug rather than a large connector is possible. The README notes that the interface is an HDM-style part and that a licence was not purchased for it, which is worth remembering before you design a product around the port.
Ordering the board and finding your first build
There is no install script here, because there is no software to install. The project says to get hardware from one of three sellers listed at the top of its page, Crowd Supply, Elecrow and Mouser Electronics, and it also states that students and educational institutes can request an educational discount of $65 by emailing the author. For your first real use, the starting point is the `gateware` folder, which the README points to for example code and compilation instructions:
gatewareThe exact toolchain commands are not spelled out in the page text, so expect to read that folder before you budget a build session. A second route in is the Icestudio graphical editor, which is supported through a custom fork rather than the stock release, aimed at beginners who want a visual flow instead of a build script. Support is offered through a Discord server and direct contact, and the page keeps a journal file at the repository root that records work over time.
Cycle accurate replicas of Oberon, Apple I and Acorn Atom
The strongest evidence for the board is in its emulation track record. Over a period of several weeks the author ported a set of emulation cores to it, and the page links three of them: Oberon, plus Apple I and Acorn Atom replicas, each with its own linked repository under the same account. The phrase used for the result is cycle accurate replicas of favourite systems that fit in a pocket, and photographs show Oberon, the Apple I and the Acorn Atom running on the hardware. This is the workload the board was designed around, and it is worth judging the purchase on that basis. A design that fits 24k LUT is not a general purpose compute platform, but it is enough to run these small historical machines, which is exactly the case the author describes wanting.
Fabricating the PCB: stackup, 0201 resistors and the v1.1 pin trap
The hardware directory is open, so the board can be made rather than bought. The README specifies a 1.2mm or 1.6mm PCB using the JLC04121H-7628 stackup, and points to a `production` folder inside the `hardware` directory for the Gerbers:
productionOne assembly detail bites people who want to simplify their fab order. The smallest component on the board is 0201, used for 27 Ohm resistors on the USB-C data lines, and the documented workaround is to delete those 0201 resistors and fit 0402 parts instead if that is all your fabricator wants to handle. A second trap is revision specific. Boards fabricated as v1.1 before 01/06 have different pin positions for the USB pull-ups and for LED0, so anyone holding early units has to check the Gerbers before assuming a pinout. The repository also offers a browser based view of the PCB through an online viewer link.
What the project page leaves unresolved
This is a hardware repository with a documentation folder, a firmware folder and a case folder at the top level, and the README is short. Several practical gaps follow from that. No install steps, no list of toolchain versions, and no package names are given for the synthesis flow, so building the example designs depends on what you can infer from the files in `gateware`. There is no pinout table in the page text, no board current draw figures, no statement of which ECP5 speed grade is fitted, and no mention of supported clocking beyond the 50MHz oscillator. Licensing is also unusual: GitHub classifies it as Other, meaning a custom licence that the platform cannot map to a standard identifier, and the page gives no summary of its terms, so read the LICENSE file yourself. And the tension between calling the display port the same as the Pi Zero's and admitting no licence was bought for the part is left for the buyer to judge.
The ulx3s lineage and where a new buyer fits
The project states plainly that it was inspired by the ulx3s and that the team behind that board deserves credit, and it links the ulx3s repository for anyone who wants the earlier design. The documented differences are what this board adds rather than what the other one does. The Pi Zero footprint is the central one, since it is small and portable by design, and portable video output is the need the author says drove the design. If you already own an ulx3s, the honest case for buying this one is size and display output, not a documented increase in logic capacity. If you have never used an FPGA board, the practical advantage is that the emulation cores and the Icestudio fork give you something to run on day one instead of an empty toolchain.
Maintenance pace and the cost of a hardware upgrade
The repository is not archived and the last push was on 2026-10-22, with a tagged release, v1.3, published on 2025-09-18. On the software side that means the board files and the emulation work are still moving. On the hardware side, an upgrade is not a firmware push but a board revision, and the v1.1 pull-up and LED0 difference is the proof that revision changes can break assumptions you baked into your own work. The most recent change to the board layout sits in the `hardware` directory, where version-specific subfolders such as v1.2 hold the design files, so an upgrade path means checking which folder matches the board in your hands. The hardware itself carries OSHWA certification, FR000026, which the page links, and the project describes itself as fully open source with no strings attached.
Editorial conclusion
Adopt the Icepi Zero if you want a cheap, pocket sized ECP5 target for cycle accurate emulation or for learning how a processor is built, and if you are comfortable treating a hardware revision as a moving part. Skip it if you need a documented pinout, a reproducible toolchain command list, or a licence you can read at a glance from the project page. Before buying, check the `gateware` folder for a build walkthrough and confirm which board revision you receive, because the USB pull-up and LED0 pin positions differ between earlier v1.1 units and later hardware.
Frequently asked questions
What FPGA and memory does the Icepi Zero carry?
It uses a Lattice ECP5U with 24k LUT and 112 KiB of RAM, plus 256Mbit of 166MHz SDRAM and 128 Mbit of flash on board.
Do I need an external JTAG programmer for the Icepi Zero?
No. The board has an on-board USB to JTAG and UART converter, so an external programmer is not needed.
Where are the Icepi Zero Gerbers, and can I use 0402 parts?
The Gerbers sit in the `production` folder inside the `hardware` directory. The smallest listed component is 0201 for 27 Ohm resistors on the USB-C data lines, and the page says you can delete those resistors and use 0402 parts only instead.
Where do I find example designs and compilation instructions?
The README points to the `gateware` folder for example code and compilation instructions. It also mentions support through Icestudio via a custom fork.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/cheyao-icepi-zero)Was this useful?