projectZero ESP32-C5
Help & user guide ↗

Flash projectZero straight from your browser

Web Serial flasher powered by esptool-js. On a running JanOS Monster, Connect automatically switches the device to download mode and starts flashing. Other devices still use Connect + Flash.

Control

Ready to connect.
Erase does a full flash erase (esptool erase-flash) before writing the images. Only enable it when you have OTA partitions / old firmware and you see bootloops or slot errors. This web flasher seeds both OTA slots by default by writing the app to 0x20000 and 0x410000. If the log shows Flash ID: 0 or an MD5 mismatch, reconnect in ROM mode and retry at 115200. Note: it wipes anything stored in flash (including NVS settings like Wi-Fi creds/config).

Serial monitor

Independent UART terminal mode. Read and write serial data directly from your browser.

Monitor disconnected.

SD file manager

Browse and transfer files in /sdcard/lab on a running JanOS device. This requires firmware with FS/1 support and an available UART port at 115200 baud. Only one serial session can use the port at a time.

Upload names must fit the CP437 SD code page. Delete removes one file or one empty folder after confirmation. Clean failed upload removes a leftover .fs-part file when JanOS supports it. Edit small UTF-8 TXT files or preview CSV files without leaving this page.
SD files disconnected.
/sdcard/lab
Connect to view files.
No file selected
Select a file or download an SD item to measure transfer speed.

Release info

Loading manifest

  • JanOS Monster: with JanOS running, click Connect and allow serial access. The flasher sends ping, then automatically enters download mode and flashes.
  • ROM mode: For a blank or unresponsive board, hold BOOT on the LAB C5, plug the board in, then release.
  • Close other serial apps: quit qFlipper, serial monitors, or anything holding the COM port.
  • Connection stuck? Unplug the board, click Connect again, plug it in with BOOT held, then click Flash.
  • Reset: after the write, the flasher resets the ESP32-C5 and checks ping and version. If boot remains unconfirmed, press RESET and use Select port + Verify boot.
  • What happens

    Using esptool-js directly: enter stub, set baud, then flash each image at the offsets from manifest.json. Progress and MD5 checks mirror the Python esptool flow.

    Flash offline

    Grab the same assets from Releases and run flash_board.py in ESP32C5/binaries-esp32c5 if your browser blocks Web Serial.

    Browser support

    Chrome or Edge on desktop over HTTPS or localhost. Web Serial is required. If you see Web Serial not available, switch browsers.