{"id":18286862,"url":"https://github.com/markatk/dcc-quality-analyzer","last_synced_at":"2026-04-26T12:31:21.055Z","repository":{"id":97612654,"uuid":"178747197","full_name":"markatk/dcc-quality-analyzer","owner":"markatk","description":"Arduino based DCC protocol quality analyser","archived":false,"fork":false,"pushed_at":"2020-05-17T08:09:14.000Z","size":35,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-09T06:32:46.667Z","etag":null,"topics":["arduino","dcc","nmra"],"latest_commit_sha":null,"homepage":null,"language":"Rust","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/markatk.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":"2019-03-31T22:03:58.000Z","updated_at":"2020-05-17T08:09:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"8cbb59df-8b85-4711-b572-aa84b17acb43","html_url":"https://github.com/markatk/dcc-quality-analyzer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/markatk/dcc-quality-analyzer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markatk%2Fdcc-quality-analyzer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markatk%2Fdcc-quality-analyzer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markatk%2Fdcc-quality-analyzer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markatk%2Fdcc-quality-analyzer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/markatk","download_url":"https://codeload.github.com/markatk/dcc-quality-analyzer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markatk%2Fdcc-quality-analyzer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32297893,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T09:34:17.070Z","status":"ssl_error","status_checked_at":"2026-04-26T09:34:00.993Z","response_time":129,"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":["arduino","dcc","nmra"],"created_at":"2024-11-05T13:22:36.124Z","updated_at":"2026-04-26T12:31:21.050Z","avatar_url":"https://github.com/markatk.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DCC Quality Analyzer\n\n## Description\n\nThe DCC Quality Analyzer is an Arduino based [DCC protocol](https://www.nmra.org/dcc-working-group) analyzer focusing on the quality of the signal. It provides features like bit level analyzing, error rate calculation, and more (full list below).\n\nThe analyzer is focused on developing dcc based systems but may also be used on existing installations.\n\nThe analyzer only works on digital side of the protocol. Errors on the analog side (like wrong e.g. voltage from a booster) will not be detected.\n\n## Setup\n\nA DCC booster signal **MUST NOT** be connected directly to the arduino, otherwise it will most probably destroy the arduino. Instead a compatible arduino dcc shield or custom circuit must be used to. Most shields output the DCC data onto *pin 2*, if another pin is used the sketch needs to be updated at `#define DCC_PIN`.\n\nThe host program is running on a pc connected to the arduino via USB. The program runs in the terminal and analyzes the incoming packages by type, calculates error rates and much more. The program is written in Rust and is cross-platform compatible. The host program can be downloaded from the [releases](https://github.com/markatk/dcc-quality-analyzer/releases) or compiled directly with Rust by running `cargo install` in the *quality analyzer* directory.\n\nThe host program is not strictly required since the arduino will output received data on the serial but it is strongly recommended, since all the interesting analyzation is done in the program.\n\n## Usage\n\nThe host program is started by running `quality-analyzer \u003cPORT\u003e` in the terminal where \u003cPORT\u003e is the OS specific serial port of the connected arduino running the dcc-quality-analzer firmware.\n\n## Features\n\n- Bit level stream with false bit detection\n- Error rate calculation\n- Error trigger pin with adjustable threshold rate\n- RailCom cutout detection\n- Missing signal trigger pin with adjustable threshold rate\n- Scope trigger pin for new packets\n- Preamble counter\n\n## License\n\nMIT License\n\nCopyright (c) 2019\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkatk%2Fdcc-quality-analyzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarkatk%2Fdcc-quality-analyzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkatk%2Fdcc-quality-analyzer/lists"}