Oscilloscope Clock


Introduction

This is my first fully finished scope clock after a few false starts and a variety of experiments. It is a simple clock using only 5 ICs (one of those could easily be omitted and another is the 5V regulator) and 6 transistors. It uses a 25mm diameter scope tube in a "steampunk" style enclosure of copper, brass and walnut.


Scope Clock

There are plenty of designs of scope clocks on the internet - I'm not going to provide a list as google will do that for you better than I can. There are lots of pictures on google images as well. So I'm going to leap straight in and describe this clock. This is my first scope clock so I have used many elements from other projects that I knew would work well in this application. My basic design consists of:

Such a dinky little tube:

I was aiming at a small overall size as the scope tube itself is so small and didn't want the final case to dominate the tube. Also, I was not trying to extend my ideas beyond a design that I was very confident would work well. Finally, I was aiming the design only at the DH3/91 scope tube with little or no flexibility for other, especially larger, tubes to be used. "KISS" was applied. More complex designs could follow later but I was keen to experiment with ideas in the software as you will see in the next section.


Preview

A quick review of just a few of from the miriad number of possible clock faces together with some of the test screens and other displays.

The software section and command section in the Annex hint at why so many clock faces are possible.


Schematic and Layout

The schematic has notes describing the remaining off-board components. A component parts list is available in the Annexes.

The final layout I used is a double sided board measuring 130mm x 90mm. The board is in two overall regions with the 5V regulator and all the digital stuff on one side and the high voltage PSU and the analogue deflection and blanking amplifiers on the other. I did have a layout where these two regions were on physically separate boards which would allow other clock case shapes to be used. But the design shown here is the final single board layout only. (The two board layout is provided in the Annexes.)

The schematics and PCB layouts were created using Eagle and are available for download above. As always I am willing to make this PCB (at cost) for anyone wanting to attempt this clock.

Unfortunately I have lost my ability to make PCBs at home and so I cannot offer PCBs for this clock anymore.

The following table shows how the scope tube is wired to the PCB. I have not used the scope tube pin labels from the datasheet but stuck with more conventional labels.

Scope Tube Connections
Tube Pin Datasheet Description Schematic Label
1 f heater connection (not on schematic)
2 g2,g4,D1′ A1,A3,Y1
3 D1 Y2 (collector Q3)
4 D2′ X1 (collector Q1)
5 g1 GRID (collector Q6)
6 D2 X2 (collector Q2)
7 k,g3 CATHODE (junction R27 & C20)
8 f heater connection (not on schematic)

Downloads

You should look in the "/CRT Projects/Scope Clock 1" folder.


Construction

My original thoughts on construction was a clear plastic case with the tube on a support above the PCB. Very much a standard form for scope clocks. A second thought was to fall back on my favorite appearance that of some sort of retro 1960's laboratory instrument. Alan Flowers (Cork, Ireland) suggested "Steampunk" to me. I suppose you could arge that it cannot be Steampunk as the Victorians did not have oscilloscope tubes, but I used the typical construction materials of copper, brass and wood (I used walnut); but I didn't use any leather. I leave you to decide if it is Steampunk or not.

I etched a pattern onto the brass top plate on the enclosure using the equipment I normally use for making PCBs. The etching technique (my first attempts) is described here.


Software

N.B. The ZIP file only contains the source code for the mega at the moment - just .C and H files - the libraries and the executable images will follow together with the code to initialise the external eeprom. This ZIP is for the curious only.

The software was written using C and ASM, and compiled using the CodeVisionAVR version 2 compiler. A zip file containing the required fuse settings and compiled hex files; download information above.

My intention is to make the full source code available when I have finished its documentation and tidying. Please contact me if you want it sooner. But beware C purists that my C is perhaps a bit idiosyncratic but I like it as it is.

Initial Test Software

The purpose of this software was to test the board (it tests all functions except the external eeprom).

The test software displays the following screen:

The outer square is clipped by the circular tube face. The inner square is the limit that can be fully shown as it touches the tube edge. TRLB are the top, right, left and bottom and show that the tube is correctly wired and orientated (rotate the tube and/or swap the X1 and X2 connections as necessary). The display is moved in the X and Y directions each second. This is an anti-burn measure but in the final clock the movement is only once per hour. It helps to adjust the deflection amplifier position and size trimmers if the movement is initially more rapid.

The test software knows the following commands using the serial/USB connection (57600 buad, 8 bits, 1 stop bit, no parity):

Finally, the rotary encoder can be tested by rotating it. A '+' is sent to the serial connection when the encoder is rotated clockwise and a '-' when it is rotated anticlockwise (swap the encoder connections if the sense is the reverse).

Final Software

The final operating software comes in three stages. The first two are programmed into the mega and run just once as they initialise the external eeprom. There may be a need to run either or both again if the content of the external eeprom requires revision. The third is the clock operating software.

The clock can display in one of nineteen modes. The rotary encoder selects the active mode. Mode twenty is a sweep through a range of selected modes; the display pauses in each mode for an adjustable number of seconds. The twentyfirst mode is nor more than a blank tube. The displays available include analogue and digital clocks, some test screens, a four letter word generator and some clocks which are a bit more weird using a somewhat stylised Klingon font or a barcode (I have a friend who can read barcodes so it's here to challenge him, otherwise I don't find it very readable).

There are a number of common configuration options that apply across many of the clocks and tests:

Analogue clocks

Of the nineteen modes, four are analogue clock faces. The clock faces can each be customised by changing:

By the way of examples, the four default analogue faces are:

analogue clocks analogue clocks analogue clocks analogue clocks


But don't be fooled here, there are not just these four, they can all be widely configured.

Digital, including Binary, Clocks

There are four digital (or alphanumerical if you prefer) and two clocks that just use '0' and '1' to display the time. Looking at these first:

digital clocks

This is the time in binary. The top row is seconds (44, although the seconds was changing to 45 as I took the photo), the middle row is minutes (20) and the bottom row hours (19) i.e. 19:20:45.


The second binary clock is Binary Coded Decimal:

digital clocks

The leftmost column is 10's of hours (1) and the next is units of hours (9) giving the hour as 19. The middle pair of columns are minutes (2 and 0, giving 20. The rightmost columns give the seconds (just changing from 09 to 10). So the time is about 19:20:09 to 19:20:10.


Digital clocks are just alpha numerical displays. The clock will show the time, the day of week and the date. A larger font time can be used.

Three of the default digital clocks are (the fourth is a simplification):

digital clocks digital clocks digital clocks


Miscellaeous Clock

other clocks other clocks other clocks other clocks


Four Letter Words

A range of four letter words including several rude words. There configuration options allow the rude words to be censored and the time period between the words changing to be altered.

flw flw


Test Screens

tests tests tests tests


Acknowledgments

OZ2CPU for inspiration, the deflection and blanking circuits

Alan Flowers for ideas and building a scope clock

Dave Povey for the ping-pong clock suggestion

John Rehwinkel for the AScope clock suggestion and the alternatives for the mains transformer used

Martin Forsberg for more, and more, and more... ideas


Annexes


Final Software Command Menu

The menu system uses a simple text entry method. The clock uses a USB serial port connecting using 57600 baud, 8 data bits 1 stop bit and no parity. A command is typed in, backspace can be used to remove characters typed in error, and Enter is pressed to process the command. The Esc key can be used to abandon the whole entry before Enter is pressed.

Command can be typed in full or abbreviated (lowercase letters are automatically converted to uppercase). So for example to hide analogue clock 3 you enter:

ANALOGUE 3 SHOW OFF

Or, fully abbreviated this becomes: A 3 SH 0

The abbreviated version is most useful when experimenting with a command to quickly see how the clock faces changes or the clock operation is changed etc.

Most commands take a parameter or several parameters; if the parameter or parameters are omitted then the current value is reported. So for example the SET DATE command will report the current date if no date parameter is provided. (The exception to this rule is the SYSTEM SEED command that sets the seed value used by the random number generator. If the parameter is omitted then a seed is generated using the current date and time from the real time clock.)

Finally, commands can be followed by a ? as a single parameter. The clock will reply with a brief help message and the options available for any required parameters. So for example BCD SHOW ? will provide brief description of the SHOW command and the options avaliable for the parameter it takes.

In this table | shows alternatives, for example 1|2|3|4 means enter a 1, 2, 3 or a 4.
…[…] is used to indicate the minimum length abreviated string i.e. without ambiguity. For example D[IGITAL] shows that the DIGITAL command can be shortened to just D but SH[OW] indicates that the SHOW subcommand can only be shortened to SH.

Scope Clock Menu
Command Selector Subcmd Parameters Explaination
analogue clocks

A clock in an analogue fashion to display the time. Extensive control over clock hands, dial ticks and numbering. There are four analogue clocks to save; each can be configured completely differently.

AN[ALOGUE] 1|2|3|4 A[MPM] 0|OFF|1|ON AMPM makes an AM/PM indicator visible. It takes a single parameter which may be 0 or OFF for to hide the indicator only OR 1 or ON to show it.
C[ENTRE] 0|OFF|1|ON CENTRE makes a clock centred dot visible. It takes a single parameter which may be 0 or OFF for to hide the dot only OR 1 or ON to show the dot.
D[ST] 0|1|2 DST controls the automatic change over to daylight saving time. It takes a single parameter:
  1. No change over - Standard Time only
  2. Change over according to European rules
  3. Change over according to USA federal rules
H[OUR] MODE, STEP, OUTER, INNER, WIDTH HOUR controls the hour hand. It takes 5 comma separated parameters.
MODE is a value from 1 to 4:
  1. no hand is drawn (OUTER,INNER are ignored)
  2. hand is a single dot, OUTER is radius (INNER is ignored)
  3. hand is a line, OUTER and INNER are end radii
  4. hand is an arrow, OUTER and INNER are end radii, WIDTH is arrow width
STEP is a value from 0|OFF|1|ON and sets if the hour hand moves progressively between hours (0|OFF) or only moves when the hour changes (1|ON).
MA[RK] MODE, OUTER, INNER MARK controls the dial edge dashes and dots. It takes 3 comma separated parameters.
MODE is a value from 1 to 5:
  1. no marks are draw (OUTER,INNER are ignored)
  2. 60 marks are draw as dots, OUTER is radius (INNER is ignored)
  3. 12 marks are draw as dots, OUTER is radius (INNER is ignored)
  4. 12 marks are draw as dashes, OUTER and INNER are end radii
  5. 12 marks are draw as dashes, 48 as dots, OUTER and INNER as mode 3
MIL[LI] MODE, OUTER, INNER MILLI controls the millisecond hand. It takes 3 comma separated parameters.
MODE is a value from 1 to 5:
  1. no hand is drawn (OUTER,INNER are ignored)
  2. hand is a single dot, OUTER is radius (INNER is ignored)
  3. hand is a line, OUTER and INNER are end radii
  4. same as 3
  5. shown as a number in a fixed position (OUTER,INNER are ignored)
MIN[UTE] MODE, OUTER, INNER, WIDTH MINUTE controls the minute hand. It takes 4 comma separated parameters.
MODE is a value from 1 to 4:
  1. no hand is drawn (OUTER,INNER are ignored)
  2. hand is a single dot, OUTER is radius (INNER is ignored)
  3. hand is a line, OUTER and INNER are end radii
  4. hand is an arrow, OUTER and INNER are end radii, WIDTH is arrow width
N[UMBER] MODE, RADIUS NUMBER controls the dial hour numbering. It takes 2 comma separated paramaters.
MODE is a value from 1 to 7:
  1. no numbers are drawn (RADIUS is ignored)
  2. 4 Arabic numerals (3,6,9,12)
  3. 12 Arabic numerals (1-12)
  4. 4 Roman numerals
  5. 12 Roman numerals
  6. 4 Klingon numerals
  7. 12 Klingon numerals
RADIUS sets position of the numbers for modes 1 to 6.
SE[COND] MODE, OUTER, INNER MILLI controls the second hand. It takes 3 comma separated parameters.
MODE is a value from 1 to 5:
  1. no hand is drawn (OUTER,INNER are ignored)
  2. hand is a single dot, OUTER is radius (INNER is ignored)
  3. hand is a line, OUTER and INNER are end radii
  4. same as 3
  5. shown as a number in a fixed position (OUTER,INNER are ignored)
SH[OW] 0|OFF|1|ON Makes the analogue clock available when the display mode is sweep
barcode clock

Use A-Scope radar to show hours, minutes and seconds. The time is shown on the horizontal scale of downward ticks (hourly, 5 minute, 5 second separation). The reflected radar pulses mark the hours (tallest, but adjustable, in this example), minutes and seconds. The reflected pulse move from right to left as the "detected" objects get closer.

AS[COPE] D[ST] 0|1|2 DST controls the automatic change over to daylight saving time. It takes a single parameter:
  1. No change over - Standard Time only
  2. Change over according to European rules
  3. Change over according to USA federal rules
P[EAKS] HOUR, MINUTE, SECOND, TICK, TX PEAKS sets the height of the radar pulses or signal reflections. The 5 comma separated parameters are the height of the hour reflection, minute reflection, second reflection, distance timing ticks (downwards) and the radar "transmitted" pulse.
SE[CS] 0|OFF|1|ON SECS controls whether the second peak is shown or hidden.
It takes a single parameter which may be 0 or OFF to hide the peak OR 1 or ON to show it.
SH[OW] 0|OFF|1|ON Makes the A-Scope clock available when the display mode is sweep
barcode clock

Use bar code 39 to show hours and minutes.

BA[RCODE] D[ST] 0|1|2 DST controls the automatic change over to daylight saving time. It takes a single parameter:
  1. No change over - Standard Time only
  2. Change over according to European rules
  3. Change over according to USA federal rules
H[OUR] 0|OFF|1|ON HOUR controls the clock hour range: a 12 hour or 24 hour display.
It takes a single parameter which may be 0 or OFF for 24 hour display OR 1 or ON for a 12 hour display.
S[HOW] 0|OFF|1|ON Makes the barcode clock available when the display mode is sweep
bcd clock

Use binary coded decimal (BCD) to show the time. The display consists of 6 columns, 4 if seconds are not shown, the leftmost pair of columns are hours, middle are minutes and rightmost are seconds. In each pair the left column is 10's the right column the units.

BC[D] D[ST] 0|1|2 DST controls the automatic change over to daylight saving time. It takes a single parameter:
  1. No change over - Standard Time only
  2. Change over according to European rules
  3. Change over according to USA federal rules
H[OUR] 0|OFF|1|ON HOUR controls the clock hour range: a 12 hour or 24 hour display.
It takes a single parameter which may be 0 or OFF for 24 hour display OR 1 or ON for a 12 hour display.
L[EAD] 0|OFF|1|ON LEAD controls whether leading zeros are shown or hidden.
It takes a single parameter which may be 0 or OFF to hide leading 0s OR 1 or ON to show them.
SE[CS] 0|OFF|1|ON SECS controls whether the second columns are shown or hidden.
It takes a single parameter which may be 0 or OFF to hide seconds OR 1 or ON to show them.
SH[OW] 0|OFF|1|ON Makes the BCD clock available when the display mode is sweep
binary clock

Use binary to show the time. The display consists of 3 rows, 2 if seconds are not shown, the top row is seconds, the middle row shows minutes and the bottom row shows hours.

BI[NARY] D[ST] 0|1|2 DST controls the automatic change over to daylight saving time. It takes a single parameter:
  1. No change over - Standard Time only
  2. Change over according to European rules
  3. Change over according to USA federal rules
H[OUR] 0|OFF|1|ON HOUR controls the clock hour range: a 12 hour or 24 hour display.
It takes a single parameter which may be 0 or OFF for 24 hour display OR 1 or ON for a 12 hour display.
L[EAD] 0|OFF|1|ON LEAD controls whether leading zeros are shown or hidden.
It takes a single parameter which may be 0 or OFF to hide leading 0s OR 1 or ON to show them.
SE[CS] 0|OFF|1|ON SECS controls whether the second columns are shown or hidden.
It takes a single parameter which may be 0 or OFF to hide seconds 0s OR 1 or ON to show them.
SH[OW] 0|OFF|1|ON Makes the binary clock available when the display mode is sweep
bouncing balls

Bouncing balls test/demonstration - just a bit of fun.

BO[UNCE] B[ALLS] number Sets the number "in-play". The command takes a single parameter which must lie between 1 and 20.
R[ESTART] RESTART fires the balls again. It takes no parameters. Restart is called automatically each minute.
S[HOW] 0|OFF|1|ON Makes the bounce test available when the display mode is sweep
digital clocks

A clock in a digital fashion display the time and optionally the day of the week, the date and an AM-PM indicator. There are four digital clocks to save; each can be configured completely differently.

D[IGITAL] 1|2|3|4 A[MPM] 0|OFF|1|ON AMPM makes an AM/PM indicator visible.
It takes a single parameter which may be 0 or OFF for to hide the indicator only OR 1 or ON to show it.
B[IG] 0|OFF|1|ON BIG make the font bigger but suppresses some other display options.
It takes a single parameter which may be 0 or OFF for a standard font only OR 1 or ON for the big font.
DA[TE] 0|OFF|1|ON DATE makes the date visible.
It takes a single parameter which may be 0 or OFF to hide the date OR 1 or ON to show the date.
DO[W] 0|OFF|1|ON DOW makes the day of the week visible.
It takes a single parameter which may be 0 or OFF to hide the DOW OR 1 or ON to show the DOW.
DS[T] 0|1|2 DST controls the automatic change over to daylight saving time. It takes a single parameter:
  1. No change over - Standard Time only
  2. Change over according to European rules
  3. Change over according to USA federal rules
H[OUR] 0|OFF|1|ON HOUR controls the clock hour range: a 12 hour or 24 hour display.
It takes a single parameter which may be 0 or OFF for 24 hour display OR 1 or ON for a 12 hour display.
L[EAD] 0|OFF|1|ON LEAD controls whether leading zeros are shown or hidden.
It takes a single parameter which may be 0 or OFF to hide leading 0s OR 1 or ON to show them.
SE[CS] 0|OFF|1|ON SECS controls whether the second columns are shown or hidden.
It takes a single parameter which may be 0 or OFF to hide seconds 0s OR 1 or ON to show them.
SH[OW] 0|OFF|1|ON Makes the digital clock available when the display mode is sweep
test

Display extents test for deflection amplifer set up.

E[XTENT] S[HOW] 0|OFF|1|ON Makes the extent test available when the display mode is sweep
flw

Random Four Letter Words

F[LW] C[HANGE] number Sets the time in seconds that each FLW is shown for. The command takes a single parameter which must lie between 1 and 20.
R[UDE] 0|OFF|1|ON RUDE controls whether certain "robust" English words are shown or hidden.
It takes a single parameter which may be 0 or OFF to hide OR 1 or ON to show them. By default RUDE is OFF.
S[HOW] 0|OFF|1|ON Makes the FLW display available when the display mode is sweep
test

Graticule display for focus, display resolution and linearity tests.

G[RATICULE] D[ENSITY] 1|2|3|4|5 Sets the density of the graticule lines. The command takes a single parameter which must lie between 1 and 5.
S[HOW] 0|OFF|1|ON Makes the graticule test available when the display mode is sweep
Klingon clock

Use Klingon numbers to show the time. The display consists of 3 rows, 2 if seconds are not shown, the top row is hours, the middle row shows minutes and the bottom row shows seconds.

K[LINGON] D[ST] 0|1|2 DST controls the automatic change over to daylight saving time. It takes a single parameter:
  1. No change over - Standard Time only
  2. Change over according to European rules
  3. Change over according to USA federal rules
H[OUR] 0|OFF|1|ON HOUR controls the clock hour range: a 12 hour or 24 hour display.
It takes a single parameter which may be 0 or OFF for 24 hour display OR 1 or ON for a 12 hour display.
L[EAD] 0|OFF|1|ON LEAD controls whether leading zeros are shown or hidden.
It takes a single parameter which may be 0 or OFF to hide leading 0s OR 1 or ON to show them.
SE[CS] 0|OFF|1|ON SECS controls whether the second columns are shown or hidden.
It takes a single parameter which may be 0 or OFF to hide seconds 0s OR 1 or ON to show them.
SH[OW] 0|OFF|1|ON Makes the Klingon clock available when the display mode is sweep
Change display mode (instead of moving the rotary encoder).
M[ODE] number MODE accepts the following number codes:
  1. Blank display
  2. Sweep through selected modes
  3. Extents test
  4. Parallel lines test
  5. Graticule test
  6. Bouncing ball demonstration
  7. Analogue clock 1
  8. Analogue clock 2
  9. Analogue clock 3
  10. Analogue clock 4
  11. Binary clock
  12. BCD clock
  13. Digital clock 1
  14. Digital clock 2
  15. Digital clock 3
  16. Digital clock 4
  17. Barcode 39 clock
  18. Klingon clock
  19. Ping-Pong clock
  20. A-Scope clock
  21. Four Letter Words
test

Parallel lines display for focus, display resolution and linearity tests.

PA[RALLEL] S[HOW] 0|OFF|1|ON Makes the parallel line test available when the display mode is sweep
Pingpong clock

A game of ping-pong (table tennis if you wish) played for ever with the "score" showing the time in hours and minutes.

PI[NPONG] D[ST] 0|1|2 DST controls the automatic change over to daylight saving time. It takes a single parameter:
  1. No change over - Standard Time only
  2. Change over according to European rules
  3. Change over according to USA federal rules
H[OUR] 0|OFF|1|ON HOUR controls the clock hour range: a 12 hour or 24 hour display.
It takes a single parameter which may be 0 or OFF for 24 hour display OR 1 or ON for a 12 hour display.
L[EAD] 0|OFF|1|ON LEAD controls whether leading zeros are shown or hidden.
It takes a single parameter which may be 0 or OFF to hide leading 0s OR 1 or ON to show them.
SH[OW] 0|OFF|1|ON Makes the pingpong clock available when the display mode is sweep
The SET menu contains command to adjust the date and time used by the real time clock. This information is held separately to the configuration information and will not change as a result of the SYSTEM DEFAULT command. The SET data is held in the memory sustained by the on-board battery so the information will be lost if the battery is removed or goes flat.
SE[T] A[DJUST] number This value is used to adjust the time once per week (midnight Sunday) so the clock keeps better time. The value may be positive or negative. The value can be determined by running the clock for several months and noting the gain or loss in seconds and calculating the gain or loss per week.
D[ATE]
  • dd-mm-yyyy
  • mm-dd-yyyy
  • yyyy-mm-dd
Enter the date in the format specified by the SET FORMAT command.
The UTC date should be used.
F[ORMAT] number Change the format used to display the date. The options are:
  1. dmy
  2. mdy
  3. ymd
The SET DATE command entry must be used with this format.
T[IME] hh:mm:ss Enter the time in the required format. The UTC time should be used.
Z[ONE] number Enter the local time zone as a displacement from UTC. The number must lie between -12 and +12 inclusive.
System menu contains a bunch of miscellaneous commands.
SY[STEM] B[UILD] Report firmware version and build information.
D[EFAULT] DEFAULT restores the "factory default" configuration settings. This command does not change the date and time settings.
J[IGGLE] number The clock has a simple anti-burn measure where the image is moved left and right, up and down by one pixel once per hour. There are 4 positions in total. Enter a number between 0 and 3 to move to the corresponding position.
R[ESET] Force the microcontroller to reset. The command takes upto 2 seconds to operate.
SE[ED] number Enter a new seed value for the random number generator to use. The main effect will be that the order of the four letter words becomes repeatable. If no parameter is provided then a seed number is generated using the date and time.
SW[EEP] number Enter the time in seconds between the display changing in sweep mode.
U[TIL] Reports the approximate time taken by the microcontroller to service certain tasks: the calculations it performs once every 20mS, the additional calculations carried out every second, and the time taken to draw the image on the tube. The remaining time is used for other functions (servicing the clock chip, the serial port, the menus etc). Obviously, the utilisation must not exceed 100%. If the display starts to flicker then check the utilisation - if too many options (especially on the analogue clock) are turned on then the microcontoller may not have enough time to service all the demands (the analogue display will look very congested with too many options on which is likely to be undesirable as well).

Parts List

None of these components should be difficult to source. At the time of writing this webpage the tube and its socket are readily available from tube suppliers and Ebay. A number of the components (especially the electrolytic capacitors) are size critical, so be sure to buy the correct diameter components if the parts are not sourced from Farnell or Rapid.

Scope Clock Parts
Part Description Farnell Code Rapid Code Dimensions
TR1 15VA 2X 15V toroidal transformer 1675046 Note this transformer has a single 230V primary - see note 1
R1 - R4, R25 220k 5% 0.25W
R5-7, R14, R19, R21, R24 1M 5% 0.25W
R8, R10 2k2 5% 0.25W
R9, R11, R12, R13 10k 25turn trimmer 9353704 See note 3
R15-R18 4k7 5% 0.25W
R20, R22, R23, R30, R33 10k 5% 0.25W
R26 100k 5% 0.25W
R27 500k 25turn trimmer 9353828 See note 3
R28 100k potentiometer 1684818
R26 33k 5% 0.25W
R31, R32 3k3 5% 0.25W
IC1 LM2576-5 1564682 82-0664
IC2 DS1307 1188042 82-0567
IC3 AT24C512 1908134
IC4 AD7302BNZ 1079330
IC5 ATMEGA328P 1715487
D1-D11, D13, D15-D18 1N4004 47-3136
D12 1N4001 47-3130
D14 1N5820 47-2546
L1 220uH subminature axial 88-1037 7.2 mm lead spacing 13 mm diameter
Q1-4, Q6 ZTX458 9526668
Q5 ZTX558 9526676
Q7 32.768 kHz crystal 90-3052
Q8 22.1184 MHz crystal 90-3062
B1 CR2032 Cell
CR2032 Holder
18-0490
18-0498
flat 24mm diameter
two pin - 20 mm spaced
C1-C13, C17-C19 100u 100V electrolytic 9693947 5 mm lead spacing
10 mm can diameter
C14 10n ceramic 08-0232 2.5mm leg spacing
C15 2200u 35V electolytic 11-0760 5 mm lead spacing
13 mm can diameter
C16 1000u 10v electolytic 11-0760 5 mm lead spacing
10 mm can diameter
C20 10u 100V electrolytic 1236690 3.5 mm lead spacing
8 mm can diameter
C21-C25 100n polyester 10-3260 5mm lead spacing
C26, C27 22p ceramic 08-0046 2.5 mm lead spacing
X (USB module) FTDI MM232R 1146037
Rotary encoder Alps 1607976 ECW1J-B24-BC0024L - see note 2
J (ISP connection) 2 x 3 header
V1 DH3/91 from Ebay
V1 base Loctal base from Ebay
2 off DIL8 socket 22-0150
1 off DIL28-3 socket 22-0175
1 off DIL20 socket 22-0170

Note 1: The transformer I used has a single 230V primary. Alternatives include Farnell 3068572 or Newark 38K4871 (Multicomp MCTA015/15 or Toroid International TA015/15). This is a dual primary transformer suitable for 115V or 230V mains at 50 or 60Hz.

Note 2: This rotary encoder used to be supplied with a lock nut for panel mounting but no longer is. The thread is some sort of fine M9 (and I do mean M9). I'm looking for an alternative but the clock has only been tested with this encoder so far.

Note 3: Set the trimmer pots to mid travel using an ohmmeter before fitting.


Alternative PCB Layout

The Eagle zip file also contains a pcb layout for two boards. The 5V supply and digital components on one card and the HV supply and deflection/blanking amplifiers on a second. The two cards are designed to allow them to be stacked. These cards allow other shapes of cases to be considered.

The long red hatch tracks (layer 15 in Eagle) show how the two boards are connected and are not physical tracks on the PCB.

This layout has been built and tested.