Skip to the content
PCBKitNew board
2 layers60.8 × 52.7 mmBNN, the printed circuit board in 3D

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

7

README

BNN/README.md

Binary 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

bnn_layout

PCB

pcb

Schematics

bnn_schematic_root bnn_schematic_power bnn_schematic_rp2040 bnn_schematic_ice40up5k bnn_schematic_io

Parts

69
QtyValueFootprintReferences
18100nFul_CL10B104JB8NNNC:CAP_CL10_SAMC10, C11, C13, C15, C16, C17, C18, C19, C21, C23, C24, C25, C26, C27, C28, C29 +2
1010kul_ERJ-3EKF1002V:RC0603N_PANR4, R5, R6, R8, R9, R12, R13, R15, R16, R17
71uFGCM188R71E105KA64D:CAP_GCM188_MURC3, C4, C5, C6, C7, C20, C22
310uFul_GRM188R61E106KA73D:CAP_GRM188_&plus_&slash_-0.2_MURC1, C2, C8
21kul_RC0603FR-071KL:RC0603N_YAGR7, R14
227ul_RC0603FR-071KL:RC0603N_YAGR10, R11
227pFGCM1885C2A270JA16D:CAPC1608X90NC12, C14
233ul_RC0603FR-071KL:RC0603N_YAGR19, R20
2330ul_RC0603FR-071KL:RC0603N_YAGR2, R18
2Conn_01x20Connector_PinHeader_2.54mm:PinHeader_1x20_P2.54mm_VerticalJ3, J5
2ERJ-3EKF5101Vul_ERJ-3EKF1002V:RC0603N_PANR1, R3
2LTST-C170GKTul_LTST-C170GKT:LED_LTST-C170GKT_LTOLED1, LED2
2W25Q32JWSSIQul_W25Q32JVSSIQ:SOIC-8_5P28X5P28_WINU4, U5
112MHZul_ABLS-12-000MHZ-B4-T:XTAL_ABLS_ABRXTAL1
1AP2112K-1.2TRG1ul_AP2112K-1-2TRG1:SOT_RG1_DIOU2
1AP2112K-3.3TRG1ul_AP2112K-1-2TRG1:SOT_RG1_DIOU1
1BOOTul_B3U-1000P:B3U-1000PS2
1Conn_01x12Connector_PinHeader_2.54mm:PinHeader_1x12_P2.54mm_VerticalJ4
1DEBUGConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ2
1G***Eclectronics:OlinLogoLgOlinLogoLg
1ICE40UP5K-SG48IPackage_DFN_QFN:QFN-48-1EP_7x7mm_P0.5mm_EP5.6x5.6mmU6
1IN-S85TATRGBIN-S85TATRGB:LEDSC70P200X125X110-4ND1
1RSTul_B3U-1000P:B3U-1000PS1
1SC09147ul_SC0914-7-:QFN56_7X7_RPIU3
1USB4110-GF-Aul_USB4110-GF-A:USB4110-GF-A_GCTJ1
1USRul_B3U-1000P:B3U-1000PS3

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 mmRP2350Adev, the printed circuit board in 3D

    RP2350Adev

    sparshgup/Eclectronics

    PCB Design (Olin College - Eclectronics SP25)

    44 parts
  • 2 layers19.5 × 14.8 mmMp1, the printed circuit board in 3D

    Mp1

    sparshgup/Eclectronics

    PCB Design (Olin College - Eclectronics SP25)

    16 parts

Similar boards

  • 2 layers20.3 × 63.5 mmIce40-up5k breakout, the printed circuit board in 3D

    Ice40-up5k breakout

    ikskuh/ice40-up5k-breakout

    A breakout board for the ICE40 UP5K FPGA suitable for breadboarding

    31 parts
  • 4 layers50 × 47.9 mmFPGA DevBoard, the printed circuit board in 3D

    FPGA DevBoard

    Jaboct/FPGA_DevBoard

    FPGA Development Board

    100 parts
  • 6 layers80 × 60 mmIce core, the printed circuit board in 3D

    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 mmPrerouted, the printed circuit board in 3D

    Prerouted

    devbisme/ai-circuit-design-tests

    Tests of KiCad-related AI tools.

    179 parts10
  • 8 layers90 × 120.4 mmArtix dc scm, the printed circuit board in 3D

    Artix dc scm

    antmicro/artix-dc-scm

    Experimental Xilinx Artix-7 driven Data Center Security Communication Module

    546 parts72Apache-2.0
  • 6 layers111 × 111 mmLed panel, the printed circuit board in 3D

    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 mmNile test chip pcb, the printed circuit board in 3D

    Nile test chip pcb

    Ash-tronix/nile_test_chip_pcb

    KiCad PCB design files to support the Ashtronix® Nile test chip.

    177 parts