I've recently used insights from this article to implement a sample rate step size 128 times smaller than previously supported in HackRF:

https://www.pa3fwm.nl/technotes/tn42a-si5351-programming.html

This means that sample rates around 20 Msps can be adjusted in steps of about 0.015 Hz. The precision is even better at lower sample rates.

I highly recommend reading it if you use #Si5351 in any projects. #Si5351A #Si5351B #Si5351C

Understanding and enhancing Si5351 programming

The sequel article investigates jitter and explains how Si5351 achieves much better spectral purity than one might expect of such a clock generator.

When Jared and I chose the part for HackRF One back in 2012, we were very pleasantly surprised by its performance. Since then it has become a popular choice for all sorts of radio projects for good reason. It's nice to finally understand the internals well enough to see why it works so well for our application.

The new #Si5351 implementation in HackRF is an even better improvement than I realized at first because the old, vendor-recommended algorithm introduces error by not rounding properly. The mean error of the old algorithm is approximately 256 times the mean error of the new one.

I think this is pretty great, but in practice this should rarely matter to HackRF users. The most commonly used sample rates are error-free integer divisions of the 800 MHz clock generator VCO.

Even with non-integer sample rates, the error of the old algorithm is less than the typical error of the internal crystal, but there are some specialized applications where the improvement could matter.

For example, HackRF One was used as a part of this time transfer system that achieved better than 40 ns precision: https://arxiv.org/abs/2406.13596

Clock generator precision was a significant limiting factor in this system, so I think that 256 times less error would result in a huge improvement overall.

SDR Common View on Generic Signals for Time Transfer Applications

This paper presents a new time transfer system that works with any radio signal with sufficient bandwidth, regardless of its content and modulation, by adopting the common view approach. This system, based on a network client-server architecture with SDR receivers offers a number of advantages. It can compare remote atomic clocks or disseminate reference time scales to end users with precision at the level of tens of nanoseconds. Its improved features in terms of flexibility, robustness, reliability, and security will potentially make positive contributions in the field of time transfer, as an alternative or complement to existing methods.

arXiv.org
@mossmann that will be interesting for jm friedt working on SDR UTC dissemination at Besancon's Femto-ST lab. He's is available on the time nuts mailing list, which will probably be very interested in this topic.
@mossmann hmm I dont think that this paper made it to time-nuts, I'll have a look after I'm back home.
@mossmann Would this help with the phase noise issues mentioned here? https://github.com/greatscottgadgets/hackrf/issues/889
@fsphil That issue explored phase noise from the clock generator that is multiplied by the MAX283x frequency synthesizer. An integer divider is used for that reference clock. It is unaffected by the recent improvement in fractional precision.
@mossmann not sure if it’s related, and you’re probably already aware of it, but just in case: in my recent project with the Si5351, using this Python script resulted in significantly cleaner clocks than the vendor configurator
https://emergent.unpythonic.net/01597601150
Si5351 Frequency Planner in Python

@adistuder @mossmann Inspired by the link Michael posted in the original toot: 1 Hz tuning for a FST3157 switching quadrature mixer. Use e.g. with https://hennichodernich.github.io/Digimode_TRX_en.pdf 😉
@adistuder @mossmann True experts use 26 MHz refclk, because TCXOs with this frequency are dirt cheap thanks to GSM.
https://www.mouser.com/ProductDetail/ECS/ECS-TXO-20CSMV4-260-AN-TR?qs=Jm2GQyTW%2FbhxPlMl0tbQNw%3D%3D
@mossmann
Wildest ham use I have seen so far multiplies the Si5351 output up to 10GHz.
That one being the RFzero beacon board.