I understand the difference between absolute and relative time. I'm trying to get absolute time. The goal is a project similar to this (
https://www.instructables.com/WWVB-radi ... NY45-or-A/) where the 8266 board uses NTP to get "truth" and controls the 60kHz wave. Exactly how the wave is controlled is a question for later.
I have a Raspberry Pi as a local time server connected to GPS with a PPS signal so while I don't need microsecond accuracy, I strongly disagree with your assertion that <1s is difficult with NTP and it seems like hard coding 0 in the usecond field is an artificial limitation. Even over the internet it should be possible to get within a couple hundred ms.
For uPython's ntp module it seems like even changing:
Code: Select all
machine.RTC().datetime((tm[0], tm[1], tm[2], tm[6] + 1, tm[3], tm[4], tm[5], 0))
to:
Code: Select all
machine.RTC().datetime((tm[0], tm[1], tm[2], tm[6] + 1, tm[3], tm[4], tm[5], 500000))
Would be more accurate by making the error +-1/2s rather than up to 999ms behind.
I will admit, I didn't realize quite how bad these chips were for timing and was mainly interested in using it instead of another GPS because of cost. I'm not too concerned with that weakness of the chips though because I can always query the server more frequently.