The stability is not so much from the number of satellites, but from the unobstructed view towards them. Especially multipath reception adds a lot of uncertainty to the derived time, hence if will massively influence the stability of the timing signal. Good receivers, especially those with overdetermined clock mode, can go with as little as one satellite to give a good timing signal, because they don't need to calculate a position.
That's true enough as I confirmed to my own satisfaction several months back when I finally figured out that my suspicions of a firmware bug in my cheap M8T modules corrupting the antenna settings every time I tried to configure the elevation mask angle, disabling the active antenna option, completely cutting off all signals with the external GPS antenna (yet strangely only reducing signal levels from another active antenna with a 6 foot coax feeder I had set up a few feet from my office window), had actually been down to a faulty FTDI-232 module which seemingly only afflicted the NAV5 commands and corrupting the antenna configuration options.
Once I'd replaced that weirdly faulty FTDI-232 module, I was finally able to experiment with different elevation mask angles rather than be forced to accept only the 5 deg default. Whilst testing with a mask angle of 42 deg, I eventually observed just one GPS SV above this mask angle with, gratifyingly, no loss of the timing signal (the M8N modules needed a minimum of 3 (or was it 4?) SVs to avoid losing lock), thus verifying beyond any doubt that what I'd purchased so cheaply (£41 for the first unit and £24 each for the next two) were indeed the genuine and defect free article.
Pondering this result, it occurred to me that if this one and only GPS SV that had met this elevation mask criteria had happened to have been marked 'Out of Service' as they so often are (usually just two or three at a time out of the whole constellation but I had seen on at least one occasion almost half of the constellation being marked out of service
), I'd have been "Dead in the water" for possibly an hour or two as far as my basic, no frills GPSDO was concerned.
As a consequence of this worrying observation, I reduced the mask angle to 30 deg to make sure I'd rarely, if ever, see less than two GPS SVs above the mask angle at any one time and, more often than not, have three or more GPS SVs available. It's also why I chose to experiment with multiple constellations (GLONAS and Galileo being added to the mix) before discarding the GLONAS on account of its deleterious effect on timing (some 18ns adrift by my reckoning) and retaining the Galileo constellation which, despite my estimated 2ns discrepancy against the GPS constellation, seemed to endow some improvement in taming the ionospheric ToF variations which account for the 6ns or so of pk-pk variation that afflicts my single frequency GPS module's timing calculations.
Adding the Galileo constellation provides insurance against a repeat of having half of the GPS constellation being marked out of service, leaving me without a single working SV in view and totally disrupting operation of my GPSDO, allowing the reference output to drop by half a Hertz or so simply by accident of the effect of my "Start from cold 'Tme to PLL lock' accelerator" add-on-circuit. This drop in frequency would have been even greater but for this add-on-circuit.
Of course, an hour or two of total loss of GNSS timing data due to the use of a large elevation mask angle is readily shrugged off by any microcontroller based GPSDO design which can simply 'freeze' the DAC value at the last valid one as a minimal response if not otherwise capable of applying an ageing trend to reduce the holdover drift even further.
Of course, a basic hardware PLLed GPSDO has no such luxury feature, hence the need to take extra care in choosing an elevation mask angle when maximising the benefit of a surveyed in GPS timing module. However, now that I've recruited the Galileo SVs, I may be able to use a larger elevation mask angle value without undue risk of losing lock.
I'd like to use a larger elevation mask angle to tame the ionospheric effects on the ToF but the only effective way to achieve a basic freezing of the last valid EFC voltage that immediately springs to mind involves cascading an ADC with a DAC between the PLL buffer amp and the EFC terminal on the OCXO which strikes me as being as much trouble as using a microcontroller to perform the PLL function in software and abandon the simplistic charms of the basic hardware PLLed design altogether.
I suspect there may be simpler analogue solutions that can offer better than my current "Half Hertz drop holdover" performance which may be worth expending time on a duckduckgo research project (and another look at the James Miller circuit for a possible clue by four).
For home lab hobbyist use, a good holdover performance is merely a nice but nonessential luxury to guard against the occasional loss of satellite lock for the odd half hour or so once in a blue moon event. Figuring out a way to improve the holdover performance will be, essentially, simply a matter of self satisfaction which is the essence of most hobby activities, If you can't achieve some level of satisfaction or, better yet, a feeling of smugness, then you just ain't doin' it right!
John