Build a Stratum 1 Time Server Using a Raspberry Pi Pico

preview_player
Показать описание
Using a GPS module and a microcontroller board, like the Raspberry Pi Pico W, it is possible to make your own Stratum 1 time server. A Stratum 1 time server is directly linked to a reliable source of UTC time such as GPS. Sounds complex? Trust me it isn't. Let me explain!

---

#garyexplains
Рекомендации по теме
Комментарии
Автор

As an older person, seeing this sort of solution being available, not just for home use, but at such a low cost, is beyond amazing.

John.z
Автор

Nice to see this on a Pico, and using both cores. Please add PPS to make this accurate enough to be useful. A Stratum 1 Time Server needs to use the GPS PPS signal. The Serial data alone is not accurate enough for Stratum 1. Many low cost GPS boards have this signal in addition to the serial.

alanb
Автор

I’ve used a GitHub repo called “RPi-GPS-PPS-StratumOne”, a GNSS receiver and a Pi Zero 2 W as an NTP server.

The repo has a bash script to do all the difficult setup for you and uses PPS for more precise disciplining of the Pi’s time.

alexlandherr
Автор

2:49 The free GPS antenna is the same as the better one, they are both patch type, however the one with the SMA connector has a built-in LNA.

larry
Автор

I remember being impressed at GPS NTP sources that finally came down under $2500 in the 2000's. Ha!

DocNo
Автор

Can you build the same using a WWVB radio?

scottdakers
Автор

Thank you for the informative video! I wonder why you would need your own NTP time server, though? Do you see public NTP servers as a security risk, or consider them unreliable?

nilsc
Автор

Great timing!! Just picked up an ultimate GPS from Adafruit and have been wondering what to do with it. Surly something like this will justify the purchase

cookinsteve
Автор

There are a bunch of Stratum-1 sources on the internet that don't rely on GPS, but instead sync directly to UTC, which is what GPS is synced to.

pleappleappleap
Автор

Wouldn't it have been a lot easier to just use the GPS data to set the hardware clock on a computer (any general purpose computer that can run Linux), then run the ntpd daemon as a stratum 1 time server on that computer?

With this solution you would only need to write some code to extract the current time from the GPS data and use that to set the time.

ericwelsh
Автор

Most the time I am inside the house, the GPS reception is miserable there. I have to walk outside the house to know where I am. Only then a GPS receiver can tell me that I am at the back of my house and not in it. On the other hand, in the telephone signal is also the time transmitted. Maybe UMTS / GPRS can be used better instead of the GPS signal. The receiver is just as cheap as the GPS receiver. Often it can be harvested from an old phone, the Chinese even sell these receivers, desoldered from telephones whos only fault is being from last years. And maybe using an old mobile telephone receiver could also give extra information, like name of the telephone company and the exact GPS location of their mast. Recording this information could give you an alibi if you are at the same time somewhere else doing things you shouldn't. (Omnipresence is not rare or so, many have this!)

vanhetgoor
Автор

So luckily you could get your breath in order again after commenting the video, I HOPE!

hoekbrwr
Автор

Gary, how about a link to all the devices you purchased!

tubeDude
Автор

What about the NMEA message receiving time lag from the GPS receiver and further software delays? I thought you would be able to do your magic on the second, but refine the exact moment, af least to a few milliseconds, from the 1PPS (one pulse per second) signal directly from the GPS on one of the Pico's GPIO ports. The 1PPS IS the exact moment you can count on for time synchronization.

andreverville
Автор

What is this Serial.printf() of which you speak? The compiler chokes with the message "Compilation error: 'class arduino::UART' has no member named 'printf'; did you mean 'print'?" Looking at the docs and google search seems to indicate the arduino ide can't do this. Am I missing something here?

jayyoder
Автор

Gary will you start uploading speed tests again?

Ebu
Автор

How accurate is your implementation ? how does it compare to using an an a normal ntp service on your machine ?

allenlorenz
Автор

hey guys just trying to get this script to run in arduino IDE but my serial1 isnt a variable its a macro and i am always getting the error code Compilation error: 'class arduino::UART' has no member named 'setRX'

blindeye-lwev
Автор

Is GPS time more or less accurate than the land based atomic time like the clock at the national phisical laboratory in the UK .

patdbean
Автор

Great video on how to. But I am a confusiast about your result at the end of this video. Why is your setup reporting it takes over 900ms ? That appears too slow. In comparison with connecting to network time from an internet NTP server. Why do this? What risk and reward is it to make a GPS NTP server to the SOHO network?

serotonin
welcome to shbcf.ru