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
- Open the TOMMY dashboard in your browser
- Click the 'Flash' button in the 'Available Devices' section
- Select 'TOMMY Flasher' as flash method
- Select your device from the available options
2. Connect Your Device
- Connect your device to your computer via USB or UART
- Click "Connect device" in the flasher interface
- Select the appropriate serial port from the browser dialog
- 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
- Once connected, click "Flash Device"
- The flashing process will begin automatically
- Monitor the progress bar as the firmware is written
- Wait for the "Device flashed successfully" confirmation
After Flashing
Once flashing is complete, your device will:
- 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
- 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:
- In the TOMMY Flasher, disconnect the USB cable from the device, then reconnect it
- Click "Connect device" and select the serial port
- Enter your configuration in the dialog (see field descriptions below)
- Click "Configure Device" to send the configuration
- The device stores the configuration, restarts, and connects to your network - initial boot may take a few minutes
Wi-Fi Credentials
- SSID (required): Your Wi-Fi network name
- Password (required): Your Wi-Fi password
- BSSID (optional): Router MAC address (e.g.,
AA:BB:CC:DD:EE:FF) - required for mesh networks
Discovery
How the device finds your TOMMY instance. Choose one:
- Automatic (Online Coordination): Uses TOMMY's cloud server for coordination. Most reliable but requires continuous internet access. Enable Online Coordination in Privacy Controls first.
- Automatic (mDNS): The device discovers your instance via mDNS on your local network. Requires that multicast traffic reaches the device.
- Manual: Specify the IP of your TOMMY instance. When selected, enter Instance IP and UDP Relay Port (default: 8547). Useful when automatic discovery is unavailable.
Max TX Power
- Auto (default): Use the board default. Recommended for most boards.
- Manual: Set Wi-Fi TX power in dBm (2–20), rounds to nearest 0.25 dBm. Some boards work better with reduced power.
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.
For more details on each discovery method, see Automatic (Online Coordination), Automatic (mDNS), and Manual.
Troubleshooting Connection Issues
If you can't connect to your device:
- Ensure USB cable supports data transfer (not power-only)
- Try different USB ports
- Install USB-to-serial drivers if required
- Unplug and reconnect the USB cable
- 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