Web-based firmware installer for R2P2-ESP32 (PicoRuby on ESP32).
https://picoruby.org/R2P2-ESP32-installer/
- Connect your ESP32 device via USB
- Open the installer page in Chrome, Edge, or Opera
- Select your board and Ruby variant from the dropdowns
- Click Connect and Flash and select the serial port
- Wait for flashing to complete
- After flashing completes, click Open PicoRuby Terminal or OK
- Browser with Web Serial API support (Chrome, Edge, Opera)
- USB-connected ESP32 device
Available variants match the R2P2-ESP32 release workflow.
| Board | FemtoRuby | PicoRuby |
|---|---|---|
| ESP32 | ✓ | — |
| ESP32-C3 | ✓ | — |
| ESP32-S3 | ✓ | ✓ |
| ESP32-S3 (USB Console) | ✓ | ✓ |
The Ruby variant dropdown is filtered automatically based on the selected board.
python3 -m http.server 8080Open http://localhost:8080 in Chrome, Edge, or Opera.
Web Serial API requires a secure context; localhost qualifies without HTTPS.
Firmware files are organized by chip in the firmware/ directory:
firmware/
storage.bin # shared across all chips
esp32/
bootloader.bin
partition-table.bin
femtoruby.bin
esp32c3/
bootloader.bin
partition-table.bin
femtoruby.bin
esp32s3/
bootloader.bin
partition-table.bin
femtoruby.bin
picoruby.bin
esp32s3-usb_console/
bootloader.bin
partition-table.bin
femtoruby.bin
picoruby.bin
| Part | ESP32 offset | ESP32-C3/S3 offset | Source |
|---|---|---|---|
| bootloader.bin | 0x1000 (4096) | 0x0000 (0) | ESP-IDF chip default |
| partition-table.bin | 0x8000 (32768) | 0x8000 (32768) | ESP-IDF default |
| femtoruby.bin / picoruby.bin | 0x10000 (65536) | 0x10000 (65536) | partitions.csv factory offset |
| storage.bin | 0x210000 (2162688) | 0x210000 (2162688) | factory offset + factory size (0x10000 + 2M) |
If partitions.csv changes, update the offsets accordingly.
The installer dynamically generates the manifest at runtime based on the selected board and Ruby variant. No static manifest.json is used. Firmware metadata is fetched from the latest GitHub Release of the R2P2-ESP32 repository.
This project uses ESP Web Tools by Open Home Foundation, licensed under the Apache License 2.0.
This project is licensed under the Apache License 2.0. See LICENSE for details.