Skip to content

Add TimeHAT v4 Pi 5 HAT from Time Appliances #674

@geerlingguy

Description

@geerlingguy

TimeAppliances (affiliated with OCP-TAP) has announced the TimeHAT V2, a Pi 5 HAT that embeds an Intel i226 NIC along with a B-key M.2 slot for cards like GPS/GNSS adapters.

You can purchase the TimeHAT on Tindie.

DSC01242

The M.2 slot routes the PPS signal straight to the i226 input, for GPS time synchronization.

The two SMA connectors on the HAT can be configured for PPS in/out (IIRC the Pi 5 only has one PPS pin on it's built-in 1 Gbps NIC, but it is not exposed externally).

The preliminary schematics are available on the OCP-TAP GitHub here, and I have asked if they're considering selling units (or working with someone else to do so), and it sounds like this is a possibility!

From the LinkedIn post at the top of this issue, they also showed a demo of < 10ns sync using PTP with ptp4l:

1723338953158

Here is the TimeHat (open source and available on https://lnkd.in/gWNDJtDn) an add-on for the Raspberry Pi 5 that packs the Intel i226 with two SMA connectors, configurable to do PPS in/out (a feature that is unfortunately missing on the RPi 5). In addition the TimeHat got a connector for the latest RCB m.2 form factor to host a GNSS receiver by routing its PPS signal to the i226 as an input allowing it to become a Time Server for both NTP and PTP.

In this setup two Raspberry Pi 5 boards, each with a TimeHat are getting synchronized (the one on top acts as a time server and the one on the bottom as client) via PTP and both provide a PPS output that is compared (one act as the trigger and one gets measured) on the oscilloscope. The first sigma of the time sync error is under 10ns.

See related: https://pipci.jeffgeerling.com/hats/ocp-tap-timehat.html / #619

Setup Instructions

SEE ALSO: Time Pi repository, which I'm using for my own Time Server built around this HAT: https://github.com/geerlingguy/time-pi

Note: Still working on getting this running 100%, but here's how to get all the interfaces going for now:

First, add the following lines at the end of /boot/firmware/config.txt:

# For i226 compatibility, see https://github.com/geerlingguy/raspberry-pi-pcie-devices/issues/674
dtoverlay=pciex1-compat-pi5,mmio-hi

# To allow the u-blox GPS to work
dtparam=uart0=on

Then, make sure you remove the part console=serial0,115200 from /boot/firmware/cmdline.txt so the u-blox GPS can use /dev/ttyAMA0 for it's serial output.

Also, if you are on an older Pi OS or firmware, run sudo apt update && sudo apt full-upgrade, or consider running sudo rpi-update to get everything to the latest cutting edge releases.

To get the I226-LM NIC working, make sure it's plugged into the Pi's PCIe FFC connection properly, and check if it's recognized with lspci:

pi@time-pi:~ $ lspci
0000:00:00.0 PCI bridge: Broadcom Inc. and subsidiaries BCM2712 PCIe Bridge (rev 21)
0000:01:00.0 Ethernet controller: Intel Corporation Ethernet Controller I226-LM (rev 03)
...

Check if it gets a connection with ethtool eth1:

pi@time-pi:~ $ ethtool eth1
Settings for eth1:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Full
	                        2500baseT/Full

If you're having trouble with DHCP, you may need to configure a manual IP address, using nmtui. I've also found that 2.5 Gbps connections don't work at all, and you can't force 1 Gbps speeds on a 2.5 Gbps connection with the igb driver that ships in Pi OS's kernel, so right now I just make sure I only plug in the HAT's Ethernet port to 1 Gbps ports on my switch.

Install GPS software to work with the GPS modem:

TODO

Configure gpsd and NTPsec to sync via PPS. (TODO)

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions