{"id":22051593,"url":"https://github.com/parlaynu/pi5-timeserver-gps-pps","last_synced_at":"2026-02-18T10:35:48.761Z","repository":{"id":218160351,"uuid":"745685417","full_name":"parlaynu/pi5-timeserver-gps-pps","owner":"parlaynu","description":"Create an NTP and PTP timeserver using RaspberryPi5 with BerryGPS-IMU and PPS","archived":false,"fork":false,"pushed_at":"2024-05-16T00:19:13.000Z","size":5185,"stargazers_count":38,"open_issues_count":0,"forks_count":5,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-10-19T12:55:22.260Z","etag":null,"topics":["berrygps-imu","chrony","gps","gpsd","linuxptp","ntp","phc2sys","pps","ptp","ptp4l","raspberry-pi-5","ublox-m8c","ubxtool"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/parlaynu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-19T21:45:34.000Z","updated_at":"2025-10-17T06:14:29.000Z","dependencies_parsed_at":"2024-01-20T04:26:28.461Z","dependency_job_id":"adfb597c-6c95-4c47-a544-09423c213476","html_url":"https://github.com/parlaynu/pi5-timeserver-gps-pps","commit_stats":null,"previous_names":["parlaynu/pi5-timeserver-gps-pps"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/parlaynu/pi5-timeserver-gps-pps","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parlaynu%2Fpi5-timeserver-gps-pps","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parlaynu%2Fpi5-timeserver-gps-pps/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parlaynu%2Fpi5-timeserver-gps-pps/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parlaynu%2Fpi5-timeserver-gps-pps/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/parlaynu","download_url":"https://codeload.github.com/parlaynu/pi5-timeserver-gps-pps/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parlaynu%2Fpi5-timeserver-gps-pps/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29576634,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T08:38:15.585Z","status":"ssl_error","status_checked_at":"2026-02-18T08:38:14.917Z","response_time":162,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["berrygps-imu","chrony","gps","gpsd","linuxptp","ntp","phc2sys","pps","ptp","ptp4l","raspberry-pi-5","ublox-m8c","ubxtool"],"created_at":"2024-11-30T15:09:53.437Z","updated_at":"2026-02-18T10:35:43.745Z","avatar_url":"https://github.com/parlaynu.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# RaspberryPi5 GPS/PPS Timeserver\n\nThis repo contains instructions for building a timeserver using GPS/PPS as the reference clock. It\nuses NTP and PTP to share time with the local network.\n\nThe key hardware components used are:\n\n* [RaspberryPi 5B](https://www.raspberrypi.com/products/raspberry-pi-5/)\n* [BerryGPS-IMU v4](https://ozzmaker.com/product/berrygps-imu/)\n* [GPS External Antenna](https://ozzmaker.com/product/antenna-for-berrygps-and-berrygps-imu/)\n* [RaspberryPi 4B](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/)\n* Network switch\n* Network cables\n\nYou'll also need SD cards, power supplies and probably cases for your RaspberryPis.\n\nThe Pi5B has a network card with support for PTP hardware timestamping, although it could also be done with \nPTP software timestamping on an earlier version of the Pi.\n\nThe Pi4 is used for the client because I had one already. The setup described for the Pi4 client should be easily \ntransferred to any Linux machine.\n\nThe images below show the Pi5 with the BerryGPS-IMU HAT attached, and the complete hardware system:\n\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\u003cimg src=\"docs/pi5-berrygps.jpeg\"\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cimg src=\"docs/pi5-system.jpeg\"\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\nAnd the software components are a bit like this:\n\n![System Setup](docs/system.png \"System Setup\")\n\n## Server\n\nInstructions for the server setup are [here](docs/server.md)\n\n## Client\n\nInstructions for the client setup are [here](docs/client.md)\n\n## GPS Configuration\n\nInstructions for customising the GPS configuration are [here](docs/gps-configuration.md)\n\n## Reference\n\nGreat Example using NTP\n\n* https://www.satsignal.eu/ntp/Raspberry-Pi-NTP.html\n\nRaspberryPi\n\n* https://www.raspberrypi.com/products/raspberry-pi-5/\n* https://www.raspberrypi.com/software/\n* https://www.raspberrypi.com/documentation/\n\nBerryGPS-IMU\n\n* https://ozzmaker.com/berrygps-setup-guide-raspberry-pi/\n\nUARTs\n\n* https://www.raspberrypi.com/documentation/computers/configuration.html#configuring-uarts\n* https://forums.raspberrypi.com/viewtopic.php?t=359132\n\nPPS\n\n* https://www.kernel.org/doc/html/latest/driver-api/pps.html\n* https://forums.raspberrypi.com/viewtopic.php?t=195011\n\nGPSd\n\n* https://gpsd.io/\n* https://gpsd.io/gpsd-time-service-howto.html#_providing_local_ntp_service_using_ptp\n\nChrony\n\n* https://gpsd.io/gpsd-time-service-howto.html#_feeding_chrony_from_gpsd\n* https://chrony-project.org/\n* https://chrony-project.org/comparison.html\n\nPTP\n\n* https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/deployment_guide/s0-serving_ntp_time_with_ptp\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparlaynu%2Fpi5-timeserver-gps-pps","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fparlaynu%2Fpi5-timeserver-gps-pps","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparlaynu%2Fpi5-timeserver-gps-pps/lists"}