I’ve done some tests with this, and wrote my own firmware for a custom serial/USB converter. It can still talk USB Full Speed / High Speed, but provide timestamps between when the PPS happened and when the USB host picked up the carrier detect message. This was good enough for a time sync error of 7 microseconds.
Full Speed polls at a minimum interval of 1ms, which explains your results.
At ~10 microseconds I think the limitation is stability and accuracy of software timestamping. Maybe serial port on a PCIe card can be better, but with a typical on-board serial port (on an emulated ISA bus behind multiple bridges?) it’s difficult to get below 10 microseconds.
Here is a test where I measured accuracy of system clock synchronized to PPS on an on-board serial port by comparing it to hardware timestamped PPS on I210:
You need a NIC for which phc_ctl reports a non-zero number of external time stamp channels and find the pins where the PPS signal can be connected. The 82576 doesn’t have that.
The I210 card has a nice pin header:
On other cards and on-board NICs you might need to solder wires. See this great post from Dan:
Got that and it won’t PPS, I used 3x 1N4148 to lower the voltage to 3.2V, I know, it only pulses 0-3.2V not negative. I measured with my voltmeter and I get a 3.2V pulse every second.
But it’s not registerd.
So I’m going to order some PCIe RS232 adapters to connect the Garmin’s with.
That should work a lot faster then via the south-bridge mess and it by far easier to configurate.
As you said the SB and ‘emulations’ hinder precission, so why not directly RS-232 to the PCIe bus that that is directly connected to the Intel CPU.
Doesn’t the voltage drop of a diode depend on the current? With very little current sinked by the SDP the voltage could be still too high?
To test the external timestamping you can try ts2phc from the linuxptp package. In chrony configuration the PHC refclock directive needs to have the extpps option to use the external timestamping and also the width option to filter out falling edges as the I210 always provides both edges.