This is an example how to use the internal hall sensor and to create microcontroller apps with automatized firmware builds for ESP32.
- Uses Platformio
- Supports multiple firmwares builds with github actions
- Example code
-
VSCode IDE
-
Platformio IDE for VSCode IDE
If you want to support this project, you can use these affiliate links* ...
- ESP32
- LilyGo T-Beam v0.7/ v1.1*
- LilyGo TTGO LORA32 v1.6.1*
- lolin32
- lolin D32 pro
Newer board do not have a hall sensor anymore.
-
Login to github
-
Clone this git repository
-
Replace the whole content of this README.md file
-
Implement your application in the src/main.cpp
-
Comment your new change in the CHANGELOG.md file
-
Push your changes
git add .git commit -am "my app"git push -u origin main-
Create a new release to trigger a release with a tag, e.g. v1.0.0
-
After the CI build, you can find your firmware files under “Releases”. Files with
.factory.in the name are meant for the initial flashing via cable. The others are for updates (e.g. OTA) when a factory version is already on the device. The.factory.files also include a pre-installed file system, bootloader, partition scheme, and safeboot partition.
Variant A - Online and no need to install an app
- download a
.factory.binor.binfirmware file from releases then flash with: https://mcuw.github.io/ESPConnect/
Variant B - Visual Studio Code
- Select a board in Visual Studio Code
- Flash your board
Please see CONTRIBUTING.md for details on how to contribute issues, fixes, and patches to this project.
The release build happens in the build & release workflow: build_release.yml.
It creates a release, after creation of a new git tag (named it like v1.0.0).
If you want to test the build on all merge w/o creating a tag then the build workflow is what you looking for: build.yml
The pioarduino platform supports latest boards like ESP32-C6, ESP32-H2 and ESP32-P4 and others. There is a pioarduino IDE extension which replaces the PlatformIO IDE extension for VSCode.
PlatformIO is a tool to create microcontroller apps for arduino platforms and compatibles (esp32). You can install the Visual Studio Code extension in the Visual Studio Code IDE.
There is a tiny python script needed to customize the firmware filenames within platformio, see documentation: https://docs.platformio.org/en/stable/scripting/examples/custom_program_name.html
The extra_script.py script gets the platformio env (e.g. lolin32) and the git-tag for the firmware filename. This is required to publish several firmware names in the github artifacts of a release.
You can write your changes in the CHANGELOG.md before you create a release. It will be shown under the release page.
see Releases on the right sidemenu.
You can reduce and adapt your required boards in the platformio.ini.
Update the CHANGELOG.md file before you are creating a new release. By creating a new git tag you trigger a new release which generate for you the firmwares.
Error on build with platformio:
No module named 'intelhex'Fix:
pip3 install intelhexContribution and help - if you find an issue or wants to contribute then please do not hesitate to create a pull request or an issue.
We provide our build template as is, and we make no promises or guarantees about this code.


