← Back to Web Flasher

projectZero · ESP32-C5

Web Flasher help

Flash JanOS, check that it answers over serial, and manage files on its SD card through the same browser page.

Before you connect

Use desktop Chrome or Edge with Web Serial. Open the page from https:// or http://localhost, then grant access to the board’s COM port. Close other serial terminals first.

Main loads the manifest beside this page, with a fallback to GitHub Main. Development loads its manifest and firmware from the remote GitHub Development branch. Serving an updated page locally does not put new firmware in that branch or on your board. Check the displayed release and manifest before flashing.

Flash and verify

  1. Choose Main or Development and the flash baud rate.
  2. With JanOS running, click Connect and select its port. The page can ask JanOS to enter download mode. If the board is blank or unresponsive, enter its ROM download mode, then use Connect and Flash.
  3. Wait for flash write and MD5 verification. The page then tries a watchdog reset and checks for ping → pong and a version response.

If the flash is verified but boot remains unconfirmed, press the board’s RESET button and use Select port + Verify boot. A JanOS reply confirms a responding application at that moment; it does not validate SD, radio, or other peripherals.

Erase clears the whole flash before writing, including stored NVS settings such as Wi-Fi configuration. The flasher writes the app into both OTA slots. Use Erase deliberately when resolving old partition or boot issues.

Serial monitor

Expand Serial monitor and click Monitor to read or send UART text. Running JanOS uses 115200 baud for its console. The monitor, flasher, SD manager, and any other serial app cannot own the same COM port at once. Disconnect the current session before switching tools.

SD file manager

Expand SD file manager and click Connect to running JanOS. This uses UART at 115200 baud and requires firmware that answers fs hello with FS/1 capabilities. Files are managed under /sdcard/lab. Use Open, Up one folder, and Root to browse.

  • Download saves a file to your computer. Choose file and Upload to this folder send a local file; replacing an existing name requires confirmation. Transfers check size and CRC.
  • New file creates UTF-8 text up to 128 KiB, including an empty file. It never overwrites an existing SD item. Use Upload for binary files.
  • Edit opens a UTF-8 .txt file up to 128 KiB. Save checks for an external change before replacing it.
  • Preview shows a read-only UTF-8 .csv file up to 256 KiB. The view is limited to 200 rows, 32 columns, and 512 characters per cell; download the file for all data.
  • Delete removes one file or one empty folder after confirmation. It is never recursive and requires rm=file_empty_dir in the FS/1 greeting.
  • Clean failed upload removes one leftover .fs-part staging file only when fs hello advertises cleanup=part_only. It does not remove the destination file or its .fs-backup recovery copy.

Names must fit the SD card’s CP437 encoding. Upload and download speed, plus ETA, are estimates from measured transfer progress; final completion and integrity checks can take longer.

Troubleshooting

  • Clean failed upload is disabled: the connected firmware may lack cleanup=part_only. A newer local page alone cannot add that command. After flashing compatible firmware, disconnect and reconnect SD files so the page probes fs hello again.
  • COM port unavailable: close the monitor, SD manager, flashing session, or another serial app that owns it, then reconnect.
  • Flash ID: 0 or MD5 mismatch: reconnect in ROM download mode and retry at 115200 baud. Treat a mismatch as an unsuccessful flash.
  • Flash verified, boot unconfirmed: press RESET and use Select port + Verify boot. If JanOS still does not answer ping and version, inspect the serial log before relying on that image.