idf.py build flash monitorFrom unboxing to first message in under five minutes. Follow these steps exactly on a fresh device.
BOOT (GPIO 0) held LOW → RESET pulse → release BOOT → ROM bootloader active
COM3 or COM6. On macOS: /dev/cu.usbserial-.... On Linux: /dev/ttyUSB0. The serial output window shows the detected chip model and MAC address.sudo usermod -a -G dialout $USER then log out and back in if no ports appear.✓ SimpleGo firmware installed successfully. in the serial log.Four steps from flash to first message.
ALT+W WiFi configurationALT+N New invitation linkALT+C Contacts listALT+S Settings menuALT+P Panic wipeALT+U OTA update URLAll releases are published on GitHub with SHA-256 checksums. The web installer always downloads from the official release manifest. You can independently verify any binary before flashing.
| Version | Date | Size | Key Changes | SHA-256 (truncated) |
|---|---|---|---|---|
| v0.2.0-betaCURRENT | 2026-03-22 | ~3.1 MB | Open/Vault dual-mode installer - eFuse HMAC provisioning - Queue Rotation Phase 1 - Multi-server infrastructure (21 presets) | pending |
| v0.1.17-alpha | 2026-02-28 | ~3 MB | AGPL-3.0 header audit · smp_app_run refactor · NVS extern cleanup · LVGL mutex fix for SPI sharing | a8f3c2d4...d7e1b9f2 |
| v0.1.16-alpha | 2026-02-14 | ~2.9 MB | Sliding window architecture · PSRAM 30-message cache · SD write performance · Backlight 16-level pulse | 7c4f9e1a...3b8d0c66 |
| v0.1.15-alpha | 2026-01-30 | ~2.8 MB | Double Ratchet PFS · XSalsa20-Poly1305 per-queue layer · Full SMP handshake · 128-contact PSRAM array | f2a8b3c1...9e0d7f44 |
| v0.1.10-alpha | 2025-12-20 | ~2.4 MB | Initial TLS 1.3 via mbedTLS · SMP queue registration · NVS flash encryption · LVGL 9 display init | 1d4a9c3b...8f2e7a01 |
The web installer verifies SHA-256 automatically. To verify manually:
sha256sum simplego-tdeck-plus-latest.bin
a8f3c2d4...d7e1b9f2 simplego.bin
All release binaries are reproducibly built. Given the same source, ESP-IDF version, and toolchain, you get a bit-for-bit identical binary. Instructions in BUILDING.md.
Prefer the command line? Full control over flash addresses, baud rates, and partition targets.
Most flashing problems have simple causes. Here is every error seen in the field with exact solutions.
1. Hold BOOT, press+release RESET, release BOOT
2. Try a different USB-C cable (must be data cable)
3. Connect directly to a USB port, not a hub
On Windows, install the CH343 driver from wch-ic.com/downloads if the device shows as "Unknown Device" in Device Manager.
On Linux: sudo usermod -a -G dialout $USER # then log out and back in
esptool.py --chip esp32s3 --port COM6 --baud 115200 flash_id
The web installer automatically falls back to 115200 if 460800 fails.
esptool.py write_flash 0x0000 bootloader.bin 0x8000 partition_table.bin 0x10000 simplego.bin
If the device still doesn't boot, perform a full erase first (this clears all NVS data):
esptool.py --chip esp32s3 erase_flash
A tool for flashing a secure communications device should itself be trustworthy. Here is exactly how it is built, what it accesses, and what it cannot do.
Source code, cryptographic architecture, relay server documentation -- all public.
You are about to flash Vault Mode firmware. On first boot, this permanently burns an HMAC key into the ESP32-S3 eFuse. This device will never return to Open Mode. This action is physically irreversible.