Copyright (C) 2017-2022 Toby Thain [email protected]
This circuit is designed to produce X, Y and Z (blanking) signals for an analog CRT such as an oscilloscope or XY monitor.
It is controlled by a microcontroller using one digital input and 12 digital outputs. The speed of the microcontroller is not critical to the design; all timing critical functions are executed in hardware.
- Tektronix 602, 603, 604, 606
- Positioning to 12 bit precision
- Lines (approx 20,000 short-medium vectors per second[1];
10,000 "long" vectors per second[2])
- dashed lines (dashing defined by 30 bit vector)
- speed can be increased further by adjusting integrator passives and software optimisations
- Points (37,000-60,000 per second at 0.6µs dwell; variable brightness by adjusting dwell time)
[1] "boxes" benchmark [2] "square" benchmark
Above figures assume:
- integrator input resistor 15 kOhm (this can be decreased, e.g. 4.7kOhm)
- integrator capacitor 10nF
- maximum slew rate approx 0.015 V/µs or draw full deflection in 66µs
Dev board with Arduino Uno pinout. Pins provided for 5V inputs or level shifted 3.3V inputs.
- NXP Freedom KE06Z modified for 5V
- Arduino Duemilanove, Uno
- STM32G474RE (3.3V)
- Adafruit M4 Express
Bipolar +5/-5V. Current approx 30mA (15mA excluding power LED).
Suitable supply from AC mains is Dura Micro MD5122-A1.
- The first version of the board was produced in a batch of 5 by JLCPCB, May 2022. These were all claimed by friends and supporters even before the PCBs were delivered.
Original design was conceived in 2017/18.
I had assistance from many people, mostly via irc, including:
joe_z&Wohaliwith far greater analog expertiselarsb, who encouraged me to build this as an avenue for using real vector displays with software emulators of historical computersasjackson, fellow hacker and friendgenii, who drilled many holes to work around a position defect on the first PCB version
Dedicated to my friend bootnecklad, 1995–2018.




