Building a binary clock

Okay, so this has absolutely nothing to do with the GIMP. However, I thought others may find my binary clock design interesting.

I have been a computer geek ever since I laid hands on one. I got hooked in the fifth grade when my dad taught me AppleSoft BASIC. A couple of years later, I found a book on 6502 assembly language programming. I did not have an assembler, but I found that with careful planning and some math, I could POKE my assembly language subroutines into the computer and run them. (Needless to say, I wrote very tiny subroutines!) I was intrigued that I could control a computer at such a low level. I was especially fascinated by binary numbers. I am not sure why I was drawn to them, but I just thought they were cool. In fact, I thought that the coolest thing to have would be a clock that displayed the time in binary.

Fast forward to 2001. I was reading an article on how digital clocks work and read the statement, "What you have at this point is a 'second hand' for your clock, with the output of the second hand appearing in binary. If you would like to create a clock that displays the time in binary, then you are set!" This rekindled my interest in aquiring a binary clock.

Unfortunately, ThinkGeek was not selling binary clocks yet, and while ElectronicsUSA.com and HobbyTron both sold "binary" clock kits that you can buy fully assembled, they are BCD clocks—not binary. The only place I found that offered fully assembled real binary clocks was ESP Technology. These clocks looked nice, could be ordered with any color LEDs and orientation, and were priced quite reasonably. Unfortunately, they appear to no longer be in business, as they never responded to any of the email inquiries I sent. Thus, if I wanted a binary clock, I would have to design and build it myself. The only problem was that I knew nothing of electronics, so I bought an electronics learning lab from Radio Shack and taught myself.

Binary clock gallery

Want to see pretty pictures of binary clocks? Visit my gallery of binary clocks built by myself and others.

Circuit description

The circuit schematic is shown below. Click on the picture for a full size image (1842x1384 pixels).

binary clock schematic diagram

The circuit can be divided into four major areas:

  1. 5V power supply
  2. 1Hz clock generator
  3. Hours/minutes/seconds display
  4. Setting the time

5V power supply

Ref Part Name
B1 bridge rectifier
C1-C2 470uF electrolytic capacitor
IC1 7805 +5 volt regulator

5V power supply schematic diagram

This is a typical regulated 5-volt power supply, so there is not much to explain. AC input is connected via JP1. I am using a 9VAC transformer as the power source. Specifically, I am using a 9VAC 500mA wall transformer (Jameco part #100061). For my first clock, I used what I had lying around, which happened to be a 9VAC 1000mA transformer off a US Robotics 56K modem. I think that ended up on the clock I gave to my brother. For reasons explained later, I used big capacitors here, but smaller capacitors (220uF for C1 and 10uF for C2) will also work.

1Hz clock generator

Ref Part Name
D1 1N750-type 4.7V Zener diode
IC2 74HC14N Hex inverting Schmitt trigger
IC3 4082N dual 4-input AND gate
V1 74393N dual 4-bit (0-15) ripple counter
R18 1k resistor

1Hz clock generator schematic diagram

I use the 60Hz AC sine wave as my time base. (The AC input is shown coming from the left.) A Schmitt trigger converts the waveform into a square wave. The Schmitt trigger also does an excellent job of filtering out any noise from the AC signal, and the design needed a minimum of wiring and only two extra components: a 4.7V Zener diode and a 1K resistor.

To generate a 1Hz signal, I divide the 60Hz signal down by a factor of 60 using a 74393N dual 4-bit counter. The two halves of the chip are wired together, creating an 8-bit counter. When the counter reaches 60 (111100 in binary), a 4-input AND gate resets it to 0. This reset signal is used as the 1Hz clock signal (shown exiting out the top of the diagram).

If you have 50Hz AC where you live, it should be a trivial task to modify this circuit to divide by 50 (110010 in binary). Basically, pin 4 of V1 should go to pins 4 and 5 on IC3.

I chose a 4082N chip for the 4-input AND gate. I chose this part because it was readily available to me. However, if you do not have access to a 4082N chip, you should be able to use a 74LS21 chip instead. It has a different pinout than the 4082N, but it should work fine.

Some people have asked why I did not use a 32K clock crystal. There were several reasons. First, I was new to electronics, and using the AC as the time base was a simpler design for me to understand. (Another plus was that it used the exact same divide circuit as the seconds and minutes counters.) Second, it required fewer parts. Third, the other clock designs I was using for reference (the HowStuffWorks.com article and Mike Harrison's nixie tube clock) were using the AC, which gave me a warm fuzzy that the design would work.

Hours/minutes/seconds display

Ref Part Name
IC4 4082N dual 4-input AND gate
LED1-LED6 LED
V2 74393N dual 4-bit (0-15) ripple counter
R1-R6 resistor for LED

Hours/minutes/seconds display schematic diagram

The logic for the seconds and minutes displays is the same as the 1Hz clock generator. It divides its input by 60. The only difference is that it also displays its state on six LEDs.

To simplify the design, my binary clock is a 24-hour clock. Therefore, the hours display divides its input by 24 (11000 in binary). The 4-input AND gate needs to be wired slightly differently to do this. Also, only five LEDs are needed to display the hour.

Setting the time

Ref Part Name
D2 1N4148-type diode
R19 10k resistor

schematic diagram for setting the time

To set the time, I use the 1Hz time base to drive the hours and minutes counters at a higher frequency. The 1Hz time base is connected to the middle pin of JP2, which is connected to off-board pushbutton switches. The output of the "minutes" switch is connected to pin 1, and the output of the "hours" switch is connected to pin 3. (Note that if JP2 is accidentally wired backwards, the worst that will happen is that the switches will have reversed meanings.)

A 1N4148 diode is placed between the switch and the previous display counter to avoid resetting the display counter. (Otherwise, setting the hours would also clear the minutes display.) A 10k resistor is also placed between the switch and ground to prevent human body capacitance from inducing electrical noise into the counter.

Suggestions for modifications

In retrospect, I should have added a decoupling capacitor to each chip. In some electrical environments, when there is a large current draw on the board (when a lot of LEDs are lit), the counters will occasionally skip.

Binary clock kit?

While checking my site statistics, I noticed that a lot of people find this page by searching for "binary clock kit." I have also been contacted by many people looking to buy a binary clock kit.

Though there does seem to be interest in binary clock kits, I have decided not to sell binary clock kits. However, I do plan to sell printed circuit boards in the future.

You can order the parts directly from Jameco. Here is the parts list. Note that Jameco sells some items in bundles. For example, capacitors are sold in multiples of 10, and resistors are sold in bags of 100. Even so, your order total for all the parts would be around $17 plus $6-8 shipping.

Ref Jameco P/N Order Quantity Part Name
B1 178124 1 unit bridge rectifier
C1-C2 30497 10 unit (sold in 10) 220uF 25V electrolytic capacitor
C3-C9 151116 10 unit (sold in 10) 0.1uF 50V decoupling capacitor for each chip
D1 179039 10 unit (sold in 10) 1N5230B 4.7V Zener diode 0.5W
D2-D3 36038 10 unit (sold in 10) 1N4148 diode
IC1 51262 1 unit 7805T 5V 1A volt regulator
IC2 251045 1 unit 74HC14 hex inverting Schmitt trigger
IC3-IC4 676123 2 unit CD4082 dual 4-input AND gate
LED1-LED17 253745 20 unit (sold in 10) red 5mm LED 2.2V 10mA 3.5mcd [1]
Q1 38375 10 unit (sold in 10) 2N3906 transistor [2]
R1-R17 31165 1 bag of 100 470 ohm 1/4W 5% resistor [3]
R18 29663 1 bag of 100 1K 1/4W 5% resistor
R19-R20 29911 1 bag of 100 10K 1/4W 5% resistor
V1-V4 45874 4 unit 74HC393 dual 4-bit binary counter
  100061 1 unit 9VAC 500mA transformer [4]

Notes:

  1. You may want to use different color LEDs for hours, minutes, and seconds (for example, green for hours, yellow for minutes, and red for seconds). If so, make sure you get diffuse LEDs (as opposed to clear ones). For my third binary clock, I got the clear ones because I liked how they looked. However, I did not consider that their narrow viewing angle means you have to stand directly in front of the clock to read it—not to the side, and not from above. It also means that my binary clock can project the time onto a wall from several feet away!
  2. The purpose of the transistor in my design is to flash the LEDs at 60Hz. It is therefore decorative and is not required if you are only breadboarding your clock. (In fact, my first binary clock didn't blink the LEDs at all.)
  3. R1-R17 are the current limiting resistors for the LEDs. Use whatever value you like. For example, the LED I chose is a 2.2V @ 10mA diffused red LED, so you can safely use a resistor as small as 330 ohms at 5V, but that would probably be too bright. A larger resistor would make the LED dimmer. A 1k resistor on the above LED is pretty dim, but is still be bright enough to see in normal room lighting. A 470 ohm resistor should make the LED plenty bright.
  4. You may also want to get a DC connector so you will not have to wire the transformer directly into your circuit.
  5. You will need switches to set the time! Different people prefer different switches. Some people like magnetic reed switches; some people like panel-mount pushbutton switches; I like PCB-mount pushbutton switches (for example, Jameco #122972 or #137189).

If you plan to solder your clock, you will need some interconnects. (Note that this will cost an additional $10-11.)

Jameco P/N Order Quantity Part Name
526192 10 unit (sold in 10) 14-pin IC socket
108337 10 unit (sold in 10) 1x2 male header
109575 10 unit (sold in 10) 1x3 male header
100811 10 unit (sold in 10) 1x2 connector housing
157382 10 unit (sold in 10) 1x3 connector housing
100765 20 unit (sold in 10) female crimp pin (you will not need this many, but buy extra!)

If you have built a binary clock, please contact me to send me a picture!