
Eos epu up5k
embeddedos-org/eCAD-Hardware-Products
Hardware designs + EE docs + Board datasheets of Multiple products

A custom dev board based on the RP2350 microcontroller and the ICE40UP5K-SG48I FPGA.
ICE40UP5K SG48I is an open-source printed circuit board by SorenGilkeyJohnson, from the SorenGilkeyJohnson/iCEPico repository on GitHub, published under the CERN-OHL-S-2.0 licence. It is a 4-layer board of 21 × 51 mm with 75 parts on 95 nets, routed with 846 tracks and 136 vias.
It is built around the ICE40UP5K-SG48I, RP2350A and AP63203WU, with the W25Q128JVPIQ, TLV75512PDBV and BSS138 among its other parts. Its parts include 33 capacitors, 18 resistors, 5 ICs, 4 diodes and 3 connectors. It belongs with the fPGA and programmable logic boards and the RP2350 and FPGA and CPLD boards of this library.
A compact development board combining the RP2350 microcontroller and the ICE40UP5K-SG48I FPGA in a Raspberry Pi Pico form factor.
The iCEPico is a custom PCB that pairs the RP2350 with the Lattice ICE40UP5K-SG48I FPGA. The board is modelled after the Raspberry Pi Pico, with the addition of the FPGA and a +1V2 regulator to supply it. The board matches the physical dimensions of the Pico, though it does not replicate the Pico's pinout.
I made this project because I wanted to learn FPGA design. Initially, I thought about using a BGA package but decided to go with QFN instead due to PCB costs and complexity. I had previously designed for the RP2040 but never the RP2350. I plan to use the project as a general-purpose dev board, a learning tool for FPGAs for me, and to teach students at my school's robotics club.
| Top View | Bottom View |
![]() | ![]() |
| 3D Top | 3D Bottom |
![]() | ![]() |
| Component | Part |
|---|---|
| Microcontroller | RP2350 |
| FPGA | Lattice ICE40UP5K-SG48I |
| QSPI Flash | W25Q128JVP |
| 3.3V Regulator | AP63203 (Buck) |
| 1.2V Regulator | TLV75612PDBV (LDO) |
The FPGA flash is the RP2350 via bit-banging. The two chips share 8 GPIO lines aligned to the RP2350's HSTX peripheral.
| Layer | Function |
|---|---|
| 1 | Signal / Components |
| 2 | GND |
| 3 | PWR (primarily 3V3) |
| 4 | Signal |
The board can be powered via:
| Method | Target | Description |
|---|---|---|
| USB (UF2) | RP2350 | Drag-and-drop bootloader over USB-C |
| SWD | RP2350 | Debug header for OpenOCD / probe-rs |
| Bit-bang (via RP2350) | ICE40 FPGA | FPGA bitstream loaded by the RP2350 firmware |
| Pin | Left Signal | Right Signal | Pin | |
|---|---|---|---|---|
| 1 | GND | +3V3 | 2 | |
| 3 | GPIO0 | +VIN | 4 | |
| 5 | GPIO1 | ADC2 | 6 | |
| 7 | GPIO2 | ADC1 | 8 | |
| 9 | GPIO3 | ADC0 | 10 | |
| 11 | GPIO4 | GPIO24 | 12 | |
| 13 | GPIO5 | GPIO23 | 14 | |
| 15 | GPIO6 | GPIO22 | 16 | |
| 17 | IOT_37 | IOB_16 | 18 | |
| 19 | IOT_36 | IOB_8 | 20 | |
| 21 | IOT_39 | IOB_9 | 22 | |
| 23 | IOT_38 | IOB_6 | 24 | |
| 25 | IOT_41 | IOB_4 | 26 | |
| 27 | IOT_42 | IOB_2 | 28 | |
| 29 | IOT_43 | IOB_0 | 30 | |
| 31 | IOT_44 | IOB_5 | 32 | |
| 33 | IOT_48 | IOB_3 | 34 | |
| 35 | GND | GND | 36 | |
| 37 | IOT_45 | IOT_49 | 38 | |
| 39 | IOT_50 | IOT_51 | 40 |
iCEPico/
├── Images/ # Board renders and schematic export
│ ├── Bottom_View_PCB.png
│ ├── ICE40UP5K-SG48I_3D_Bottom.png
│ ├── ICE40UP5K-SG48I_3D_Top.png
│ ├── ICE40UP5K-SG48I_Schematic.pdf
│ └── Top_View_PNG.png
├── KiCad/ # KiCad project files
│ ├── ICE40UP5K-SG48I.kicad_pcb
│ ├── ICE40UP5K-SG48I.kicad_prl
│ ├── ICE40UP5K-SG48I.kicad_pro
│ └── ICE40UP5K-SG48I.kicad_sch
├── fabrication/ # Fabrication outputs
│ ├── bom.csv
│ ├── gerbers.zip
│ └── pick_and_place.csv
├── hardware/ # Hardware source files
│ ├── ICE40UP5K-SG48I.kicad_pcb
│ ├── ICE40UP5K-SG48I.kicad_pro
│ └── ICE40UP5K-SG48I.kicad_sch
├── LICENSE
└── README.mdSee LICENSE for details.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 17 | 100n | Capacitor_SMD:C_0402_1005Metric | C1, C3, C6, C10, C11, C14, C18, C19, C20, C23, C25, C27, C29, C30, C31, C32 +1 |
| 9 | 4u7 | Capacitor_SMD:C_0402_1005Metric | C2, C4, C9, C12, C13, C24, C26, C28, C33 |
| 6 | TestPoint | TestPoint:TestPoint_Pad_D1.0mm | TP1, TP2, TP3, TP4, TP5, TP6 |
| 5 | TBD | Resistor_SMD:R_0402_1005Metric | R6, R7, R8, R9, R12 |
| 3 | 10K | Resistor_SMD:R_0402_1005Metric | R4, R5, R11 |
| 2 | 100K | Resistor_SMD:R_0402_1005Metric | R10, R13 |
| 2 | 1K | Resistor_SMD:R_0402_1005Metric | R14, R15 |
| 2 | 1u | Capacitor_SMD:C_0402_1005Metric | C8, C15 |
| 2 | 27R | Resistor_SMD:R_0402_1005Metric | R16, R17 |
| 2 | 5K1 | Resistor_SMD:R_0402_1005Metric | R1, R2 |
| 2 | LED | LED_SMD:LED_0402_1005Metric | D3, D4 |
| 2 | TBD | Capacitor_SMD:C_0402_1005Metric | C21, C22 |
| 1 | 100R | Resistor_SMD:R_0402_1005Metric | R3 |
| 1 | 10u | Capacitor_SMD:C_0805_2012Metric | C5 |
| 1 | 12MHZ | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | Y1 |
| 1 | 1n | Capacitor_SMD:C_0402_1005Metric | C16 |
| 1 | 22u | Capacitor_SMD:C_0805_2012Metric | C17 |
| 1 | 33R | Resistor_SMD:R_0402_1005Metric | R18 |
| 1 | 3u3 | Inductor_SMD:L_Changjiang_FTC201607S | L2 |
| 1 | 3u9 | Inductor_SMD:L_Chilisin_BWVS00404012 | L1 |
| 1 | AP63203 | Package_TO_SOT_SMD:TSOT-23-6 | U2 |
| 1 | BSS138 | PCM_Package_TO_SOT_SMD_AKL:SOT-23 | Q1 |
| 1 | Conn_01x03 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J1 |
| 1 | Conn_02x20_Odd_Even | Connector_PinHeader_2.54mm:PinHeader_2x20_P2.54mm_Vertical | J2 |
| 1 | ICE40UP5K-SG48I | Package_DFN_QFN:QFN-48-1EP_7x7mm_P0.5mm_EP5.3x5.3mm | U1 |
| 1 | LED_ARGB | LED_SMD:LED_SK6812_EC15_1.5x1.5mm | D2 |
| 1 | PMEG4010ER | Diode_SMD:Nexperia_CFP3_SOD-123W | D1 |
| 1 | Polyfuse | Fuse:Fuse_0603_1608Metric | F1 |
| 1 | RP2350A | Package_DFN_QFN:QFN-60-1EP_7x7mm_P0.4mm_EP3.4x3.4mm | U5 |
| 1 | SW_MEC_5G | Custom_Footprint_Purchase:SW_3_42 4-PIN Button | SW1 |
| 1 | TLV75512PDBV | Package_TO_SOT_SMD:SOT-23-5 | U3 |
| 1 | USB_C_Receptacle_USB2.0_16P | Connector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_Horizontal | J3 |
| 1 | W25Q128JVP | Package_SON:WSON-8-1EP_6x5mm_P1.27mm_EP3.4x4.3mm | U4 |

embeddedos-org/eCAD-Hardware-Products
Hardware designs + EE docs + Board datasheets of Multiple products

mikesmitty/rp24-dcc-decoder
DIY DCC decoder for model railroad locomotives in an E24 form factor, powered by an RP2350 (Raspberry Pi Pico 2)

ratmuds/spark
The PCB files for this project. The gerber and other PCBA files are in the production folder.


Darkops-cpu/CERBERUS
An open-source iCE40 FPGA development board with a fully open toolchain.

HexFud/OptiLogic-16-Pro
A logic analyzer with 16 channels that can also watch two fiber network links at the same time


OrbitalCommons/gumstick
Gumstick: ESP32 + iCE40UP5K FPGA module (v1 DF40 board-to-board, v2 M.2 gold-finger draft) and its programming carrier. KiCad 10.
It measures 21 × 51 mm and has 4 copper layers, 1.6 mm thick.
75 parts, built around the ICE40UP5K-SG48I, RP2350A, AP63203WU and W25Q128JVPIQ. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the SorenGilkeyJohnson/iCEPico repository on GitHub, at the commit this page was made from: the board is KiCad/ICE40UP5K-SG48I.kicad_pcb and its schematic KiCad/ICE40UP5K-SG48I.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the CERN-OHL-S-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).