Wall World Clock with NTP sync using DMD and Etherten

The Dot Matrix Display (DMD) is a 32x16 array of high-brightness LEDs for visually striking effects. [Product Page]
Post Reply
victorhooi
Posts:16
Joined:Thu Mar 06, 2014 4:00 pm
Wall World Clock with NTP sync using DMD and Etherten

Post by victorhooi » Thu Mar 06, 2014 5:05 pm

Hi,

I'm looking at making a wall world clock display using the DMD module.

So something like (these are made up times):

Code: Select all

Sydney            20:00:01                  London         08:00:01                      New York            14:00:01
So I have static text (city names), combined with a clock which updates at least once per second.

I'm guessing I can take the example:

https://github.com/freetronics/DMD/blob ... eadout.pde

and adapt it so it actually reads the time in - I don't have my DMD yet, but that program only seems to print out static numbers, right?

So I'd need to get it to read in the time, and also do the timezone conversion. Also, I'd need to add seconds, as well as the static text for city names.

Any ideas on how to do this, and/or or caveats I should be wary of here?

Also, the device would also check it's time regularly with NTP, so I guess I'd need to also run a NTP client off the EtherTen - any thoughts on how I might achieve this? It needs to be backgrounded, somehow, right?

I should also mention I bought one of those real-time clock modules.

Cheers,
Victor

User avatar
stryker
Posts:282
Joined:Sat Jan 14, 2012 2:44 pm

Re: Wall World Clock with NTP sync using DMD and Etherten

Post by stryker » Thu Mar 06, 2014 10:03 pm

Hi

What you're wanting to do is certainly possible. Though first thing that strikes me is if you're only using one DMD you won't have enough real-estate on it for a static text for the city and anything else. The smallest font that is in the libraries provided with the DMD is 5 pixels wide and 7 tall. The DMD itself is 32 wide and 16 tall, so you've only got 6 characters wide and two tall to work with. It's possible you could construct a smaller font, but then you're compromising the ability to view it from a distance, or read it legibly.

If you're only going to use one DMD, then perhaps a ticker that rolls through with the current time constructed on it could be a working compromise. Or perhaps alternating between showing city then time.

Your call to the NTP to update the RTC won't need to be terribly frequent, so once a day in the middle of the night would probably not ruin the effect terribly. There's no way to actually run something in the background on an Arduino, so the idea is to switch between different tasks as quickly as you can. How quickly is your NTP update? If it causes an issue it would be possible if you were using something like a Raspberry Pi or other small embedded computer to be the brains of the operation. An Arduino could take care of the displaying of your ticker, while the Pi would feed it the data (as an example).

Just some ideas, hope some of this helps.

Cheers !
Geoff

victorhooi
Posts:16
Joined:Thu Mar 06, 2014 4:00 pm

Re: Wall World Clock with NTP sync using DMD and Etherten

Post by victorhooi » Fri Mar 07, 2014 3:51 am

Hi Geoff,

Good point about the real-estate.

I only bought a single DMD to begin with - but the plan is, if I can get this working, I'll be purchasing extra ones, and daisy-chaining them :D.

So for the actual printing of the time, assuming I'm using this:

http://www.freetronics.com/collections/ ... rtc-module

and that I want to do HH:MM:SS - I can ise"

Code: Select all

rtc.readTime(&time);
// Some code to print the city name, followed by the time (HH:MM:SS)
delay(500);
and run the above in the loop, right?

(Not sure about the delay - but I'm thinking if I use delay(1000), there's a chance my seconds may be off, since I assume the code takes more than 0 milliseconds to run. Thoughts?)

And when I have multiple DMDs, I can simply link them up via cable, then address the whole thing as a larger array.

Hmm, also, sorry if this a basic question - but from the above loop, how should I yield to the routine that updates the time via NTP?

Can I just have some kind "if time == ..." in the loop, or is there a smarter way?

Cheers,
Victor

aevertett
Posts:2
Joined:Tue Jun 24, 2014 2:12 pm

Re: Wall World Clock with NTP sync using DMD and Etherten

Post by aevertett » Fri Jun 27, 2014 9:29 am

I would suggest that you do not actually need to perform an NTP update at a specific time, such as midnight. It will be far easier just to insert a delay for a specific amount of time, perform the NTP update and then perform a delay again.

The actual NTP algorithm specifies a standard update rate of 64 seconds. However, if microsecond accuracy is not of great concern, you can extend this.

You may find the following web sites useful:
http://www.satsignal.eu/ntp/Raspberry-Pi-NTP.html
http://www.timetoolsglobal.com/

AE.

Post Reply