

Control logic midplane
All material related to the 16bcfs project
- Size
- 238.8 × 236.2 mm
- Copper layers
- 4
- Thickness
- 4.69 mm
- Parts
- 215
- Nets
- 407
- Pads
- 1,683
- Tracks, vias
- 6,999, 784
- Pours
- 2,728
- Routed
- Yes
- KiCad
- KiCad 7 (file 20221018)
- Created
- 2 Nov 2023
- Updated
- 20 Apr 2025
Overview
Control logic midplane is an open-source printed circuit board by eryjus, from the eryjus/16bcfs repository on GitHub. It is a 4-layer board of 238.8 × 236.2 mm with 215 parts on 407 nets, routed with 6,999 tracks and 784 vias.
It is built around the 74HC238D and 74HC138. Its parts include 80 connectors, 40 capacitors, 27 ICs and 3 resistors.
Main components
274HC238D
SOP-16SOP-16 Signal Switches, Multiplexers, Decoders ROHSMDDSignal Switches, Multiplexers, Decoders74HC138
SOP-160℃~+70℃ 24ns@5.0V,16pF 2V~6V 3/8 5.2mA 5.2mA 5uA 74HC Decoder Reverse function Single Supply SOP-16 Signal Switches, Multiplexers, Decoders ROHSGRSignal Switches, Multiplexers, Decoders
README
README.md16-Bit Computer From Scratch
This repository contains the complete works associated with the 16-Bit Computer From Scrath (16bcfs) project.
Videos
I am documenting my 16-Bit Computer build in video form. You can find the entire playlist here.
License
See LICENSE.md.
Build System
I use tup as my primary build system. I usually will wrap tup in make commands. You can find tup here. I simply find tup to more reliable detect changed sources with less work.
Qt6_DIR Environment Variable
The Qt6_DIR Environment Variable needs to point to the installation location of Qt6, for example ~/Qt/6.6.0/gcc_64/. Your installation location may be different, so copy-and-paste is not advised.
EEPROM Programmer
I do not have a commercial EEPROM programmer. I use the TommyPROM programmer. You can find all the relevant information on TommyPROM here. In Linux, I use minicom as the interface. Hint: use sudo minicom -s to set up the defaults.
Parts
215| Qty | Value | Footprint | References |
|---|---|---|---|
| 55 | TestPoint | eryjus:TestPoint_SMD_D0.8mm | TP1, TP2, TP10, TP11, TP12, TP13, TP14, TP15, TP16, TP17, TP18, TP19, TP20, TP21, TP22, TP23 +39 |
| 27 | 0u1 | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C1, C2, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C20, C21, C22, C23 +11 |
| 25 | 74HC238 | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | U1, U2, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25 +9 |
| 13 | 47u | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C28, C29, C30, C31, C32, C33, C34, C35, C36, C37, C38, C39, C40 |
| 5 | Power | Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_Vertical | J86, J87, J88, J89, J90 |
| 3 | 0R | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R1, R2, R3 |
| 2 | 74HC138 | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | U10, U11 |
| 2 | Instruction Register Input | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J44, J69 |
| 2 | Power | Connector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_Vertical | J59, J68 |
| 1 | ALU Control | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J25 |
| 1 | ALU Control (2) | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J2 |
| 1 | Addr Bus 1 Assert & Control | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J1 |
| 1 | Control Pins 0 | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J4 |
| 1 | Control Pins 1 | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J6 |
| 1 | Control Pins 2 | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J8 |
| 1 | Control Pins 3 | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J10 |
| 1 | Control Pins 4 | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J12 |
| 1 | Control Pins 5 | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J14 |
| 1 | Control Pins 6 | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J16 |
| 1 | Control Pins 7 | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J38 |
| 1 | Control Pins 8 | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J40 |
| 1 | Control Pins 9 | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J32 |
| 1 | Control Pins A | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J34 |
| 1 | Control Pins B | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J36 |
| 1 | Control Pins C | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J65 |
| 1 | Control Pins D | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J67 |
| 1 | Control Pins E | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J61 |
| 1 | Control Pins F | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J63 |
| 1 | Control ROM Address | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J79 |
| 1 | Ctrl0 Address Pins | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J3 |
| 1 | Ctrl1 Address Pins | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J5 |
| 1 | Ctrl2 Address Pins | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J7 |
| 1 | Ctrl3 Address Pins | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J9 |
| 1 | Ctrl4 Address Pins | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J11 |
| 1 | Ctrl5 Address Pins | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J13 |
| 1 | Ctrl6 Address Pins | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J15 |
| 1 | Ctrl7 Address Pins | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J37 |
| 1 | Ctrl8 Address Pins | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J39 |
| 1 | Ctrl9 Address Pins | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J31 |
| 1 | CtrlA Address Pins | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J33 |
| 1 | CtrlB Address Pins | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J35 |
| 1 | CtrlC Address Pins | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J64 |
| 1 | CtrlD Address Pins | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J66 |
| 1 | CtrlE Address Pins | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J60 |
| 1 | CtrlF Address Pins | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J62 |
| 1 | Device/Control 01/02 | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J30 |
| 1 | Device/Control 03/04 | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J45 |
| 1 | Device/Control 05/06 | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J54 |
| 1 | Device/Control 07/08 | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J73 |
| 1 | Device/Control 09/10 | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J83 |
| 1 | Fetch/Mem/ALU Connector | Connector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_Vertical | J85 |
| 1 | IntPC Connector | Connector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_Vertical | J57 |
| 1 | IntRA Connector | Connector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_Vertical | J72 |
| 1 | IntSP Connector | Connector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_Vertical | J82 |
| 1 | Pgm ROM Address Copy | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J55 |
| 1 | PgmPC Connector | Connector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_Vertical | J29 |
| 1 | PgmRA Connector | Connector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_Vertical | J43 |
| 1 | PgmSP Connector | Connector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_Vertical | J53 |
| 1 | Power Socket | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J26 |
| 1 | R1 Connector | Connector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_Vertical | J27 |
| 1 | R10 Connector | Connector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_Vertical | J56 |
| 1 | R11 Connector | Connector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_Vertical | J71 |
| 1 | R12 Connector | Connector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_Vertical | J81 |
| 1 | R2 Connector | Connector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_Vertical | J41 |
| 1 | R3 Connector | Connector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_Vertical | J51 |
| 1 | R4 Connector | Connector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_Vertical | J58 |
| 1 | R5 Connector | Connector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_Vertical | J70 |
| 1 | R6 Connector | Connector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_Vertical | J80 |
| 1 | R7 Connector | Connector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_Vertical | J28 |
| 1 | R8 Connector | Connector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_Vertical | J42 |
| 1 | R9 Connector | Connector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_Vertical | J52 |
| 1 | Raw Address for Pgm ROM | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J78 |
| 1 | Registers (2) | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J24 |
| 1 | Signal Header | Connector_PinSocket_2.54mm:PinSocket_1x16_P2.54mm_Vertical | J84 |
| 1 | Signal Pins 0 | Connector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_Vertical | J17 |
| 1 | Signal Pins 1 | Connector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_Vertical | J18 |
| 1 | Signal Pins 2 | Connector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_Vertical | J19 |
| 1 | Signal Pins 3 | Connector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_Vertical | J20 |
| 1 | Signal Pins 4 | Connector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_Vertical | J21 |
| 1 | Signal Pins 5 | Connector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_Vertical | J22 |
The 205 most common of 215 parts.
More from eryjus/16bcfs
11- 4 layers86.5 × 43.2 mm

- 4 layers119.4 × 485.1 mm

- 4 layers88.9 × 43.2 mm

- 4 layers43.2 × 21.6 mm

- 2 layers42.2 × 14.2 mm

- 4 layers43.2 × 40.6 mm

- 2 layers21.8 × 14.2 mm

- 2 layers11.7 × 14.2 mm

- 2 layers20.3 × 43.2 mm

- 2 layers20.3 × 7.6 mm

- 2 layers21.6 × 15.2 mm

Similar boards
- 2 layers166 × 70 mm

Prototype
SteveCooling/MidiKeys
Will be a complete board with decoders for multiplexed sampling of analog sources and up to 61-key keybeds
75 parts8MIT - 4 layers360 × 200 mm

Rgb switcher
michaelobed/rgb-switcher
An open-source switcher for analogue RGBS video, so you don't have to.
133 parts3MIT - 2 layers299.7 × 198.1 mm

Cisc-8
nailed-barnacle/Cisc-8-ttl-processor
A cut-down version of the 8080 processor using HCTTL and including a discrete ALU and instruction decoder
319 parts1MIT - 2 layers295 × 195 mm

- 2 layers250.8 × 130.2 mm

- 2 layers131.9 × 164.6 mm

- 2 layers82 × 134 mm

Pcb badge
john0312/hitcon-pcb-badge
execute fw/merge.py to merge STM32CubeIDE generated main.c with user code in main.cc into main.cc.
258 parts47BSD-3-Clause - 2 layers182.6 × 130.9 mm

Blackmacro base
KipJM/blackmacro-hardware
An open source, smaller, more configurable, and more capabable video editing keyboard based on the raspberry Pi Pico 2W.
189 parts29CERN-OHL-W-2.0
Questions
How big is the Control logic midplane PCB?
It measures 238.8 × 236.2 mm and has 4 copper layers, 4.69 mm thick.
What parts does the Control logic midplane use?
215 parts, built around the 74HC238D and 74HC138. 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 Control logic midplane KiCad files?
From the eryjus/16bcfs repository on GitHub, at the commit this page was made from: the board is kicad/projects/16bcfs/control-logic-midplane/control-logic-midplane.kicad_pcb and its schematic kicad/projects/16bcfs/clock-module/adjustable.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Control logic midplane design in my own project?
Its repository states no licence, so its author keeps all rights: ask eryjus before reusing the design.