Skip to the content
PCBKitNew board
4 layers97.8 × 69.8 mmICE40UPDevBoard, the printed circuit board in 3D

A development board for iCE40UP5K FPGAs

Size
97.8 × 69.8 mm
Copper layers
4
Thickness
1.6 mm
Parts
96
Nets
83
Pads
369
Tracks, vias
734, 133
Pours
35
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
1 Feb 2024
Updated
2 Feb 2024

Overview

ICE40UPDevBoard is an open-source printed circuit board by aslak3, from the aslak3/ICE40UPDevBoard repository on GitHub, published under the GPL-2.0 licence. It is a 4-layer board of 97.8 × 69.8 mm with 96 parts on 83 nets, routed with 734 tracks and 133 vias.

It is built around the ICE40UP5K-SG48ITR50, R-78B5.0-2.0 and ADV7123KSTZ140, with the N25Q032A13ESC40F, AT24CS64-SSHM-B and DS3231MZ+ among its other parts. Its parts include 32 capacitors, 31 resistors, 10 connectors, 8 ICs and 5 diodes. It belongs with the microcontroller boards and fPGA and programmable logic boards and the FPGA and CPLD boards of this library.

Main components

7

README

README.md

ICE40UPDevBoard: an iCE40UP5K development board

ICE40UPDevBoard PCB

Features

The specification for this development board is as follows:

  • iCE40UP5K in QFN
  • N25Q032A 32 Mbit SPI flash
  • DB15 VGA port:
  • PS/2 port with two channels for a mouse and keyboard
  • I2C:
  • 3 LEDs and a button
  • User header with 6 available FPGA pins
  • Powered by a 5V switching regulator (eg a 5V PM05S050A) and a barrel jack

A schematic is included here, along with the KiCAD data files, whcih are in KiCAD 6 format.

PCB design

The PCB is a 4 layer board. My boards were manufactured by JLCPCB.

Using

The jumper mechanism to route the SPI signals which carry the configuration data from the programmer was borrowed directly from the Lattice’s iCE40 UltraPlus Breakout Board.

Any iCE40 compatible programmer should be useable. I built my own, out of a Pi Pico, which is documented in another repo. The programmer has been used to program both the attached flash and the FPGA directly.

Possible gotchas

The design of this board is a very slightly tweaked version of the build I have on my bench. I have tweaked the LED and button connection after finding out that the three LED pins on the iCE40UP cannot source current for an LED and must sink it instead.

The following features have not been tested yet:

  • I2C bus and peripheral ICs
  • PS/2 port

Blog

The best place to learn about this board is undoubtably my blog, including this post:

Parts

96
QtyValueFootprintReferences
150.1uCapacitor_SMD:C_0805_2012MetricC2, C4, C6, C7, C9, C12, C13, C18, C20, C21, C22, C24, C25, C27, C28
94.7KResistor_SMD:R_0805_2012MetricR8, R13, R14, R15, R16, R24, R25, R26, R30
510KResistor_SMD:R_0805_2012MetricR3, R20, R21, R22, R23
510nCapacitor_SMD:C_0805_2012MetricC5, C8, C14, C15, C26
51KResistor_SMD:R_0805_2012MetricR19, R27, R28, R29, R32
4120Resistor_SMD:R_0805_2012MetricR11, R12, R17, R18
4CDONE_LEDLED_SMD:LED_1210_3225MetricD2, D3, D4, D5
4HOLEMountingHole:MountingHole_4.3mm_M4H1, H2, H3, H4
310uCapacitor_SMD:C_0805_2012MetricC10, C16, C30
310uCapacitor_Tantalum_SMD:CP_EIA-3216-10_Kemet-IC1, C3, C19
375Resistor_SMD:R_0805_2012MetricR1, R6, R7
3Conn_02x01Connector_PinHeader_2.54mm:PinHeader_2x01_P2.54mm_VerticalJ1, J4, J5
2100Resistor_SMD:R_0805_2012MetricR2, R5
2100nCapacitor_SMD:C_0805_2012MetricC11, C23
247Resistor_SMD:R_0805_2012MetricR9, R10
110uCapacitor_SMD:CP_Elec_5x5.7C32
110uInductor_SMD:L_12x12mm_H4.5mmL1
14.7uCapacitor_SMD:C_0805_2012MetricC31
1470uCapacitor_SMD:CP_Elec_6.3x7.7C29
147uCapacitor_Tantalum_SMD:CP_EIA-7343-15_Kemet-WC17
1530Resistor_SMD:R_0805_2012MetricR4
1ADV7123KSTZ140Package_QFP:LQFP-48_7x7mm_P0.5mmU5
1AT24CS64-SSHMPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU7
1AZ1117-1.2Package_TO_SOT_SMD:SOT-223-3_TabPin2U1
1AZ1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U4
1BUZZERBuzzer_Beeper:Buzzer_15x7.5RM7.6SP1
1Battery_CellBattery:BatteryHolder_Keystone_3000_1x12mmBT1
1BeadInductor_SMD:L_1206_3216MetricFB1
1Conn_01x04Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ9
1Conn_01x06Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ7
1Conn_01x07Connector_PinHeader_2.54mm:PinHeader_1x07_P2.54mm_VerticalJ8
1Conn_02x02_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x02_P2.54mm_VerticalJ6
1DB15HD_FEMALE_SVGAConnector_Dsub:DSUB-15-HD_Female_Horizontal_P2.29x1.98mm_EdgePinOffset3.03mm_Housed_MountingHolesOffset4.94mmJ2
1DS3231MPackage_SO:SOIC-16W_7.5x10.3mm_P1.27mmU3
1ICE40UP5K-SG48ITRPackage_DFN_QFN:QFN-48-1EP_7x7mm_P0.5mm_EP5.6x5.6mmU2
1MBR130Diode_SMD:D_SOD-123D1
1MPUOSCOscillator:Oscillator_SMD_SeikoEpson_SG8002LB-4Pin_5.0x3.2mmX1
1Mini-DIN-6aslakfp:Connector_Mini-DIN_Female_6Pin_2rowsJ3
1N25Q032A13ESC40FPackage_SO:SOP-8_3.9x4.9mm_P1.27mmU6
1POWERLJACKConnector_BarrelJack:BarrelJack_HorizontalCON2
1R-78B5.0-2.0 Converter_DCDC:Converter_DCDC_RECOM_R-78E-0.5_THTU8
1RESETBUTTONButton_Switch_SMD:SW_Push_1P1T_NO_CK_KSC6xxJSW1

Questions

How big is the ICE40UPDevBoard PCB?

It measures 97.8 × 69.8 mm and has 4 copper layers, 1.6 mm thick.

What parts does the ICE40UPDevBoard use?

96 parts, built around the ICE40UP5K-SG48ITR50, R-78B5.0-2.0, ADV7123KSTZ140 and N25Q032A13ESC40F. 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.

Where can I download the ICE40UPDevBoard KiCad files?

From the aslak3/ICE40UPDevBoard repository on GitHub, at the commit this page was made from: the board is ICE40UPDevBoard.kicad_pcb and its schematic ICE40UPDevBoard.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the ICE40UPDevBoard design in my own project?

Its repository publishes it under the GPL-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).

Similar boards

  • 4 layers98.6 × 92.1 mmVideo+Sound, the printed circuit board in 3D

    Video+Sound

    aslak3/MAXI030

    MC68030 based expandable computer design

    102 parts38GPL-2.0
  • 4 layers76.2 × 63.5 mmPet on a chip, the printed circuit board in 3D

    Pet on a chip

    ept221/pet-on-a-chip

    Senior Design

    69 parts13MIT
  • 4 layers99.1 × 83.8 mmIbm-5151-pcb, the printed circuit board in 3D

    Ibm-5151-pcb

    asinghani/ibm-5151-controller

    Building a VT100 emulator out of an IBM 5151 monitor and an FPGA

    85 partsMIT
  • 2 layers25.6 × 0 mmIce40 wearable v1, the printed circuit board in 3D

    Ice40 wearable v1

    asinghani/ice40-wearable

    iCE40 FPGA boards in wearable form-factors

    63 parts
  • 2 layers34 × 44.4 mmIcedev, the printed circuit board in 3D

    Icedev

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    31 parts915
  • 2 layers213 × 24 mmController, the printed circuit board in 3D

    Controller

    kuellenberg/7-Segment-RGB-Clock

    94 parts
  • 4 layers100 × 94 mmPicohome2, the printed circuit board in 3D

    Picohome2

    racerxdl/picohome

    Raspberry Pi Pico Home Automation using CAN Bus

    123 parts90Apache-2.0
  • 2 layers17.8 × 28 mmHackaBLE, the printed circuit board in 3D

    HackaBLE

    electronut/ElectronutLabs-hackaBLE

    A tiny Nordic nRF52832 based board you can embed in your BLE projects.

    33 parts43