{"id":24535670,"url":"https://github.com/timoschwarzer/esp32-thread-router","last_synced_at":"2025-03-15T23:28:23.125Z","repository":{"id":273433150,"uuid":"919671452","full_name":"timoschwarzer/esp32-thread-router","owner":"timoschwarzer","description":"A Thread network router running on ESP32","archived":false,"fork":false,"pushed_at":"2025-01-20T21:36:06.000Z","size":6,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-20T22:47:55.876Z","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/timoschwarzer.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":"2025-01-20T19:42:20.000Z","updated_at":"2025-01-20T21:35:22.000Z","dependencies_parsed_at":"2025-01-20T22:48:07.452Z","dependency_job_id":"95cb6071-54a4-47ad-b5e4-5c046d3b4970","html_url":"https://github.com/timoschwarzer/esp32-thread-router","commit_stats":null,"previous_names":["timoschwarzer/esp32-thread-router"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timoschwarzer%2Fesp32-thread-router","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timoschwarzer%2Fesp32-thread-router/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timoschwarzer%2Fesp32-thread-router/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timoschwarzer%2Fesp32-thread-router/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/timoschwarzer","download_url":"https://codeload.github.com/timoschwarzer/esp32-thread-router/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243806144,"owners_count":20350773,"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","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":"2025-01-22T12:20:03.169Z","updated_at":"2025-03-15T23:28:23.100Z","avatar_url":"https://github.com/timoschwarzer.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ESP32 Thread Network Router\n\nThis is a minimal (and more or less proof of concept) firmware to make an ESP32-H2 act as a Full Thread Device (FTD). FTDs can act as routers (\"repeaters\" in simple WiFi terms), extending the whole Thread network to make it possible for Minimal Thread Devices (MTD) to reach the Border Router. MTDs are usually battery powered and are thus restricted from becoming a router.\n\n\n## Device Setup\n\nMake sure you have an ES32-H2-DevKitM-1! If not, you may need to configure and compile the firmware for your respective board manually. The board I am running this firmware on has \"Waveshare ESP32-H2-DEV-KIT-N4\" printed on the back.\n\n1. Download the latest binaries from [releases](https://github.com/timoschwarzer/esp32-thread-router/releases)\n2. Flash the firmware to your board:\n   ```sh\n   esptool.py --chip esp32h2 --port /dev/YOUR_TTY_PORT --baud 460800 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 48m --flash_size detect 0x0 bootloader.bin 0x8000 partitions.bin 0x10000 firmware.bin\n   ```\n3. Connect to the board via USB serial\n\nYou should be able to see `esp32-thread-router/-; esp32h2` when running the `version` command in the serial console.\n\n\n## Joining your Thread network\n\nThe firmware will spawn an [OpenThread CLI](https://github.com/openthread/openthread/blob/main/src/cli/README.md) and create a new Thread network by default.\n\nTo join your existing network, set the active dataset:\n\n```sh\ndataset set active 0e0000...\n```\n\nAfter a short while, the ESP should connect to your Thread network. You can see the current state by running the `state` command, which should yield in `child` or `router`.\n\nYour Thread network will automatically select a device as router based on network conditions, so it might take a while before your device becomes a router. If your network conditions are ideal already, your device might never become a router.\n\nAs final step, when everything works as desired, you can save the dataset to flash:\n\n```sh\ndataset commit active\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimoschwarzer%2Fesp32-thread-router","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftimoschwarzer%2Fesp32-thread-router","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimoschwarzer%2Fesp32-thread-router/lists"}