BNN
sparshgup·Eclectronics·BNN/BNN.kicad_pcb
About the BNN PCB
BNN is an open source RP2040/RP2350 PCB design by sparshgup, published on GitHub. It is a 2-layer board measuring 60.8 × 52.7 mm, with 68 components from 36 distinct parts.
Its main chip is the MCP1702T-3302E/CB, from the RP2040/RP2350 family. Other key parts include the W25Q32JV, SC1509-A4, W25Q32JWSSIQ and ICE40UP5K-SG48I. By type, the board carries 30 capacitors, 20 resistors, 6 ICs, 5 connectors, 3 switches and 2 LEDs.
From the project
PCB Design (Olin College - Eclectronics SP25)
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…
Main components on the BNN
BNN bill of materials (BOM)
68 components, 36 distinct parts — part numbers from the project's BOM.
| Qty | Part | Footprint | Refs |
|---|---|---|---|
| 1 | W25Q32JV AP2112K-3.3TRG1 | SOT_RG1_DIO | U1 |
| 1 | SC1509-A4 AP2112K-1.2TRG1 | SOT_RG1_DIO | U2 |
| 1 | MCP1702T-3302E/CB SC09147 | QFN56_7X7_RPI | U3 |
| 2 | W25Q32JWSSIQ | SOIC-8_5P28X5P28_WIN | U4, U5 |
| 1 | ICE40UP5K-SG48I | QFN-48-1EP_7x7mm_P0.5mm_EP5.6x5.6mm | U6 |
| 1 | USB4105-GF-A USB4110-GF-A | USB4110-GF-A_GCT | J1 |
| 1 | DEBUG | PinHeader_1x03_P2.54mm_Vertical | J2 |
| 2 | Conn_01x20 | PinHeader_1x20_P2.54mm_Vertical | J3, J5 |
| 1 | Conn_01x12 | PinHeader_1x12_P2.54mm_Vertical | J4 |
| 1 | B3U-1000P RST | B3U-1000P | S1 |
| 1 | B3U-1000P BOOT | B3U-1000P | S2 |
| 1 | USR | B3U-1000P | S3 |
| 1 | 12MHZ | XTAL_ABLS_ABR | XTAL1 |
| 2 | LTST-C170GKT | LED_LTST-C170GKT_LTO | LED1, LED2 |
| 1 | XZCM2MOK54WA-1VF IN-S85TATRGB | LEDSC70P200X125X110-4N | D1 |
| 2 | 0402X104K500CT 10uF | CAP_GRM188_&plus_&slash_-0.2_MUR | C1, C8 |
| 1 | CL05A475KP5NRNC 10uF | CAP_GRM188_&plus_&slash_-0.2_MUR | C2 |
| 1 | CL05A475KP5NRNC 1uF | CAP_GCM188_MUR | C3 |
| 4 | 0402X104K500CT 1uF | CAP_GCM188_MUR | C4, C5, C6, C7 |
| 4 | 0402X104K500CT 100nF | CAP_CL10_SAM | C9, C10, C13, C15 |
Show 16 more
| Qty | Part | Footprint | Refs |
|---|---|---|---|
| 1 | CL05A475KP5NRNC 100nF | CAP_CL10_SAM | C11 |
| 2 | CL05A475KP5NRNC 27pF | CAPC1608X90N | C12, C14 |
| 2 | GRM188R61E106KA73D 100nF | CAP_CL10_SAM | C16, C17 |
| 11 | 100nF | CAP_CL10_SAM | C18, C19, C21, C23, C24, C25, C26, C27 +3 |
| 2 | 1uF | CAP_GCM188_MUR | C20, C22 |
| 2 | AC0402FR-075K1L ERJ-3EKF5101V | RC0603N_PAN | R1, R3 |
| 1 | AC0402FR-075K1L 330 | RC0603N_YAG | R2 |
| 2 | AC0402FR-075K1L 10k | RC0603N_PAN | R4, R9 |
| 2 | ERJ-2RKF27R0X 10k | RC0603N_PAN | R5, R6 |
| 1 | RC0402FR-0733RL 1k | RC0603N_YAG | R7 |
| 2 | CRGCQ0402F1K0 10k | RC0603N_PAN | R8, R12 |
| 2 | CRGCQ0402F1K0 27 | RC0603N_YAG | R10, R11 |
| 4 | 10k | RC0603N_PAN | R13, R15, R16, R17 |
| 1 | 1k | RC0603N_YAG | R14 |
| 1 | 330 | RC0603N_YAG | R18 |
| 2 | 33 | RC0603N_YAG | R19, R20 |
BNN design files
The KiCad project lives in the sparshgup/Eclectronics repository on GitHub; these links point at the commit this page was built from.
- LayoutBNN/BNN.kicad_pcb
- SchematicBNN/BNN.kicad_sch
- BOMRP2350Adev/docs/RP2350Adev BoM.xlsx
BNN: common questions
What microcontroller does the BNN use?
The BNN is built around the MCP1702T-3302E/CB, from the RP2040/RP2350 family.
How big is the BNN PCB?
The BNN measures 60.8 × 52.7 mm, has 2 copper layers and is 1.6 mm thick.
How many components are on the BNN?
68 components, from 36 distinct parts, with part numbers taken from the project's own BOM. The full bill of materials is listed on this page.
Where can I download the BNN design files?
From the sparshgup/Eclectronics repository on GitHub, which has the KiCad layout, the schematic and the BOM; the links under Design files point to each one.
Can I use the BNN design in my own project?
The repository has no license, so all rights stay with sparshgup. Use it as a reference, and ask the author before reusing the design.
Can I test firmware for the BNN without the hardware?
Yes. HardLabs builds a simulation of the board from its netlist and BOM, so you can run and debug RP2040/RP2350 firmware against it before you order a PCB.
More boards in Eclectronics
Similar boards
RP2040/RP2350
Open Book Abridged Edition
joeycastillo
85 × 115 mm29 parts2LCC-BY-SA-4.08.1kRP2040/RP2350
Corne
foostan
277.2 × 107.5 mm164 parts2LCC-BY-4.07.7kRP2040/RP2350
Corne
foostan
277.2 × 107.5 mm164 parts2LCC-BY-4.07.7kRP2040/RP2350
LogicAnalyzer
gusmanb
57 × 55.2 mm6 parts2LGPL-3.05.0kRP2040/RP2350
Jitx design
gusmanb
55.5 × 65 mm26 parts4LGPL-3.05.0kRP2040/RP2350
Pro V2
kata0510
290.1 × 130 mm270 parts2LMIT2.3k