Introduction: Mid Century Modern Nixie Clock

About: Team of high school students, retired engineers and even beauty models. We enjoy DIY, and have very big plans, to bring you the best from our ideas and plans.

Foreword: First of all, I'd like to thank you all, who voted, commented and favorited this instructable. 16K views and over 150 favorites shows that you really liked it and I'm very grateful for that. I also would like to thank people, who translated it to their native language and posted on their own websites. However, as it turns out and as I was told by instructables staff member, "Views, favorites, and even votes have no bearing on finalist selection." which is quite sad and distracting, so even while this instructable was #2 in "Trash to treasure" contest by views and favorites, it did not even make to finalist and did not win. As I believe, such approach from instructables staff will have severe impact on future development of this site, and personally I do not plan to keep working on further firmware development or hardware improvements for this instructable. Sorry and thanks for understanding.

This is not your another Nixie clock, it is quite different from all that being posted on instructables, both visually – no steampunk, please, electronically – no dreaded SN74141, shift registers or other ancient ICs. And even more, full source code is provided and it is based on BASIC programming language!

Below you can read a little intro about this clock, how I came to this idea, how parts were sourced and so on. If you just want to build it, you can safely skip this and go to next step.

A friend of mine asked for a Nixie clock for his birthday. I checked instructables and internet in general, and as some author says, Nixie clocks are «plagued» with steampunk style – all these dangling wires, exposed boards and other oddities are maybe cool, but friend just wants to have a Nixie clock which will just look like a clock, no strings attached. I've checked internet, to find out, how «real», factory made Nixie clocks do look, but I was not able to find any. I was only able to find this clock by Longines: It definitely looked cool, but my friend was already poisoned by instructables, he liked design from these two instructables: and , but asked me to «rewind a bit» and make it more in 50s style, without falling into dreaded steampunk design. So here it is, and as you can see, my design is loosely based on them. However, I decided to do everything from the scratch – including design, circuit schematics and even software. Furthermore, I'm making source code available for free, so anyone can modify it and expand or change functionality according to his needs. Software is written in PicBasic Pro, and you can download free trial of compiler from, in case you want to tinker with code by yourself, or just flash included HEX files – no programming skills are required.

And in addition, a bit about "Instructables" logo. Initially, my idea was to put my friend's name on it, but after seeing draft, he refused, saying " - I'm too young to be embellished into metal and stone yet" :D So his idea was to put "Instructables" logo instead, to show our appreciation to this amazing website. :)

P.S. This particular clock is not for sale, it was birthday gift, and no way I can sell it. However, due to popular demand, I've asked a friend to host it on his Etsy homepage (Click this link) - I have some extra nixie tubes available, so can make 3 more of such clocks. Please note, I'm not an established manufacturer, so it may take up to 1 month for me to make them. Thanks for understanding.

Step 1: Bill of Materials and Tools Used

OK, so now I have plans and idea how to do things, but what about parts? I needed Nixie tubes and some high quality wood for casing. So I went to local flea market, sometimes, very weird and strange things do pop up there. There were some offers for used Russian IN-4, IN-14, IN-16 and even IN-18 tubes, but my eye caught this beauty – Czech Tesla made impulse counter (integrator IT2), which used East Germany made ZM-560 Nixie tubes. The seller was asking only $30 for whole impulse counter, which was absurdly cheap, but there was a good reason behind it, as it turned out, counter was already salvaged, so no electronics left inside, besides Nixie tubes and power transformer. Since I don't needed counter cabinet and transformer, we settled down on $20 for 9 Nixie tubes with sockets. Alternatively, you can use Tesla ZM-1020 tubes or Soviet IN-4 tubes – clock design allows this, just you will need to modify drawings for front panel and chassis for each tube type.

Next, I needed some fine wood, and here we have issues with that – common hardware stores only have pine, oak and other, less luxurious woods, and fine woods, properly aged and dried are rarity (and expensive!). But I was lucky again, I've spotted this beautiful microscope on flea market too – it has beautiful mahogany wood case, and badge said that it was manufactured in 1936, so wood should become very dry and machining-friendly. Since microscope also was salvaged for parts and thus, not working properly, seller agreed to sell it, including it's box, for another $20. I really liked it, because it is made of solid brass and has some mechanical parts which I might re-use in another projects. So I bought it to my workshop, along with Nixie tubes and started working. Box was carefully taken apart, to recover as much usable wood as possible, and I've cut apart, using lathe, microscope tube, to make brass inserts for clock's face. I even took red plexiglass insert from frequency counter, and re-used it for clock front panel insert. (as it turned out, one box wood was not enough, because I've built 4 different prototypes, before settling on the final design, so I had to go and buy another microscope box - you might notice that feet and front panel are made from different piece of wood, they slightly differ in color).

List of materials I've used:

1. 18mm plywood sheet (can use any other thickness or other wood material)

2. Some nice wood for front and back panel (I've used mahogany)

3. Dark red plexiglass sheet, 3mm thickness (smoked glass color will also work fine)

4. M3 screws and rods

5. M3 brass standoffs (I've used 20mm long ones, you can use different ones, it depends of material thickness you've used for clock cabinet).

6. Plexiglass, fiberglass or any other rigid material sheet, which will serve as clock's "mainframe'

7. Retro style speaker cloth – I've used beige, but you can choose any color you found pleasing and matching your wood color too.

8. Wood glue

9. Epoxy glue

10. Wood wax, Danish oil, lacquer or any other wood coating (depending on your taste)

11. Brass tubing with 1mm wall thickness and 35mm diameter. Or just round brass earrings

12. Clear silicone glue

Optional materials, in case if you decide to replicate "Instructables" logo and badge:

1. 0.8mm thick brass sheet, approximately 80x20 mm for logo and 75x45mm for the badge.

2. FolkArt Copper acrylic paint

3. Rotary tool with felt tip and polishing compound (I've used ABRO wheel polishing mix)

As you can see, above list does not shows quantities or dimensions. This is because there is not much of materials needed. I've used some scrap materials remaining from previous projects, and speaking about dimensions again, You won't need any material in size bigger than 20x30cm (A4 sheet size).

Electronics components:

RFT ZM560 or Tesla ZM1020 or IN-4 Nixie tubes – 4 pcs

Matching sockets for these Nixie tubes – 4 pcs

PIC16F1519 or PIC16F887 microcontroller – 1 pcs

DIP-40 socket – 1 pcs

DS1302 clock module – 1 pcs

MPSA42 transistors - 30 pcs (MJE13001 will also work fine)

10K 1/8W resistors – 32 pcs

4.7K 1/8W resistor - 1 pc

1K 1/8W resistor - 2 pcs

Panel mounted push button – 1 pcs

100x70mm PCB – 1 pcs (you can even use proto board)

Nixie high voltage power supply - 1 pcs

12V 0.5A power supply – 1 pcs

AC cord with plug – 1 pcs

Optional electronics components:

DS18B20 temperature sensor – 1 pcs

Buzzer – 1 pcs

1N4002 diode – 1 pcs

XS8 Aviation plug and socket – 1 set


Of course you will need screwdriver, soldering iron, saw, pliers, wire cutters and other tools, typical workshop should have. So below I will list only this task specific tools, which you might not have readily available at hands.

1. Programmer for PIC microcontrollers. Almost any will work, PicKit 2, PicKit 3, MicroBrn – any of them supporting PIC16F1519 microcontroller, will work. They are cheap, and can be bought off ebay for less than $10.

2. Although all wooden parts can be manufactured using band saw and handheld router, usage of CNC is highly recommended. Sure, it won't be wise to buy or make it for just this purpose, but if you can, I suggest you to outsource front and rear panel manufacturing to properly equipped facility.

3. You will also need lathe, if you decide to make brass inserts by yourself, but you can simply buy brass earrings of needed diameter.

Step 2: Clock Firmware and Source Code

The firmware for clock works in the following way:

During startup, it checks whenever button is pressed. If button is pressed, then clock enters into «debug & refresh» mode, where it enables each segment of each digit sequentially, so you can test your Nixie tube wiring and also use this code to «refresh» tubes, if not all segments lit up properly. Leave this code for couple of hours and tubes should recover. To exit this code, cycle the clock power.

If no button was pressed during startup, the clock displays alternating «1» and «2» in all digits 5 times. During this time, you can press button to enter adjustment menu. If you don't, clock will go into standard, time display mode.

If you entered the config menu, it works in the following way – press button to set the year, to advance, you have to release and press it again, keeping it pressed won't help. After you've set the proper year, just release button and leave it for about 2 seconds – dots will blink, showing that now clock is in month setting mode. Again, set the month by pressing the button, release it and keep released until dots flash and you enter date set mode. Repeat it for hours and minutes, too.

After set-up is finished, clock enters standard time display mode. During that time, if you press button, clock will first show year, then month and date and then return to time display. I have not implemented any further functionality yet, but of course, more features will be added, like setting 12/24 hour mode, screen dimming during night time, alarm and temperature measurement functions, fine RTC calibration and so on. Since some folks prefer 12 hour display, instead of 24 hour display, I've compiled two versions of firmware, so you can directly flash one you need.

If you want to make your own modifications to clock's firmware, I'm including fully commented source code as well, so you can tweak it as much as you need it.

Step 3: Electronics

Clock circuit is quite simple and is based on PIC16F1519 or PIC16F887 micro-controller. Technically, it can be compiled for any other Microchip PIC16 controller in DIP40 package, which has same pinout and also uses internal oscillator. For timekeeping, DS1302 module is being used. You can upgrade to DS3231 module if desired, but of course, you'll need to modify the source code for that. I've also included DS18B20 sensor for temperature measurement and buzzer for alarm function, but these functions currently are not implemented in software, I'm working on code right now.

Nixie cathodes are direct driven, using MPSA42 transistors (30 cascades total). Each transistor drives own cathode, no multiplexing, shift registers, special IC and so on. While this might appear a bit complex, it has two features which gives this clock major edge over competitors. 1. Since direct drive is used, there are no zener diodes for clamping cathodes, as in SN74141 chip, so there are no blue dots, which means more worn and used nixies still can be used. 2. Using direct drive allows for some unique display effects, which simply are not possible using another driving methods.

There are two orange LED's used as time separator. If you want, you can replace them with neon bulbs (Just will need to wire them to high voltage rail and increase resistor from 1K to 1M), and I initially was planning to use them, but all Russian neon tubes which I bought off ebay for that purpose, were too dim when powered from 170V, so I used LED's instead.

PCB is approximately 100x70mm in size and uses all thru-hole components, no SMD or other, tiny or fragile parts. As you can see, all tube connections are routed to PCB sides and PCB has clear marking, showing which group of cathodes where to be connected (A - tens of hours, B - ones of hours, C - tens of minutes, D - ones of minutes). This was done in such way, because in initial design, I had another PCB on top of main PCB, which housed IN-14 Nixies, so clock would have typical nixie clock design. But since that design was abandoned, new Nixie tubes were directly connected to main PCB. Please note: You might have to mirror PCB image, depending on the method of PCB manufacturing.

I decided to use factory made high voltage converter for nixie anode power supply – this is much simpler and safer way to get desired voltages. You can use any available, or make your own – that is not critical. Just search ebay for "Nixie tube power supply". I've used UC3845 based one, but you can pick up another, say MC34063A based.

To power things up, I'm using some cheap 12V 0.5A power supply. Of course, you can use one with higher output current and voltage, but I suggest not to use weaker one. Any DC power supply, capable of delivering 12-15 volts with at least 0.5A of output current will be just fine.


First, I started with tube socket wiring. To make things easier, I decided to use same color wire for same digit on each tube – red wires for anode, blue wires for digit "3" and so on. This will make things lot more easier later. After that, I've started building the main PCB. As you can see, on that build I have not installed thermometer and buzzer, since my friend don't needed it, but my debug prototype do has them, so code support should be available shortly. If you don't need alarm or temperature meter functions, simply don't install these parts. Also, pay attention to your DS1302 module, some come with male plug, some come with female socket, you will need to solder the appropriate side on your PCB. If you don't plan to use ICSP, or plan to program micro-controller in another programmer, you can skip installing this header too. In that case, you can also skip diode installation and solder a jumper instead of it.

For the DS1302 modules, they usually come in two variations, one with rechargeable battery and one without. I suggest to use one with rechargeable battery, so you won't have to take clock apart and replace the battery.

Anode resistors are installed on separate PCB, I used piece of protoboard there. Resistance of these resistors adjusts brightness of Nixie, but don't install too low value resistors (below 10k), brightness only will increase slightly, but tube life will be considerably reduced. As from my personal experience, 33k is good for RFT tubes. For Tesla and Soviet tubes you will need lower resistance resistors, in 10-22k range.

High voltage supply.

You have to adjust it to deliver at least 150 volts. Please note, high voltage can be lethal, so observe all precautions when working with high voltage. You might need to increase voltage to 170 or even 180 volt in case if your tubes are old or worn out. For example, my RFT and Soviet tubes were fine with 150 volts, but Tesla's required at least 170 volts, to light up all segments properly.

Installing power supply and HV converter.

I've used some brackets and protoboard pieces, along with nylon standoffs, to mount things together. If you have no experience with AC wiring, I strongly suggest you to use external 12VDC power supply, so you won't have to deal with AC circuitry, which can be very dangerous and lethal, if not handled properly.

First run.

After all parts are soldered, wires connected and MCU programmed, there's time for first run. Either press and hold button on startup, or solder a jumper instead of it and start looking at display. The clock will enter into segment test mode, so all digits will show all possible numbers in the sequence. If wiring is correct, then this sequence will look like this:

0 1 2 – first digit (tens of hours)

0 1 2 3 4 5 6 7 8 9 – 2nd digit (ones of hours)

0 1 2 3 4 5 – 3rd digit (tens of minutes)

0 1 2 3 4 5 6 7 8 9 – 4th digit (ones of minutes)

Dot - two middle dots

Please note, during first run, all segments might lit up, or some random digits come on. This is normal, and after check-up cycle completes, all extra digits should go off. If not, then check your wiring.

If it is not following this sequence or some digits are not showing up, re-check your wiring, most likely you're having some issues with it. In case if some digits light up only half, or are very dim, don't worry – just allow this code to run for hour or so – many old tubes need "refresh" after long time of no use. If that does not helps, try to increase anode voltage a bit, maybe in 10 volt steps, not more.

Please note, during first run, all segments might lit up, or some random digits come on. This is normal, and after check-up cycle completes, all extra digits should go off. If not, then check your wiring.

As you can see, some parts on finished PCB are not installed, this is because my friend did not wanted alarm or temperature sensor functionality, so these parts were not installed. Also, if you plan to not update your clock firmware, you can also skip installation of ICSP header. 7805 IC can be replaced with 78L05 or 78M05 if desired – current consumption is really low.

Step 4: Woodworking and Inserts

Clock case is made from pre-cut and glued plywood sheets, which are covered with retro style speaker cloth. Front and rear panels are cut out from wood and plexiglass sheet. Another plexiglass sheet serves as "chassis" for nixie tube sockets and PCBs. Location and alignment of internal components are not critical, you can re-arrange them whatever way you like.

I've cut out clock body parts from plywood sheet, and glued them together with wooden glue. After it all dried, case was sanded from outside, using 600 grit sandpaper, to smooth surfaces and remove glue residue. As I said above, in parts description, you can use plywood or wood material of any thickness, but total thickness of assembled frame should be about 80mm, to fully accommodate both PCB, mounting frame and have adequate space for Nixie tube installation. Also please note, one plywood panel, one that goes to front side, is different from others – it has cutouts in shape of mainframe, so it can be installed from the front.

After body assembly was completed, cloth was glued around it, but used epoxy to fix it on clock body. The reason is that I wanted cloth to be stretched finely, so it won't move. To achieve this, I did the gluing process in the following way: Glued one edge of cloth to body from below side, let it dry for 24 hours. Stretched it around, and while holding it stretched, glued with 5 minute quick dry epoxy glue. After it dried, I've glued front and rear sides with wooden glue, as I did in my previous instructable about DIY Bluetooth speaker.

Front and rear panel are CNC cut from the mahogany wood, but you can use any hardwood you like – walnut, sapele, beech, all will look just great. As description says, you can use different types of Nixie tubes within this design, but since all of them have different outer side, you will need to expand holes in front panel, to fit Tesla or Soviet Nixies. You will also need different "chassis" to mount tube sockets on it, but since Tesla and RFT nixie tubes use same sockets, included chassis design can be used for both, but you will need to modify it for IN-4.

When assembling the clock, you will need to glue hex standoffs with epoxy at the areas marked on the picture. If you don't do so, once clock is assembled and you need to take it apart for whatever reason it is, you won't be able to do so – standoff will unscrew, and you won't be able to separate panels apart.


It is cut from the same wood as clock front and rear inserts. Small piece of wood has one plane sanded at about 30 degrees, so it gives clock main body tilted look. Picture with hinges comes from development prototype - I was using it to determine best viewing angle for nixies, which is approximately 30 degrees. Of course, you can install such hinges (I've got them from old laptop), but I think, they won't add any coolness to this design.

Front panel insert.

The front panel insert was CNC cut from the red plexiglass sheet I've got from that impulse counter. The brass inserts for it were cut using lathe, from microscope lens tube. After cutting, I've slightly polished them and coated with nitrocellulose lacquer before gluing to insert. I did this to avoid oxidation, since after time, brass will darken and won't look so cool, and it will be impossible to polish it, when glued. Actually, this microscope looks so cool, because brass parts are already covered by lacquer, which protects them from dark spots and oxidation. I've used transparent silicone glue to glue the insert to front panel.

Rear side.

As you can see, rear insert is made from acrylic sheets of different colors. I just don't had enough red acrylic, so cut it from material I had at hands. You can go with any kind of acrylic for it, or just make it plain wood – it is on rear, so no one will see. For the same purpose, you can use cheaper M3 screws, ones I've used are gold plated and are remnants from previous, "audiophile-grade" project.

I've placed a 4 pin mini socket on rear side for software update needs. In most cases, you won't need it, so there's no need to install it. This means, you now can have button on top, and use existing hole to wire AC cord.

Step 5: Instructables Logo and Nameplate

Instructables logo was CNC manufactured from 0.8mm thick brass sheet. I've designed it based on 60's design ideas, based on so called "refrigerator fonts", and one of my main source of inspiration was this "Starlite JETRA TRN-60C" radio, which I've found on Pinterest. The logo is made in the following way: I draw design in Corel Draw, exported as PDF, imported to Roland Engrave Studio (software for my CNC) and machined it. After, I polished it using Dremel with felt wheel and polishing compound. After that, I've cleaned it with alcohol, and covered with FolkArt copper acrylic paint. Let it dry for a day, and then, scrape paint over letters gently with fingernail, so it remains only in cutouts. After finishing, I've baked it in hot air oven at 250C for 1 hour. Paint fuses to brass and becomes solid – logo is ready. Initially, I wanted to use fusible glass paint on it, but it did not went in the proper way - no matter how hard I try, after drying it will become brittle and chip off, as you can see on 3rd photo. Nameplate is made from similar brass sheet, but no painting jobs this time – just engraving. Both were glued to their locations using epoxy glue.

Step 6: List of Included Files With Drawings and Circuitry

This instructable comes with additional files, which you will need to download and use, to assemble this clock. These files are:

parts.pdf - contains all mechanical outline and drawings in vector format, 1:1 scale, with additional text notes regarding machining and finishing.

pcb.jpg - PCB picture, in case you will make it using laser transfer method.

circuit.jpg - Circuit schematics, to assist you during assembly.

pcb.lay6 - PCB design source file in Sprint Layout format.

circuit.spl7 - Circuit schematics in Splan7 format.

1519-12hr.hex - firmware for 12 hour time display for PIC16F1519 Chip

1519-24hr.hex - firmware for 24 hour time display for PIC16F1519 Chip

887-12hr.hex - firmware for 12 hour time display for PIC16F887 Chip
887-24hr.hex - firmware for 24 hour time display for PIC16F887 Chip

pcb.gbr - PCB drawing in gerber format

sourcecode.pbp - Source code in PicBasic Pro 3.0 format for PIC16F1519 chip

sourcecode887.pbp - Source code in PicBasic Pro 3.0 format for PIC16F887 chip

pcb.drl - PCB hole drilling map

stencil.bmp - PCB image, mirrored and rotated, with no extra traces, so you can print and transfer it using laser transfer technology.

Step 7: Final Words, Changelog, Odds and Outtakes.

We hope you will like our nixie clock, it took us more than 4 months to design, program and build it. Also, we'd like to thank community at - without your help guys, this project would not be possible!

Please let us know your opinion and suggestions, this is very important for us. Have fun and be active!

29.03.2019 - PCB design had been updated, removed unnecessary holes and adjusted distances for more engraver-friendly design. New layout PCB manufactured and tested.

04.04.2019 - Minor bug in firmware fixed, causing sometimes clock to not "tick" after you set time (it will "tick" if you set time again, but this update fixes that bug).

15.04.2019 - Firmware for PIC16F887 chip is now available, along with the source code. PCB drawing updated, instructable text updated and some less significant errors in description corrected.

25.04.2019 - Fixed bug in 12 hour display mode, when digits were going off.

I'm adding more pictures here, showing some odds, intermediate design ideas and prototypes - maybe you will get some inspiration from them also.

Trash to Treasure

Participated in the
Trash to Treasure