Flash your device

Flash an ESP32 in your browser in 90 seconds

No drivers. No Arduino IDE. No esptool. Just plug in a board and click a button — PlantHub installs over the WebSerial API built into modern Chromium browsers.

PlantHub ships a hosted web flasher at planthub.online/flash powered by esp-web-tools and the WebSerial API. Firmware binaries are signed and served from a public GitHub Pages CDN so anyone can audit them.

Supported browsersChrome, Edge, Brave, and Opera on desktop or laptop. Firefox and Safari do not yet implement WebSerial. The Android version of Chrome supports it but most phone OTG cables are unreliable for flashing — use a laptop.

1. Open the flasher in a supported browser

Visit /flash in Chrome, Edge, Brave, or Opera on a desktop or laptop. The flasher uses the WebSerial API, which Firefox and Safari do not implement yet.

2. Pick your hardware kit

Choose a preset that matches your board (ESP32-C3, ESP32-S3, or classic ESP32) and sensor combo. Each preset includes a wiring diagram.

3. Plug the board in

Use a USB data cable. Some ESP32-C3 boards need you to hold the BOOT button while plugging in to enter download mode.

4. Click "Connect & flash"

Pick the serial port that appears (often labeled CP210x or CH9102). The browser uploads firmware in about 30 seconds. You can watch progress in real time.

5. Read the claim code

After flashing, the board prints an 8-character claim code over serial and also broadcasts a Wi-Fi network called PlantHub-Setup-XXXX. Note the code.

6. Sign up and claim

Sign up for PlantHub, paste the claim code, pick your plant, and the device is attached to your account with secure per-device credentials.

Troubleshooting

The browser can't find my serial port

  • Check your USB cable — phone charge-only cables will not work.
  • Install the CP210x or CH9102 USB-to-serial driver if your board uses one (Windows usually auto-installs; macOS may need a manual install).
  • Hold the BOOT button on the board while plugging it in to force download mode.

Flashing fails partway through

  • Unplug the board, hold BOOT, plug it back in, then retry.
  • Try a shorter USB cable — some long cables drop voltage during flash writes.
  • Disable any serial monitor running in another tab or app (Arduino IDE, PlatformIO, etc.).

The browser warns about an unsafe site

WebSerial requires HTTPS — the production flasher at https://planthub.online/flash works out of the box. If you are running PlantHub locally for development, use localhost (it is treated as secure) rather than your LAN IP.

Early access

Be first
in line.

We're launching soon. Join the waitlist for early-bird pricing, first access to hardware, and input on features we build next.

30% early-bird discount First access to hardware Shape the roadmap