book collections email follower instructable user
Picture of VFD Alarm Clock

IV-27M Alarm Clock

Project date: March 2019 – May 2019


After the successful completion of the XIV Nixie Clock which was Direct/Static Driven, I was keen to start work on a new clock which was based on the Multiplexing(Dynamic) or “MUX” principle of operation, known also as “Muxing”. The new clock would be based on the USSR manufactured IV-27V VFD, 13 element, 7 segment tube. This tube requires a 24V common anode DC supply, which dictates what type of IC chip(s) are needed to support the multiplexing operation. To further understand multiplexing the following Wikipedia articles where of great help:

To understand how VFD displays work and what is involved in driving the display using either Direct or Multiplexed driver the following article was very useful:

The clock would have a simple function of displaying Time, Date, Humidity, Temperature, Pressure and an Alarm feature..

Here is a brief summary of how the IV-27M tube works:

The tube is evacuated (vacuum). In the tube is a substrate (anode) (usually based on phosphorus), which begins to shine when "bombarded" with electrons.The electrons come from a heater (cathode), which are in the form of very thin tungsten wires. Between the substrate (anode) and the heater (cathode) a control grid is mounted which is used to turn on and off the individual elements. The tube used here consists of 13 seven-segment displays.

The tube was manufactured in Russia in 1985 and carries the Russian Quality production mark on the rear of the tube. Both tubes I purchased came from an Ebay supplier "nixiestore" who I would highly recommend.

Step 1: Pin Assignment of IV-27M

Cathode Heater Voltage

It is very important to use 3.5V. There have been some references to using 5V on the internet. While this could be used it will over-heat the grid heaters. To see this in operation view the IV-27M tube, while it is working, in a darkened room, the two heater lines can clearly be seen glowing red!


The first part of the project was to determine the pinouts on the IV-27M tube. There are Russian language-based datasheets and numerous Internet based descriptions of the left and right pinouts. Looking at the tube with the digits facing you, the left hand end has 15 pins and the right hand end has 11 pins. I simply soldered coloured 30 Gauge wires to both ends terminating in Dupont breadboard pins. Six of the left hand wires and one of the right hand wires had black heat shrink bands added to each end in order to differentiate them from the other solid colour wires.

The above chart details the 15 pin connections on the left hand end of the tube, and the 11 pins connections on the right hand end of the tube. Note that pins 1 and 2 on the right hand side are not used, pins 4 and 5 also on the right hand side are for the heater.To help wire up the correct tube wire to the appropriate MAX6921AWI connection I have added these connection details in brackets alongside the coloured wire for each of the pin connections.

input_de3 months ago
It's a very fin project. I'v somone done with Arduino Nano and other Driverchips. So I have a IV-18 from Russia. Can I use this for this clock?
input_de input_de2 months ago
Thx for your answer. So I will do changes, maybe in a few times.
ChristineNZ (author)  input_de2 months ago
The Maxium 6921 chip would work with this 8 segment tube, however the software would need to be modified to support 8 grids rather than the 12 it currently uses, plus the tribe's inputs would need to be identified and then remapped to the chips outputs, but otherwise it would work.
droopy11793 months ago
Guess the 24V goes to Vbb of the MAX6921. It's missing from your schematic. Nice project!
beanhauler3 months ago
Excellent article and good write up
shantia63 months ago
Thanks for this great video
Nookster3 months ago
eburman3 months ago
Note: Code does not compile using the DS3231 library that the Arduino library manager links to. Rather, I found that this library from Henning Karlsen does compile. For more details see Instructables This library at least does compile but I don't know if it's the same one used by the author so I cannot confirm that it will be fully compatible with this project. Hopefully ChristineNZ will confirm. By the way I find that one of the most frustrating issues with these projects is trying to source all the libraries that people use. It sure would be helpful to provide links to the non-standard libraries that are essential to get the code running. Otherwise, this is a fantastic project! Very creative. I've got several of these VFD tubes so I'm very glad that you took the time to share this.
ChristineNZ (author)  eburman3 months ago
Hi, thanks for the comment regarding driver libraries, something that I have not included in my project details, I will ensure that I do include links to any non-standard driver libraries I use from now on. The DS3231 driver can be found at: I think I am using Version 1.0.2
Hi. Thanks for looking into this. I'm using the Arduino v1.8.9 IDE. The library manager does include the DS3231.h library that you used. There are two versions and I tried both but neither will compile with your code. Oddly the library that I found and mentioned above seems to work well in your code and it does compile with that. But, since it's not the library that you used I can't be sure it will work as intended. Maybe there's something else wrong on my end. Also I googled the SparkFunBME280.h library and downloaded a library that came up. Hopefully it's the same one you used.
ChristineNZ (author)  eburman3 months ago
Hi, I am also using Arduino v1.8.9 IDE, I use DS3231 with a standard RTC module purchased off Trade Me, Listing #: 2183390247, not sure why it does not compile, is it the driver line 27, or another line in the program?
I haven't actually tried programming the hardware yet. I'm just checking for errors using verify. It hitches up on line 28 where the SDA and SCL pins are assigned. I get the error message "no matching function for call to 'DS3231::DS3231(const unit8_t&, const unit8_t&)." There are a multitude of other error messages all related to the DS32331 RTC library. It's helpful to know that it works on your system. That implies that the problem is on my end. Maybe I have another conflicting library? I did try making a new Arduino library folder which contains only the essential libraries. That pretty much rules out the possibility of a conflicting library. But the same problem persists. I guess I'll just have to keep working through it.
Great tutorial! Tnx!
millerjr3 months ago
I really enjoyed this instructable! Thank you for including so much detail of the analysis you used while developing this. It really helped me follow along with the development of the project.