Introduction: The Amazing Plasma Binary Clock, Steampunk Style.

A couple of month ago Mr. Longwinters  send me some plasma (NEON) bulbs wit European E-27 windings.
Mr Junophor offered me a big peace of mahagony wood. So I had the basic material for a steampunked binary clock.
The clock is driven by a CControl micro controller and some solid state relais.
A small Basic program reads the internal clock (controlled by a DCF signal), converts the values to binary format and sets the bulbs.
A 5V relay is used to simulate the ticking of a clock.

Step 1: The Wood and Materials

Here are the materials and the parts for mounting the NEON bulbs to the clock.

Step 2: The Electronics

The bulbs are controlled by a MC from Conrad Electronics (CControl Basic) a small, easy to use controller which can be programmed in BASIC. The Controller is able to drive 16 IOs and has a special input for a DSF antenna. This antenna is able to receive the time signal from a LW . transmitter located near Frankfurt.
The bulbs are connected to an interface board with solid state relais and the driver IC´s. A ticking sound is simulated by a small 5V relais.
I used this: Solid State Relays  (S102T01 Series) and this driver IC´s: ULN2803A because the MC board is only capable of driving 10mA.
The resistors are for limiting the current.

Step 3: Mounting the Sockets

The bulb sockets are mounted trough holes in the front on two pieces of beach wood.
Please see details below.

Step 4: Mounting the Electronics and Cabling

The cabling to the bulbs was made under need the electronics board. I used special insulated thin wires. The are able to insulate up to 500V. I separated the low power and the high power part completely from each other due to security reasons.

A small 5V power supply gives the power to the electronics.
The small relay simulates the ticking sound.

I used two switches, one for disabling the ticking noise. :-)
and one for switching the bulbs off during night.

During the tests I found that it is better to raise the antenna a bit. The signal is now stronger and the clock syntonization is faster.

Step 5: Finishing the Front

I printed small numbers and glued them into the small holes on the front and glued the brass ring on top.

The signs for the switches where printed as well and mounted into label frames.

Step 6: The Program

Here you find the tiny basic program that drives the clock.
The receiving of the time signal will be done automatically in the background by a firmware routine.

'********************************************************************
'
' C-Control/BASIC       BinUhr.BAS
'
' System requirements :
'
' - Application Board connected to mains driver board
'
' Use:
'
' - Output of binary converted time to NEON bulbs
'
'********************************************************************

' *** Define data ***
' variables for hours
define Stunde08 byte
define Stunde04 byte
define Stunde02 byte
define Stunde01 byte
' variables for minutes
define Minute32 byte
define Minute16 byte
define Minute08 byte
define Minute04 byte
define Minute02 byte
define Minute01 byte
' Ports hours
define s8 port[1]
define s4 port[2]
define s2 port[3]
define s1 port[4]
'Ports minutes
define m32 port[5]
define m16 port[6]
define m8 port[7]
define m4 port[8]
define m2 port[9]
define m1 port[10]
'Port seconds
define sg1 port[11]
define sg2 port[12]
'Port Tick Tack (ticking sound with relay)
define tt port[13]
' special variables
define temp byte
define tempTime byte
define LastSecond byte
' set seriell port2400 n 8 1
BAUD R2400
' set seconds and Ticktack
sg1 = 0
sg2 = 1
tt = 0

' Main program
#loop
  wait second <> LastSecond
 'toggle second lamps and relays
  tog sg2
  tog sg1
  tog tt
  LastSecond = second
  gosub BuildBinTime
  gosub WriteTime
  gosub serout
goto LOOP

#BuildBinTime
'
'hours
' Convert hours into binary format using the mod command, converting 24h format into 12h format
if hour > 12 then tempTime = hour - 12 else tempTime = hour
Stunde08 = tempTime / 8
temp = tempTime mod 8
Stunde04 = temp / 4
temp = temp mod 4
stunde02 = temp / 2
temp = temp mod 2
Stunde01 = temp
'
'Minutes'
' Convert minutes into binary format using mod command
Minute32 = minute / 32
temp = minute mod 32
Minute16 = temp / 16
temp = temp mod 16
Minute08 = temp / 8
temp = temp mod 8
Minute04 = temp / 4
temp = temp mod 4
Minute02 = temp / 2
temp = temp mod 2
Minute01 = temp
Return

' Write converted time to bulbs
#WRITETIME
  ' Stunden
  s8 = stunde08
  s4 = stunde04
  s2 = stunde02
  s1 = stunde01
  ' Minuten
  m32 = Minute32
  m16 = Minute16
  m8 = Minute08
  m4 = Minute04
  m2 = Minute02
  m1 = Minute01
return

' Write converted time and actual time to serout
#SerOut
  Print "8","4","2","1","  ","32","16","8","4","2","1"
  Print Stunde08,Stunde04,Stunde02,Stunde01,"  ",Minute32,Minute16,Minute08,Minute04,Minute02,Minute01
  Print hour,minute
return