{"id":24937285,"url":"https://github.com/constantin-p/dcc-controller","last_synced_at":"2026-04-29T09:02:12.353Z","repository":{"id":92417424,"uuid":"132617211","full_name":"constantin-p/dcc-controller","owner":"constantin-p","description":"A DCC controller application for macOS, Windows, and Linux.","archived":false,"fork":false,"pushed_at":"2018-05-14T20:50:52.000Z","size":468,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-26T10:50:29.422Z","etag":null,"topics":["arduino","dcc","dcc-controller","java-8"],"latest_commit_sha":null,"homepage":"","language":"Java","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/constantin-p.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":"2018-05-08T14:00:08.000Z","updated_at":"2023-12-17T17:29:57.000Z","dependencies_parsed_at":"2023-05-02T11:18:09.154Z","dependency_job_id":null,"html_url":"https://github.com/constantin-p/dcc-controller","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/constantin-p/dcc-controller","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/constantin-p%2Fdcc-controller","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/constantin-p%2Fdcc-controller/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/constantin-p%2Fdcc-controller/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/constantin-p%2Fdcc-controller/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/constantin-p","download_url":"https://codeload.github.com/constantin-p/dcc-controller/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/constantin-p%2Fdcc-controller/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32418173,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T06:29:02.080Z","status":"ssl_error","status_checked_at":"2026-04-29T06:29:00.631Z","response_time":110,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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","dcc-controller","java-8"],"created_at":"2025-02-02T16:59:12.981Z","updated_at":"2026-04-29T09:02:12.322Z","avatar_url":"https://github.com/constantin-p.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [DCC Controller](https://github.com/constantin-p/dcc-controller)\n###### A DCC controller application for macOS, Windows, and Linux.\n\n##### Table of Contents\n* [Introduction](#introduction)\n* [Installation (DCC Controller)](#installation-dcc-controller)\n* [Usage](#usage)\n* [Configurations](#configurations)\n* [Screenshots](#screenshots)\n* [License](#license)\n\n### Introduction\n\nDCC Controller allows users to operate model railway systems (which support the [DCC](https://www.nmra.org/dcc-rps-standards) protocol) through a desktop GUI application.\n\nThe described functionality is achieved by using a 2 part system:\n- Java desktop application (DCC Controller)\n- Arduino control code [arduino/sketch_dcc_controller_v1](arduino/sketch_dcc_controller_v1).\n\n\n### Installation (DCC Controller)\n\n[Download 1.0 Release (DCC_Controller.jar)](https://github.com/constantin-p/dcc-controller/releases/tag/v1.0.0)\n\n### Usage\n1. Install the device control code for Arduino ([arduino/sketch_dcc_controller_v1](arduino/sketch_dcc_controller_v1))\n2. Open DCC Controller\n3. Create a new device (`File` → `New Device` or use the `Add Device button`)\n4. Open the device detail window (`Open` button from the device list)\n5. Connect the arduino board to your computer and select the corresponding port from DCC Controller (`Tools` → `Port`).\n\n###### You should now be able to control the speed and direction of the device. For more functionality use [configurations](#configurations).\n\n### Configurations\n\nYou can extend the functionality of the application by using configuration files.\nA configuration file is a comma-separated values (CSV) file with 2 columns: `command_display_name` \u0026 `command`.\n\nIn order to import your configuration files, go to `File` → `Import` configuration or use the `Add configuration` button (device detail window).\n\n###### For an example configuration file check [configuration/default_train.csv](configuration/default_train.csv).\n\n| Column                      | Description                                                 |\n|-----------------------------|-------------------------------------------------------------| \n| **`command_display_name`**  | The string that will describe the command in the GUI.       | \n| **`command`**               | The string that will be interpreted by the Arduino code. \\* |\n\n_**\\* This will be the suffix of the command string. The command structure is the following:**_\n\nDCC_CTRL:**`\u003caddress\u003e`**:`\u003ccommand\u003e`\n\n* **`\u003caddress\u003e`**: (`number`) The device address (starts from 0, up to 127). This is set when you create the device.\n\n\nFor the _**REVERSE**_ \u0026 _**FORWARD**_ commands the following structure is used:\n\nDCC_CTRL:`\u003caddress\u003e`:`\u003ccommand\u003e`:**`\u003carg\u003e`**\n\n* **`\u003carg\u003e`**: (`number`) The speed value (starts from 0, up to 15). This is set by the GUI slider.\n\n\n###### Commands are ended by a newline character `\\n`.\n---\n\n### Screenshots\n\n1. Device List Overview\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/constantin-p/dcc-controller/blob/master/screenshots/device-list.png?raw=true\" alt=\"Device List Overview\"/\u003e\n\u003c/p\u003e\n\n2. Create Device Screen\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/constantin-p/dcc-controller/blob/master/screenshots/create-device.png?raw=true\" alt=\"Create Device Screen\"/\u003e\n\u003c/p\u003e\n\n3. Default Device Screen\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/constantin-p/dcc-controller/blob/master/screenshots/device-basic.png?raw=true\" alt=\"Default Device Screen\"/\u003e\n\u003c/p\u003e\n\n4. Configured Device\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/constantin-p/dcc-controller/blob/master/screenshots/device-config.png?raw=true\" alt=\"Configured Device\"/\u003e\n\u003c/p\u003e\n\n\n## License\n\nThis project is MIT licensed.\nPlease see the [LICENSE](LICENSE) file for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconstantin-p%2Fdcc-controller","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fconstantin-p%2Fdcc-controller","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconstantin-p%2Fdcc-controller/lists"}