Skip to the content
PCBKitNew board
8 layers71.1 × 83.8 mmCrt drive, the printed circuit board in 3D

Programmable CRT drive: sync and video from a microcontroller for analog CRTs and TVs.

Size
71.1 × 83.8 mm
Copper layers
8
Thickness
1.6 mm
Parts
17
Nets
42
Pads
87
Tracks, vias
75, 0
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
18 Sep 2026
Updated
24 Sep 2026

Overview

Crt drive is an open-source printed circuit board by fractalclockwork, from the fractalclockwork/crt-drive repository on GitHub. It is an 8-layer board of 71.1 × 83.8 mm with 17 parts on 42 nets, routed with 75 tracks and 0 vias.

It is built around the 74AHCT125D. Its parts include 7 capacitors, 4 resistors, 2 connectors, 1 IC and 1 diode. It belongs with the RP2040 boards of this library.

Main components

1

README

README.md

crt-drive

Programmable CRT drive: sync and video from a microcontroller for analog CRTs and TVs.

The first target is the Link MC5 terminal (Wyse WY-120 architecture). A Raspberry Pi Pico (RP2040) replaces the CRT drive ASIC (Wyse 211009-02, U4): it synthesizes active-low /HSYNC and /VSYNC plus active-high dual video (V0 dim, V1 normal) and drives the existing deflection and neck boards. The original CPU, EPROM, and VRAM bus do not need to run.

Status: Injection pads and the Pico + 74AHCT125 carrier (KiCad protoboard) are decided. The Dev-Host Docker toolchain is validated (make smoke / make test APP=hello). Default firmware is the 60 Hz 80-col measure pattern (make build / make flash / make test / make monitor): GPIO 0–3, box+grid+plus; USB m 80/132-col, r 60/78 Hz; a/d/w/s nudge H/V phase. Four-mode analog drawings: make build APP=pattern. Phosphor reel: make build APP=demos (same m/r). Glass TTY: make build APP=term. CRT HIL is in progress after isolation and the 74AHCT125.

Docs

DocRole
Project writeupMethodology, hardware, software, HIL, camera on the glass
Hardware designBoard identity, labeled pads V0/V1/V/H/GND, level shift, 60 Hz then 78 Hz timings
Firmware planPhased PIO / DMA / framebuffer build, open choices
Test patternscross60 HIL record (keep); six 78 Hz drawings still on APP=pattern
Terminal emulatorGlass TTY (apps/term, make build APP=term)
Video TTYHost session (apps/vtty, tools/vtty.py, news page)
Phosphor demosAttract reel (apps/demos, make build APP=demos)
Firmware appsSeparate CMake projects: cross60 (default), pattern, term, demos, vtty, rick
ToolchainsDev-Host Docker image, volume mount, USB flash (no gateway)
KiCad projectPico carrier / level-shift protoboard (schematic + jumper layout)
Injector power+5 V, VSYS Schottky, AHCT buffer rail
PCB drawingBoard artwork referenced from the hardware guide
Signal padsSolder-side taps next to U4: V0, V1, V, H, GND

Dev-Host toolchain (Docker)

Edit on the Dev-Host. Firmware is compiled by calling into the pico-dev image from that host (make at the repository root); the repo is bind-mounted at /workspace for the call. Plug the Pico into this machine (no Raspberry Pi gateway). Modeled on fractalclockwork/cede lab/docker/pico-dev.

Full guide: docs/toolchains.md (setup, USB modes, hello_pico, troubleshooting). Short path: docker/README.md.

bash
make image          # build crt-drive/pico-dev:local
make smoke          # ARM GCC, CMake, Ninja, Pico SDK, picotool USB
make pico-discover  # identify the Pico on this host's USB
make test APP=hello # build, flash, USB CDC ping (hello_pico)
make build          # 60 Hz 80-col plus (default CRT UF2)
make flash          # load crt_cross60
make monitor        # USB CDC; follows whichever app is running
make build APP=pattern
make build APP=term # glass TTY
make build APP=vtty # host session; usage in docs/vtty.md
uv sync             # Dev-Host .venv; Pillow for tools/vtty.py images
make vtty-start     # news page; make vtty-stop frees the serial node
make build APP=demos
make help           # all targets

make shell and make shell-usb are a call into the image. Leave with exit. The editor stays on the Dev-Host.

Phased development

Hardware is ready to drive: lift harness at pads V0, V1, V, H, GND; level-shift on the Pico carrier (74AHCT125); power from logic-board +5 V / GND. First video mode is 60 Hz 80-col (32.1 MHz dots, 1024-dot /HSYNC, 523 lines); USB m is 60 Hz 132-col (1188×416). 78 Hz patterns come after that raster is on-glass.

Firmware order (detail in firmware-plan.md):

  1. Clock + PIO load — Pico PLL; 60 Hz in apps/cross60, 78 Hz in video/
  2. Stable /HSYNC and /VSYNC — 60 Hz wraps 1024 dots / 523 lines (HIL); 78 Hz 1530 / 402 on a scope
  3. Pixel SM + packing — 800×416 @ 2 bpp (60 Hz), 800×338 (78 Hz); FIFO stall, trailing off word
  4. DMA loop into PIO TX — per-line kick from hsync RX
  5. 60 Hz plus — default UF2; center and size on the live CRT (make test)
  6. 78 Hz test patterns — make test APP=pattern after 60 Hz fills
  7. Other apps — glass TTY in apps/term/; phosphor reel in apps/demos/

Safety

CRT anode and flyback voltages are lethal. Isolate U4 by lifting the harness wires at the labeled V0, V1, V, H, and GND pads before splicing in RP2040 signals. Do not work on a powered chassis until you know the discharge path for the CRT anode cap.

Parts

17
QtyValueFootprintReferences
3100nFCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mmC2, C4, C7
310uFCapacitor_THT:C_Radial_D6.3mm_H11.0mm_P2.50mmC1, C3, C6
2100RResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR1, R2
247RResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR3, R4
1100R @ 100MHzInductor_THT:L_Axial_L5.3mm_D2.2mm_P7.62mm_Horizontal_Vishay_IM-1FB1
11N5817Diode_THT:D_DO-41_SOD81_P7.62mm_HorizontalD1
11nFCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mmC5
174AHCT125Package_DIP:DIP-14_W7.62mmU1
1HarnessConnector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_VerticalJ2
1Logic +5VConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ1
1RaspberryPi_PicoModule:RaspberryPi_Pico_Common_THTA1

Questions

How big is the Crt drive PCB?

It measures 71.1 × 83.8 mm and has 8 copper layers, 1.6 mm thick.

What parts does the Crt drive use?

17 parts, built around the 74AHCT125D. 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 Crt drive KiCad files?

From the fractalclockwork/crt-drive repository on GitHub, at the commit this page was made from: the board is docs/kicad/crt-drive/crt-drive.kicad_pcb and its schematic docs/kicad/crt-drive/crt-drive.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Crt drive design in my own project?

Its repository states no licence, so its author keeps all rights: ask fractalclockwork before reusing the design.

Similar boards

  • 2 layers333.4 × 149.9 mmOmega Mainboard, the printed circuit board in 3D

    Omega Mainboard

    skiselev/omega

    Omega Home Computer

    248 parts459GPL-3.0
  • 2 layers45 × 54 mmRusty hangulclock, the printed circuit board in 3D

    Rusty hangulclock

    suapapa/HangulClock

    원조 한글시계. (Rust, Go, Arduino 구현)

    15 parts49
  • 2 layers333.4 × 149.9 mmOmega Mainboard, the printed circuit board in 3D

    Omega Mainboard

    merlinkv/Omega_MSX2

    Update of the Omega Home Computer Project

    265 parts40GPL-3.0
  • 2 layers273.8 × 109 mmTrueStrike42, the printed circuit board in 3D

    TrueStrike42

    byungyoonc/TrueStrike42

    TrueStrike42 is a columnar staggered unibody split keyboard designed to maximize performance and minimize finger fatigue.

    167 parts24
  • 4 layers65.4 × 53.3 mmWaterdrop esphome, the printed circuit board in 3D

    Waterdrop esphome

    twasilczyk/waterdrop-esphome

    Waterdrop RO system smart Wi-Fi module for Home Assistant

    39 parts15MIT
  • 2 layers345 × 105.6 mmPov display, the printed circuit board in 3D

    Pov display

    usedhondacivic/ECE-4760-POV-Display

    Persistence of vision display. 30 FPS, full RGB color, and 26" diameter. Updates remotely over WIFI.

    50 parts13
  • 2 layers95.3 × 50.8 mmTinyDiskII, the printed circuit board in 3D

    TinyDiskII

    GLGPrograms/tinyDiskII

    Homemade floppy disk emulator for Apple II series computers

    52 parts12GPL-3.0
  • 2 layers296 × 234 mmDeck, the printed circuit board in 3D

    Deck

    joshjetson/phosphor

    A full fledged DAW in TUI and GUI flavors: Run it in the terminal or run it as a desktop app (Desktop App Coming Soon..maybe)

    281 parts12MIT