ESP32 "Time from NPL" (MSF) Radio clock signal generator.
Requires an ESP32-S3.
"You give that here!" shouted Mrs Ogg, as Susan held it out of her reach. She could feel the power in the thing. It seemed to pulse in her hand.
"Have you any idea what this is, Mrs Ogg?" she said, opening her hand to reveal the little glass bulbs.
"Yes, it's an egg-timer that don't work!" Mrs Ogg sat down hard in her overstuffed chair, so that her little legs rose off the floor for a moment.
"It looks to be like a day, Mrs Ogg. A day's worth of time." Mrs Ogg glanced at Susan, and then at the little hourglass in her hand. ... Susan read the words etched on the metal base of the lifetimer: Tempus Redux. "Time Returned", she said.
Adapt radio clocks in noisy environments that can't get a reliable time signal to use NTP instead.
Connect to a WiFi network that has one or more NTP servers advertised by the DHCP server and the "Time from NPL" (MSF) radio time signal will be output on GPIO1 when the time is synced from the network.
The current status is displayed on a LED connected to GPIO38.
Colour | Time in sync | Transmitting |
---|---|---|
Green | Yes | Yes |
Blue | No (2+ minutes) | Yes |
Orange | No (3+ hours) | No |
Red | Yes | No |
An attached Youshiko YC8091 radio clock can be powered automatically when a time signal is ready and reconfigured to set the time format to 24 hours on startup.
Remove the MSF antenna circuit and connect the radio clock to the ESP32 using the KiCad schematic:
Disconnect the buzzer if your MOSFET isn't capable of handling the current draw when it beeps. The circuit for the other push buttons hasn't been identified.
This project can be built with the ESP-IDF build system.
Configure:
idf.py set-target esp32s3 idf.py menuconfig
Under "Component config" you'll find "Tempus Redux" where you can configure the WiFi network and whether the output is active low or not. Support for managing the radio clock can also be enabled here.
Build:
idf.py build
Flash:
idf.py flash