{"id":23011953,"url":"https://github.com/chriamue/esp32-rust-example","last_synced_at":"2026-05-16T22:31:42.249Z","repository":{"id":220809074,"uuid":"752641783","full_name":"chriamue/esp32-rust-example","owner":"chriamue","description":"Esp32 Rust Example","archived":false,"fork":false,"pushed_at":"2024-02-18T18:48:54.000Z","size":23,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-04T16:29:53.838Z","etag":null,"topics":["display","esp32","rust","ssd1306","ssd1306-oled-example"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/chriamue.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}},"created_at":"2024-02-04T12:15:32.000Z","updated_at":"2024-02-18T17:43:35.000Z","dependencies_parsed_at":"2024-02-18T14:42:39.790Z","dependency_job_id":"f2331759-85be-417c-bfa4-6a1efab6e1b1","html_url":"https://github.com/chriamue/esp32-rust-example","commit_stats":null,"previous_names":["chriamue/esp32-rust-example"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/chriamue/esp32-rust-example","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chriamue%2Fesp32-rust-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chriamue%2Fesp32-rust-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chriamue%2Fesp32-rust-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chriamue%2Fesp32-rust-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chriamue","download_url":"https://codeload.github.com/chriamue/esp32-rust-example/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chriamue%2Fesp32-rust-example/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265705445,"owners_count":23814459,"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":["display","esp32","rust","ssd1306","ssd1306-oled-example"],"created_at":"2024-12-15T10:12:00.662Z","updated_at":"2026-05-16T22:31:37.204Z","avatar_url":"https://github.com/chriamue.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# esp32-rust-example\n\nThis is a simple example of how to use Rust to program an ESP32 microcontroller.\n\nThis project is based on the [esp-idf-template](https://github.com/esp-rs/esp-idf-template) project.\n\n## Prerequisites\n\nSee [Prequisites](https://github.com/esp-rs/esp-idf-template?tab=readme-ov-file#prerequisites)\n\nAdd user to dialout group to access serial port:\n\n```bash\nsudo usermod -a -G dialout $USER\n```\n\nInstall cargo espflash:\n\n```bash\ncargo install cargo-espflash\n```\n\n## Board Information\n\n```bash\ncargo espflash board-info\n```\n\noutputs:\n\n```bash\n[2024-02-04T12:12:44Z INFO ] Serial port: '/dev/ttyUSB0'\n[2024-02-04T12:12:44Z INFO ] Connecting...\n[2024-02-04T12:12:45Z INFO ] Unable to connect, retrying with extra delay...\n[2024-02-04T12:12:46Z INFO ] Using flash stub\nChip type:         esp32 (revision v1.0)\nCrystal frequency: 40MHz\nFlash size:        4MB\nFeatures:          WiFi, BT, Dual Core, 240MHz, Coding Scheme None\nMAC address:       24:6f:28:00:00:00\n```\n\n### Troubleshooting\n\nIf you get an error like:\n\n```bash\n[2024-02-04T12:12:44Z INFO ] Serial port: '/dev/ttyUSB0'\n[2024-02-04T12:12:44Z INFO ] Connecting...\n[2024-02-04T12:12:45Z INFO ] Unable to connect, retrying with extra delay...\n```\n\nTry to press the boot button on the ESP32 board and run the command again.\n\n## Setup\n\nCopy `example.env` to `.env` and adjust the settings.\n\n## Building\n\n```bash\n. $HOME/export-esp.sh\ncargo build\n```\n\n### Features\n\nI tested on two boards:\n\n- [Heltec WiFi LoRa 32 V2](https://resource.heltec.cn/download/Manual%20Old/WiFi%20Lora32Manual.pdf)\n- [Heltec WiFi LoRa 32 V3](https://heltec.org/project/wifi-lora-32-v3/)\n\nTo configure the right pins, you can use the `v2` or `v3` feature:\n\n```bash\ncargo build --features v2\n```\n\n## Flashing\n\n```bash\ncargo espflash flash --release --monitor --partition-table partitions.csv\n```\n\n## License\n\n[MIT](LICENSE)\n\n## See also\n\n- [Tokio running on esp32!](https://github.com/jasta/esp32-tokio-demo)\n- [IRC bot with JSON API for esp32](https://github.com/sjm42/esp32ircbot)\n- [ESP (Ikea) Vindriktning \u0026 Rust 🦀](https://github.com/vojty/ESP-Vindriktning/blob/main/src/wifi.rs)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchriamue%2Fesp32-rust-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchriamue%2Fesp32-rust-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchriamue%2Fesp32-rust-example/lists"}