Build rules for System-5 boards¶
The rules the System-5 boards follow, gathered in one place from the documents and board files that state them, with every known exception. Nothing here is new: each rule names its source, and where two files disagree both are listed at the end. When a rule changes, change its source and this page together.
Scope¶
- Rules for new boards (section 1) are for future work only. They do not apply to any board already built or ordered (MEM3-E and BUSDRV-B were ordered 2026-10-20). When it is not clear whether a board counts as future work, ask Ken before applying them. The 6845 Rev B stays the 2005 card; the rules start with the next video revision (the one with PS/2).
- Always ask Ken before changing a board that might be built, ordered or in production, for any change at all.
- The other sections describe how the boards were built: the 2005 rules from Ken's board notes, and the 2026 rules for the KiCad boards.
Source: CLAUDE.md (standing rules).
1. Rules for new boards (2026-10-24, all of Ken's systems)¶
- Switches, buttons, LEDs and the connectors for outside cables (video, D-subs, USB, network) go on the front edge, the edge farthest from the bus connector.
- Cable connectors point outwards: a right-angle part with its mating face at the board edge, so a cable plugs straight in.
- Jumper blocks and cable headers (ribbons, probes, ICSP) go near a board edge, never in the middle of the board.
- A plug-in module (Nano, Pico, ...) goes at an edge other than the bus connector's, where possible, with its USB port facing that edge.
- Every reference (U12, R3, ...) stays readable with the parts fitted: printed outside the part, never under a chip, socket or module. ICs get their type printed beside it.
- Every switch, button and LED is labelled with its function, and each switch position with what it selects.
- Placement drawings (PDF) show the outline and the parts in one orientation, on a sheet shaped like the board.
2. Every board, every system: bypass caps and the order check¶
- Every 0.1 µF bypass cap has 0.1" (2.54 mm) lead spacing, never 0.2" (5 mm) discs. Memory Rev D's
C025-050X050is the example (Ken, 2026-10-19;CLAUDE.md). - Before any order,
python3 tools/preorder_check.py <board.kicad_pcb> <order.zip> --layers Nmust pass (Ken, 2026-10-19). It checks that the layer count ordered, the board's copper layers and the zip's copper files agree; ERC; DRC with zones refilled; unconnected pads; schematic parity; that the zip is fresh from the board and reads back with every copper layer; the bypass-cap rule; the netlist proof; one-piece planes on 4-layer boards with no tracks on them; and a picture of each copper layer. Then Ken looks at the pictures and the fab's gerber viewer. DRC alone is not enough: it checks the board file, not the zip.
3. The 2005 board notes¶
From Ken's notes, board-notes/BoardNotes.txt (and the .html copy):
| Rule | |
|---|---|
| Board size | 5.50 × 3.75 in |
| Bus connector | centre at 0.2 × 1.875 in (place on a 0.025 grid, then back to 0.05) |
| Card supports | keep-out polygons 3.00 × 0.15 on Eagle layers 41/42 at the left and right bottom corners |
| LEDs | at X = 5.2 in: Power at Y = 0.3, Aux 1–4 at 1.0, 1.7, 2.4, 3.1; flat side (cathode) toward the bus connector; PWR label at 5.4 × .45 |
| Parts | 5 mm LEDs, 207/7 resistors, C025-050x050 bypass caps; the tantalum at .45 × 3.45 with + nearer VCC |
| Silk title | KSR -- XXX#-A (board name, design variant, revision), text .05 × .05; all writing on layer 25 |
| Power | check that GND and VCC connect at the bus |
| Before fab | ERC, the gerb274x and excellon CAM jobs, the doc script, the order number in readme.txt |
The 2005 boards went to Sierra Proto Express (NoTouch) and PCB Fab Express (FABRICATED.md).
4. Bus¶
| Rule | Source |
|---|---|
| 30 pins, the System-4 bus kept | README.md |
| 1 +5V, 2–9 D0–D7, 10 Q, 11 TPA, 12 TPB, 13 -MRD, 14 -MRW, 15–22 A0–A7, 23 -INT, 24 N2, 25 -EF, 26 -VMA, 27 -RESET, 28 N1, 29 N0, 30 GND; pin 1 at the left on the component side | BoardNotes |
| Bus Rev B (Dec 2005) dropped ±12 V and added N1/N2 | README.md |
| The bus itself is Vero board, never a PCB | FABRICATED.md, BACKLOG.md |
| New boards copy the outline and connector position (J1, footprint C30) from Memory Rev D, so they fit the System-5 card cage | memory Rev D and bus-driver Rev B READMEs |
5. The 2026 KiCad boards¶
| Rule | Source |
|---|---|
| 2-layer boards (BUSDRV, Memory D): signal tracks 0.25 mm, +5V/GND 0.6 mm, clearance 0.2 mm, GND pour on both sides, JLCPCB 2-layer rules | bus-driver Rev B and memory Rev D READMEs |
| Netclasses: Default 0.25 track / 0.2 clearance / 0.6/0.3 via; Power 0.6 / 0.25 / 0.8/0.4 | bus-driver Rev B gen/make_board.py, the .kicad_pro files |
| Boards converted from Eagle are checked against OSH Park's rules (6 mil track, 5 mil clearance, 10 mil drill, 4 mil annular ring), a modern-fab check, not the 2005 fab's | the converted READMEs, e.g. CPU Rev A |
| Through-hole only | memory Rev D and bus-driver Rev B READMEs |
Silk (Memory D/E): every IC <ref> <part> plus its function, passives reference and value, strokes at least 0.15 mm, jumper rows and columns labelled |
memory Rev D README |
| Parts: Memory D/E muxes 74HCT151, not 74LS151; keep the CD4050B (not a 74HC4050); 6845 IC8 a 74LS163 or 74HCT163 | memory Rev E and 6845 Rev B READMEs |
| JLCPCB orders: 1.6 mm, HASL, white silk | FABRICATED.md, memory Rev D README |
6. Folders and formats¶
| Rule | Source |
|---|---|
hardware/<board>/eagle/<rev>/ and kicad/<rev>/; gerbers and order zips in eagle/<rev>/fab/; numbered backups in eagle-backups/ |
CLAUDE.md, README.md |
| KiCad is the working format; Eagle is reference only | CLAUDE.md |
A converted board that gets changed becomes a hand-maintained master: a MASTER file in its kicad/<rev>/, never regenerated by the converter |
CLAUDE.md |
Fusion exports in eagle/<rev>/fusion-export/, same file names, originals left in place |
FUSION-EXPORT.md |
Seen on every board but not written down as a rule: every KiCad outline measures 140.95 × 96.19 mm, the 2005 imports included.
7. Exceptions¶
| Board | How it differs | Source |
|---|---|---|
| Memory Rev E | 4 layers: In1 GND plane, In2 VCC plane, no outer pours; tracks 0.25 mm, vias 0.6/0.3, Power clearance 0.2 | memory Rev E README, .kicad_pro |
| BUSDRV-A, Memory Rev D | Routed on 4 layers, ordered from 2-layer zips; scrap (the reason for the order check) | FABRICATED.md, bus-driver Rev A README |
| MEM3-D | No "KSR --" in the title (Ken) | CLAUDE.md |
| 6845 Rev B (as built) | No bypass caps, LED1 or R1 fitted; an LS163, LS85 and AS175 in place of the drawn parts | BACKLOG.md, 6845 Rev B README |
| Memory Rev D | IC10 removed; its LEDs driven from the gated !CE | memory Rev D README |
| BUSDRV | No series resistors on the bus; the Nano is not powered from the bus | bus-driver Rev B README |
| 2014 memory Rev C (mill) | Re-routed for milling, 10 mil tracks | memory eagle/rev-c-mill README |
8. Where the files disagree (to sort out)¶
- Board size: BoardNotes says 5.50 × 3.75 in (139.7 × 95.25 mm); the boards measure 140.95 × 96.19 mm; the Rev C mill README says 140 × 96.
- Memory Rev E README: its header says 4 layers, but further down it still says 2 layers, title MEM3-D and memory-rev-d file names.
- 6845 Rev B README: 2 layers near the top, 4 copper layers further down.
- Bus-driver Rev B README: 258 segments near the top, 247 further down (copied from Rev A).
- 74HCT151:
BACKLOG.mdsays still to change; the Rev D and Rev E READMEs say changed 2026-10-08. - Bypass pitch:
BACKLOG.mdsays 2.5 mm;CLAUDE.mdsays 2.54 mm. - Masters:
KICAD.mdlists memory Rev E and 6845 Rev B; bus-driver Rev B has aMASTERfile too. - Eagle:
README.mdsays every board was designed in Eagle 4.x; the bus driver was generated in KiCad (2026). - The two BoardNotes copies differ a little: the
.txthas "XXXX" LED labels, the.htmlnames Aux 1–4.