A Simple NTP Clock DisplayPosted: May 22, 2012
First off, I haven’t been blogging for a long time. I am so busy at SATV that I haven’t even had time to play computer games. I got to finish a small project this month; it is rare for me to finish nearly anything, so I’m very happy.
This is an SNTP display clock. For years I have wanted a clock display for SATV. You’ve probably seen the big clocks, analog and digital, in many broadcast facilities. All of these clocks are kept in sync with a common timekeeping server. At WHDH-TV some years ago, I saw these throughout all the corridors of the station.
Nowadays, NTP is widely deployed and would be the perfect solution. Except for one thing: The displays have been very expensive; I got a quote from one vendor of NTP displays of $1,000 per each display. That wasn’t going to happen.
It is galling, especially when GPS-based NTP servers are readily available and very inexpensive; I set up SATV with an NTP server that I plan to write about. The cost was less than $200 for the GPS and the assorted interconnecting hardware!
But we still don’t have a display.
I’d been exploring various microcontroller dev boards for years when a friend came across the #Twatch:
#Twatch, Courtesy of Dangerous Prototypes.
The #Twatch is a common LCD display that connects via Ethernet to Twitter and retrieves the 10 most popular hashtags trending at any given moment. While I’m on Twitter myself, I couldn’t see myself using it; my friend got an extra unit and suggested, strongly, that I might want it. I had an idea.
I reprogrammed my #Twatch to be a very basic SNTP display. The Microchip controller on the board has very limited configuration memory and the lifespan of the program memory is limited to 100 flashes or so. The most basic display I could get without configuration would be one that would display UTC—no time zones could be configured—and that would also use the default worldwide NTP server pool at pool.ntp.org.
(I could not use my own NTP server that I set up a year ago for just this kind of project, but this would still be very acceptable for a human-readable display; my Nook Tablet does the same thing.)
You can see the result at the top of this post.
I also had more work to do. The original #Twatch also had an emulation mode for the popular Matrix Orbital LCD displays that overclockers and hackers often use with their PC’s. I had to preserve that, and also make it easy for my SBS machine to send alerts to the display.
I wrote a PowerShell module to interface to the display. That task was surprisingly involved. I had to re-learn PowerShell modules, learn C (which I had never used before—my experience went from Basic, Fortran and Pascal and skipped over C to Java and C#), learn about a microcontroller I may or may not use again, and write a PDF manual!
Here’s a video:
The #Twatch is out of production, unfortunately, but I still learned much from the project. This is the first embedded microcontroller project I have ever finished after years of collecting dev boards—but this won’t be my last! I expect to make more SNTP clocks.
I posted a more detailed explanation of my code on the Dangerous Prototypes #Twatch forum.
Ian gave me a nice hat tip! Thanks!
Since the #Twatch is out of production, I have been looking at alternatives to recommend. Guido Socher built an NTP clock from a AVR webserver board that’s very similar, except his is configurable. He’s selling a kit as well.
Perhaps now I can get back to writing about SBS. Or games.