Skip to main content


Spec revision 1.0

Time Card is the heart of the Open Time Server Project.
This spec can be accessed using

Docusaurus Plushie


Time Master is a critical part of a PTP enabled network. It provides accurate time via GNSS while maintaining accuracy in case of GNSS failure via a high stability (and holdover) oscillator such as an atomic clock. Existing products in the market are often closed sourced and are far from having sufficient features. The Time Card project presents an open source solution via a PCIe card.

Form Factor

  • Standard PCIe Stand-up Card
  • Single Slot - Passive Cooling Solution



The GNSS receiver can be a product from ublock or any other vendor as long as it provides PPS output and the TOD using any suitable format.

This is the recommended module: u-blox RCB-F9T GNSS time module

GNSS Receiver

GNSS Receiver


There are 2 main attack vectors on GNSS receiver


Jamming is the simplest form of attack. In order to keep operations while under attack the most reliable approach is to perform a long run holdover.
See more about holdover in the clock section.


GNSS authenticity is relevant today. A mechanism to protect against over-the-air spoofing incidents is desirable. With special equipment it is possible to simulate a GNSS constellation and spoof the receiver. Basic principals to protect against such attack:

  • Use high-quality GNSS receivers which verify packet signature
  • Disciplining implementations see more in bridge section should protect against sudden jumps in time and space. For the datacenter use cases jump in space could be completely forbidden.


GNSS requires "clear sky" to function properly. Moreover there were several historical events of a short term time jumps by some GNSS constallations. Because of reliability and in combination with the security concerns an additional holdover should be performed by high quality XO. An example could be AC, OCXO, TCXO etc. In order to perform sustainable operation we recommend to use an AC with a holdover ± 1us or HQ OCXO with a holdover ± 22 µs.

Atomic clock examples:

OCXO examples:

TCXO examples:


The bridge between the GNSS receiver and the Atomic clock can be implemented using software or hardware solutions. The hardware implementation is preferred and is our end goal.

Hardware Implementation

Here is one of the examples of hardware implementations.

  • FPGA is responsible for most of the functionality
  • Exposed /dev/phc and /dev/pps are read by open source software such as ptp4l and chronyd

Time Card - Block Diagram Bridge Block Diagram 1 Bridge Block Diagram 2 Bridge Block Diagram 3

Software Implementation

Software implementation still requires most of the components, however the communication between components is done with user space software:

  • GPSd exposing /dev/ppsY and provides TOD via SHM
  • FPGA board reads 1 PPS from different sources
  • Host daemon monitors the offset and steers oscillator
  • phc2sys can copy data between clocks, including between GPSd and Atomic and then Atomic to PHC on the NIC


  • PCIe
    • PCIe x1 (18 pins) generation 1.0 or above on a x4 form-factor
    • Generic, supporting multiple OS versions
    • Exposes PHC device in Linux (/dev/ptpX) as well as PPS (/dev/ppsY)
    • Exposes leap second indicator to a shared memory segment read by chrony/ptp4l
  • 1PPS / 10MHz SMA output
  • 1PPS / 10MHz SMA input
  • IRIG-B input output
  • DCF77 input output
  • GNSS Antenna SMA input


An LED should be used to provide externally visible status information of the time card.

LED status signals:

  • Off - card is not powered or not properly fitted
  • Solid green - card is powered, GNSS ok, 1PPS/10MHz output ok
  • Flashing green - card is in warm-up, acquiring satellites
  • Solid red - alarm / malfunction


Time card has 4 SMA connectors that can be configured as outputs and outputs for various things such as 10Mhz, PHC, MAC, GNSS, GNSS2, IRIG, DCF for output and 10Mhz, PPS1, PPS2, TS1, TS2, IRIG, DCF for input.
Using a Calnex Sentinel device are comparing various things. Here we are comparing the 1PPS output (Channel A) and the 10Mhz output (Channel B) from the MAC (SA.53).


Repository content

  • Bill of Materials (parts from Digikey)
  • Schematic and PCB of the time card
  • Driver (Kernel Module) CentOS 8
  • CAD files for the custom PCIe bracket

Where can I get one?

You have all necessary source code, BOM, Gerber files and binaries to build it yourself. However, we are currently working with several suppliers and will have their contact info soon available to allow you to purchase an out-of-the-box ready Time Card.