I have decided to build a 7 Segment Display Binary Clock to add to my clock collection. I built a Binary Clock many years ago from logic gates using my master clock as a time base.
See animation below.
While LEDs are good for showing binary they have a drawback when there are loads of zeroes displayed as the display does not look very good and is impossible to read from a distance or in poor light.
I am going to build my new clock with 3 rows of 8 0.56" 7 segment displays. These display are each driven by a MAX2719 and only need 5 wires including 5v & 0v to each display.
The time will be derived from the DCF77 radio time transmitter.
I have built the basic code and wired up the displays and can display the time in binary as per pic below.
Before I fully commit to the clock design I would be grateful for any comments/suggestions, ideas or examples from anyone who has built this sort of clock.
Riva:
You don't need bit 5 in the hours display so maybe you could use that to display radio module seconds heartbeat and valid/invalid data?
And there's all those decimal points available. I'm sure they could be used for something interesting. Perhaps you could have them chase left to right and back again, like the front of the car from Knight Rider.
There are 8 7 segment displays per row, I have only used 6 per row. I want to keep the 6th segment on the hour display even though it is always 0 as it keeps the display balanced. I did the same on the older LED clock as well.
Maybe I could disconnect the decimal point LEDs and wire the O/P from the MAX2719 to separate LEDs in the case for heartbeat/status indicators?
That way they will dim with the main display under control of the MAX2719. I will look at the PCB design and see if it can be hacked.
KenF:
And there's all those decimal points available. I'm sure they could be used for something interesting. Perhaps you could have them chase left to right and back again, like the front of the car from Knight Rider.
And if you invert the top display, you can have its decimals on the periphery.
I cannot see why you cannot use the decimals as they are - or indeed some of the otherwise unused segments in the side digits. You can mask them into different indicator shapes.
CrossRoads:
Re: the decimal points - if you use no-decode mode and create your own font, then you can manipulate the decimal points to your hearts content.
Decode or no-decode mode is actually irrelevant. Bit 7 controls the decimal point in all cases.
Nope, not glued - soldered to perfboard. Ok, electric glue 8)
No-decode mode - I don't think I ever used decode mode, just no-decode. OR in a 1 in bit 7 to set it, AND in a 0 to clear it, then send the updated byte to the MAX7219:
byte7 = byte7 & 0b01111111; //clear bit 7, leave rest alone
byte7 = byte7 | 0b10000000; // set bit 7, leave rest alone
digitalWrite (ssPin, LOW);
SPI.transfer(byte7address); // register address
SPI.transfer (byte7); // new data
digitalWrite (ssPin, HIGH);
Maybe it's done differently with a library; I don't use any for the MAX7219 because they don't use the hardware SPI to talk to the MAX7219. I've only seen bit-bang libraries.
Could make them do a follow the leader kind of thing across the digits; across one row, back across the next, then back across the first again. Maybe three on at a time, the next one in line turns on and the last one turns off:
...
...
...
...
...
...
..
.
.
..
...
...
...
...
...
...
kind of thing, alto I think I have the row transition a little off.
Sorry everyone. Missed your replies as I had notifications turned off. Should be fixed now.
A quick catchup.
I am using 7 segment displays rather than LEDs as zero on an LED is blank. This makes it hard to read a clock from a distance or in dim light with loads of 0s. I found this out on my old binary clock (top pic).
eg the 2 rows below show the same binary number.
The LED row (top) is hard to read as the zeroes don't show up so there is no reference for their position
1000100
The bottom row is easy to read as zeroes are not blank but are real zeroes.
Yes it is a bit of a waste of 2 displays but they come pre built with PCB and MAX2719 for a few quid.
The decimal points or other unused segments can be wired off the PCB to other LEDs as required for indicators. I have used this before to power an LCD back-light in the same circuit so the MAX2719 dims or blanks the LCD display along with the 7 segment displays.
I have lashed up the displays in a glass case for now just to get the feel of it. Nothing is fixed in place and the base and top are just soft wood cut and matt black painted.
I can use this to experiment with the layout.
Experimental case
I am thinking about going the whole hog and adding a binary date display to the clock. The displays with smaller 7 segment displays PCB and MAX2719 are a third of the price of 0.56" ones so I have ordered 3.
I have added the code already and have mocked up in photoshop what it would look like with all 6 displays.
The large display is the time and the smaller red display is the date from top to bottom in UK date format eg 04/05/14 or 4th May 2014. I have used 7 of the 8 7 segment displays on each row as the year row can go up to 99. Again this just keeps the display balanced.
I still need to add indicator LEDs or maybe an indicator LCD panel.
Would it have just been simpler/cleaner to use bigger 8mm or 10mm LED's in the original design?
Or use bi colour LED's so one colour is a 1 bit and the other a 0 bit.
Or use a WS2801 with the original design and have bright/dim LED's for 1/0 bits.
I think on the original design (prob around 25 to 30 years ago) maybe a dim LED for zero would have worked. I could have biased the driver on depending on light levels so zeroes could always be seen.
I did think of using Bi colour LEDs at the time but it would have been too confusing and would have required extra display wiring.
These days 7 segment modules with MAX2719s come pre-built so I class them as single integrated components.
My old clock required 18 display components the new one just has 3 or 6 if I display the date and only requires 5 wires including power looping in and out of each module.
The old one took quite a few days to wire and construct the new 1 was a couple of hour to get to it's present build level.
I think I like seeing binary as real 1s and 0s rather than just symbols.
I have decided not to use the 3 extra 7 segment display modules for the date but display it on the time display by pressing a date/time toggle switch.
The display will now show Time normally
and then when the date/time switch is pressed the display will switch to date mode
I have used all 8 7 segment displays in date mode as I need to show 99 in the year row.
Date above reads from top row to bottom row 28/02/09 (UK date format) or 28th Feb 2009.
Nice job, but I'm not totally sold on the binary idea. There are 10 kinds of people, those that like binary and those that don't. I've still not decided which 110010% I belong to.
That is the main problem with binary clocks they are never going to be practical or easy to read.
I think binary clocks just look good because the display compared to any other clock is so dynamic with large parts of the display changing regularly.
Maybe they are a clock to watch rather than read?
Here is my latest attempt at a case. The pic is a bit distorted as it was taken with my mobile(the base is not that large).
The LCD display is only legible from a few feet so from a distance only the binary display is visible. The binary time can easily be read from 20ft (6m).
I think the top needs to be thicker as it makes the clock look too tall.................