{"id":20726651,"url":"https://github.com/embeddedartistry/athenaethernetreset","last_synced_at":"2026-05-19T07:31:38.818Z","repository":{"id":84101205,"uuid":"259767010","full_name":"embeddedartistry/AthenaEthernetReset","owner":"embeddedartistry","description":"HTTP Server to perform resets over Ethernet when using the Athena Bootloader","archived":false,"fork":false,"pushed_at":"2020-09-17T21:14:30.000Z","size":19,"stargazers_count":0,"open_issues_count":7,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-10T06:58:06.164Z","etag":null,"topics":["arduino","athena-bootloader","ethernet","hacktoberfest"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/embeddedartistry.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-04-28T22:35:46.000Z","updated_at":"2020-10-03T20:00:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"fd9c1164-2c4b-4635-8f3f-9bae1a4c6d4e","html_url":"https://github.com/embeddedartistry/AthenaEthernetReset","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/embeddedartistry/AthenaEthernetReset","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/embeddedartistry%2FAthenaEthernetReset","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/embeddedartistry%2FAthenaEthernetReset/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/embeddedartistry%2FAthenaEthernetReset/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/embeddedartistry%2FAthenaEthernetReset/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/embeddedartistry","download_url":"https://codeload.github.com/embeddedartistry/AthenaEthernetReset/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/embeddedartistry%2FAthenaEthernetReset/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279001982,"owners_count":26083259,"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-09T02:00:07.460Z","response_time":59,"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":["arduino","athena-bootloader","ethernet","hacktoberfest"],"created_at":"2024-11-17T04:26:29.335Z","updated_at":"2025-10-09T20:40:35.099Z","avatar_url":"https://github.com/embeddedartistry.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ethernet Reset Server Library for Athena Bootloader\n\nThis library is meant for Arduino application using the Athena bootloader. The library will create a server which can be used to remotely reset the device, as well as to remotely enter the bootloader mode so a sketch can be uploaded via TFTP.\n\n## Dependencies\n\nThis library requires you to have the [AthenaEEPROM](https://github.com/embeddedartistry/AthenaEEPROM) library installed.\n\n## Files\n\nThe source files for this library are:\n\n* [`AthenaEthernetReset.cpp`](AthenaEthernetReset.cpp)\n* [`AthenaEthernetReset.h`](AthenaEthernetReset.h)\n\nAn example sketch is provided and can be found at [`examples/ResetServer/ResetServer.ino`](examples/ResetServer/ResetServer.ino). The sketch shows you how the Ethernet reset server should be included in your application.\n\n## Usage\n\nThis library creates a web server on the Arduino that can be used for resetting the device remotely. The server will run on the port specified in the constructor.\n\n```\n/* Create the reset server at the specified port.*/\nAthenaEthernetReset reset(8080);\n```\n\n The server can be used to remotely reset a device or remotely enter programming mode. This is done through a GET request to specific URLs:\n\n```\nhttp://{ip}:{port}/{reset_path}/reset\nhttp://{ip}:{port}/{reset_path}/reprogram\n```\n\nThe `reset` URL will perform a normal reset of the program. This endpoint does not provide a reprogramming opportunity.\n\nThe `reprogram` URL will invalidate the existing sketch so the bootloader won't time out. The bootloader will wait until a new image is uploaded.\n\nYou can go to the URL in a browser, or you can use curl:\n\n```\n$ curl 10.0.1.199:8080/athena/reprogram\n```\n\nInstead of a password, a `{reset_path}`` is used. If the path is correct, you can access the commands. This reset path matches the \"password\" that is configured by the AthenaEEPROM library. You should override the default password, but do not let your team's password be revealed in any public-facing repositories.\n\nIn the `setup` function, you need to call `.begin()` on the reset server. The Arduino/Ethernet Shield and the server are configured using the settings already stored in the EEPROM. This means that you *MUST* update the network settings on your Arduino with the \"WriteNetworkSettings\" sketch. \n\nThe AthenaEthernetReset server should be started before any other servers are started.\n\n```\nvoid setup()\n{\n    Serial.begin(115200);\n    while(!Serial) delay(10); \n    Serial.println(\"Starting Ethernet Reset Server Example\");\n  \n    // Initializes the Ethernet shield + server\n    reset.begin();\n}\n```\n\nIn your `loop()` function, you need to add a call to the `.check()` function:\n\n\n```\nvoid loop()\n{\n    // Check for reset or reprogram requests\n    reset.check();\n}\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fembeddedartistry%2Fathenaethernetreset","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fembeddedartistry%2Fathenaethernetreset","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fembeddedartistry%2Fathenaethernetreset/lists"}