1/n on time server implementations
First #electronics work in a long while. Started on this one back in May, finally bringing it to the next step.
About to send off to PCB fab, this is a miniPCIe card with an Intel I226V NIC, u-blox GPS, and TCXO onboard, intended for precision time acquisition and serving PTP on mini PCs.
I'd intended on paying for assembly too, but the price is a bit steep for a prototype I might need to iterate on, so I'm going to try to stencil + paste it myself. First 0402 at home...
MiniPCIe seems like a weird choice, but M.2 E-key is the only other common form factor with USB and PCIe, and it's only 30x30mm. Most other form factors are only USB or only PCIe. Could work around it with a USB (or UART) jumper on a B+M key design but we'll see how this goes. 30mm is preeetty narrow.
The theory of operation is that the I226V is capable of capturing the PPS edge directly, with the same timers that are used for hardware timestamping of network packets. This allows for extremely good network time synchronization with GPS using PTP & NTP.
Putting the GPS onboard is a convenience more than anything else, there usually isn't anywhere to mount auxiliary boards in a mini PC.
A TCXO to clock the I226V further improves holdover and phase noise at low τ.
The Ethernet connector is on a breakaway board, so it could be somehow mounted where it can be reached outside the case, and to allow the design to be possible within the miniPCIe physical constraints.
Design files: https://git.gotroot.ca/ktims/timing-nic
#time-nuts