The worst trait of a pessimist is his profound belief of him being a realist.

Posts from: December '16

Nixie clock

If you're following my blog, you must have noticed that I like writing about ideas and projects which I develop from the drawing board to the finished product. This is a similar story, but this time it's about a real thing on the market, and this post is a behind-the-scenes of its creation. So - let's dive in!

The idea

It all started from a thread in HardwareBG. I was a huge fan of the nixie tubes even before that:


These indicators were manufactured in huge quantities during the sixties and seventies, until LEDs made them obsolete shortly after. In this post you'll understand part of the reasons for that.

Determined to make my own nixie clock, I joined forces with other similar-minded people, went to a local electronics shop which happened to have 4 tubes Mullard ZM1080 in stock and bought them.

First tests

At first glance, the nixie tube is a glass bulb, which contains about ten naked conductors; the impression from a working one is somewhere in-between an incandescent light bulb and a neon sign. Its Bulgarian name - "gas discharge indicators" - hint at their true nature: the air from the bulb is drawn out (like in a vacuum tube), and there's partial pressure of neon (and other helping gasses). The voltage between the terminals is too low to cause the familiar luminescence and you get glow discharge in characteristic yellow-amber colour, surrounding the negative cathode[1] (in this case we have 10 cathodes: naked wires, shaped like digits). The similarity with incandescent bulb is illusory - the nixie tubes don't emit any significant heat.

Besides the cathodes, the bulb contains a single anode (a positively-charged eclosing grid, which needs to be 160-180 volts more positive than the cathodes). In order to display a specific digit, you need to connect the anode to a high-voltage supply, and ground the respecitve cathode. If the high-voltage supply is just right, you'll get a pleasant lit digit:



In practice it's necessary to limit the current through the nixie tube, as otherwise it may burn out. This necessitates the 10k resistors you'll see in the schematics below. Gather 6 nixie tubes in a row, and you can make a digital nixie clock.

The need to provide high voltage is a mild nuisance[2], which takes some googling to resolve. I found out how to make a HV supply out of a 555, MOSFET and an inductor, and after soldering it I went on to think how to multiplex the nixie display.


What does multiplexing mean in this case? (advanced readers: you may skip the following explanations)
If two computers needed to communicate, and for some reason only light signalling was available, that wouldn't be much of a problem. One of them would have a light emitter, e.g. a LED, and the other would posses a light detector, e.g. a photodiode. With the use of a suitable serial interface that blinks the LED, the communication is all set. However, if a computer needs to communicate with a human ... nooo, a single LED is far from sufficient. You'd need tens and hundreds of light-emitting elements, of various shapes and arrangements... you, dear reader, are probably seeing these words displayed on an arrangement of such kind having at least half a million pixels.

And the problem is that when a computer processor needs to command a complex of light-emitting elements, their large number always complicates the design. Let's visualize this with 6 nixie tubes:


What we have here is a microcontroller with 60 commandable "grounding" pins (open drain outputs). We can light up any digit on any lamp.

There a couple of issues with that design, the smaller of them being that we'd need a MCU with at least 60 pins and 60 PCB traces, which would be a pain to route. The bigger issue is that such a MCU doesn't exist because of the high-voltage tolerance requirement - most MCUs these days employ low-voltage semiconductor processes, and can rarely withstand more than 20 volts, and most commonly the limit is even lower at 5.5V. And we're dealing with 160V... If you wired a normal MCU here, it would blow up immediately.

This necessitates the use of HV-capable transistors (e.g., BS108), which you command via TTL outputs of the MCU:


Now that's one ugly schematic: the number of PCB traces increased threefold, and just placing the transistors would require soldering 180 joints. Including the MCU and nixie tubes that's more than 300. Soldering such a PCB would be an incredibly dull and cumbersome deal.

To our rescue we can notice that the scheme above grants a lot of freedom on which digits we can light up, and most of that isn't terribly useful. For example, we can light both cathodes "2" and "6" in a single nixie tube, which would work, but would just look ... strange. What we really want from one indicator is to show any of the digits 0-9, or nothing at all. These 11 options can be conveniently encoded into 4 bits, which are decoded by a specialized IC like 74141:


74141 is a really useful chip[3]: the four inputs (labeled A, B, C, D) accept a binary number between 0 and 15. Each of the ten outputs (Q0-Q9) is the open collector of a high-voltage transistor inside. If you choose a number in 0..9 (e.g., you put 5 volts on C, and 0 volts on A, B, and D), the decoder will interpret the number ("4") and connect the respective output ("Q4") to ground. Input codes 10-15 are interpreted as empty - the nixie tube is unlit.

Using 6 pcs of 74141 (or their Soviet counterparts, К155ИД1), the number of solder joints decreases to 198 in total, the MCU needs only 24 I/O pins and the design looks more approproate. We haven't multiplexed anything yet, though.

Let's divide the nixie tubes into two groups of 3: odd and even. We'll put a diverting element on the anodes, which commands which group is active:


If the switch S1 lets the HV supply to the odd group only, we have a complete control over lamps #1, 3 and 5: the decoders command the cathodes of lamps 1+2, 3+4 and 5+6, respectively, but the even-numbered won't lit up as they lack anode voltage. If we want to show "18:33:40" on the display, we send "1", "3" and "4" to the decoders and the actual display would be "1_:3_:4_".
After that we switch S1 to supply the even group and simultaneously send "8", "3" and "0" to the decoders: the display would show "_8:_3:_0":

As you can see, if you switch between the two options fast enough, a human won't notice the flicker and would assume the display shows "18:33:40" with half of the normal brightness.

In fact, we can multiplex even more! 6 can be divided by 3:


Of course we can do a full multiplexing, too:


Are there any in drawbacks here? For one, the brightness diminishes: at full multiplexing it is just one-sixth of the nominal. Of course, we can compensate that by increasing the nixie tube voltage, but this puts the nixies into tougher operation[4].
Another issue is that whatever you gain by simplifying the low-side drivers (at the cathodes) you lose back by complicating the high-side drivers (at the anodes). It's actually worse, since the switch S1 requires discrete transistors - two per group - there isn't a convenient IC like 74141 for the high-side drive. A balance has to be made; look at this comparison table:


The 2x3 and 3x2 options seemed the best. To help me decide between the two I knocked up a quick prototype to check what % duty cycle looks OK as brightness when the lamps are supplied with 160 volts. Here's how it looked like:


The potentiometer serves to select the PWM duty cycle


The warm glow of the display technology of the sixties (the background features 5,760,001 pcs of the display technology of the new millenium - credits to espr1t)

In the end I chose the 2x3 scheme: 50% max brightness and three decoders were required in total.


So after that I was ready to transfer the high-voltage supply and the commanding logic to a PCB[5][6].

This was the first revision (v1.00):


First tests of the multiplexing in operation

As I wanted the PCBs to be compact, I used the "two-storey" design from the battery level meter. The bottom PCB holds the HV circuit, the MCU, buttons and the timer chip. The top board has the nixie tubes, the decoders and the odd/even switch (S1).

I was also quickly introduced to the struggle of finding nixie tubes: I had 4 pcs only. For a complete clock you need six; luckily, Private from the HardwareBG boards had some, and practically gave away 2 of them so the set was completed:


v1.00 with six nixie tubes

Try guessing which ones are Private's :)

v1.00 was soon abandoned, as I definitely haven't provisioned enough space between the pairs of bulbs. I also bought these russian guys:




In comparison...

The prolem here was that their pins were at the bottom, while the display part was at the top; i.e., they required to be mounted on a vertical piece of PCB, in order to be compatible with the ZM1080 design. The solution was to place them on a small slotket boards, like this:


The main board has holes for both the ZM1080, as well as a 12-pin connector to the slotkets:



Let's see whether that works:



... with 6 nixies

Up next was to put something to act as the colons separating the pairs of digits. There are some glim bulbs specially made for that, but I was able to find these: MTX-90. They aren't meant to be used for indication (they are a semiconductor device), but had pretty much the same colour and intensity, and the size was good, so I added them here:



Front view

During this time, the PCBs went through two revisions: 1.01 had a bunch of fixes to bugs, improper element layouts and pinouts... v1.02 saw the PCBs enlarged to their proper dimensions and the capability to host both types of nixie tubes. Revision 1.03 carried only minor fixes.


The bottom board also had a lot going on:

First prototypes

Alas, the functionality of the clock was there. Next task was making it more safe. Even though the two PCBs were just fine laid out one above the other, the design is not solid and also exposes a bunch of wires and conductors that carry the high voltage, so it was unsafe. Instead of looking for a suitably sized box and later on wondering how to cut the necessary holes, the isolation was achieved with suitably cut acryllic sheets:


The Z573M modification

My first idea was to use steel fasteners between the four surfaces, as shown above. What I didn't like was how the shiny metal contrasted with the otherwise black design, so I tried oxidizing them with acid to turn them black. However, the resulting effect (as above) wasn't looking too good, as it was more like genuine rust, and not really black:



Plan B: let's put a simple stud, affix it with several nuts at the end, and hide it behind plastic round spacers. Sadly, I needed some oddly uncommon lengths, and the only supplier that had them in white:



This worked, but I still wanted black and turned to ebay. There I found a length of black nylon tubing with the suitable inner diameter. You just need to cut it to lengths required. The spacers fabricated in this manner had two tell-tale signs of their origin: the labels, and the inherent curvature. And while the label paint is soluble in alcohol, straightening the pieces is all but impossible. Try finding it here:


The cutting of studs and spacers was an arduous and boring job:

Thus I finally made two complete clocks: one per each nixie tube type. As I suspected others could want to solder one themselves using the same design, we (including the colleagues) decided to create a soldering kit.

Series production

The first job was to accumulate some more serious quantities of nixie tubes and 74141 decoders, as they are no longer manufactured and are rare finds (new old stock). Their prices also fluctuate quite a bit. Looking through dozens of online shops, local offers, repair forums and various bulgarian and russian websites, at some point I had more than 100 nixies of various types and state:


Part of the collection...


This pack of ИН-12s said it was manufactured in March 1984...

The decoders proved more difficult to find, but luckily I was able to find a guy from Bulgaria, which apparently had some amount stocked; even better, the ones he had were practically new:


As both the nixie tubes and the 74141s are very old and, for that reason, unreliable, I had to devise a way to test them en masse. For the lamps I just repurposed the HV board from the first prototype, added an aligator clip for the anode and a DMM probe for the cathodes. With that arrangement you can quickly test all digits.
The decoders were more complicated and I made the following contraption:

It's a very simple scheme which is powered through the button and quickly tests out all outputs of the decoder.

Statistics from the tests was that most NOS components (miraclously) worked. The defective lamps tended to be completely gone, I haven't yet met a partially working one. The decoders are the reverse, and the bad ones tended to have only one faulty output, while the others worked fine. But in the end they also went to the trash bin.

The huge assortiment of elements of various sources led me to categorize and bin them into the following boxes:


Up next was packaging. The soldering kit isn't very big and after some short search through my computer junkyard I was able to find the following suitable box from a video card:


I measured its dimensions and went to a cardboard box manufacturer, where we had to find a template with similar dimensions. In theory, they can create a template speicifcally tailored to your requirements. But that was an expensive deal, so we went to choose a template that some other client had used for his own boxes and was quite similar to ours. The cardboard is cut there and you get a pack of 50-100 unfolded sheets:


which you need to fold afterwards into boxes. Here's how a populated box looks like:


Packaging the insides wasn't anything hard, as only the nixie tubes require special care, in the form of cardboard or bubble-wrap. For the resistors, transistors and the like, we used just some regular zip-lock slips[9]. The last thing was to figure out how to place ICs and sockets. When you get them from the electronic shop, they pack them in a tube, or a on a styrofoam pad. It turns out that Dynacord (an audio systems suppler) has some styrofoam sheets which they sell by the square meter and is quite cheap (it's used for soundproofing though, so our purpose is totally different). The big sheets are easily cut with an office knife into the smaller pads that were required.

After a while I became highly proficient in "aligning the Tetris", wasting less and less amounts of the material:


This is my masterpiece :)

And thus the first bigger batch was manufactured:


The labels:


As the production grew, it became harder and harder to keep track of all items, so, to that end (and to help us with the other products as well) I created a small internal system to account it all and automate generation of PDFs with barcodes and delivery-and-acceptance forms:


Up next was getting some well written documentation - an integral part of any "solder it yourself" kit. The long doc was heavily helped with corrections and clarifications by Alex, and thus the Assembly and User Manual was born.

Release was drawing near and I engaged in making a small webpage, showcasing the product, and I needed some promo materials. I didn't have much experience in product photography, but after some reading I knocked up a lightbox from spare sheets I had lying around and now I had the beautiful white background:



With a touch of post-processing

The set-up looked like this:



... one goes to great lengths in framing everything right ...

An important aspect here is the lighting. The CFLs emit a cool daylight, 6500K. This contrasts a lot with the normal warm-white 2700K lights I had everywhere else in the apartment; however when you apply the white balance for 2700K, the colour of the nixie cathodes turns into an unpleasant cold and violet hue.

With the pictures ready, I went on to see how those big, flashy full-screen websites are made (yes, the appearance is key here). Turns out that is simple - using Supersized I created a minimalistic page to showcase the product.

Up next was distribution and sales. To that end, our friends from Robotev jumped in, we agreed on terms and prices, I brought one batch to their office and the product entered their catalogue. We were up to wait for the first sales.

In order to prop up the popularity of this otherwise unknown product, I did two things; first of them being to spend my Google AdWords credit I was given as a present years ago.

While it is trivial to make a Google Ads campaign, targeting the right customers is tricky. If your keywords are the reasonably specific ones (nixie clock, gas-discharge lamps, nixie clock), then the visitors are really a tiny trickle.
Google was offering the keyword "clock", all by itself. I followed that advice, but it turned out to be a bad one - this stole away from the huge traffic of people looking for wrist watches. In that case, people were just not looking for this, and although the impressions increased a lot, the click-through rate fell dramatically. Soon I abandoned the campaign, it was definitely not heling.

The other thing which proved more successful is to give one demonstrational clock for display in Robotev's office. Do you remember the nice ZM1080 nixie tubes from the first prototype? Well, they ended up here:


Finished kits

Even though most of our clients wanted to solder the kits themselves, it turned out there's some interest into ready-made ones. I went to the packaging company again to look for bigger boxes:


The company's cat was giving me advice

The white colour of the boxes made it possible to create larger and flashier labels:


To support the product (on a tip from Robotev) I put up a forum. Also, I continued to try new elements and ideas. Here's one clock I crafted specifically for the round anniversary of a good friend of mine, this time using the ИНС-1 indicators for colon separators:


And another one, which I used to experiment with a different colour scheme:



This is not a clock - this is a decimal-to-binary converter :)


What did I learn:

The future:

  1. We need to find a way to export this kit from Bulgaria, since the market for these very geekish products here is very tiny. By the way, if somebody would like to cater for selling these over ebay - please contact me;
  2. Add a PIR sensor, so the wakeup from the screensaver happens on movement too, not just on loud noise;
  3. Tranfer the code to AVR, since it's definitely the platform for DIY enthusiasts, and most people have experience (and programmers) for that;
  4. Throw in a GPS for automatic time sync;
  5. and much more...

As with any other big project, this one could be expanded more ad infinitum. However, this post got overly long already, so I have to wrap it up. Congrats to all who reached here:) I must pay my HUGE thanks to the dozens of people which helped me to get traction with this project and turn it into reality. I won't enumerate them, the list is long - you guys know who you are! Thanks for helping my dream come true!

Posted in category Hardware -- clock 11 Dec 2016, 06:43, 3 comments




Open source


+ 2008 (9)
March '08 (2)
April '08 (2)
May '08 (2)
October '08 (1)
December '08 (2)
+ 2009 (8)
January '09 (2)
March '09 (1)
August '09 (2)
September '09 (1)
November '09 (1)
December '09 (1)
+ 2010 (9)
January '10 (1)
April '10 (2)
June '10 (1)
July '10 (1)
September '10 (1)
November '10 (1)
December '10 (2)
+ 2011 (9)
January '11 (3)
February '11 (1)
August '11 (2)
September '11 (1)
October '11 (2)
+ 2012 (14)
January '12 (3)
March '12 (1)
April '12 (2)
May '12 (3)
August '12 (1)
September '12 (1)
November '12 (1)
December '12 (2)
+ 2013 (1)
March '13 (1)
+ 2014 (3)
September '14 (3)
+ 2015 (5)
January '15 (1)
March '15 (3)
May '15 (1)
+ 2016 (4)
June '16 (1)
July '16 (1)
November '16 (1)
December '16 (1)

Last comments:

30 Jun 2024, 05:46 by Damion
23 Jun 2024, 18:01 by anrieff
21 Jan 2020, 09:01 by anrieff
20 Jan 2020, 11:38 by Владо
30 May 2017, 02:02 by anrieff
26 May 2017, 01:00 by Mathew

Valid XHTML 1.0 Strict


linkJoel on Software
linkRidiculous Fish
linkXKCD blag