{"id":30077543,"url":"https://github.com/ch3ber/esp32-projects","last_synced_at":"2026-05-05T11:32:59.424Z","repository":{"id":305050160,"uuid":"1021720927","full_name":"ch3ber/esp32-projects","owner":"ch3ber","description":"Collection of small, self-contained projects for the ESP32 family of microcontrollers programmed with MicroPython.","archived":false,"fork":false,"pushed_at":"2025-07-30T04:23:36.000Z","size":1170,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-30T06:32:56.162Z","etag":null,"topics":["esp32","examples","firmware","hacking","hardware","iot","iot-application","led-controller","microcontroller","microdot","micropython","python","web-server","websocket","websocket-server","websockets","wifi","wifi-hotspot","wifi-network"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ch3ber.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,"zenodo":null}},"created_at":"2025-07-17T20:55:22.000Z","updated_at":"2025-07-24T02:15:07.000Z","dependencies_parsed_at":"2025-07-18T04:31:06.958Z","dependency_job_id":"e70f6a18-903e-4167-8387-5e626e38906d","html_url":"https://github.com/ch3ber/esp32-projects","commit_stats":null,"previous_names":["ch3ber/esp32-projects"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ch3ber/esp32-projects","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ch3ber%2Fesp32-projects","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ch3ber%2Fesp32-projects/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ch3ber%2Fesp32-projects/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ch3ber%2Fesp32-projects/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ch3ber","download_url":"https://codeload.github.com/ch3ber/esp32-projects/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ch3ber%2Fesp32-projects/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269457765,"owners_count":24420285,"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-08-08T02:00:09.200Z","response_time":72,"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":["esp32","examples","firmware","hacking","hardware","iot","iot-application","led-controller","microcontroller","microdot","micropython","python","web-server","websocket","websocket-server","websockets","wifi","wifi-hotspot","wifi-network"],"created_at":"2025-08-08T17:01:08.158Z","updated_at":"2026-05-05T11:32:54.329Z","avatar_url":"https://github.com/ch3ber.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ESP32 MicroPython Mini-Projects\n\nThis repository is a collection of **small, self-contained projects** for the ESP32 family of micro-controllers programmed with **MicroPython**.  \nEvery top-level directory contains one ready-to-flash project that demonstrates or tests a single concept – for example running a web server, blinking an LED, or exposing sensor data.\n\n| Folder | Short description |\n| ------ | ----------------- |\n| `esp32-ap-led` | Turn the ESP32 into a Wi-Fi access-point and blink an on-board LED that can be toggled from a web page. |\n| `hello_world` | The obligatory *Hello, world!* for MicroPython on the ESP32. |\n| `MicroPython` | Miscellaneous helper scripts and notes. |\n| `physic-led-web-monitor` | Simple web based monitor for a physical LED. |\n\n\u003e **Tip**: Feel free to copy a project folder, tweak the code, and flash it to your own board – that is exactly what these examples are for!\n\n---\n\n## 1. Getting MicroPython on your ESP32\n\nThese projects assume your board already runs MicroPython.  \nIf this is the first time you use MicroPython on an ESP32 follow the steps below (takes ~5 minutes):\n\n1. **Install prerequisites**\n   ```bash\n   # Linux / macOS\n   pip install esptool mpremote\n\n   # Windows (PowerShell)\n   py -m pip install esptool mpremote\n   ```\n\n2. **Download the correct firmware**  \n   Grab the latest *ESP32 generic* `.bin` file from the official website:  \n   https://micropython.org/download/esp32/  \n   (The file name looks like `esp32-\u003cdate\u003e-vX.Y.Z.bin`).\n\n3. **Put the board in download mode**  \n   • Hold the *BOOT* (or *IO0*) button, press *EN / RST*, then release *BOOT* after ~1 s.  \n   (Some boards enter download mode automatically – if flashing works you are good.)\n\n4. **Erase the flash** *(optional but recommended when switching languages)*  \n   ```bash\n   esptool.py --port /dev/ttyUSB0 erase_flash      # adapt the serial port\n   ```\n\n5. **Flash MicroPython**\n   ```bash\n   esptool.py --chip esp32 --port /dev/ttyUSB0 \\\n              --baud 460800 write_flash -z 0x1000 esp32-\u003cdate\u003e.bin\n   ```\n\n6. **Check the REPL**  \n   ```bash\n   mpremote connect /dev/ttyUSB0 repl\n   ```\n   You should be greeted by the friendly `\u003e\u003e\u003e` prompt.\n\n---\n\n## 2. Deploying a project from this repository\n\nAll example projects are pure Python – just copy their files onto the board’s internal filesystem.\n\n1. **Connect the board and enter the project folder**\n   ```bash\n   cd esp32-ap-led          # example\n   ```\n\n2. **Upload every file** (newer versions of *mpremote* support a convenient `cp` command)\n   ```bash\n   mpremote connect /dev/ttyUSB0 fs cp main.py :      # copy main.py to /\n   mpremote connect /dev/ttyUSB0 fs cp *.py lib/ :/lib # copy helper modules\n   ```\n   Alternative helpers you can use are *ampy*, *rshell* or any other tool you prefer.\n\n3. **Reset the board**\n   ```bash\n   mpremote connect /dev/ttyUSB0 reset\n   ```\n   The script`s `main.py` is executed automatically after every reset.\n\n### Quick one-liner for small projects\n\nIf the project only consists of a single `main.py` you can do:\n\n```bash\nmpremote connect /dev/ttyUSB0 fs cp main.py : \u0026\u0026 mpremote reset\n```\n\n---\n\n## 3. Creating your own project folder\n\n1. Copy one of the existing directories.\n2. Remove the files you do not need.\n3. Hack away on the Python code.\n\nWhen you are ready, upload the files as shown above – that’s it.\n\n---\n\n## 4. Helpful links\n\n• Official documentation: https://docs.micropython.org  \n• ESP32 pin-out reference: https://randomnerdtutorials.com/esp32-pinout/  \n• mpremote user guide: https://github.com/micropython/micropython/blob/master/tools/mpremote/README.md\n\n---\n\n**Have fun exploring MicroPython on the ESP32!**\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fch3ber%2Fesp32-projects","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fch3ber%2Fesp32-projects","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fch3ber%2Fesp32-projects/lists"}