← sumi.page

Firmware Flasher

Flash SUMI directly from your browser via USB

Device stuck? → Recovery Guide
1

Connect

Plug in via USB, hold BOOT during power-on

2

Flash

Click the button below. Takes about 30 seconds.

3

Done

Unplug, insert SD card, and you're reading

Flash SUMI

Installs SUMI reader + SumiBoy emulator. Requires Chrome or Edge.

v0.4.2 SUMI + SumiBoy ESP32-C3

Web Serial not supported in this browser.
Please use Chrome or Edge.

Serial access blocked. Check browser permissions.

⚠ When the install dialog appears, check "Erase device" — this prevents boot issues from stale flash data.

Device Recovery

If your device is stuck, frozen, boot-looping, or the USB keeps disconnecting and reconnecting — follow these steps. This works even if the flash is completely erased.

  1. Close everything on your computer that might be using the serial port — browser tabs with flash tools, terminal apps, Arduino IDE, etc. Close them all first.
  2. Unplug the device from USB completely.
  3. Find the BOOT button. It's the small button hidden underneath the up/down page-turn toggle on the side of the device. It's recessed under the rocker — you may need to use a fingernail or something thin to press it.
  4. Hold BOOT and plug in USB. Press and hold the BOOT button, and while still holding it, plug the USB cable into the device. Keep holding BOOT for about 3 seconds after plugging in, then let go.
  5. Check the connection. The USB disconnecting/reconnecting should stop. Your device should now appear as one steady serial port.
  6. Flash SUMI. Using Chrome or Edge, scroll up to the flash section on this page and click the flash button.
  7. Check "Erase device" when the install dialog appears, then click Install. This takes about 30 seconds.

Web Serial not supported — use Chrome or Edge.

Still not connecting? Try a different USB cable (some are charge-only and don't carry data). Try plugging directly into your computer, not through a USB hub. If the device is still cycling, try holding BOOT the entire time — don't let go until after you click flash.

Frozen screen? E-ink screens hold their last image like real ink — even with no power. The frozen display does NOT mean the device is broken. Once firmware is flashed, the screen will refresh normally.

Manual recovery: python -m esptool --chip esp32c3 write_flash 0x0 sumi-full.bin

What Gets Flashed

One binary, two firmwares. SUMI goes into app0 (the reader, apps, everything). SumiBoy goes into app1 (Game Boy emulator). They dual-boot — select SumiBoy from the SUMI home screen and the device reboots into emulator mode. Hold POWER for 5 seconds in the emulator to return.

Flash Layout (16MB)

  ┌──────────────────────────────────────────────────┐
  │ 0x0000   Bootloader          (16KB)              │
  │ 0x8000   Partition Table     (4KB)               │
  │ 0x9000   NVS                 (20KB)              │
  │ 0xE000   OTA Data            (8KB)               │
  ├──────────────────────────────────────────────────┤
  │ 0x10000  app0: SUMI          (6.25MB)  ← Reader │
  ├──────────────────────────────────────────────────┤
  │ 0x650000 app1: SumiBoy       (6.25MB)  ← Emu    │
  ├──────────────────────────────────────────────────┤
  │ 0xC90000 SPIFFS              (3.4MB)   ← Data   │
  ├──────────────────────────────────────────────────┤
  │ 0xFF0000 Core Dump           (64KB)              │
  └──────────────────────────────────────────────────┘

Troubleshooting

Device not detected? Hold the BOOT button (under the up/down toggle) while plugging in USB. Release after 3 seconds. The device should appear as a serial port.

Flash failed? Check "Erase device" in the install dialog, then flash again. If issues persist, see the Recovery section above.

Boot loop? SUMI v0.3.3+ has automatic boot loop recovery — if the device reboots 4 times rapidly it forces itself back to SUMI. If you're stuck on older firmware, follow the Recovery steps above.

USB keeps disconnecting? The device has no firmware running. Follow the Recovery steps above — holding BOOT while plugging in puts it in download mode with a stable connection.

Manual flash: python -m esptool --chip esp32c3 write_flash 0x0 sumi-full.bin

Flashed but still running old firmware? Your browser may have cached an older binary. Hard refresh this page (Ctrl+Shift+R) or clear your browser cache, then flash again.