I have long been dissatisfied with the inflexibility of the humble kitchen timer. The old clockwork ones had an excuse – with a purely mechanical device, one can't just "fix it up in software". Electronic kitchen timers that I have come across tend to have up/down buttons for setting the time and a start/stop button to set the thing running or get it to stop again (and possibly cancel the alarm before he noise drives one mad.)
Whilst most of my cooking doesn't call for timing of any precision, or even of fixed intervals ('cook until it turns brown' rather than 'cook for n minutes'), there are tasks where I do need timing, the main one being batch frying. When preparing my beef'n'buckwheat schnitzels (tenderised slices of topside of beef deep-fried in a spiced buckwheat batter), I cook these one-by-one for 3 minutes a piece, then putting them into the warming cupboard (actually the oven set to about 70 degrees Celsius).
Trying to read 3 minutes of the oven clock is not easy – if I note the time and then wait for that time to read the original time plus 3 minutes, I could be out by nearly a minute either way due to the lack of a seconds display. Not only that, but I have to remember to note the time as soon as I put the piece into the fat and then watch the clock without getting distracted. If I were to use a kitchen timer, I would either have to deal with the imprecision of a mechanical one (not good for short periods) or fiddle around for nearly the full 3 minutes trying to set an electronic one – for every piece that I cook.
Thinking over this issue, I created a set of specifications for my own timer:
- Work in minutes only (I know the lower end of my 60-times-table well enough) – timer to run from 000-999 minutes
- Time set by a set of 3 BCD switches; the type under consideration has up/down buttons per digit.
- Time displayed on an array of 3, multiplexed, 7-segment LEDs
- Use decimal points of display to indicate position in minute (1 lit=15s, 2 lit=30s, 3 lit=45s); finer resolution not required for my type of cooking.
- Provide up/down count with audible alarm when down count reaches zero; count direction determined by a toggle switch
- Audible alarm to run only for a few seconds – digits should flash on alarm condition until stopped
- Pause/stop push-button pauses count on first press, on second press stops and resets count to values set by BCD switches. Clears alarm condition when pressed after end of countdown.
- Start button sets timer running, resets count and starts again if pressed when unit running. If unit is in end of count alarm condition, clears alarm, resets and starts running again.
- On/Off toggle switch isolates unit power
- Unit controlled by 8-bit microcontroller taking timing signal from 32768Hz crystal. (Probably use Atmel AT90S8535, since I've got one kicking around doing nothing)
- Unit runs from a 12V wall-wart; logic voltage is provided by an LM2576-5 'Simple Switcher' from National Semiconductor (I got a job lot off eBay recently).
This design would mean that I would only need to set the BCD switches to 003 and press start at the beginning of the process. Each time I put a new piece in the fryer, I would just have to press start again. Simple!
A couple of days ago, I spotted some Nixie tubes on eBay – 18 x ??-12 (IN-12 for those whose displays do not support the Cyrillic alphabet) tubes with sockets for an "I can't believe it's so cheap" price. I immediately bought them (before anyone else did) and only then had a look at the specification sheet. These units are only given a rated life of 7500 hours. For intermittent use, this is OK; however, I was going to be putting these into clocks – having the tubes burn out in less than a year makes them less than suitable for such an application. They still look to be nice tubes; socket mount simplifies PCB design considerably as I can just run a 0.01" ribbon cable from the board and split it up at the socket. I also like the profile of these top-reading tubes. What to do with them?
My kitchen timer once again drifted into my mind. Rather than messing around trying to drive 3 lots of 7 LED segments and all the lookup tables that involves (without using dedicated chips), I can just use a BCD to decimal decoder, 10 HV NPN transistors to connect them to the Nixie cathodes and 3 HV PNP to sit in the anode circuits to handle the muliplexing. Other than requiring a second power supply to provide the 170V B+ for the tubes, the design is no more complicated than the one using LEDs and out of LEDs and Nixie tubes, I know which I would rather have to look at.
The Story So Far
The tubes are somewhere between here and the Ukraine; I believe that I have all other parts to hand, although I may acquire a new 32768Hz crystal rather than using a cannibalised one. Software does not look to be too much of a challenge – switch debouncing is new to me so I may even cheat and see if I can find a keyboard scanner chip or somesuch that will do the job for me and can be interrogated via an I2C or SPI bus.