|
KiCad 9.0 |
Icey - An FPGA Learning Board
ICEY
A complete FPGA learning platform: programmer, video output, USB host, and storage, all on one Uno-sized board.

Hi, I'm Darsh, a high school student from Ontario, Canada. I've been writing software since I was 11, and about a year ago I started building hardware. I got my start through Hack Club, the world's largest engineering nonprofit for teenagers, and the mentorship and community there have shaped almost everything I've built since. Icey is the most technically ambitious project I've designed to date, and I'm applying for PCBWay's sponsorship to help bring it to life as real, assembled hardware.

PROJECT DESCRIPTION
Icey is a self-contained Lattice iCE40UP5K FPGA learning board. Everything a student needs to write Verilog, load it onto real silicon, and watch it do something is already on the board: a built-in USB programmer, configuration flash, VGA video output, a USB host port for keyboards and mice, microSD storage, and broken-out GPIO. Plug in a single USB-C cable and you're designing digital logic in minutes, with no external programmer, no video adapter, and no extra peripherals to source.

| FPGA | Lattice iCE40UP5K-SG48I - 5,280 LUT4, 1 Mbit SPRAM, 120 kbit EBR, 8 hardware DSPs |
| Board | 68.7 × 53.0 mm, 4-layer, 1.6 mm |
| Components | 113 total - 93 SMD + 3 THT, all on the top side - a single stencil and one reflow pass |
| Power | Fully USB-C bus-powered |
| Mounting | 4× M3 holes on a symmetric 61.1 × 45.4 mm rectangle |
SYSTEM ARCHITECTURE
Every subsystem on Icey was custom-designed and laid out from scratch, from the USB bridge down to the resistor-ladder video DAC.

POWER DELIVERY
The entire board runs from a single USB-C input: no barrel jack, no battery, no external supply needed. A dual-LDO regulation chain generates clean 3.3 V and 1.2 V rails for the FPGA core and I/O, with dedicated ferrite filtering on the USB bridge's analog supplies and an RC filter feeding the FPGA's PLL rail for low-noise clocking.
Five dedicated test points (GND, VBUS, +3V3, +1V2, VCORE) let every rail be verified independently with a multimeter, a deliberate design choice for a board built for students learning to debug hardware, not just software.
DUAL USB-C: ONE DEVICE PORT, ONE HOST PORT
Icey breaks the mold of single-port dev boards by implementing two independent, fully USB-C compliant ports with correctly configured CC resistors:
- Programming port: a true USB-C sink (5.1 kΩ CC pulldowns) connecting straight into the onboard FT2232H USB bridge for configuration and UART.
- Peripheral host port: a true USB-C source (56 kΩ CC pullups) advertising standard USB power, driven by a dedicated MAX3421E USB host controller so the FPGA itself can talk to keyboards, mice, and other USB devices - a feature almost never found on boards in this class.
ONBOARD USB PROGRAMMER - NO EXTERNAL HARDWARE REQUIRED
A dual-channel FT2232HL USB bridge handles both FPGA configuration and a UART console over the same cable:
For advanced users, solder jumpers let the onboard programmer be cut out entirely so the configuration bus can be driven from an external tool via the SPI header, giving Icey both a zero-setup out-of-the-box experience and a fully open path for experimentation.
A 128 Mbit W25Q128JVSIQ QSPI flash stores the configuration bitstream with generous room left over for user data - enough to hold entire soft-core processor images alongside the FPGA design itself.
VGA VIDEO OUTPUT - DIRECT FROM SILICON
Icey generates real analog VGA video with no external video encoder chip at all - just a precision resistor-ladder DAC driven straight from FPGA I/O pins:
That's 8-bit (3-3-2) color output, with DAC levels landing within 3% of the VGA reference white level - precision analog design done entirely in discrete resistors and FPGA fabric, letting students build video controllers, framebuffers, and even simple GPUs from first principles.
USB HOST CONTROLLER + MICROSD STORAGE
A MAX3421E full-speed USB host controller gives the FPGA the ability to read real USB keyboards and other HID devices, turning Icey into a platform for building actual interactive systems.
A microSD socket shares the same SPI bus with the USB host controller (via independent chip-selects), giving designs persistent storage for asset loading, logging, or soft-core program images.
STATUS LEDS, USER CONTROLS, AND EXPANSION
Icey includes a full status/debug LED suite: a general-purpose user LED, a configuration-done indicator, USB bridge status, and a hardware RGB LED driven directly by the iCE40's hardened constant-current RGB driver peripheral, plus a reset button and a general-purpose user button.
Two expansion headers break out the design for hands-on tinkering:
- J1 (1×12): nine general-purpose FPGA I/O plus GND/3V3/VBUS, for breadboarding and add-on hardware
- J2 (1×8): direct access to the configuration SPI bus for external programmers and advanced workflows
FOUR-LAYER PCB DESIGN
Icey is a full 4-layer board with dedicated ground and power planes for clean signal integrity across USB, SPI, and video signals — a level of layout discipline well beyond a typical hobbyist 2-layer design:
| F.Cu | Top signal layer + GND pour |
| In1.Cu | Dedicated internal GND plane |
| In2.Cu | Dedicated internal power planes |
| B.Cu | Bottom signal layer + GND pour |




Every component, all 93 SMD parts, sits on a single side of the board, meaning the entire assembly runs through one stencil and one reflow pass, keeping manufacturing simple and repeatable at scale.


MANUFACTURING READY
Icey's production package is complete and verified, gerbers, drill files, BOM, and pick-and-place data, generated with the KiCad Fabrication Toolkit and checked against the physical board.
| Layers | 4 |
| Board size | 68.7 × 53.0 mm |
| Min track width | 0.1 mm |
| Min via | 0.45/0.30 mm (78 vias), 0.6/0.3 mm (153 vias) |
| Drill count | 231 vias @ 0.3 mm + 77 component holes |
| Assembly | Single-sided, 93 SMD parts |
WHY THIS MATTERS
As a student-run project built entirely on personal time and a limited budget, component costs and PCB fabrication are the single biggest barrier between a finished design and real, working hardware in students' hands. PCBWay's sponsorship would let me manufacture and assemble Icey at the quality this design deserves, and get it into the hands of other young engineers through Hack Club's global community of teenage builders who are looking for their own first real step into FPGA development and digital design.

Thank you for considering Icey for sponsorship.
Icey - An FPGA Learning Board
Project images are for reference only. Actual production is based on the manufacturing files on the project page.
Please review the designer's notes (e.g., PCB thickness) and select the appropriate options.
PCBWay is not responsible
for issues caused by unsuitable parameter selections.
For more important ordering information, please refer to
Read More
Raspberry Pi 5 7 Inch Touch Screen IPS 1024x600 HD LCD HDMI-compatible Display for RPI 4B 3B+ OPI 5 AIDA64 PC Secondary Screen(Without Speaker)
BUY NOW- Comments(0)
- Likes(0)
- 0 USER VOTES
- YOUR VOTE 0.00 0.00
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
More by Darsh Gupta
-
Programmable Mist Maker - XIAO / QT PY Extension
1703 2 1 -
RadioHAT - Raspberry Pi radio development platform
1465 0 3 -
QWIIC-VL53L4CD Time-of-Flight Distance Sensor Module
1684 0 2 -
-
-
ARPS-2 – Arduino-Compatible Robot Project Shield for Arduino UNO
3744 0 6 -
-
A Compact Charging Breakout Board For Waveshare ESP32-C3
4456 3 8 -
AI-driven LoRa & LLM-enabled Kiosk & Food Delivery System
5260 2 2 -







