My previous description was erroneous, so I'll explain my observations again.
Uputronics board with Ublox MAX-M8Q.
identifies as PROTVER=18.00
Baud rate = 9600, except where stated.
Host = RPi4. (GPIO)
gpsd version varies. Started directly by root.
gpsd [-b] -n /dev/ttyS0 /dev/pps0 # -b used for NMEA only tests
refclock SHM 0 delay 0.5 refid NMEA
refclock SHM 2 offset 0.0 refid PPS
Plus two local servers with "noselect"
I've used gpsd with default configurations for years, no ubxtool.
During unrelated debugging, I ran gpsd from git head on March 9, 2021.
The serial arrival time oscillated. See plot in offset1.jpg.
In addition to the oscillation, chrony was often in alarm.
The oscillation was gpsd version dependent: 3.21 was fine. 3.22 (and git head) was not.
No manual ublox configuration was done during this time. gpsd was doing its thing, of course.
I also rebooted and power cycled the Rpi; no change.
Next, I enter the domain of ubxtool by varying the serial line rate. 4800 baud was too slow.
9600 and up worked fine for gpsd 3.21 gpsd 3.22 was more interesting, see plot offset2.gif
At 9600 / 19200 baud chrony was in alarm about half the time. At 38,400 baud or higher the alarms went away.
3.22 (and git head) were fine when gpsd was started with the "-b" option.
I'm reporting this as an oddity; simple workarounds exist.
If this is pilot error, I'd like to correct my procedures.
If this is a ublox config problem, I could get a new board. [I have already tried ubxtool -p RESET]