18 comments

[ 4.4 ms ] story [ 56.1 ms ] thread
Jeff, I like your work. I get it, you have to make a buck, and I'd probably do the same, but I'm starting to miss the older less infomercial style content.
I could easily sell out and make a buck, but I assure you, I did not get a penny from Timebeat for this video or blog post. I asked them if they'd send a unit for review, and they did.

I will never do any kind of informercial style content; see my sponsorship policies here: https://github.com/geerlingguy/youtube#sponsorships

It is certainly not to the same levels of accuracy as the capabilities provided by the setup presented here, but I recently put together a stratum 1 NTP server (there are lots of various instructions online for setting up something like this [0][1]) on my LAN using a Raspberry Pi 4 and a GPS module with PPS output [2]. The setup took a bit of fiddling and experimentation to get working reasonably well (and it still has some glitches when trying to initially sync the time after a reboot), but once it's synced it does track time from GPS very reliably.

For anyone who might be looking for a reliable, accurate NTP time server but isn't interested in the hassle of setting up and configuring the hardware/software themselves, there's also this little appliance [3] I am also using that does something very similar at a great price point (no affiliation here; just a very happy customer). I have both my RPi setup and the NTP200 appliance tracking each other on the same LAN, and they generally agree on the time to within single-digit microseconds, which I think is about as good as one can get with any NTP setup on an Ethernet LAN, at least without resorting to more exotic things like OCXOs, hardware timestamping, etc.

[0] https://austinsnerdythings.com/2021/04/19/microsecond-accura...

[1] https://www.jacobdeane.com/iot/2020/building-a-gps-based-tim...

[2] https://www.adafruit.com/product/746

[3] https://centerclick.com/ntp/

Awesome concept, but sadly limited due to a Raspberry Pi CM4 being chosen for the brains. In addition to the availability concern, there are better SBCs out there for time/GPS. The BeagleBone would have been ideal because it supports high-precision PPS out of the box.
In this case, the PCIe card can be used completely independent of the Pi—the GPS PPS signaling can be routed differently with some dip switches on the sandwich board, and a CM4 is not necessary for full GPS + OXCO functionality.

The nice thing about installing a CM4 is it supports PTP hardware timestamping out of the box, so it could be a solution for PTP over a network if you don't want to shell out for more expensive NICs or need to support hundreds to thousands of systems.

The classic problem with PTP is that you need all your network devices to also explicitly support hardware timestamping, or you've just lost the biggest reason to use PTP instead of NTP. That may not be hard to do if you're just running your homelab network, but that gets harder and harder to do as you scale up in size.
Switches are often the hardest to find supporting PTP, it seems.

But it's gotten a little better over the years. Certainly having used hardware available now which doesn't cost an arm and a leg helps (at least in the homelab, as you say).

(comment deleted)
Years ago I ran my own NTP server with a Garmin device as the source over RS232. Not only was it fiddly but it was notoriously unreliable (the PPS output was a bit unpredictable).

Eventually I gave up and said NTP is something best left to the pros who sell time appliances. They've been tested and the bugs worked out.

Raspberry "Sandwich" ... yummy

It looks clunky but seems to works for his job though. The cutie RGB LED stick w/ USB is kinda neat.

The Blinkstick Nano I used is okay to work with, but the software library support has been a little middling. Back when I originally bought a few (when Python 2 was still current), there weren't issues, but I think the guy who maintains it all has a bit more to maintain than he can deal with (which I totally understand!).

Luckily _most_ things work fine if you build your own Python scripts. Most of the things that break have to do with the little Python app that's supposed to allow easy CLI control.

There are a few other RGB USB products on the market now, some a bit lower cost.

Whoa Jeff is in the comments section holy jesus. Love your stuff man keep on keepin on and enjoy!
OXCO is more commonly acronymed as OCXO.
Yes! For some reason my brain just always swaps those middle letters while typing—I've updated the blog post but it'll take a few minutes to get through the caches.
I've been involved in supporting NTP.org since 2003, and I still have to actively fight that urge to swap those letters.

It's easier when the vendors are selling Rubidium clocks, then you don't have that problem any more.

I genuinely wonder how it compares to the 3 USD USB GPS I bought from AliExpress.
This is a pretty cool write up of a very unique piece of hardware.

But I have to ask: are there any vanilla PCIe-based carrier boards for ARM processors?

In the past when I've gone looking, I've found people recommending other special purpose cards like the Bluefield SmartNIC (with arm processor) or a Xilinx FPGA (with arm processor).

In the case of the time card mini, the specialized use-case of high precision time and GPS is more interesting to me than either a smartNIC or an FPGA...

I can't explain why, but I just think it would be so cool to plug in a an ARM pci-e card (maybe even with an RPMesg bus).