Live data from Hacker News

Most Stable Raspberry Pi? Better NTP with Thermal Management

austinsnerdythings.com

31–40 of 99 posts

Re: Most Stable Raspberry Pi? Better NTP with Thermal Management

#31
post #21

What's the point in reading posts like this when the solution "they" came up with is basically, "tell Claude to make a script which does whatever"? I read blog posts to read thoughts from people, not computers

But here's the key insight: what's the point in reading posts where the post itself is "tell Claude to write a post about…"

Re: Most Stable Raspberry Pi? Better NTP with Thermal Management

#32
post #20

Why not put a resistor (for heating) and a bit of foam insulation on the crystal? This is way more direct than spacebar heating. You could also add a transistor attached to the resistor and a GPIO and use the clock drift as a proxy for temperature. PID is probably enough but since you have a 24 hour cycle you could calculate a baseline heating schedule.

This is a technique that's been used for crystal oscillators for almost a century by now. I have some 1950s crystal ovens that are a little metal box that fits over the crystal (quite a large crystal, about the size of two or three SD cards stacked) and heats up to around 75°C. The crystals were supposed to be specially cut to have close to zero temperature coefficient around that temperature so the slight up and down drift caused by the thermostat wouldn't affect it.

I have test equipment made as recently as the early 2000s that uses a crystal oscillator in an oven as a frequency standard. It takes a good five minutes to fully stabilise.

Re: Most Stable Raspberry Pi? Better NTP with Thermal Management

#33

Amazing project, great write-up. Would love to see a temperature graph as well! I'm wondering how good the PID controller here is working. For future improvements, a cheap but effective win might be to put a temperature sensor on the oscillator (or two or three in various places). And use that to drive the PID loop. Even if just experimental & not long term, it would be nice to have data on how strong the correlation…

> put a temperature sensor on the oscillator At that point, couldn't we just use the temperature value to compensate for the drift?

You can do that as well, but (in theory) the correction will be smaller than it otherwise would need to be if the temperature is regulated within a narrower range.

Re: Most Stable Raspberry Pi? Better NTP with Thermal Management

#35
post #24
post #22

Earlier quoted context omitted.

What is this even supposed to mean? What's "the Pentium 4 route"?

I'm an old fart :) Intel tried to scale frequency up with the Pentium 4 in the name of performance, and it ended up extremely hot and power hungry. Just like some high end CPUs now, but then it applied to every model from Intel. I suppose you don't remember when a Raspberry Pi could run fine even without a heatsink, let alone active cooling. That's more recent than the Pentium 4.

It's already there really. It's heat output on the 4 and more so the 5 benefits from active cooling. The good news is the pi is practically pointless as a product for most people these days, and vastly better options are available cheaper, so unless you genuinely need the gpio theres little reason to buy one - very much their own fault for focusing on commercial applications but the Pi 5 as a product is practically pointless for a consumer use at this point. An old Pi 2 or 3 which dont need any cooling are very useful still for a range of applications but the newer ones are in a bit of a weird niche where they're overpriced compared to most options.

Re: Most Stable Raspberry Pi? Better NTP with Thermal Management

#37

It's an SBC-scale OXCO. I half wonder if adding a larger heatsink, or even putting thermal mass around the existing oscillator could also help, or if the heating is more localized in the PCB itself. Always fun new things to learn when doing something "simple" like setting up an NTP server!

> or even putting thermal mass around the existing oscillator

I was thinking along these lines as well. Put a metal block on the CPU and oscillator for thermal mass (not sure if separate blocks would be better). Ideally, with a large enough thermal capacity, the block should reach an average temperature and remain there.

Inertia is also good even if the temperature is not constant: clock drift can be measured and compensated. If the temperature rises slowly, the clock speed will increase slowly: the rate can be measured and compensated for. Jitter is the issue here, and thermal inertia should dampen it.

It may also be worth preventing convection from happening on the board. Putting the Pi in a wool sock may not be the best idea depending on its temperature, but an electrically insulating thermal conductor (or an electrical insulation layer + steel wool may do it).

Heatsinks may also be counter-productive (if they have a small thermal capacity), as their temperature depends on room temperature, which changes during the day.

Re: Most Stable Raspberry Pi? Better NTP with Thermal Management

#38

Couldn't you model the effect of temperature on clock drift and try to factor that in dynamically (e.g. using a temperature sensor) instead of burning CPU unnecessarily?

That's what the chrony tempcomp directive is for. But you would have to figure out the coefficients, it's not automatic.

An advantage of constantly loading at least one core of the CPU might be preventing the deeper power states from kicking in, which should make the RX timestamping latency more stable and improve stability of synchronization of NTP clients.

Re: Most Stable Raspberry Pi? Better NTP with Thermal Management

#40
post #12

There was a paper on this in 2022. Not sure if it's used in production or not. https://www.usenix.org/conference/nsdi22/presentation/najafi

Cool paper. Their modeling of the temperature response curve seems a more elegant (albeit non-trivial) solution than burning CPU.
Post reply on HN