TOMMY
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. Enter serial provisioning mode - waiting for configuration over the USB connection

Serial Provisioning

Configuration is sent to the device over the same USB/serial connection used for flashing:

  1. In the TOMMY Flasher, disconnect the USB cable from the device, then reconnect it
  2. Click "Connect device" and select the serial port
  3. Enter your configuration in the dialog:
    • Wi-Fi SSID (required): Your Wi-Fi network name
    • Wi-Fi Password (required): Your Wi-Fi password
    • Router BSSID (optional): Router MAC address (e.g., AA:BB:CC:DD:EE:FF) - required for mesh networks
    • Instance IP (optional): The IP address of your TOMMY instance - fallback when mDNS is unavailable
    • UDP Relay Port (optional): Defaults to 8547
    • Max TX Power (optional): In dBm (2–20), rounds to nearest 0.25 dBm - leave empty for default
  4. Click "Configure Device" to send the configuration
  5. The device stores the configuration, restarts, and connects to your network - initial boot may take a few minutes

Make sure to use the correct Wi-Fi band (2.4GHz or 5GHz) that your device supports.

Router BSSID is optional but required for TOMMY to work on mesh networks. Please refer to the information about mesh networks in system requirements.

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