Flash an ESP32 from a link
Send someone a link. They plug the board in, open the link in Chrome or Edge and press Flash. No account, no Arduino IDE, no toolchain.
Firmware links end in /f/ followed by a long ID.
What happens when you press Flash
- bootloader0x0, 32 KB, written
- table0x8000, 4 KB, written
- nvs0x9000, 20 KB, kept
- otadata0xe000, 8 KB, written
- app00x10000, 1.25 MB, written
- app10x150000, 1.25 MB, not touched
- spiffs0x290000, 1.38 MB, not touched
- coredump0x3f0000, 64 KB, not touched
Connect
Plug the board in and pick its port. The browser asks once.
Check the chip
The page reads the chip and stops if the firmware was built for a different one.
Write and verify
Each part goes to its address, then the board reads it back and the hashes are compared.
Restart
The board resets into the new firmware. Watch the boot log if you want to be sure.
Saved settings live in the NVS partition. Update leaves it alone, so Wi-Fi details and calibration survive. Clean install erases it.
Publishing your own firmware
Publishing is for members, and membership is by invite. Every version you publish is kept as it was, with its SHA-256 and source, and your link always points to the newest one.
- Drop the build folder
- Drag in Arduino's exported binaries, an ESP-IDF
build/folder or a ZIP. The page reads the chip, version and offsets from the files themselves. - Push a tag
- Link a GitHub repo and add the release workflow. Then:
git tag v1.2.0 && git push --tags
- Publish from CI
- With an API token from your dashboard:
npx firmshare publish ./build --version v1.2.0