Two timezone network (NTP) clock

I’ve been looking for a two time zone clock that display my time zone (pacific) and GMT. A lot of Amateur Radio operators use GMT for logging. I built this network aware clock using an Arduino Pro mini, two Sparkfun 7-segment displays, a I2C RTC, and an ENC28J60 cheap Ethernet PCB.

There is an Arduino library Ethercard for the ENC28J60 with built-in API’s for DHCP, DNS, and NTP. The clock goes fetches the current time from an NIST NTP server, and updates the RTC every hour (perhaps too frequent). The display time is always derived from the RTC. With a backup battery in the RTC, this thing can go for days or weeks without a NTP update.

The ENC28J60 draws about 180ma. In total, the units draws about 200ma current.

The Sparkfun 7-Segment displays are based on ATMEGA328’s. This design could be simplified using one of those instead of the Arduino Pro Mini.

NTP Clock - New Page

2tz clock

Arduino clock with network time

This weekend’s project is to pull out a [cheap] ethernet board that utilizes a ENC28J60, and build an NTP client that can display the time on a Sparkfun I2C 7-segment display. This is a building block for a future project that will integrate two displays (one that shows local time and the second for GMT) and use an RTC in addition to NTP.

I purchased the ENC28J60 board from Aliexpress at least a year ago. Getting DHCP to work correctly was the hardest part of this project. I never got DHCP to work correctly; in the end I resorted to using a static IP. It appears that the ENC28J60 does not like DHCP served up across a vlan boundary. I use multiple vlans in my house, and a Cisco L3 switch provides DHCP. The DHCP client gets an IP, but the final DHCPACK seems to get lost on both sides. Maybe I’ll pursue this further someday.

arduino NTP clock