How to get GPS high accuracy time on my laptop

I try to add GPS module with usb as NTP server and use :
server 127.127.28.0 noselect
fudge 127.127.28.0 time1 0.035 refid GPS

server 127.127.28.1 prefer noselect
fudge 127.127.28.1 refid PPS
and start gpsd with :
gpsd -n -D 5 /dev/ttyUSB0
but it only has gps value and no PPS value (my device support pps). and this value has a few mileseconds delay. Dose anyone know how to get high accuracy time or pps time from my GPS module?

Regarding GPS time, you added the time1 offset yourself. The correct offset number should be determined manually: first remove all time1 setting, observe your GPS’s constant error (say lag behind other pool servers for about 300ms), then subtract this error as offset into config.

Regarding PPS time, what is your GPS module’s model? Some of them is merely a serial GPS module paired with USB to serial adapter in one board. If this is your case, you may need to point your GPSD to poll the USB populated serial device.

I thought USB introduce way too much delay and jitter to do that. You need the PPS signal from the GPS wired to a GPIO (or serial port pin). (So unlikely to work on any sort of modern laptop, I imagine…)

Of course one cannot achieve below millisecond accuracy on an USB populated serial PPS device, but it is still better than nothing, especially when using laptops without network connectivity.

https://gpsd.gitlab.io/gpsd/gpsd-time-service-howto.html#_1pps_quality_issues