Skip to content

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.


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.


  1. Open your sketch, then Sketch → Export Compiled Binary.
  2. The files appear beside your .ino:
    • YourSketch.ino.bootloader.bin
    • YourSketch.ino.partitions.bin
    • YourSketch.ino.bin

After pio run, look in .pio/build/<env>/:

  • bootloader.bin
  • partitions.bin
  • firmware.bin

RegionOffset
Merged image or bootloader0x0
Partition table0x8000
OTA data (if used)0xD000
Application firmware0x10000
SPIFFS / LittleFS (if used)0x290000

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.