{"id":23714380,"url":"https://github.com/calinradoni/esp32boardmanager","last_synced_at":"2025-09-03T18:32:05.848Z","repository":{"id":182075712,"uuid":"295531135","full_name":"CalinRadoni/ESP32BoardManager","owner":"CalinRadoni","description":"Basic board manager with WiFi AP / STA mode, HTTP server and firmware OTA update","archived":false,"fork":false,"pushed_at":"2021-05-31T19:46:37.000Z","size":785,"stargazers_count":7,"open_issues_count":2,"forks_count":3,"subscribers_count":4,"default_branch":"main","last_synced_at":"2023-07-18T16:42:12.786Z","etag":null,"topics":["esp-idf","esp32","ota-firmware-updates"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CalinRadoni.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-GPLv3.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-09-14T20:27:31.000Z","updated_at":"2023-07-18T16:42:20.730Z","dependencies_parsed_at":"2023-07-18T16:52:36.756Z","dependency_job_id":null,"html_url":"https://github.com/CalinRadoni/ESP32BoardManager","commit_stats":null,"previous_names":["calinradoni/esp32boardmanager"],"tags_count":19,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CalinRadoni%2FESP32BoardManager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CalinRadoni%2FESP32BoardManager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CalinRadoni%2FESP32BoardManager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CalinRadoni%2FESP32BoardManager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CalinRadoni","download_url":"https://codeload.github.com/CalinRadoni/ESP32BoardManager/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231908183,"owners_count":18444265,"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":["esp-idf","esp32","ota-firmware-updates"],"created_at":"2024-12-30T20:19:15.919Z","updated_at":"2024-12-30T20:19:16.562Z","avatar_url":"https://github.com/CalinRadoni.png","language":"C++","readme":"# Board Manager for ESP32\n\n![Build with ESP-IDF v4.1](https://github.com/CalinRadoni/ESP32BoardManager/workflows/Build%20with%20ESP-IDF%20v4.1/badge.svg)\n\nEach board based on ESP32 needs some standard steps for initialization and usage.\nWith the included `example` this is a *Getting started* code that can be used for any board.\nIt has:\n\n- web server for commands, settings and OTA update\n- responsive web interface\n- configuration processing, loading and saving from NVS\n- supports multiple WiFi configurations (default is 2, for a main and a backup Access Point)\n- *standardized* initialization flow\n- mDNS\n\nThis class should be used as a base for deriving dedicated manager classes for boards based on ESP32.\n\nUses the following ESP-IDF components:\n\n- [ESP32HAL](https://calinradoni.github.io/ESP32HAL/) for peripherals initialization\n- [ESP32SimpleOTA](https://github.com/CalinRadoni/ESP32SimpleOTA) for OTA firmware update\n\nThis component was tested with [ESP-IDF](https://github.com/espressif/esp-idf) **v4.1**.\n\nThis is a *work-in-progress* and should be tested before use.\n\n## Documentation\n\nThe provided **example** is a working implementation that can be used as *Getting started* code.\n\nThe initialization workflow is in the [workflow.md](docs/workflow.md) file.\n\n### Web interface\n\nThis is the current web interface:\n\n![web interface portrait](docs/assets/webp.png)\n![web interface landscape](docs/assets/webl.png)\n\n**Minimal web interface**\n\nUse `idf.py menuconfig` and go to `Component config -\u003e ESP32 Board Manager` to uncheck:\n\n- Use index.html.gz\n- Use favicon.ico\n\nThis minimal web interface needs the `html/web/index.html` file.\n\n**Note:** you can also set these in `sdkconfig.defaults`:\n\n```ini\nCONFIG_ESP32BM_WEB_Compressed_index=n\nCONFIG_ESP32BM_WEB_USE_favicon=n\n```\n\n**Standard web interface**\n\nThe web server pages are in `html/web/index.html.gz`, which is generated using the `html/build.sh` script.\n\nThe script needs [Node.js](https://nodejs.org) and a few other packages like:\n`clean-css`, `clean-css-cli`, `html-minifier`, `inline-source`, `inline-source-cli`, `jshint` and `terser` and it have these options:\n\n- -h exit after showing the help message\n- -c exit after cleaning the temporary and output directories\n- -k clean before build\n- -p build in production mode\n- -n help for Node.js, npm and npm modules\n\nSee [Embedded website workflow - bash](https://calinradoni.github.io/pages/200913-embedded-website-bash.html) for information about installation and usage of Node.js and required packages.\n\n## Tests\n\nI am using it with:\n\n- ESP32-DevKitC\n- pax-LampD1\n- pax-DLED\n\n## Development Environment\n\nCurrently uses the latest stable version of [Espressif IoT Development Framework](https://github.com/espressif/esp-idf), v4.1 as of December 2020.\n\nEditing was done in [Visual Studio Code](https://code.visualstudio.com).\n\nVersion control with [Git](https://git-scm.com).\n\n## License\n\nThis software and its documentation are released under the [GNU GPLv3](http://www.gnu.org/licenses/gpl-3.0.html) License. See the `LICENSE-GPLv3.txt` file.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcalinradoni%2Fesp32boardmanager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcalinradoni%2Fesp32boardmanager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcalinradoni%2Fesp32boardmanager/lists"}