ESP32 flashing options

Flash ThermalTrace ESP32 probes with Arduino IDE, PlatformIO, MicroPython, or Espressif’s web esptool, after downloading a pre-filled sketch from Devices.

Top view of a blue Arduino Uno microcontroller board on a white background
Arduino-compatible boards run the sketch that polls probes and publishes JSON. Photo: Wikimedia Commons contributor. CC0

ThermalTrace does not host a one-click browser flasher with a prebuilt .bin. Your ingest URL is per-device, so the useful path is: create a push device → download a pre-filled sketch → flash with a tool you already trust.

1. Download from Devices (recommended)

  1. Open Dashboard → Devices and create a push device.
  2. On the ingest callout, download Arduino .ino, MicroPython .py, CircuitPython code.py (Pico W), or ESPHome: the ingest URL is already filled; set Wi‑Fi only.
  3. Follow the ESP32 checklist on that card (board package, libraries, Serial 115200 → POST 200).

2. Arduino IDE

  • Install ESP32 board support (Espressif), not the Uno Ethernet garage-LCD path.
  • Libraries: OneWire, DallasTemperature (Library Manager).
  • Open the downloaded .ino, set WIFI_*, select the port, flash.

3. PlatformIO

Repo sample sketches/arduino/ds18b20_ingest/ includes a platformio.ini with pinned libs and monitor_speed = 115200. Pass ingest URL via build flags or paste the Devices-generated sketch into src/main.cpp.

cd sketches/arduino/ds18b20_ingest
pio run -t upload
pio device monitor

4. MicroPython (Thonny / mpremote)

Flash a MicroPython image once, then copy the downloaded main.py (ingest URL pre-filled). No Arduino board package required.

5. Browser esptool (when you already have a .bin)

If you build a binary locally (PlatformIO pio run), you can flash it from Chrome/Edge with Espressif’s Web Serial tool: useful on locked-down PCs without a full IDE:

espressif.github.io/esptool-js ↗

That tool flashes bits you provide; it does not know your ThermalTrace key. Keep using the Devices download to bake the URL into source before you build.

6. Wi‑Fi via captive portal

Avoid baking SSID/password into source with the WiFiManager sample join the config AP once, then the probe stores credentials. Still set INGEST_URL from Devices (or download and merge).

Related

FAQ

Is there a browser flasher built into ThermalTrace?
No hosted one-click .bin flasher: your ingest URL is per device. Download a pre-filled .ino/.py from Devices, then flash with Arduino IDE, PlatformIO, Thonny, or Espressif’s esptool-js if you already built a binary. Guide: thermaltrace.dev/about/esp32-web-flash.