{"id":18523378,"url":"https://github.com/mhx/gpsdo-config","last_synced_at":"2026-04-25T12:35:01.072Z","repository":{"id":146758125,"uuid":"238674810","full_name":"mhx/gpsdo-config","owner":"mhx","description":"Find GPS reference clock configuration from set of frequencies","archived":false,"fork":false,"pushed_at":"2023-01-04T22:20:53.000Z","size":81,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-01-28T10:47:36.927Z","etag":null,"topics":["command-line","cpp","gps","gpsdo","lb-gps-linux","linux","reference-clock"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mhx.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":"2020-02-06T11:37:00.000Z","updated_at":"2025-07-08T09:40:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"e156898b-d037-489f-a01e-87c445c3e0b7","html_url":"https://github.com/mhx/gpsdo-config","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/mhx/gpsdo-config","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhx%2Fgpsdo-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhx%2Fgpsdo-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhx%2Fgpsdo-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhx%2Fgpsdo-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mhx","download_url":"https://codeload.github.com/mhx/gpsdo-config/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhx%2Fgpsdo-config/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32262801,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T09:15:33.318Z","status":"ssl_error","status_checked_at":"2026-04-25T09:15:31.997Z","response_time":59,"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":["command-line","cpp","gps","gpsdo","lb-gps-linux","linux","reference-clock"],"created_at":"2024-11-06T17:35:24.822Z","updated_at":"2026-04-25T12:35:01.053Z","avatar_url":"https://github.com/mhx.png","language":"C++","readme":" [![Build Status](https://travis-ci.com/mhx/gpsdo-config.svg?branch=master)](https://travis-ci.com/mhx/gpsdo-config)\n\n# gpsdo-config\n\nFind GPS reference clock configuration from set of frequencies\n\n## Overview\n\nThis tool is intended to fill a gap in configuring the Precision GPS Reference\nClock from [Leo Bodnar Electronics](http://www.leobodnar.com/) on Linux. There\nis already the [lb-gps-linux project](https://github.com/simontheu/lb-gps-linux)\nthat allows you to set the \"raw\" parameters of the hardware, but in order to\ndetermine those parameters, you have to rely on the Windows GUI application.\n\nThe `gpsdo-config` tool provided here allows you to find these parameters by\nspecifying the desired output frequencies. The parameters can optionally be\nprinted as command-line arguments for the `lb-gps-linux` tool, so setting new\noutput frequencies can be done with a simple one-liner:\n\n```\nlb-gps-linux /dev/hidraw3 $(gpsdo-config 10M 120M --cmdline)\n```\n\n## Building and Installing\n\n```\ncmake .\nmake -j\nsudo make install\n```\n\n## Usage\n\n```\nUsage: ./gpsdo-config f1 [f2] [options...]\n\nOptions:\n  --f1 arg              frequency 1\n  --f2 arg              frequency 2\n  --all                 find all possible solutions\n  --any                 find any possible solution\n  --best                find best possible solution\n  -v [ --verbose ]      print more information\n  --relaxed             use relaxed VCO limits\n  --cmdline             print command line config\n  --json                print solutions as json objects\n  -h [ --help ]         produce help message\n\nIf only one frequency is specified, both outputs will be set to the\nsame frequency. Frequencies will be processed accurately as rational\nnumbers internally, and can also be specified as such. An integral\npart can be separated from a fraction by either a single space or an\nunderscore. Suffixes `M` and `k` are supported for MHz and kHz.\n\n`--all` and `--best` can be really slow as there may be millions\nof possible solutions. By default, the code will look for a \"good\"\nsolution, which shouldn't be significantly slower than `--any`.\nThe \"quality\" of a solution is measured purely by means of the\nphase detector comparison frequency (f3), which directly impacts\njitter/phase noise. `--best` will always search for the solution\nwith the highest possible f3. The default behaviour will accept\nany f3 that is higher than 50% of the maximum value.\n\nOutput for `--json` and `--cmdline` will always be exclusively\nwritten to stdout, suitable for processing by other commands.\nAll other output will be written to stderr.\n\nExamples:\n  ./gpsdo-config 1000\n  ./gpsdo-config 10M 96k\n  ./gpsdo-config 1000.31 2345.61 --best\n  ./gpsdo-config 10_1/7k 500/9k --all --verbose\n  lb-gps-linux /dev/hidraw3 $(./gpsdo-config 10M 120M --cmdline)\n\nExit status:\n  0: successful completion\n  1: could not find any solution for the specified frequencies\n  2: input processing error\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmhx%2Fgpsdo-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmhx%2Fgpsdo-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmhx%2Fgpsdo-config/lists"}