

PCB Design (Olin College - Eclectronics SP25)
- Size
- 60.8 × 52.7 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 69
- Nets
- 95
- Pads
- 337
- Tracks, vias
- 1,292, 208
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 28 Jan 2026
- Updated
- 20 May 2026
Overview
BNN is an open-source printed circuit board by sparshgup, from the sparshgup/Eclectronics repository on GitHub. It is a 2-layer board of 60.8 × 52.7 mm with 69 parts on 95 nets, routed with 1,292 tracks and 208 vias.
It is built around the ICE40UP5K-SG48I, W25Q32JWSSIQ and AP2112K-1.2TRG1, with the AP2112K-3.3TRG1, LTST-C170GKT and IN-S85TATRGB among its other parts. Its parts include 30 capacitors, 20 resistors, 6 ICs, 5 connectors and 3 diodes. It belongs with the FPGA and CPLD boards of this library.
Main components
7ICE40UP5K-SG48I
QFN-48-EP(7x7)-40℃~+100℃ 1.14V~1.26V 1171456bit 39 5280 660 iCE40 UltraPlus QFN-48-EP(7x7) Programmable Logic Device (CPLDs/FPGAs) ROHSLatticeProgrammable Logic Device (CPLDs/FPGAs)W25Q32JWSSIQ
SOIC-8-208mil-40℃~+85℃ 1.7V~1.95V 100,000 cycles 10uA 133MHz 20 Years 32Mbit 800us Power-on reset、Hardware write protection、Software write protection、Write enable latch、Absolute write protection SPI SOIC-8-208mil NOR FLASH ROHSWinbond ElecNOR FLASHAP2112K-1.2TRG1
SOT-25-40℃~+85℃@(Ta) 1 1.2V 250mV@(600mA) 50uVrms 55uA 600mA 65dB@(1kHz) 6V Fixed Over Current Protection、Over Temperature Protection、Enable Positive SOT-25 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSDiodes IncorporatedVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsAP2112K-3.3TRG1
SOT-25-5-40℃~+85℃@(Ta) 1 250mV@(600mA) 3.3V 50uVrms 55uA 600mA 65dB@(1kHz) 6V Fixed Over Current Protection、Thermal Shutdown、Enable control Positive SOT-25-5 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSDiodes IncorporatedVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsLTST-C170GKT
0805-55℃~+85℃ 100mW 130° 2.1V 20mA 565nm 569nm 6mcd Discrete Diode Water Clear Yellow Green 0805 LED Indication - Discrete ROHSLite-OnLED Indication - DiscreteIN-S85TATRGB
SMD-4P,2x1.2mm-30℃~+85℃ 1.1mm 1.25mm 130° 2mm Common Anode G:523nm、R:625nm、B:470nm R:2.0V~2.2V、G:3.1V~3.4V、B:3.1V~3.4V R:200mcd、G:520mcd、B:140mcd R:20mA、G:20mA、B:20mA R:622nm、G:521nm、B:467nm R:75mW、B:75mW、G:75mW Water Clear SMD-4P,2x1.2mm RGB LEDs ROHSInoluxRGB LEDsUSB4110-GF-A
SMD-40℃~+85℃ 1 48V 5A Black Female Surface Mount, Right Angle Type-C USB 2.0 SMD USB Connectors ROHSGlobal Connector Technology (GCT)USB Connectors
README
BNN/README.mdBinary Neural Network Inference Accelerator PCB
Built a custom 2-layer PCB that combines an RP2040 microcontroller with a Lattice iCE40UP5K FPGA. The goal was to run a small binary neural network (BNN) classifier on the FPGA in hardware. The RP2040 programs the FPGA, sends input data over SPI, gets back a classification result, and prints it over USB serial. An RGB LED shows which class was picked.
BNNs use XNOR and popcount instead of floating-point math, which maps well onto FPGA lookup tables. The demo targets the Iris dataset (4 inputs, 3 classes). The hardware doesn't care what model you use since the weights are just baked into the FPGA bitstream.
The design is based on the open-source pico-ice board by tinyVision.ai and the riffpga framework by Psychogenic Technologies.
Layout
PCB
Schematics
Parts
69| Qty | Value | Footprint | References |
|---|---|---|---|
| 18 | 100nF | ul_CL10B104JB8NNNC:CAP_CL10_SAM | C10, C11, C13, C15, C16, C17, C18, C19, C21, C23, C24, C25, C26, C27, C28, C29 +2 |
| 10 | 10k | ul_ERJ-3EKF1002V:RC0603N_PAN | R4, R5, R6, R8, R9, R12, R13, R15, R16, R17 |
| 7 | 1uF | GCM188R71E105KA64D:CAP_GCM188_MUR | C3, C4, C5, C6, C7, C20, C22 |
| 3 | 10uF | ul_GRM188R61E106KA73D:CAP_GRM188_&plus_&slash_-0.2_MUR | C1, C2, C8 |
| 2 | 1k | ul_RC0603FR-071KL:RC0603N_YAG | R7, R14 |
| 2 | 27 | ul_RC0603FR-071KL:RC0603N_YAG | R10, R11 |
| 2 | 27pF | GCM1885C2A270JA16D:CAPC1608X90N | C12, C14 |
| 2 | 33 | ul_RC0603FR-071KL:RC0603N_YAG | R19, R20 |
| 2 | 330 | ul_RC0603FR-071KL:RC0603N_YAG | R2, R18 |
| 2 | Conn_01x20 | Connector_PinHeader_2.54mm:PinHeader_1x20_P2.54mm_Vertical | J3, J5 |
| 2 | ERJ-3EKF5101V | ul_ERJ-3EKF1002V:RC0603N_PAN | R1, R3 |
| 2 | LTST-C170GKT | ul_LTST-C170GKT:LED_LTST-C170GKT_LTO | LED1, LED2 |
| 2 | W25Q32JWSSIQ | ul_W25Q32JVSSIQ:SOIC-8_5P28X5P28_WIN | U4, U5 |
| 1 | 12MHZ | ul_ABLS-12-000MHZ-B4-T:XTAL_ABLS_ABR | XTAL1 |
| 1 | AP2112K-1.2TRG1 | ul_AP2112K-1-2TRG1:SOT_RG1_DIO | U2 |
| 1 | AP2112K-3.3TRG1 | ul_AP2112K-1-2TRG1:SOT_RG1_DIO | U1 |
| 1 | BOOT | ul_B3U-1000P:B3U-1000P | S2 |
| 1 | Conn_01x12 | Connector_PinHeader_2.54mm:PinHeader_1x12_P2.54mm_Vertical | J4 |
| 1 | DEBUG | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J2 |
| 1 | G*** | Eclectronics:OlinLogoLg | OlinLogoLg |
| 1 | ICE40UP5K-SG48I | Package_DFN_QFN:QFN-48-1EP_7x7mm_P0.5mm_EP5.6x5.6mm | U6 |
| 1 | IN-S85TATRGB | IN-S85TATRGB:LEDSC70P200X125X110-4N | D1 |
| 1 | RST | ul_B3U-1000P:B3U-1000P | S1 |
| 1 | SC09147 | ul_SC0914-7-:QFN56_7X7_RPI | U3 |
| 1 | USB4110-GF-A | ul_USB4110-GF-A:USB4110-GF-A_GCT | J1 |
| 1 | USR | ul_B3U-1000P:B3U-1000P | S3 |
Questions
How big is the BNN PCB?
It measures 60.8 × 52.7 mm and has 2 copper layers, 1.6 mm thick.
What parts does the BNN use?
69 parts, built around the ICE40UP5K-SG48I, W25Q32JWSSIQ, AP2112K-1.2TRG1 and AP2112K-3.3TRG1. 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 BNN KiCad files?
From the sparshgup/Eclectronics repository on GitHub, at the commit this page was made from: the board is BNN/BNN.kicad_pcb and its schematic BNN/BNN.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the BNN design in my own project?
Its repository states no licence, so its author keeps all rights: ask sparshgup before reusing the design.
More from sparshgup/Eclectronics
2- 2 layers35.1 × 52.4 mm

- 2 layers19.5 × 14.8 mm

Similar boards
- 2 layers45 × 52.5 mm

Caravel breakout fpga ICE40UP5K TT3
TinyTapeout/breakout-pcb
Tiny Tapeout breakout PCBs
234 parts22Apache-2.0 - 2 layers20.3 × 63.5 mm

Ice40-up5k breakout
ikskuh/ice40-up5k-breakout
A breakout board for the ICE40 UP5K FPGA suitable for breadboarding
31 parts - 4 layers50 × 47.9 mm

- 6 layers80 × 60 mm

Ice core
enkhbold470/ice-core
iCE40UP5K FPGA board with 8 MB PSRAM and three Pmods, programmed over USB-C by an RP2040. 6-layer KiCad 10 board.
78 partsCERN-OHL-S-2.0 - 4 layers125 × 95 mm

- 8 layers90 × 120.4 mm

Artix dc scm
antmicro/artix-dc-scm
Experimental Xilinx Artix-7 driven Data Center Security Communication Module
546 parts72Apache-2.0 - 6 layers111 × 111 mm

Led panel
antmicro/programmable-led-panel
LED matrix controlled with iCE40 FPGA or RP2040 MCU for benchmarking and integration of video systems
315 parts2Apache-2.0 - 4 layers117.6 × 83 mm

Nile test chip pcb
Ash-tronix/nile_test_chip_pcb
KiCad PCB design files to support the Ashtronix® Nile test chip.
177 parts