Skip to the content
PCBKitNew board
2 layers100 × 100 mmPanelb, the printed circuit board in 3D

A 4-bit computer built from individual transistors, in public. No integrated circuits. AI-designed, hand-soldered.

Size
100 × 100 mm
Copper layers
2
Thickness
1.6 mm
Parts
111
Nets
118
Pads
334
Tracks, vias
649, 38
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
9 Sep 2026
Updated
15 Oct 2026

Overview

Panelb is an open-source printed circuit board by nikolafilip, from the nikolafilip/nibble repository on GitHub, published under the CERN-OHL-P-2.0 licence. It is a 2-layer board of 100 × 100 mm with 111 parts on 118 nets, routed with 649 tracks and 38 vias.

Its parts include 62 resistors, 20 transistors, 18 diodes, 4 capacitors and 4 switches.

README

boards/03-sequencer/README.md

Board 03: sequencer

The control unit: step counter, instruction and operand registers, flags, two decoders and the diode control matrix. 592 transistors, 354 resistors, 87 matrix diodes on 1035 crossings, 19 LEDs (counted on the routed board). The program counter and the return register are on the counter cards (D035).

Bus signals usedin: M0..M7, CF, ZF, CLK, RST. out: II, PCE, SUB, EO, AI, AO, BI, BO, BA, AB, OI, IO, PCL, FI, HLT, MAI, MI, MO, ONE, F0, F1, INP
Bus drivenBUS0#..BUS3# open-drain with OPR3..0 while IO (LDI, LOAD n, STORE n)
Link header (2x6)to board 09: OPR0..OPR7, PCR, RAI, GND, GND

How it runs an instruction (docs/isa.md):

  • Steps are a one-hot ring of five flip-flops with asynchronous reset. S0 loads IR and the operand's low nibble (II); S1 counts (PCE); S2, only for a two-word instruction, loads the second word (OPI, PCE); S3 and S4 drive the matrix rows. The DONE column returns the ring to S0.
  • IR and OPR are transparent latches open while their load line and PH1 are both high: they follow the memory word during the low half of the clock and are closed before the rising edge on which everything else changes.
  • Decoders: IR3..0 to OP0#..OP15#, OPR3..0 to F0#..F15#, each through a pair of 2-to-4 predecoders so no NAND has more than two transistors in series.
  • Rows: NOR(OPn#, T3N) for every opcode, NOR(OP0#, Fn#, T3N) for every family member, an S4 row for the four memory accesses, and for JC and JZ a second row that includes the latched flag; JNZ and JNC the same. 45 rows, 10k pull-ups.
  • The matrix: a diode from a row to a column pulls that control line high while the row is active. 23 columns with 1 Meg pull-downs: 19 go to the bus header, PCL too, PCR and RAI to the link, DONE back to the step ring. New instructions are diodes; rows OP8..OP15 are free.
  • Flags: CFQ and ZFQ latched from the ALU while FI and PH1.

Files

  • sequencer.kicad_sch: generated by sim/build_sequencer.py from sim/sequencer.py. Do not hand-edit.
  • fab/sequencer-assembly.svg: which crossing takes a diode and which resistor is not 47k (sim/assembly.py sequencer). On the board a crossing that takes a diode has a printed circle; the other 948 are bare pads.
  • fab/sequencer-gerbers.zip: the eleven files the fab takes (four copper layers). python3 sim/order_check.py sequencer is the gate.
  • sequencer.kicad_pcb, fab/: layout by sim/pcb.py. The matrix is laid out transposed: rows are vertical tracks at 3.81 mm pitch on the back, columns horizontal tracks at 10.16 mm on the front, a diode standing on each populated crossing.

Verification

The machine gate (sim/gate.py): the reference programs on the kicad-cli exports of ALU, registers, sequencer and counter with the hub, compared tick for tick with sim/emu.py. Results are recorded in the commit that adds the routed board.

D041 proof (2026-09-11): list.asm on alu, hub, registers, sequencer, counter and memory at the MIX corner, seed 3, the run that failed before the column buffers: 210 ticks, 0 mismatches (sim/out/d041_list_MIX3.log). Seeds 1 and 2 and the other programs are in the card gate.

Layout (D051, 2026-09-11, amended 2026-09-13): 245 x 255 mm on four layers, the tiles at the card pitch; layer 2 is a ground pour with a few routed tracks, layer 3 a third routing layer (two layers left the router about 100 nets short at this pitch and about 70 at 10.16 mm, D049). Routed with freerouting 2.4.1 (Java 25) with the layers ordered so that layers 3 and 4 route vertically and 1 and 2 horizontally, the power nets out of its network (the rails, stubs and vias are fixed copper) and the optimizer off. The matrix rows and columns are hidden from the router on the outer layers and a keepout fences the matrix, but the matrix diodes stay in the DSN with their pins off the nets, so layer 3 threads between their pads across it. Each matrix column tail ends on a fixed via 4.5 mm before the keepout with a short stub on layer 3, where the router picks it up on its vertical layer. The 45 row drivers stand under their matrix columns (three per tile column, left to right). The left field, 12 columns, is split: its right five columns start one tile row lower, leaving an 8 mm strip under the header's right half for the fan-out to pins 42 to 64, and the output buffers stand in the column under their own header pin; the 23 column buffers fill the columns beside the matrix, where the tails come out. The +5V feed runs along the top edge and down the right side of the board, never through the corridor between the left field and the matrix.

Routed board (2026-09-14, route v9): 0 unconnected, 0 DRC errors on the rules it was routed with (0.2 mm track, 0.15 mm clearance). The 132 warnings, read one by one on 2026-09-28: 59 dangling fixed stubs, by design (the 45 matrix column tails and the In2 stubs of the row tails the router did not need); 67 silkscreen overlaps (the printed circles of diodes on neighbouring crossings touch at 2.54 mm; two LED names touch a transistor's outline); 6 LED names clipped by a pad's mask opening (OPR0, OPR1, OPR3, OPR5, OPR6, ZFQ), which move in the silkscreen pass. One hand patch after the router, recorded in the plan (extra.patches) and applied by pcb.py: freerouting had hooked ENF across CFQ_m1 on layer 3 beside Q380. The SPICE export of this schematic is line for line the one the machine gate ran (resistor pin order aside): the tile mirroring of the re-placement is the only difference. Gate results on the card deck with this sequencer: all twelve programs at TYP, 0 mismatches (lfsr 1497 ticks, rerun with the virtual reset fixed in machine.py, sim/out/cards_lfsr_TYP.log); fib, alu, gcd, list, logic, call at LO, HI, MIX1 and MIX2: 24 of 24 runs, 0 mismatches (sim/out/gate_cards_corners.log); fib, list, logic, calc at TYP and LO with 500 pF per bus line: 8 of 8; fib and call with the clock card driving CLK: 0 mismatches (docs/cards.md step 9).

Parts

111
QtyValueFootprintReferences
202N7000TO-92_Inline_WideQ1, Q2, Q3, Q4, Q5, Q10, Q11, Q12, Q13, Q14, Q15, Q16, Q17, Q18, Q19, Q20 +4
1810kR_Axial_DIN0207_L6.3mm_D2.5mm_P5.08mm_VerticalR37, R38, R39, R40, R41, R42, R43, R44, R45, R46, R47, R48, R49, R50, R51, R52 +2
181MegR_Axial_DIN0207_L6.3mm_D2.5mm_P5.08mm_VerticalR21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R31, R32, R33, R34, R35, R36 +2
181kR_Axial_DIN0207_L6.3mm_D2.5mm_P5.08mm_VerticalR1, R2, R3, R4, R5, R6, R7, R10, R11, R12, R13, R14, R15, R16, R18, R20 +2
16LEDLED_D3.0mmD1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13, D14, D15, D16
2100R_Axial_DIN0207_L6.3mm_D2.5mm_P5.08mm_VerticalR57, R62
2100kR_Axial_DIN0207_L6.3mm_D2.5mm_P5.08mm_VerticalR55, R60
21N4148D_DO-35_SOD27_P7.62mm_HorizontalD17, D18
21uCP_Radial_D5.0mm_P2.00mmC3, C4
2220kR_Axial_DIN0207_L6.3mm_D2.5mm_P5.08mm_VerticalR54, R59
247kR_Axial_DIN0207_L6.3mm_D2.5mm_P5.08mm_VerticalR17, R19
2M3MountingHole_3.2mm_M3_PadH1, H2
1100nC_Disc_D5.0mm_W2.5mm_P2.50mmC1
110uCP_Radial_D5.0mm_P2.00mmC2
1BUSIDC-Header_2x32_P2.54mm_VerticalJ1
1CLKSW_PUSH_6mmSW3
1MI MO WRL WRH ONE F0 F1 INPSW_DIP_SPSTx08_Slide_9.78x22.5mm_W7.62mm_P2.54mmSW2
1OI IO II PCE PCL FI HLT MAI (switch ON = 1)SW_DIP_SPSTx08_Slide_9.78x22.5mm_W7.62mm_P2.54mmSW1
1RSTSW_PUSH_6mmSW4

Questions

How big is the Panelb PCB?

It measures 100 × 100 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Panelb use?

111 parts. 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 Panelb KiCad files?

From the nikolafilip/nibble repository on GitHub, at the commit this page was made from: the board is cards/panelb/panelb.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Panelb design in my own project?

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

More from nikolafilip/nibble

12
  • 4 layers245 × 255 mmSequencer, the printed circuit board in 3D

    Sequencer

    nikolafilip/nibble

    A 4-bit computer built from individual transistors, in public. No integrated circuits. AI-designed, hand-soldered.

    2,009 parts1CERN-OHL-P-2.0
  • 2 layers414 × 248 mm00-origin calculator, the printed circuit board in 3D

    00-origin calculator

    nikolafilip/nibble

    A 4-bit computer built from individual transistors, in public. No integrated circuits. AI-designed, hand-soldered.

    747 parts1CERN-OHL-P-2.0
  • 2 layers189.8 × 269.8 mmAlu, the printed circuit board in 3D

    Alu

    nikolafilip/nibble

    A 4-bit computer built from individual transistors, in public. No integrated circuits. AI-designed, hand-soldered.

    379 parts1CERN-OHL-P-2.0
  • 2 layers200 × 222 mmPanel, the printed circuit board in 3D

    Panel

    nikolafilip/nibble

    A 4-bit computer built from individual transistors, in public. No integrated circuits. AI-designed, hand-soldered.

    229 parts1CERN-OHL-P-2.0
  • 2 layers100 × 100 mmReg2, the printed circuit board in 3D

    Reg2

    nikolafilip/nibble

    A 4-bit computer built from individual transistors, in public. No integrated circuits. AI-designed, hand-soldered.

    161 parts1CERN-OHL-P-2.0
  • 2 layers100 × 100 mmMemslot, the printed circuit board in 3D

    Memslot

    nikolafilip/nibble

    A 4-bit computer built from individual transistors, in public. No integrated circuits. AI-designed, hand-soldered.

    143 parts1CERN-OHL-P-2.0
  • 2 layers100 × 100 mmCoupon, the printed circuit board in 3D

    Coupon

    nikolafilip/nibble

    A 4-bit computer built from individual transistors, in public. No integrated circuits. AI-designed, hand-soldered.

    136 parts1CERN-OHL-P-2.0
  • 2 layers100 × 100 mmPanela, the printed circuit board in 3D

    Panela

    nikolafilip/nibble

    A 4-bit computer built from individual transistors, in public. No integrated circuits. AI-designed, hand-soldered.

    123 parts1CERN-OHL-P-2.0
  • 2 layers100 × 100 mmProg, the printed circuit board in 3D

    Prog

    nikolafilip/nibble

    A 4-bit computer built from individual transistors, in public. No integrated circuits. AI-designed, hand-soldered.

    121 parts1CERN-OHL-P-2.0
  • 2 layers100 × 100 mmAlu2, the printed circuit board in 3D

    Alu2

    nikolafilip/nibble

    A 4-bit computer built from individual transistors, in public. No integrated circuits. AI-designed, hand-soldered.

    116 parts1CERN-OHL-P-2.0
  • 2 layers100 × 100 mmAlu0, the printed circuit board in 3D

    Alu0

    nikolafilip/nibble

    A 4-bit computer built from individual transistors, in public. No integrated circuits. AI-designed, hand-soldered.

    112 parts1CERN-OHL-P-2.0
  • 2 layers100 × 100 mmMemctl, the printed circuit board in 3D

    Memctl

    nikolafilip/nibble

    A 4-bit computer built from individual transistors, in public. No integrated circuits. AI-designed, hand-soldered.

    107 parts1CERN-OHL-P-2.0

Similar boards

  • 2 layers90 × 135 mmVoron badge, the printed circuit board in 3D

    Voron badge

    tanaes/whopping_Voron_mods

    111 parts787GPL-3.0
  • 2 layers79 × 38 mmEthersweep, the printed circuit board in 3D

    Ethersweep

    Neumi/ethersweep

    Open Source, easy to use Ethernet connected stepper motor controller. Built in FreeCAD, KiCAD and Arduino.

    111 parts587
  • 2 layers50.8 × 62.2 mmESP32-GATEWAY Rev I, the printed circuit board in 3D

    ESP32-GATEWAY Rev I

    OLIMEX/ESP32-GATEWAY

    ESP32 IoT Gateway board with BLE WIFI and Ethernet

    111 parts322Apache-2.0
  • 2 layers224 × 72 mmTanuki pcb3, the printed circuit board in 3D

    Tanuki pcb3

    SethSenpai/Tanuki

    An open source 40% keyboard

    111 parts286MIT
  • 2 layers58.4 × 50 mmPinpoint core, the printed circuit board in 3D

    Pinpoint core

    lab11/polypoint

    Indoor localization based on the DecaWave DW1000.

    111 parts143Apache-2.0
  • 2 layers164 × 95.3 mmTPS, the printed circuit board in 3D

    TPS

    DreaM117er/Explorer-Keyboard-Blank

    The 3rd Explorer Keyboard series, a Planck like split keyboard with muti cursor unit.

    111 parts77MIT
  • 2 layers85 × 56.5 mmModemHAT, the printed circuit board in 3D

    ModemHAT

    astuder/ModemHAT

    Classic Phone Modem HAT for the Raspberry Pi

    111 parts56
  • 2 layers145 × 145 mmNeofighter, the printed circuit board in 3D

    Neofighter

    w4ilun/neofighter

    A MIDI controller using arcade buttons with RGB lighting effects

    111 parts51