Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/calinradoni/esp32boardmanager
Basic board manager with WiFi AP / STA mode, HTTP server and firmware OTA update
https://github.com/calinradoni/esp32boardmanager
esp-idf esp32 ota-firmware-updates
Last synced: about 1 month ago
JSON representation
Basic board manager with WiFi AP / STA mode, HTTP server and firmware OTA update
- Host: GitHub
- URL: https://github.com/calinradoni/esp32boardmanager
- Owner: CalinRadoni
- License: gpl-3.0
- Created: 2020-09-14T20:27:31.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2021-05-31T19:46:37.000Z (over 3 years ago)
- Last Synced: 2023-07-18T16:42:12.786Z (over 1 year ago)
- Topics: esp-idf, esp32, ota-firmware-updates
- Language: C++
- Homepage:
- Size: 767 KB
- Stars: 7
- Watchers: 4
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE-GPLv3.txt
Awesome Lists containing this project
README
# Board Manager for ESP32
![Build with ESP-IDF v4.1](https://github.com/CalinRadoni/ESP32BoardManager/workflows/Build%20with%20ESP-IDF%20v4.1/badge.svg)
Each board based on ESP32 needs some standard steps for initialization and usage.
With the included `example` this is a *Getting started* code that can be used for any board.
It has:- web server for commands, settings and OTA update
- responsive web interface
- configuration processing, loading and saving from NVS
- supports multiple WiFi configurations (default is 2, for a main and a backup Access Point)
- *standardized* initialization flow
- mDNSThis class should be used as a base for deriving dedicated manager classes for boards based on ESP32.
Uses the following ESP-IDF components:
- [ESP32HAL](https://calinradoni.github.io/ESP32HAL/) for peripherals initialization
- [ESP32SimpleOTA](https://github.com/CalinRadoni/ESP32SimpleOTA) for OTA firmware updateThis component was tested with [ESP-IDF](https://github.com/espressif/esp-idf) **v4.1**.
This is a *work-in-progress* and should be tested before use.
## Documentation
The provided **example** is a working implementation that can be used as *Getting started* code.
The initialization workflow is in the [workflow.md](docs/workflow.md) file.
### Web interface
This is the current web interface:
![web interface portrait](docs/assets/webp.png)
![web interface landscape](docs/assets/webl.png)**Minimal web interface**
Use `idf.py menuconfig` and go to `Component config -> ESP32 Board Manager` to uncheck:
- Use index.html.gz
- Use favicon.icoThis minimal web interface needs the `html/web/index.html` file.
**Note:** you can also set these in `sdkconfig.defaults`:
```ini
CONFIG_ESP32BM_WEB_Compressed_index=n
CONFIG_ESP32BM_WEB_USE_favicon=n
```**Standard web interface**
The web server pages are in `html/web/index.html.gz`, which is generated using the `html/build.sh` script.
The script needs [Node.js](https://nodejs.org) and a few other packages like:
`clean-css`, `clean-css-cli`, `html-minifier`, `inline-source`, `inline-source-cli`, `jshint` and `terser` and it have these options:- -h exit after showing the help message
- -c exit after cleaning the temporary and output directories
- -k clean before build
- -p build in production mode
- -n help for Node.js, npm and npm modulesSee [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.
## Tests
I am using it with:
- ESP32-DevKitC
- pax-LampD1
- pax-DLED## Development Environment
Currently uses the latest stable version of [Espressif IoT Development Framework](https://github.com/espressif/esp-idf), v4.1 as of December 2020.
Editing was done in [Visual Studio Code](https://code.visualstudio.com).
Version control with [Git](https://git-scm.com).
## License
This 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.