PTPH1 Precision Time Protocol & Holdover

$8,700.00

4 in stock

GNSS-disciplined 10 MHz and 1 PPS timing reference with PTP, six clock outputs and DroneCAN status

Part number PTPH1 · Datasheet Revision 2 · Applies to board Rev A

Request Volume Pricing Engineering / Customization Inquiry

Volume pricing available for production orders, recurring purchases, and OEM integration programs. Contact us to discuss quantities and lead times.

SKU: PTPH1 Category:
  • 10 MHz6 × clock outputs
  • 1 PPS5 × PPS outputs
  • 1 hourVerified GNSS holdover
  • 233 × 53 mmBoard size

Overview

The PTPH1 turns a GNSS antenna signal into a holdover-capable time and frequency reference. A Septentrio mosaic-T receiver acquires GNSS, outputs a 1 PPS signal and reports the phase and frequency error of the 10 MHz clock that drives it. An on-board STM32G0B1KBT6 microcontroller reads that error over a serial link and steers a SiTime SiT5811 oven-controlled oscillator through its I²C frequency control word until the 10 MHz is locked to GNSS. An LMK00101 buffer distributes the 10 MHz to six SMA outputs and back to the receiver as its external frequency reference, which closes the loop through GNSS.

The receiver’s 1 PPS output drives an Analog Devices AD9545 DPLL, which regenerates it and fans it out to five 1 PPS outputs, aligned to the 10 MHz edge by a static skew trim. When GNSS is lost the microcontroller freezes the oscillator control word. The receiver keeps producing its PPS from the held 10 MHz for up to one hour, and the AD9545 keeps following it. The mosaic-T also serves IEEE 1588 PTP and NTP over the on-board Ethernet port. The microcontroller publishes the GNSS solution and the disciplining and holdover state to a flight controller as DroneCAN messages.

Key features

  • Septentrio mosaic-T multi-band GNSS timing receiver (GPS, GLONASS, Galileo, BeiDou, QZSS, NavIC), antenna input on SMA with 3.3 V antenna supply
  • Receiver-level interference mitigation (AIM+: narrow band, wide band and chirp jammers) and Galileo OSNMA support
  • SiTime SiT5811 oven-controlled 10 MHz oscillator, ±1 ppb over temperature, steered to GNSS by the on-board microcontroller
  • Six 10 MHz outputs and five 1 PPS outputs on SMA connectors; the sixth PPS connector carries a 5 kHz signal
  • 1 hour of GNSS-loss holdover, verified on hardware: the oscillator control word is frozen and the PPS keeps running
  • PPS edges regenerated by an Analog Devices AD9545 DPLL and aligned to the 10 MHz edge by a static skew trim
  • IEEE 1588 PTP and NTP server in the mosaic-T, on a 10/100 Mbit/s Ethernet port; mosaic-T web interface over Ethernet or USB-C
  • DroneCAN (UAVCAN v0) node on classic CAN at 1 Mbit/s: GNSS Fix2 and Auxiliary messages, plus node status with the disciplining and holdover state
  • STM32G0B1KBT6 Cortex-M0+ microcontroller with 128 KB flash and 144 KB SRAM; STDC14 debug and programming port
  • Single 5 V supply from the CAN connector or from a 5 V power adapter on a DC jack, chosen with a slide switch; coin cell with charger keeps the receiver warm
  • 233 × 53 mm board with four M2 mounting holes

Technical specifications

ParameterValueUnit
Power input
CAN connector (J5 pin 2) supply voltage, typical / minimum / maximum5 / 4.5 / 5.5V
Input current from the CAN connector, typical / maximum760 / 820mA
Typical power consumption from the CAN connector3.8W
DC jack (J19) supply, 5 V power adapter5V
GNSS receiver
ReceiverSeptentrio mosaic-T
Interference mitigation (receiver)AIM+: narrow band, wide band, chirp
Constellations (single antenna, multi-frequency)GPS, GLONASS, Galileo, BeiDou, QZSS, NavIC
PPS output accuracy of the receiver (open sky)5ns
Time to first fix, cold start / warm start< 45 / < 20s
Antenna supply voltage on ANT1 (VANT, fixed)3.3V
Antenna supply current limit (receiver)150mA
Antenna pre-amplification range (receiver)15 to 50dB
Time and frequency
OscillatorSiTime SiT5811 OCXO
Clock output frequency10MHz
Oscillator frequency stability over temperature±1ppb
Disciplining pull range as clamped on this board±3.125ppm
Oscillator frequency pull resolution0.05ppt
Oscillator holdover (manufacturer specification)1.5 over 8 hoursµs
GNSS-loss holdover verified on hardware1hour
10 MHz outputs6 (10MHz 1 to 10MHz 6)
1 PPS outputs5 (PPS1 to PPS5)
PPS6 output5 kHz
PPS pulse width100ms
Output signal level of clock and PPS outputs1.8 V CMOS
Interfaces
Ethernet10/100 Base-T, RJ45
USBUSB-C, USB 2.0 device (mosaic-T)
CAN bus1 Mbit/s, classic CAN, 29-bit ID
CAN protocolDroneCAN (UAVCAN v0)
CAN node ID42 (fixed in firmware)
CAN bus termination120 Ω, selectable (JP1)
Microcontroller
DeviceSTM32G0B1KBT6 (Cortex-M0+)
Clock (internal HSI16 oscillator)16MHz
Flash / SRAM128 / 144KB
Mechanical and environmental
Board size233.0 × 53.0 × 1.6mm
Mounting holes4 × M2 (2.2 mm) on 225 × 45 mm
Operating temperature (component rating)-20 to +70°C

The supply voltages and input currents are the figures given by the board's designer from bench measurements; the DC jack is intended for a 5 V power adapter. The receiver, oscillator and holdover figures are the manufacturers' published values (references [2] to [4]), not measurements of the PTPH1; the PPS accuracy of 5 ns is the receiver's xPPS accuracy with compensation of the sawtooth effect (below 1 ns needs the optional AtomiChron service, which is not part of this board). The AD9545 regenerates the PPS and the firmware aligns its edge to the 10 MHz edge with a static skew trim, which is calibrated for each unit; on the bench the edge-to-edge difference between the PPS and the 10 MHz output stayed within about 6 ns peak on one unit, which is an observation and not a guaranteed specification. The 1 hour holdover is the limit set by the firmware (the receiver is told to keep emitting its PPS for at most 3600 s after losing GNSS) and was verified on hardware by disconnecting the antenna for one hour. The oscillator's own holdover specification is longer than that. The pull range is set by the clamp value programmed in the oscillator; its maximum is ±400 ppm [4]. The clock and PPS drivers are supplied from the 1.8 V rail; their level into a 50 Ω load has not been measured. The operating temperature is the commercial-grade range of the oscillator and has not been tested on the board.

The board has no input fuse and no reverse-polarity protection on the 5 V input or the DC jack. Fit these externally if the supply is not protected.

The board measures 233.0 × 53.0 mm and is 1.6 mm thick (six copper layers), with rounded corners. Four M2 mounting holes (2.2 mm pads) are spaced 225 × 45 mm, 4.0 mm in from each edge. The top side carries the mosaic-T, the microcontroller, the AD9545 and the connectors; the fourteen right-angle SMA connectors, the DC jack and the CAN connector run along the lower edge in the top view. The bottom side carries the SiT5811 oscillator, the LMK00101 buffer and the coin cell holder. All dimensions in the drawings are in millimetres. The heights of the components are not specified in this revision.

PTPH1 mechanical drawing, top view: 233.0 by 53.0 mm board, mounting holes 225.0 by 45.0 mm apart, SMA connectors J1 to J17 and J5 along the lower edge
Mechanical drawing (top view)
PTPH1 mechanical drawing, bottom view: 233.0 by 53.0 mm board with the oscillator, clock buffer and coin cell holder
Mechanical drawing (bottom view)

Absolute maximum ratings

Stresses beyond these values may cause permanent damage. They are estimated from the absolute maximum ratings of the components on each pin and have not been tested on the board. Absolute maximum ratings for the 5 V input (J5 pin 2) and the DC jack have not been determined: keep the supply within the limits in the specifications table.

ParameterMinMaxUnitLimited by
Voltage on CAN_H and CAN_L (DC)-58+58VMCP2562FD
Transient on CAN_H and CAN_L (ISO 7637)-150+100VMCP2562FD
ESD on CAN_H and CAN_L (HBM)±8kVMCP2562FD
Voltage on J4 signal pins (SWDIO, SWCLK, NRST)-0.33.6VSTM32G0B1KBT6 (3.3 V I/O)

Interfaces and connectors

The block diagram shows how the receiver, the oscillator, the clock buffer, the AD9545 and the microcontroller are connected. The 10 MHz path from the oscillator through the buffer to the SMA outputs and to the receiver does not depend on the firmware; the microcontroller steers the oscillator and configures the AD9545.

PTPH1 block diagram: ANT1 into the Septentrio mosaic-T receiver with USB-C and RJ45; the STM32G0B1KBT6 microcontroller steers the SiT5811 10 MHz OCXO over I2C; the LMK00101 buffer feeds the 10 MHz to the receiver and the SMA outputs; the AD9545 DPLL regenerates the receiver PPS for the SMA outputs
PTPH1 block diagram
Ref.FunctionConnector / mating part
J1ANT1: GNSS antenna inputSMA, right angle (Samtec SMA-J-P-GF-RA-SM1)
J2ANT2: not used by the mosaic-TSMA, right angle
J8, J10, J12, J14, J16, J1810 MHz outputs 10MHz 1 to 10MHz 6SMA, right angle
J7, J9, J11, J13, J15, J17PPS outputs PPS1 to PPS6SMA, right angle
J5Power (5 V) and CAN data bus2 × 3 pins, 2.54 mm pitch (Phoenix Contact 1844730). Mating part: Phoenix Contact 1027605
JP1120 Ω CAN termination2-pin jumper header (BC020-02-A-0200-0300-L-G)
S15 V source switch (5V CAN / 5V JACK)Slide switch (500ASSP1M6QE)
J19DC power jackWurth Elektronik 694103107102
J3USB-C (mosaic-T USB device port)USB Type-C receptacle (Same Sky UJ20-C-H-G-SMT-1-P16-TR)
T1EthernetRJ45 with integrated magnetics (Wurth Elektronik 74990111217)
J4Debug and firmware programming (SWD)14-pin STDC14, 1.27 mm pitch (Samtec FTSH-107-01)
BT1Backup batteryCoin cell holder on the bottom side
Power and CAN Data Bus (J5, S1)

J5 carries the 5 V supply and the CAN bus. The 5 V on pin 2 is an input: in the 5V CAN position the board draws its supply from it (about 0.76 A typical, see the specifications table), so the supply on the bus must be able to deliver that. The mating connector is the Phoenix Contact 1027605. Slide switch S1 chooses the supply: in the 5V CAN position the board runs from J5 pin 2, in the 5V JACK position it runs from the DC jack. The CAN transceiver and the termination are not affected by the switch.

J5 connector pin diagram: pins 1 to 3 in the top row and 4 to 6 in the bottom row
J5 connector pin diagram
PinNetType
1NCNot connected
25VPower input
3GNDPower input
4GNDPower input
5CAN_HI/O
6CAN_LI/O
120 Ohm Termination Jumper (JP1)

Fitting a jumper on JP1 connects a 120 Ω termination resistor across the CAN bus. Fit it only on the two nodes at the ends of the bus.

STDC14 Debug Connector (J4)

J4 is designed for use with the ST-LINK-V3MINIE and can be used to debug the board or load firmware onto the microcontroller. The debugger must work at the 3.3 V logic level of the board (pin 3). The SWO and virtual COM port pins are not connected. Mating part: 14-pin STDC14 Cortex ribbon cable.

J4 STDC14 pin diagram, top view: pin 3 3V3, 4 SWDIO, 6 SWCLK, 12 NRST, 5, 7 and 11 GND, other pins not connected
J4 STDC14 pin diagram (board top view)
PinSignal
33.3 V (target voltage)
4SWDIO
6SWCLK
12NRST
5, 7, 11GND
1, 2, 8, 9, 10, 13, 14Not connected
USB-C (J3)

J3 is a USB Type-C connector wired to the USB device port of the mosaic-T, with ESD protection (USBLC6-2P6). It is a data connection only: the board is not powered from it. Connect it to a host computer to reach the mosaic-T web interface, which the receiver serves over USB at http://192.168.3.1 (the default address given by Septentrio for its USB Ethernet interface).

Ethernet (T1)

T1 is an RJ45 connector with integrated magnetics for a 10/100 Base-T network. A KSZ8041NLI Ethernet PHY connects it to the Ethernet (RMII) interface of the mosaic-T, which provides the web interface, the NTP server and the PTP engine. The PTPH1 firmware turns the receiver’s Ethernet interface on; the network address, NTP and PTP settings are those of the mosaic-T and are set through its web interface (references [2] and [3]).

Antenna Inputs (J1, J2)

ANT1 (J1) is the GNSS antenna input of the mosaic-T. The receiver supplies the antenna with 3.3 V on the same SMA connector (the supply pin of the module is tied to the 3.3 V rail), limited to about 150 mA, and switches the supply off on an overcurrent [3]. Use an active antenna rated for a 3.3 V supply, or one that does not need a supply with a DC block fitted. ANT2 (J2) is wired to the second antenna pad of the module footprint, which only the dual-antenna modules (mosaic-H) use [3]; the mosaic-T is a single-antenna module, so ANT2 is not used.

10 MHz Outputs

Six SMA connectors (10MHz 1 to 10MHz 6) carry the 10 MHz from the SiT5811 oscillator through the LMK00101 clock buffer. A seventh output of the buffer goes to the reference input of the mosaic-T. The frequency is steered to GNSS by the microcontroller, so the outputs are traceable to GNSS time while the receiver is locked, and keep the last frequency when GNSS is lost.

PPS Outputs

PPS1 to PPS5 are 1 Hz pulse-per-second outputs. They are generated by the AD9545 from the receiver’s PPS, so each pulse starts on the GPS second and is aligned to the 10 MHz outputs by the static skew trim. The pulse width is 100 ms. PPS6 (connector J17, OUT0CN of the AD9545) is not a PPS output: it carries a 5 kHz signal, which is the AD9545’s own zero-delay feedback tap and must not be used as a PPS reference.

SMA connector map in silkscreen order: ANT1 (J1), ANT2 (J2), 10 MHz outputs 1 to 6 (J8, J10, J12, J14, J16, J18) and PPS1 to PPS6 (J7, J9, J11, J13, J15, J17); PPS6 outputs 5 kHz
SMA connector map (board top view, silkscreen order)
DC Power Jack (J19)

The DC jack is an alternative to powering the board from J5. Move S1 to the 5V JACK position. It takes a 5 V power adapter and supplies the board in place of J5. The polarity and plug size are given in the Wurth Elektronik datasheet for 694103107102; the board’s designer notes a 4 mm plug.

Backup Battery (BT1)

A coin cell holder on the bottom side backs up the receiver’s supply (VDD_BAT) when the board loses power, so the mosaic-T keeps its almanac and settings and restarts warm (typically under 20 s) instead of cold (under 45 s) [2]. A BQ25306 charger charges the cell from the 5 V rail. Use only a rechargeable lithium coin cell of a type that suits the charger setting; do not fit a non-rechargeable cell.

Status LEDs

Two LEDs (D2 and D3) show the receiver’s status outputs (GPLED); see the mosaic-T hardware manual [3] for their meaning.

Jamming and Spoofing Resilience

The Septentrio mosaic-T has built-in interference monitoring and mitigation, which Septentrio calls AIM+. According to Septentrio, AIM+ monitors for interference and mitigates narrow band, wide band and chirp jammers, and the receiver is described as highly secure against jamming and spoofing [2]. The receiver also supports Galileo OSNMA (navigation message authentication) and RAIM+ (receiver autonomous integrity monitoring) [2]. Septentrio’s product datasheet gives no suppression figures, such as the jammer-to-signal ratio the receiver tolerates, so none are given here.

These functions run inside the mosaic-T. How well a PTPH1 performs near interference also depends on the antenna, where it is placed, and any external filtering or limiting, which are not part of this board.

When interference degrades the receiver’s clock data, the PTPH1 treats it like any other loss of GNSS: after 5 s of unhealthy data the oscillator control word is frozen, and the board keeps its 10 MHz and PPS outputs running for up to one hour. The state is reported in the DroneCAN node status. The holdover was verified by disconnecting the antenna, not by applying jamming or spoofing signals; the PTPH1 has not been tested against either. Whether OSNMA authentication is enabled on a unit has not been verified on this board, and the DroneCAN messages do not report interference or spoofing status.

Software and firmware

This board is a DroneCAN (UAVCAN v0) node. It uses classic CAN (CAN FD is not used) at 1 Mbit/s with 29-bit identifiers.

Node ID

Every node on a DroneCAN bus has a unique node ID from 1 to 127, which is the source address of the messages it sends. The PTPH1 has no node ID jumpers and no parameter service: its node ID is fixed in the firmware at 42. Give each node on the same bus its own ID and keep the flight controller’s own node ID different from 42.

Messages and Services

The board publishes three messages and answers one service. It does not subscribe to any message.

Message / serviceType IDDirectionPriorityNotes
uavcan.protocol.NodeStatus341Published, 1 Hz24 (low)Health and mode; vendor status carries the disciplining and holdover state
uavcan.equipment.gnss.Fix21063Published, on each PVT (1 Hz)16 (medium)GNSS position, velocity, time and fix status; at least once every 2 s
uavcan.equipment.gnss.Auxiliary1061Published, 1 Hz24 (low)Satellite counts; dilution of precision unknown
uavcan.protocol.GetNodeInfo1ServicePriority of the requestName "com.etherform.ptph", software version 0.1, hardware version 1.0, chip unique ID
Node Status and Holdover State

The NodeStatus message reports the board’s health in its health field and the disciplining state of the 10 MHz in the vendor-specific status field. The mode field is INITIALIZATION while the board waits for the oscillator, the AD9545 and the receiver, or for a healthy GNSS clock (states 0 and 1 below), and OPERATIONAL afterwards.

NodeStatus health

HealthValueMeaning
OK0Locked to GNSS, or acquiring, and the AD9545 is following the PPS.
WARNING1Holdover is running and has not yet passed one hour, or the AD9545 is not following the PPS.
ERROR2Holdover has lasted more than one hour, or the oscillator is not answering on the I2C bus or its correction is at its limit (state 6).

Disciplining states (vendor-specific status, bits 2 to 0)

StateNameMeaning
0INITWaiting for the oscillator, the AD9545 and the receiver link.
1WARMUPWaiting for healthy GNSS clock data for 20 s.
2ACQUIREFast steering: pulling the frequency and phase of the oscillator in.
3LOCKEDSlow tracking. The oscillator control word is saved for holdover.
4HOLDOVERGNSS lost for 5 s: the control word is frozen and the oscillator coasts.
5REACQUIREGNSS back and healthy for 30 s: slew-limited return to lock.
6FAULTThe oscillator is not answering, or the correction is at its limit.

NodeStatus vendor-specific status field (16 bits)

BitsMeaning
2 to 0Disciplining state
7 to 30
8Holdover has lasted more than one hour
9The AD9545 was also put into its own holdover (the receiver link was lost for more than 30 s during holdover)
10The receiver reports a healthy GNSS clock
15 to 11Elapsed holdover time in whole minutes (0 to 31, saturates at 31)

Holdover works as follows. When the receiver’s clock data are unhealthy for 5 s (no fix, no external frequency, stale data, or no PPS), the microcontroller freezes the oscillator’s frequency control word. The receiver then keeps emitting its PPS from the held 10 MHz for up to 3600 s, and the AD9545 keeps following that PPS, so all outputs stay on frequency and time. Only if the serial link to the receiver itself is lost for more than 30 s does the microcontroller also put the AD9545 into its own holdover, so that it coasts on its tuning-word history. When GNSS returns and stays healthy for 30 s, the board steers back to lock; after a one-hour antenna disconnection on the bench the recovery needed only a fine correction.

GNSS Fix Message

The board publishes uavcan.equipment.gnss.Fix2 (type ID 1063) when the receiver sends a new position (once per second), and at least every 2 s otherwise. The table lists the fields as defined in the DroneCAN DSDL [7] and the value this board writes.

FieldTypeBitsValue written by the PTPH1
timestampuavcan.Timestamp (uint56, us)56GNSS time in microseconds since the Unix epoch while the receiver has fine time, otherwise 0
gnss_timestampuavcan.Timestamp (uint56, us)56GNSS time in microseconds since the Unix epoch (0 if unknown)
gnss_time_standarduint332 (UTC)
num_leap_secondsuint8818 (fixed in the firmware)
longitude_deg_1e8, latitude_deg_1e8int3737 eachPosition in degrees times 1e8; 0 without a position
height_ellipsoid_mm, height_msl_mmint2727 eachHeight in millimetres above the ellipsoid and above mean sea level; 0 without a position
ned_velocityfloat32[3]96North, east and down velocity in m/s; 0 without a position
sats_useduint66Number of satellites used in the position
statusuint220 NO_FIX, 1 TIME_ONLY (time valid or in holdover, no position), 3 FIX_3D
mode, sub_modeuint4, uint64, 60, 0 (SINGLE)
covariancefloat16[<=36]6Empty (length 0)
pdopfloat1616NaN (unknown)

uavcan.equipment.gnss.Auxiliary (type ID 1061) carries the number of satellites in view and used; all dilution-of-precision fields are NaN.

Receiver Configuration

The firmware configures the mosaic-T at start-up and again if its data stop. It asks for the PVTGeodetic, ReceiverStatus and xPPSOffset blocks and NMEA GGA and GSV messages at 1 Hz on COM1 (115200 baud, 8N1, hardware flow control), turns the receiver’s Ethernet interface on, and sets the PPS output to 1 Hz, rising edge, no delay, GPS time scale, 100 ms wide, with a maximum synchronisation age of 3600 s. The receiver’s clock runs free on the 10 MHz reference: the microcontroller reads its clock bias and drift from the PVTGeodetic block and does not use the receiver’s own clock steering.

PX4 Configuration

PX4 can use the PTPH1 as a GNSS source through its uavcan driver. Set the following parameters (a reboot is needed after changing them). The parameter names are from the PX4 parameter reference [8]. Operation with a flight controller has not been tested.

ParameterValueNotes
UAVCAN_ENABLE2Sensors automatic configuration. 0 = driver disabled, 1 = sensors with manual configuration, 3 also enables actuators
UAVCAN_SUB_GPS1Subscribe to uavcan.equipment.gnss.Fix2
UAVCAN_BITRATE1000000Bus bit rate in bit/s; must match the 1 Mbit/s of the board
UAVCAN_NODE_ID1 to 125Node ID of the flight controller; it must not equal the PTPH1 node ID (42)

Firmware

The PTPH1 ships pre-programmed with its firmware and is ready to use out of the box. The firmware is proprietary and its source code is not publicly released. Updated firmware images are supplied by Ether Form Inc.

Programming the Board

Connect an ST-LINK-V3MINIE to J4 (STDC14) to load firmware or debug over SWD. The board must be powered; the debugger takes its logic level from pin 3 (3.3 V). The microcontroller is an STM32G0B1KBT6, which STM32CubeProgrammer supports. Do not erase the whole device unless the replacement image is available.

Resources

References

[1] “4.1 CAN bus transport layer – DroneCAN,” GitHub Pages, 2025. https://dronecan.github.io/Specification/4.1_CAN_bus_transport_layer/ (accessed Oct. 6, 2026).

[2] “mosaic-T: Compact multi-frequency GNSS timing receiver module,” Septentrio product datasheet, 2025.

[3] “mosaic-T Hardware Manual,” Septentrio, version 1.11.0.

[4] “SiT5811: 10 to 60 MHz, ±1 ppb Epoch Platform Precision OCXO,” SiTime datasheet, Rev. 0.12.

[5] “LMK00101 Ultra-low Jitter LVCMOS Fanout Buffer/Level Translator with Universal Input,” Texas Instruments datasheet SNAS572C.

[6] “AD9545: Quad Input, 10-Output, Dual DPLL/IEEE 1588 1 pps Synchronizer and Jitter Cleaner,” Analog Devices datasheet, Rev. C.

[7] “1063.Fix2.uavcan,” “1061.Auxiliary.uavcan” and “uavcan.protocol.NodeStatus,” DroneCAN DSDL. https://github.com/dronecan/DSDL (accessed Oct. 6, 2026).

[8] “Parameter Reference,” PX4 Autopilot User Guide. https://docs.px4.io/main/en/advanced_config/parameter_reference.html (accessed Oct. 6, 2026).

Request a quote or discuss your integration

Choose the inquiry type that fits. A standard bulk quote only needs a quantity and your contact details; engineering and customization inquiries need a short description of what you need.