This project is a arduino controlled Nixie clock prop for a 1950's larp called Rockets and Rayguns.
There were two lines of nixies, the current time and a countdown timer. They are all powered from a 12v alarm battery.
To do this, i needed a high voltage power supply (Well, 170v dc, I'm sure some people will laugh at that being "high voltage", but i'm from the era of 5v ttl, so meh!).
The easiest PSU design I came across is from this page: http://www.tube-tester.com/sites/nixie/IN-1_LC-516%20Nixie%20Clock/in-1_lc-516.htm using the MC34063A. It also has useful information about the 1N-1 Nixies I used.
To keep things as modular as possible for testing, i used 6 boards containing two nixies and the controlling circuitry.
The driver chips for the nixies are the Russian version of the 7441 (K155ID1) which is a BCD to decimal driver. They seem to be open collector, drivers, which makes sense for devices with the possibility of high voltages on them.
When the appropriate output is selected, they are connected to the ground pin. they float otherwise.
Powering each pair of these is a shift register, the 74ls595, which is a generic latching shift register. To set the digits in a block, 8 bits are shifted in and the latch is pulsed to load.
This device also allows daisy chaining, which i have used in this project. this means the entire display only needs three digital pins on the arduino. (Data, clock and Latch)
The daisy chaining can be seen on the header pins to the left and right of the board. They are:
- data in
/-------\ /-------\ | | | | +-| LSB |-| MSB |-+ | | | | | | | +-------+ +-------+ | | ||||||| ||||||| O|+180v | +-------+ +-------+ | | |K155NA1| |K155NA1| | | +-------+ +-------+ | | | | +5V +-------+ +5V | | 0v |74HC595| 0v | | +-------+ | | 0v 0v | | Ser in Ser out | | Latch Latch | | Clk Clk | | | +---------------------+
+5V, 0, latch and Clk are passed through. Serial goes through the latch.
The green wire is connected to the common Anode of the Nixies. This goes through a normal 150ohm limiting resistor, but is taken from the board separately, to provide some degree of separation between the TTL chips and the high voltage supply.
The actual clock
The clock itself is an Arduino board with a DS3231 module to remember the time. Connected to this is a 6 button keypad arranged in a matrix layout (3x4), and an LCD (In 4 bit mode) to allow programming the device with the time.
The clock uses custom code to allow the alarm to be stored on the clock chip when the power isn't on. This was more of a pain than was expected because of the need to use registers in the chip. For instance, we needed a time >24 hours so we had to calculate a date and time for the alarm to go off and store this, when we actually used the time remaining. and of course the registers in the Arduino are 16 bit which didn't help matters either.
building into the case
I made a mistake here. After i had nearly finished building it, i realized i hadn't left enough space for the battery. This ended up in a separate box. The front of the nixes was recessed slightly to make it more difficult to inadvertently bang them. I had an idea of using smoked glass in the front as well, but in the end i didn't end up doing that (Ran out of time, and couldn't get any delivered in a reasonable timeframe)
Mounted on the side of the box as can be seen in p2, is the high voltage power supply. The green wires are routed here. The boards mound to an upright i glued in. There is later a second beam glued in for the upper row.
The LCD and control board is mounted to the left of the rear. This is normally covered by another piece of wood so the players cant get to it.
The Arduino and clock are mounted in the other half. There is also a connected which cant be seen on the right, which contains wires to the battery and an external action for the alarm. There is also a relay in main box which is not shown in any of the photos.
The orange heatsinked item is a standard 7805 linear regulator providing 5V.
In addition, and not shown here, are neon lamps for the separators. These are controlled in pairs by a transistor, and under the control of one pin. Thus they can either all be on or off, but cant be controlled individually.
Arduino source code: