So I finished my first VFD clock, and wanted another. I found a great deal on some single-digit IV-3 tubes on ebay (24 for less than £10), so I decided to make a similar clock but with these tubes. Once again, I wanted to spend as little money as possible, so here were the parts I was going to use:
6 IV-3 tubes (£2.50 total)
MAX6921 VFD driver (free sample)
CSD18533KCS MOSFET for SMPS (free sample)
DS1307 clock module (http://www.ebay.co.uk/itm/170794819927) (£1.50, probably just as cheap as battery+ds1307+battery holder)
2.2mH inductor (http://www.ebay.co.uk/itm/300555952472 80p)
Stellaris launchpad LM4F120 (£5)
Various bits of wire/perfboard/passive components (junk drawer – free.)
All in all, about £10, which seems quite reasonable.
Right now I can set all the digits with the firmware I wrote for the launchpad. I’m waiting for the inductor in the post, so right now i’m using the high voltage power from my previous vfd clock. I’m also waiting for the ds1307 module, so it can’t keep time, but I feel like I’m mostly there. I can’t imagine anyone will copy my design exactly, but here are a few thoughts/pointers/why I’m building this the way I am:
I needed to multiplex the tubes so I could control them easily. This is really simple to do, you just connect all the wires that correspond to a segment together, and connect all the 0V filament wires for the tubes. Then you just selectively power on one grid, and display whatever you want by controlling the segment wires. This reduces the number of wires to: 8 segment wires (counting the full stop), 6 grids, ground, and 6 +ve filament wires. The filaments need a small amount of current flowing through them – I’m using about 30mA. This is estimated from an old russian datasheet I found. I’m powering them each through 141 ohms from 5V (I only had 47ohm high-wattage resistors in that range, so the duct-taped blob labelled in the picture is an array of 47ohm resistors in series.) Now there are just 8 segment wires, 6 grids, ground and 5V – much more manageable.
I’m using the MAX6921 vfd driver again, because it’s really easy to use. I wanted to start building this late at night without any etchant or fine enough milling bits, so I decided to go for the tried and tested method of supergluing the chip onto perfboard on its back, then adding a load of fiddly interconnects to turn the chip into a manageable size. I only needed 20 pins (14 to vfd, 5v, +40V, ground, DIN, LOAD,CLK), so I didn’t bother connecting all of the pins of the max6921. This picture shows the idea: (the top pcb has the max6921 glued to the back, and the solder blobs along the edges correspond to various pins on the 6921)
At this point, I had a module that just needed a 5v supply, a high voltage for the tubes (~40V), and some communication over the DIN, LOAD and CLK pins. Time for the brain of the clock. I decided to use the stellaris launchpad because I bought a couple cheaply ages ago and they can be powered by microusb, have a load of processing power, and their 3.3V running voltage is just about big enough to run the max6921. Not only can they be powered by usb, they have usb comms, so I can set the time by just plugging the clock into my pc. This I’ll do by just flashing a firmware with a hardcoded time, the same thing I do with my iv-18 clock – it’s a straightforward thing I only need to do twice a year for DST, then let the DS1307 keep time. The code is just a modified version of the project0 project that comes with the stellaris software. I haven’t used one of these things before, but I quite like the launchpad already. My code is here: project0. I’ll put all of it in a git repo when I’m done.
So, a TODO list:
Wire up the SMPS, and set up PID control using pwm and a potential divider to measure the voltage – easy wiring, should be simple code.
Wire up the DS1307 module, and write the code to set/check the time.
Build a case. I can’t decide whether to 3d print one (dead easy) or craft one out of wood (better looking, much more lengthy process)