Time for something different – and perhaps the start of several new articles containing teardowns. In our first instalment we examine the Tektronix CFC250 100 MHz frequency counter circa 1994: Not the most spectacular of designs, but it has worked well right until the present day. The update speed of the display wasn’t lightning fast, however for the time it would have been quite reasonable. Here is a short video I shot last year comparing it against a small frequency counter kit:
However after staring at this thing every day on my desk for a couple of years it has now become impossible to overcome the temptation to have a look inside. Therefore the reason for this article. You can click on the images to see the full-size version. So let’s go back to 1988 and check out the CFC250…
A quick look around the outside. The casing is reminiscent of the Escort brand of test equipment from the era, and (I suspect that) they OEM’d the CFC250 for Tektronix. (Interestingly enough Agilent bought the assets of Escort in 2008). Moving forward, the external images of the CFC250 starting with the front:
… and the rear. The AC transformer is tapped out to accept four different mains voltages, which you can select with the slide switches:
Opening up the unit involves removing screws from the base. The first ones were only for the feet, so they could stay put:
It was the screw on the right of the foot that was the key to entry. After removing them from each side and the other pair on the rear-bottom, the top casing pulls off easily…
… leaving us with the internals for all to see:
Although the LED display is a fair giveaway to the age of the CFC250, a quick look around the PCB confirms it… and the display is ultimately controlled by an LSI Systems LS7031 “Six decade MOS up counter” (data sheet.pdf). It is matched to some DS75492N MOS-to-LED hex digit driver ICs (data sheet.pdf) and some other logic ICs. It is interesting to compare the number of parts required to drive the LEDs compared to a contemporary microcontroller and something like the TM1640 used in this module.
Now for the LED display board:
Nothing too out of the ordinary. A closer look at the rear panel shows some very neat AC mains wiring:
Now for some more close-ups. Here we can see the use of the MM5369 17-stage oscillator/divider (data sheet.pdf). I haven’t seen one of these for a while, the last time we used them was for a 60Hz timebase. However in this case it would be used to create an accurate timebase within which the CFC250 would count the number of incoming pulses:
The removal of two more screws allows removal of the main PCB from the base of the cabinet, which reveals as such:
There is also an opaque plastic sheet cut to fit, helping insulate the PCB from the rest of the world:
The PCB is single-sided and very easy to follow. I wonder if it was laid out by hand?
It reminds me of some old kits from the past decade. Moving forward, there is a metal shield around the PCB area of signal input and low-pass filter:
A quick desolder of three points allows removal of the shield, and reveals the following:
At the top-left of the above image reveals a resistor in a somewhat elevated position, as shown below:
If anyone can explain this one, please leave a comment below.
What impressed me the most during this teardown was the simple way in that the unit was designed – all through-hole parts, mechanical connections either soldered or nuts and bolts, and all components labelled. I can imagine that during the lifespan of the CFC250 it would have been relatively simple to repair. Such is the price of progress. And yes, it worked after putting it all back together again.
In the meanwhile, full-sized original images are available on flickr. I hope you found this article of interest. Coming soon we will have some more older-technology items to examine and some new tutorials as well.
Time to finish off the month with a fascinating kit review - the ogi lumen nixie tube system. The younger readers amongst us may be thinking “what is a nixie tube?” Here is an example of four in a row:
If you cast your mind back to before the time of LCDs, and before LEDs… to the mid-1950s. Nixie tubes were used to display data in various forms on electrical devices, from test equipment, scales, elevator indicators, possible doomsday machines, clocks – anything that required visual output would be a candidate. Although nixie tubes are now totally out of date, as with many things there is a growing trend to use them again, for cool retro-style, nostalgia and those people who enjoy living in the past.
How nixie tubes work is quite simple, an element is within a vacuum tube full of gas, such as neon. When a high-voltage (~190 volts DC) current flows through the element, it glows. For more information, here is a great explanation. You will note that they are similar to in look but different in design to the vacuum-fluorescent displays, as used in the ice tube clock reviewed a few months ago.
The tubes used in this kit are the Soviet model IN-12A:
The IN-12A tube can display the digits zero to nine, with a nice orange glow. For the uninitiated, sourcing and making nixie tubes can be quite difficult. Apart from procuring the tubes themselves, you need a suitable power supply and logic ICs that can handle the higher voltage to control the tubes. Thankfully Ogi Lumen have put together a system of kits to make using these nixie tubes simple and interesting.
There are three components to the system, the first being the power supply:
Note that the power supply is preassembled. This supply can generate the necessary 150 to 220 volts DC to energise our nixie tubes. Yes – up to 220 volts! For example:
However the current required is quite small – one power supply can handle up to twenty-four IN12A nixie tubes. My example in the photograph above is drawing 110~120 milliamps from a 12V DC supply. For those of you assembling these kits, please be careful. It can be easy to physically move the kit about whilst in operation, and touching the live HV pads will hurt a lot. After bumping the HV line on the PCB, my whole left arm went into a spasm and hurt for the time it took to see my doctor. So be careful.
The second item required is the driver kit. This is a board that takes care of the shift-registers and power for two of the nixie tubes. Driver kits can be slotted together to form a row of nixie tubes. The third and final item is the nixie duo kit. This contains two IN-12A tubes, matching sockets and a PCB to muont them. This PCB then slots into the driver kit PCB. You can buy the driver and duo kit as a set for a discount.
From a hardware perspective, assembling the kits is relatively simple. There isn’t any tricky soldering or SMD to worry about, however you will need a lot of solder. The contents of the duo and driver kits are as follows:
Before you start soldering, please download and take note of the instructional .pdf files available for the duo and driver board kits. Assembling the driver kit (on the right) is very straight forward. However – please read the instructions! An interesting part of note is the K155ИД1IC:
This is the Russian equivalent of the 74141. This is a BCD-decimal decoder IC that can handle the high voltages required for nixie tubes. When soldering the resistors, take care with R2 – it will need to be positioned horizontally so as to not rub against the duo board:
When it is time to assemble the duo board, you will need time and patience. At a first glance, one would imagine that the sockets drop into the PCB, and the nixie tubes will happily be seated into the sockets. This is not so, don’t solder in the sockets first! The pins on the bottom of the socket also form part of the socket for the tube legs – which can alter the positioning of the socket legs. Make sure you have the socket with pin 1 at the top of the PCB. After some trial and error, the best way to insert the tubes is to first partially place the sockets into the PCB:
… then fully insert the tubes into their sockets. Make sure the tube is the right way up – check that the digit 3 in the tube is the right way up. Then push the whole lot into the PCB. At this point you should check to make sure the sockets are in line with each other:
(Notice how thick the PCB is…) At which point you can solder them in, followed by the row of connector pins:
By this stage you will need some fresh air from all that soldering. The PCB holes for the socket pins really take a lot. Now you can connect the power supply to the driver board and give the tubes a test-toast:
All the tubes should have their elements glowing. This is a good start. The next step is to connect the appropriate microcontroller and start displaying. As noted in the instructions, the 74141 BCD-decimal ICs are controlled by standard 74HC595 shift-register ICs, so your microcontroller needs to send out a data, clock and latch line. My following examples have been created using the Ardiuno system and a compatible board.
/* Nixie tube demonstration code - function to display an integer
http://tronixstuff.com - John Boxall. February 2011.
Modifed sketch originally created by Lionel Haims, July 25, 2008. Released into the public domain. */
// include the library
// note the digital pins of the arduino that are connected to the nixie driver
#define dataPin 2 // data line or SER
#define clockPin 3 // clock pin or SCK
#define latchPin 4 // latch pin or RCK
// note the number of digits (nixie tubes) you have (buy more, you need more!)
#define numDigits 4
int narray[numDigits]; // holds the digits to display
// Create the Nixie object
// pass in the pin numbers in the correct order
Nixie nixie(dataPin, clockPin, latchPin);
nixie.clear(numDigits); // clear display
void nixNum(int z)
// displays integer 'z' on 4-digit nixie display
// keeps leading zero, as blank still flickers somewhat
narray=int(z/1000); // thousands value
narray=int(z/100); // hundreds value
narray=int(z/10); // tens value
narray=z-(narray*10); // ones value
nixie.writeArray( narray, numDigits);
for (int q=1234; q<10000; q++)
That was just an arbitrary demonstration to get some numbers displayed. Here is a short video clip of it in action:
Now for another, more useful example. By using a DS1307 real-time clock IC with the Arduino, we can make a nice clock that displays the time and date. For more information on using the DS1307 with Arduino, please visit this tutorial. You can download the example nixie clock .pde file from here. And finally, here is the clock in action:
The problem with these tubes is that you will never have enough. Already I have thought of a few things to make that require a lot more tubes, so in the next month or so stay tuned to tronixstuff.com as there will be more projects with these kits.
In conclusion, this was a great kit and anyone looking to use some numerical nixie tubes will do very well with the Ogi Lumen products. Furthermore the designs are released under Creative Commons by-sa-nc, and the files are available to download from the product pages. And finally, it is a lot of fun – people will generally ask you about the tubes as they may have never seen them before.
Have fun and keep checking into tronixstuff.com. Why not follow things on twitter, Google+, subscribe for email updates or RSS using the links on the right-hand column, or join our Google Group – dedicated to the projects and related items on this website. Sign up – it’s free, helpful to each other – and we can all learn something.
[Note - the kit assembled in this article was received from Ogi Lumen for review purposes]
Today we examine a kit that is simple to construct and an interesting educational tool – the Sparkfun Frequency Counter kit. This is a revised design from a kit originally released by nuxie1 (the same people who brought us the original function generator kit). As a frequency counter, it can effectively measure within the range of 1 to a claimed 6.5 MHz. Unfortunately the update speed and perhaps accuracy is limited by the speed of the microcontroller the kit is based upon – the Atmel ATmega328. Arduino fans will recognise this as the heart of many of their projects.
Interestingly enough the kit itself is a cut-down version of an Arduino Duemilanove-standard board, without the USB and power regulation hardware. The ATmega328 has the Arduino bootloader and the software (“sketch”) is open source (as is the whole kit) and easily modifiable. This means you can tinker away with your frequency counter and also use your kit as a barebones Arduino board with LCD display. More about this later.
This becomes more obvious when looking at the PCB:
It was a little disappointing to not find any power regulator or DC socket – you need to provide your own 5V supply. However Sparkfun have been “clever” enough to include a cable with JST plug and socket to allow you to feed the frequency counter from their function generator kit. In other words, buy both. Frankly they might as well just have produced a function generator with frequency counter kit all on one PCB. Anyhow, let’s get building.
The kit comes in a nice reusable stiff red cardboard box. One could probably mount the kit in this box if they felt like it. The components included are just enough to get by. The LCD is a standard 16 x 2 character HD44780-compatible display. (More on these here). It has a black on green colour scheme. You could always substitute your own if you wanted a different colour scheme:
An IC socket is not included. You will need to install one if you intend to reprogram the microcontroller with another Arduino board.
Assembly was quick and painless. I couldn’t find any actual step-by-step instructions on the internet (Sparkfun could learn a lot from adafruit in this regard) however the component values are printed on the PCB silk-screen; furthermore no mention of LCD connection, but the main PCB can serve as a ‘backpack’ and therefore the pins line up.
To make experimenting with this kit easier I soldered in some header pins to the LCD and matching socket to the main PCB; as well as adding pins for an FTDI cable (5V) to allow reprogramming direct from the Arduino IDE:
So there are in fact two ways to reprogram the microcontroller – either pull it out and insert into another Arduino board, or do it in-place with a 5V FTDI cable. Either way should be accessible for most enthusiasts. At this point one can put the screen and LCD together and have a test run. Find a nice smooth 5V DC power source (from an existing Arduino is fine), or perhaps plug it into USB via a 5V FTDI cable – and fire it up:
Well, that’s a start. The backlight is on and someone is home. The next step is to get some sort of idea of the measurement range, and compare the accuracy of the completed kit against that of a more professional frequency counter. For this exercise you can observer the kit and my Tek CFC-250 frequency counter measuring the same function generator output:
As you can see the update speed isn’t that lively, and there are some discrepancies as the frequencies move upward into the kHz range. Perhaps this would be an example of the limitations caused by the CPU speed. Next on the to-do list was to make the suggested connection between the function generator kit and the frequency counter. This is quite simple, you can solder the included JST socket into the function generator board, and solder the wires of the lead included with the frequency counter as such:
When doing so, be sure to take notice about which PCB hole is connected to which hole, the colours of the wire don’t match the assumed description on the function generator PCB. Furthermore, the voltage applied via the WAVE pin (the frequency source) should not fall outside of 0~+5V.
As mentioned earlier, this kit is basically a minimalist Arduino board, and this gives the user some scope with regards to modification of the software/sketch. Furthermore, the kit has been released under a Creative Commons by-sa license. So you can download the schematic, Arduino sketch and EAGLE files and create your own versions or updates. If doing so, don’t forget to attribute when necessary.
Overall, this was anther interesting and easy kit to assemble. It is ideal for beginners as there isn’t that much soldering, they end up with something relatively useful, and if you have a standard Arduino Uno or similar board you can upgrade the firmware yourself.
However as a standalone frequency counter, perhaps not the best choice. Think of this kit as an educational tool – involving soldering, Arduino programming and learning how frequency counters work. In this regard, the kit is well suited.
You can purchase the kit directly from Little Bird Electronics. As always, thank you for reading and I look forward to your comments and so on. Furthermore, don’t be shy in pointing out errors or places that could use improvement. Please subscribe using one of the methods at the top-right of this web page to receive updates on new posts. Or join our Google Group.
High resolution images are available on flickr.
[Note - The kit was purchased by myself personally and reviewed without notifying the manufacturer or retailer]
Otherwise, have fun, be good to each other – and make something!
In this tutorial we make electronic dice without using a microcontroller!
After publishing an article which described the design of an electronic die (dice), one of my twitter followers said that they made them in the past just with a 555 timer IC and a 4017 logic IC. A fair point, as one does sometimes get carried away with microcontrollers sometimes. Just to show that I haven’t lost touch, here is a basic rendition of the die project again but without any of that fancy microcontroller jibber-jabber. I will just present the schematic and demonstration, however if you want to make one on some protoboard, doing so should be quite simple.
First off, here is the schematic. I really should learn to use Eagle or somesuch, but a pen and paper is so much quicker:
Now what is happening here? I’m glad you asked. On the left we have a 555 timer in astable mode. For more information about 555 ICs, please visit our part review. When the user presses SW1, power is applied to the 555 and it merrily sends out pulses from pin 3. To increase the speed of the pulses, decrease the values for R1 and R2.
The pulses are received into IC2, a “4017 five-stage Johnson decade counter”. [data sheet] This is still a very old yet useful IC. It has ten output pins, Q0~Q9. Every time the 4017 receives a pulse, starting from power-on or a reset, starting from Q0 it sets an output pin to high (pins default to low). We have sourced LEDs D1~D6 from the first six output pins on our 4017. So when it receives the fast pulses from the 555, it quickly blinks the LEDs in order. When the user releases SW1, the pulses stop arriving from the 555, and the 4017 stops counting – and leaves the current pin HIGH so we can read the value. And here it is in real life:
The parts list:
- R1, R2 – 82k ohm resistors
- R3 – 1.8k ohm resistor
- C1, C3 – 100 nF polyester capacitors
- C2 – 10nF polyester capacitor
- D1~D6 – typical LEDs of your choice
- IC1 – 555 timer IC
- IC2 – 4017 CMOS counter IC
- SW1 – normally-open button
- 5 V power supply (use an LM7805 regulator if 5 V not available)
There are a few things to take note of if building this circuit. The 4017 IC is quite prone to static, so please take care. Furthermore, all unused output pins need to be connected to ground. (Yes, I missed that in the schematic for pin 9). And finally, you can only source 10mA per output pin, which explains the higher than usual value for R3.
Quick note: In the past we have discussed capacitors and their use for smoothing noise from DC current. The circuit above is a perfect example – the 4017 is quite susceptible to noise and will not count properly without C3 between 5V and GND.
Finally, in the spirit of this article, less is more. We could use another 555 in a monostable configuration to limit the running time of the astable 555 pulse-generating timer, but a human can do that with their digits. Furthermore, a reset button could be added onto the 4017, so that’s up to you. Finally, here it is in action:
So there. However you can now see the advantages of using a microcontroller. Each extra function or ‘trick’ created by a line or two of code with our new die could require an exponential amount of hardware, power consumption, board space and possibly a total redesign. However doing it ‘the old way’ is interesting and helps prototyping practice and troubleshooting.
But while we have all of these parts out, we’ll have a little more fun… let’s do it with an actual number being display, instead of a flurry of blinking LEDs. We still need the 555 timer to create our pulses, so that remains the same:
and here is the rest of the circuit:
So in this example, the 555 is sending out pulses on request via SW1. However this time, the 4518 BCD counter [data sheet] receives those pulses, counts them (from zero to nine then repeat) and converts the current value to binary-coded decimal. Next, the BCD value is sent over to the 4511 BCD to 7-segment driver IC [data sheet]. This IC converts reads the BCD and sets outputs that are suitable for driving 7-segment LED modules. These outputs are sent via 330 ohm resistors to protect the LED segments. Then finally, the digit zero to nine can be displayed on the LED unit.
With some trickery we could limit this display to the numbers 1~6, if you want to do that go for it. So in this case our ‘die’ has in fact 10 values. I’m sure there are some games that could make use of it. Anyhow, here it is in real life:
You may be wondering what happened to R3~R9. In this case I am using a DIP resistor array. This is just eight resistors in one package, which makes life easier.
The parts list:
- R1, R2 – 82k ohm resistors
- R3~R9 – 330 ohm resistors
- C1, 100 nF polyester capacitor
- C2 – 10nF polyester capacitor
- D1 – common-cathode 7-segment LED display
- IC1 - 555 timer IC
- IC2 – 4518 CMOS counter IC
- IC3 – 4511 BCD to 7-segment IC
- SW1 – normally-open button
- 5V power supply (use an LM7805 regulator if 5V not available)
And here it is in action:
You can now see why the Arduino and other microcontrollers have taken off in popularity. They really do lighten the load with regards to planning and hardware construction. However it is enjoyable to do things the old way sometimes, ergo this article. If you are interested in articles like this one that use digital electronics, please let me know via the Google Group and there will be more projects similar to this one, but in greater detail. One day I may even pull the finger out and make a TTL clock…
In the meanwhile have fun and keep checking into tronixstuff.com. Why not follow things on twitter, Google+, subscribe for email updates or RSS using the links on the right-hand column? And join our friendly Google Group – dedicated to the projects and related items on this website. Sign up – it’s free, helpful to each other – and we can all learn something.