Flashing Devices

TOMMY Flasher

TOMMY includes a built-in web-based flasher that allows you to flash ESP32 devices from your browser.

Requirements

  • Chrome or Edge (WebSerial API support required)
  • Device connected via USB or UART
  • TOMMY dashboard running (Home Assistant add-on or Docker)

Flashing Process

1. Access the Flasher

  1. Open the TOMMY dashboard in your browser
  2. Click the 'Flash' button in the 'Available Devices' section
  3. Select 'TOMMY Flasher' as flash method
  4. Select your device from the available options

2. Connect Your Device

  1. Connect your device to your computer via USB or UART
  2. Click "Connect device" in the flasher interface
  3. Select the appropriate serial port from the browser dialog
  4. The flasher will automatically detect your device and display:
    • Variant: Device model
    • Board ID: Unique chip identifier
    • MAC Address: Device network identifier

3. Flash the Firmware

  1. Once connected, click "Flash Device"
  2. The flashing process will begin automatically
  3. Monitor the progress bar as the firmware is written
  4. Wait for the "Device flashed successfully" confirmation

After Flashing

Once flashing is complete, your device will:

  1. Restart with TOMMY firmware
    • Some devices don't restart automatically and require a manual reset by pressing the reset button or unplugging and reconnecting the USB cable
  2. Create a Wi-Fi hotspot named TOMMY_[MAC_SUFFIX]
  3. Wait for Wi-Fi configuration at http://192.168.4.1

Wi-Fi Provisioning

  1. Connect to the device hotspot: TOMMY_[MAC_SUFFIX]
  2. Open http://192.168.4.1 in your browser
  3. Enter your Wi-Fi credentials:
    • Wi-Fi Network (SSID) (required): Your Wi-Fi network name
    • Wi-Fi Password (required): Your Wi-Fi password
    • Instance IP (optional): The IP address of your TOMMY instance
    • File Server HTTP Port (optional): Defaults to 8090
    • File Server HTTPS Port (optional): Defaults to 8091

Note: Make sure to use the correct Wi-Fi band (2.4GHz or 5GHz) that your device supports. Instance IP and ports are optional but recommended as a fallback for when auto-discovery using mDNS isn't possible.

Troubleshooting Connection Issues

If you can't connect to your device:

  1. Ensure USB cable supports data transfer (not power-only)
  2. Try different USB ports
  3. Install USB-to-serial drivers if required
  4. Unplug and reconnect the USB cable
  5. Ensure you're using a supported browser (Chrome or Edge)

Security Notes

  • All flashing happens locally in your browser
  • Firmware files are served from your local TOMMY instance
  • Your browser communicates with the device