Binary Flasher
Flash custom firmware without installing anything. Choose your .bin files, set the offsets, connect the board, go. The files never leave your browser — the flasher talks to the chip directly over Web Serial.
Pre-flight checks
Section titled “Pre-flight checks”Most failed flashes are addressing mistakes, not bad firmware, so the tool checks the plan before it touches the board:
- Unparseable or unaligned offsets — the ROM loader wants a 4-byte-aligned hex address.
- Two files at the same offset — the second silently overwrites the first.
- Regions that overlap — the tool knows each file’s size, so it can tell when one runs into the next.
- A merged image at
0x10000— see below. This is the single most common way to end up with a board that will not boot.
Warnings are advisory; errors block the flash until you fix them.
Finding your .bin files
Section titled “Finding your .bin files”Arduino IDE
Section titled “Arduino IDE”- Open your sketch, then Sketch → Export Compiled Binary.
- The files appear beside your
.ino:YourSketch.ino.bootloader.binYourSketch.ino.partitions.binYourSketch.ino.bin
PlatformIO
Section titled “PlatformIO”After pio run, look in .pio/build/<env>/:
bootloader.binpartitions.binfirmware.bin
Standard offsets (ESP32-S3)
Section titled “Standard offsets (ESP32-S3)”| Region | Offset |
|---|---|
| Merged image or bootloader | 0x0 |
| Partition table | 0x8000 |
| OTA data (if used) | 0xD000 |
| Application firmware | 0x10000 |
| SPIFFS / LittleFS (if used) | 0x290000 |
Troubleshooting
Section titled “Troubleshooting”No device in the port picker
- Hold BOOT while clicking connect — or hold BOOT, tap and release RESET, then release BOOT.
- Try another USB-C cable. Plenty of them are charge-only.
- On Windows, install the CP2102 or CH340 driver if the port never appears.
“Failed to initialize”
The chip is not in ROM bootloader mode. Redo the BOOT/RESET sequence above. If it still fails, try a lower baud rate.
“Wrong flash size”
The firmware was built for a different partition scheme. Check that the board settings in your IDE match the tinyCore configuration.
Flashed fine, but the board won’t boot
Usually a corrupted bootloader or partition table. Re-flash all three regions from scratch — bootloader at 0x0, partitions at 0x8000, application at 0x10000 — or flash a known-good merged image at 0x0.