-
-
Notifications
You must be signed in to change notification settings - Fork 162
Description
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.
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:
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