{"id":20477337,"url":"https://github.com/harbaum/maerklin","last_synced_at":"2025-10-13T12:39:50.253Z","repository":{"id":89283554,"uuid":"368542614","full_name":"harbaum/maerklin","owner":"harbaum","description":null,"archived":false,"fork":false,"pushed_at":"2021-05-18T13:55:30.000Z","size":91,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-11T00:59:25.643Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/harbaum.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2021-05-18T13:35:12.000Z","updated_at":"2023-01-26T15:05:19.000Z","dependencies_parsed_at":"2023-04-11T04:47:26.685Z","dependency_job_id":null,"html_url":"https://github.com/harbaum/maerklin","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/harbaum/maerklin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harbaum%2Fmaerklin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harbaum%2Fmaerklin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harbaum%2Fmaerklin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harbaum%2Fmaerklin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/harbaum","download_url":"https://codeload.github.com/harbaum/maerklin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harbaum%2Fmaerklin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279015056,"owners_count":26085643,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-11-15T15:27:36.790Z","updated_at":"2025-10-13T12:39:50.238Z","avatar_url":"https://github.com/harbaum.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Maerklin for Arduino\n\nThis repository contains code to control Maerklin digital\nmodel train engines using a Arduino Pro Micro and the\nL298 bridge driver.\n\n![Breadboard setup](breadboard.png)\n\nThree demos are provided. All three will blink the lights of\na Maerlkin steam engine.\n\n## mmtestuart\n\nThis demo uses the USART in UART mode to generate the necessary\nsignals. It's the easiest one to understand as it uses the standard\nSerial interface but generates some of the timing using busy waits.\n\n## mmtestmspi\n\nThis demo uses the USART in SPI mode to generate the necessary\nsignals. This is similar to the UART variant but implemts SPI mode which\nis technically simpler but requires direct hardware programming\nto achieve the correct timing. This still needs some busy waiting code\nand is thus difficult to combine with other code.\n\n## mmtestmspiirq\n\nThis demo uses the USART in SPI mode and an interrupt handler to\ngenerate the necessary signals. This solution is the most complex one\nas the entire timing is generated within an interrupt handler.  The\nbig advantage of this solution is that the entire signal generation\nruns in the background and no blocking busy waits are needed. The\nentire arduinos is thus free to do other operations in the foreground like\ndoing USB communication to send and receive control commands.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharbaum%2Fmaerklin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fharbaum%2Fmaerklin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharbaum%2Fmaerklin/lists"}