Offline Bitcoin ATM

Flash firmware directly from your browser

  1. Connect your ESP32 to this computer via USB
  2. Click the button below and select the serial port
  3. Wait for the firmware to be flashed

JC3248 touchscreen (ESP32‑S3): this board has no USB‑serial bridge — the USB‑C port is wired straight to the chip, so the browser cannot always reset it into download mode on its own. If the install stalls on “Preparing installation”, hold BOOT (the inner of the two small buttons on the back edge), tap RST beside it, then keep BOOT held down while you click Install. Power the board from a USB‑A port — its USB‑C connector has no CC pull‑downs, so a C‑to‑C cable may never bring up VBUS.

Your browser does not support Web Serial.
Please use Chrome or Edge on desktop.

After flashing, the ATM starts a WiFi access point for configuration. Connect to the LightningATM network — it is WPA2-protected with a per-device password atm-xxxxxxxx, where xxxxxxxx is the last four bytes of the access point’s MAC address (also printed on the serial log at boot) — then open 192.168.71.1 in your browser, or atm.local if your device resolves mDNS.

Stuck on “Preparing installation” and never showing an error? The chip never entered download mode — use the BOOT sequence above, or flash from a terminal with esptool, as described in the manual instructions. On Linux, ModemManager may also claim the serial port, and a Flatpak or Snap browser hides the USB IDs the flasher needs in order to pick the right reset sequence — a distro‑packaged Chrome or Chromium avoids both.