Networked clocks: Nano + Ethernet + RTC + OLED

I'm considered an use case with several clocks...

  • Nano for low power consumption
  • Either a 128x32 or 128x64 OLED display for wide angle readability and low power consumption.
  • Ethernet for periodic syncing of time to external public reference
  • Ethernet for syncing displayed time zone between units

Ethernet would be provided by a W5100/5500.

One unit would have the capability to set a time zone. The other units would use TCP client/server to query the time zone to be display on a periodic basis.

Being new to Arduino, just wondering is anything jumped out as a bad idea with the proposed architecture.

Thanks,

Allan.

It will actually be much easier to use WiFi with ESP8266 modules such as the WeMOS D1 Mini.

Ethernet is only required for security and reliability and requires expensive cabling and network switches.

Are those tiny displays really going to be useful?

I had considered wifi instead of ethernet, however my understanding is that wifi uses a lot of power. Though looking at it again, it appears the wifi can be powered down, so perhaps a solution would be to power it up on say an hourly basis for syncing (not worried about RTC drift, but rather the user experience with the time zone change propagation delay).

Agreed the OLED displays are small. The 1.2" segment clock displays would preferable. But again, I was concerned over power consumption. Perhaps I need to construct a prototype and perform some real life measurements.

Thanks,

Allan.

So do Ethernet chips! But you did not mention a requirement for operation from battery power! :astonished:

I suppose if you have Ethernet you could have PoE, but this begins to get expensive!

For battery power, you would have to use an LCD display, and put the processor to sleep when not in use. But a Nano has too many auxiliary circuits that consume power in sleep. A Pro Mini can be modified to run without those power draining features.

What comes to mind, is ESP32 but programming it is not for the faint of heart.

Those chips, from memory, draw about 150mA@3.3volt without the Arduino.
A WeMos D1 mini is less than 100mA with WiFi on.

Not sure why you want to add a RTC.
An ESP8266 (WeMos/NodeMCU) keeps perfect time for days after a NTP update.
No experience, but the ESP should also be able to get the timezone.
Leo..

That's what I thought. :grin:

The suggestion for is the ESP32 (or ESP8266) is a great idea. I hadn't considered them at all. That I think would make a much better solution. There is a nice article concerning power consumption at ESP8266 vs. ESP32 on Battery Power. This project is not battery powered in the traditional sense, but I do want to keep power at a minimum. Putting the unit into a deep sleep for 59s, with it just waking up to update the clock minute and do a time zone check looks like it will work nice. Understood that the RTC is not a necessity, however the possibility exists of loosing power with no available network connectivity, so I would like to avoid the situation where there is no time reference. Though if I have a master unit, which is dictating the displayed time zone, then it could have the RTC. Thus not an RTC per unit.

Thanks,

Allan.

when you really want to switch over to ESP, please don't forget, that on the ESP you don't need any third party library for NTP, nor for timezone adjustment, nor for Daylight Saving Time.
The ESP Core comes with an example in the IDE.
Here I have a stripped down version
https://werner.rothschopf.net/202011_arduino_esp8266_ntp_en.htm
And just in case you still need a RTC... here is a version with NTP and RTC:
https://werner.rothschopf.net/microcontroller/202112_arduino_esp_ntp_rtc_en.htm

Update for the folks that were generous in their recommendations.... Proof-of-concept up and running. Obviously I went with the ESP32. Used the Arduino core for the ease of use of the many libraries as I start off. One ESP32 is running in combined station/access point mode, connecting to public wifi for NTP updates and running a soft access point. The other ESP32 is just running in station mode, connecting to the soft access point of the other ESP32. One ESP32 then does UDP broadcasts for the NTP retrieved time, and for the desired timezone to display. I liked the look of ESP-NOW for the inter-ESP32 communication, but it is a real mess trying to get the ESP-NOW and station mode working simultaneously. I'll admit I used many of the Arduino libraries, rather than inherent ESP core functionality, as I found they gave me more visibility/control.

Allan.