{"id":27425771,"url":"https://github.com/gruncode/a-4km-espnow","last_synced_at":"2026-04-17T02:32:21.252Z","repository":{"id":286506009,"uuid":"961572332","full_name":"gruncode/A-4km-espnow","owner":"gruncode","description":"espnow on esp32s3 reaching 4km","archived":false,"fork":false,"pushed_at":"2025-04-12T19:45:19.000Z","size":76,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-09T15:56:19.249Z","etag":null,"topics":["esp32","espnow","remote-sensing","wifi"],"latest_commit_sha":null,"homepage":"","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/gruncode.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,"zenodo":null}},"created_at":"2025-04-06T19:34:40.000Z","updated_at":"2025-04-12T19:45:22.000Z","dependencies_parsed_at":"2025-04-14T12:45:01.961Z","dependency_job_id":null,"html_url":"https://github.com/gruncode/A-4km-espnow","commit_stats":null,"previous_names":["gruncode/a-4km-espnow","gruncode/a-4km-wifi-using-espnow","gruncode/a-4km-using-espnow"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gruncode/A-4km-espnow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gruncode%2FA-4km-espnow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gruncode%2FA-4km-espnow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gruncode%2FA-4km-espnow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gruncode%2FA-4km-espnow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gruncode","download_url":"https://codeload.github.com/gruncode/A-4km-espnow/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gruncode%2FA-4km-espnow/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266221383,"owners_count":23894966,"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":["esp32","espnow","remote-sensing","wifi"],"created_at":"2025-04-14T12:28:53.027Z","updated_at":"2026-04-17T02:32:20.930Z","avatar_url":"https://github.com/gruncode.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"This project demonstrates an esp32-s3 communication system using the ESP-NOW protocol combined with the principle of spread spectrum by doing frequency hopping over 3  channels. \nSuitable for sending simple commands e.g on/off, or some basic data, and generaly where a latency of eg a sec is not a problem.\nIn the code example a simple alarm is broadcast.\n\nCan reach 4km line-of-sight with 2db antennas. Can go to 1.5km with paper antennas line-of-sight.\nDistance reached depends also largely on interference and good earthing on the systems.\nEnable espnow Long Distance in menuconfig.\n\nThe same code is flashed to both transmitter and receiver devices.\nDevices determine their role based on their MAC address, which has to be entered in the code manually.\n\nCommunication Flow:\n\nTransmitter (TX) Operation:\nCycles through  channels (1→6→13) spending 1000ms on each.\nBroadcasts \"ALARM!\" messages every 5ms while on each channel.\nCounts and prints the send messages cumulatively across all channels.\n\nReceiver (RX) Operation:\nRapidly hops between channels (every 20ms) to catch transmissions.\nCounts received messages (if received at all) cumulatively across all channels every 3 seconds.\n\nYou can play with timing parameters (TX_CHANNEL_DURATION, RX_CHANNEL_DURATION, etc.)\n\nCan also enable espnow power save (periodic sleep wakeup) but performance is degraded.\n\ncompiled with espidf v5.3.2 and python3.9\n\nA workflow main.yml is available for online compiling.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgruncode%2Fa-4km-espnow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgruncode%2Fa-4km-espnow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgruncode%2Fa-4km-espnow/lists"}