{"id":22310128,"url":"https://github.com/BattleCh1cken/loginator","last_synced_at":"2025-07-29T07:32:23.177Z","repository":{"id":196553905,"uuid":"695272567","full_name":"BattleCh1cken/loginator","owner":"BattleCh1cken","description":"A bridge between the V5 brain and a MQTT broker","archived":false,"fork":false,"pushed_at":"2024-01-03T18:41:54.000Z","size":109,"stargazers_count":7,"open_issues_count":2,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-04-19T15:22:13.405Z","etag":null,"topics":["pros","vex-robotics"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/BattleCh1cken.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}},"created_at":"2023-09-22T18:31:03.000Z","updated_at":"2024-04-19T15:22:13.406Z","dependencies_parsed_at":"2024-01-03T19:49:00.476Z","dependency_job_id":null,"html_url":"https://github.com/BattleCh1cken/loginator","commit_stats":null,"previous_names":["battlech1cken/loginator"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/BattleCh1cken/loginator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BattleCh1cken%2Floginator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BattleCh1cken%2Floginator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BattleCh1cken%2Floginator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BattleCh1cken%2Floginator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BattleCh1cken","download_url":"https://codeload.github.com/BattleCh1cken/loginator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BattleCh1cken%2Floginator/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267646012,"owners_count":24120918,"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-07-29T02:00:12.549Z","response_time":2574,"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":["pros","vex-robotics"],"created_at":"2024-12-03T21:00:58.122Z","updated_at":"2025-07-29T07:32:23.169Z","avatar_url":"https://github.com/BattleCh1cken.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# Loginator\n\nThis project acts as a bridge between a VEX robot and an mqtt broker. The output from this broker can then be sent to listened to by a Grafana instance. \n\nYou can find more information about those services here:\n- https://grafana.com/docs/\n- https://mosquitto.org/documentation/\n\n## Installation\n\nCurrently cargo install is the only supported method for installation. This may change once there is a stable release.\n\n```sh\ncargo install --git https://github.com/BattleCh1cken/loginator\n```\nMake sure that `$HOME/.cargo` is added to `$PATH`.\n\nYou can then run it like so:\n\n```sh\nloginator --help\n```\n\n\n## Configuration\n\nOnce you've installed, generate a new config by running the program once.\n\n```sh\nloginator\n```\nThe configuration file can be found at:\n- Linux: `/home/USERNAME/.config/loginator/`\n- Windows: `%appdata%\\loginator\\config\\`\n\nOnce you have your config you'll need to configure it to match your brain. The first thing you'll need to do is make your V5 brain bluetooth capable. Follow [these](https://kb.vex.com/hc/en-us/articles/360044904552-Configuring-the-V5-Brain-for-Coding-over-Bluetooth) steps to enable bluetooth.\n\nOnce you've done that, connect your radio and turn your brain on. Then run:\n```sh\nloginator list-brains\n```\n\nThis will print out all of the available brains. Change the brain name in your config file to match your brain's name. The name can be changed by changing your robot name.\n\n```toml\n# config.toml\nbrain_name = 'VEX_V5'\n```\n\nThen run:\n```sh\nloginator display-code\n```\n\nThis will display the brain's bluetooth 4 digit authentication code on it's LCD screen. Change the code in the config to match.\n\n```toml\n# config.toml\nbrain_code = '0000'\n```\n\nNow you'll need to configure your routes. These are the MQTT topics and labels for the data that the brain will be emitting.\n\nYou'll then need to set your brain up to emit telemetry data. Install the [LemLib](https://lemlib.github.io/LemLib/md_docs_tutorials_1_getting_started.html) template.\n\nYou can log telemetry like so:\n\n```cpp\n#define TEMPERATURE_ROUTE 0\nlemlib::telemetrySink()-\u003edebug(\"{},{},{}\", TEMPERATURE_ROUTE, motor1.get_temperature(), motor2.get_temperature());\n\n// Currently the loginator will only work with debug messages\n```\n\nThe loginator expects data in the form of numbers separated by commas. The first digit corresponds with the route, and the rest are the actual data. In order to use this data we'd have to define the following route in our config.toml:\n```toml\n#config.toml\n\nroutes = [\n    [\n    'motors/temperature',\n    [\n    'First motor',\n    'Second motor',\n],\n]\n```\n\nIn this case we specified 0 as our route, meaning that the loginator will use the first route in the array of routes.\n\n## Setting up Mosquitto\n\nInstructions to install Mosquitto can be found [here](https://mosquitto.org/download/).\n\nYou can verify that its working by running:\n```sh\nmosquitto_sub -h localhost -t motors/temperature\n```\n\n## Setting Up Grafana\n\nInstructions to install Grafana can be found [here](https://grafana.com/grafana/download).\n\nOnce it's installed, you'll need to configure your dashboard. Add MQTT as a datasource and create a new visualization.\n\n![Creating the panel](./assets/creating-panel.png)\n\nClick apply and you're good to go!\n\n## Connecting to the Brain\n\nRun:\n\n```sh\nloginator connect\n```\n\nThe loginator will now connect to the brain with your configured name. All messages sent via LemLib telemetry will now be sent to MQTT!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBattleCh1cken%2Floginator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FBattleCh1cken%2Floginator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBattleCh1cken%2Floginator/lists"}