Flashing the firmware
Prebuilt firmware is on the releases page:
| File | What |
|---|---|
ir-bt-bridge-<tag>-esp32s3.elf | firmware, for espflash |
ir-bt-bridge-<tag>-esp32s3-merged.bin | firmware as a single image for offset 0x0 |
SHA256SUMS | checksums |
Connect the board’s USB-C port. If flashing fails to connect, hold BOOT while plugging it in to force download mode.
Updating a device
Flash the ELF with espflash. This keeps the stored mappings and pairings:
espflash flash ir-bt-bridge-<tag>-esp32s3.elf
A new board
The merged image needs only esptool (or a browser-based flasher), but it
erases the mappings and pairings because it overwrites NVS:
esptool.py --chip esp32s3 write_flash 0x0 ir-bt-bridge-<tag>-esp32s3-merged.bin
After flashing
The device’s USB output is framed binary, so espflash monitor shows
garbage. Use irbt instead:
irbt status
irbt monitor --logs
To pair with the TV, go to Settings → Remotes & Accessories → Add accessory → IR Bridge.
Serial port access
- Linux: your user needs access to the serial port. Join the
dialoutgroup (sudo usermod -aG dialout $USER, then log in again). - WSL2: attach the board to WSL with
usbipd-win
(
usbipd attach --wsl --busid <id>). Re-attach it after every replug or reset into download mode.