{"id":23212775,"url":"https://github.com/rddevitte/esp-idf-sample-project","last_synced_at":"2026-05-10T16:41:33.483Z","repository":{"id":268290104,"uuid":"903880000","full_name":"rddevitte/esp-idf-sample-project","owner":"rddevitte","description":"A sample project for an ESP32 module using ESP-IDF toolchain","archived":false,"fork":false,"pushed_at":"2024-12-16T02:32:37.000Z","size":7,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-05T12:44:10.053Z","etag":null,"topics":["embedded","esp-idf","esp32"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rddevitte.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":"2024-12-15T19:41:12.000Z","updated_at":"2024-12-16T02:32:41.000Z","dependencies_parsed_at":"2024-12-15T20:32:11.698Z","dependency_job_id":"9904e97f-fd7e-43f8-8a9f-610e8b150d83","html_url":"https://github.com/rddevitte/esp-idf-sample-project","commit_stats":null,"previous_names":["rddevitte/esp-idf-sample-project"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rddevitte/esp-idf-sample-project","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rddevitte%2Fesp-idf-sample-project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rddevitte%2Fesp-idf-sample-project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rddevitte%2Fesp-idf-sample-project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rddevitte%2Fesp-idf-sample-project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rddevitte","download_url":"https://codeload.github.com/rddevitte/esp-idf-sample-project/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rddevitte%2Fesp-idf-sample-project/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265529093,"owners_count":23782822,"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":["embedded","esp-idf","esp32"],"created_at":"2024-12-18T19:12:56.465Z","updated_at":"2026-05-10T16:41:28.412Z","avatar_url":"https://github.com/rddevitte.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ESP-IDF Sample Project\n\n## Introduction\n\nThis is a relative simple and small project I've created to teach myself how to code, build and\nflash an ESP32 project using the ESP-IDF tools directly, i.e., no IDE required, only a text editor\nand the terminal.\n\nPlus, the project shows\n\n- how to structure the code onto components (\u0026ldquo;componentize\u0026rdquo;);\n- how to make some project parameters configurable through `menuconfig`.\n\nThe project has two main components:\n\n- the `output_pin_toggler`, used to blink an LED connected to pin 16 of the board;\n- the `random_numbers_getter`, used to simulate the values of sensors.\n\nEach component is used by two independent running tasks, `led_blinker_task` and\n`fake_sensors_value_printer_task`.\n\n## Assumptions\n\nIt is assumed:\n\n- one is using any GNU/Linux operating system distribution;\n- one has an ESP32 module laying around, for flashing and testing;\n- one has already followed the [Espressif documentation on how to install the ESP-IDF toolchain on\n  one's machine][1]; and\n- the installation location is the default one, i.e. the `~/esp/esp-idf` directory.\n\n[1]: https://docs.espressif.com/projects/esp-idf/en/stable/esp32/get-started/linux-macos-setup.html\n\n## Steps\n\n### Set up the environment\n\nWith this project cloned and the terminal open in the project's root directory, run\n\n    source ~/esp/esp-idf/export.sh\n\n### Set target board\n\nTo set a generic ESP32 as the target board, run\n\n    idf.py set-target esp32\n\nPlease refer to the Espressif documentation in order to set a different board as the target.\n\n### Configure \n\nTo configure project-specific parameters, run\n\n    idf.py menuconfig\n\nNavigate through:\n\n- *Project-specific configuration*;\n    - *Blink GPIO number*: default is pin 16;\n    - *Waiting period in ms*: default is 1000 milliseconds (= 1 second).\n\n### Build\n\nTo build the project, run\n\n    idf.py build\n\n### Flash and monitor the serial output\n\nAssuming the board has been already connected to any USB port of one's machine, and the device is\nthe `/dev/ttyUSB0`, run\n\n    idf.py -p /dev/ttyUSB0 flash monitor\n\n### Clean\n\nTo remove the artifacts produced by the build process, run\n\n    rm -rf sdkconfig* build/\n\n## Credits\n\nThanks to [this YouTube video by Low Level Learning][2] for inspiring me to create this project.\n\n[2]: https://www.youtube.com/watch?v=dOVjb2wXI84\n\nAlso thanks to Espressif for providing project examples on ESP-32, which are located in\n`~/esp/esp-idf/examples` directory.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frddevitte%2Fesp-idf-sample-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frddevitte%2Fesp-idf-sample-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frddevitte%2Fesp-idf-sample-project/lists"}