Open-source ESP32 + LoRa firmware to receive ThermoWorks Smoke X2/X4 wireless thermometer signals
The ThermoWorks Smoke X2 and Smoke X4 are excellent BBQ / smoker thermometers — accurate, long RF range, long battery life, no app required. But the included receiver only shows the current probe readings. There's no way to record history, set alerts beyond the built-in alarm, or integrate with home automation.
This project turns a low-cost Heltec WiFi LoRa 32 board (~$15) into an additional, network-connected receiver that runs alongside the original Smoke X2/X4 receiver without interfering with it. All paired receivers continue to function normally.
Temperature readings flow via the LoRa RF signal from the Smoke X2/X4 base station to both the included receiver and to an ESP32+LoRa device. The latter publishes the data over MQTT (for Home Assistant or any other consumer) and serves it from a built-in web UI. All data is acquired, processed, and stored locally — no cloud dependency unless you choose (e.g., AWS IoT MQTT)
flowchart LR
base <-->|LoRa RF| lora_sx12xx(SX12xx LoRa Transceiver)
mqclient <--> mq
mq <--> ha
web <--> browser(Any web browser)
subgraph ThermoWorks Smoke X2/X4
Probes --> base(Base station) -->|LoRa RF| recv(ThermoWorks Receiver)
Billows --> base
end
subgraph esp32 [ESP32+LoRa Smoke X Receiver]
lora_sx12xx --> smoke_x_parser(Smoke X Parser)
smoke_x_parser --> mqclient(MQTT client)
smoke_x_parser --> web(HTTP server)
end
subgraph mqttb [MQTT Broker]
mq(homeassistant topic)
end
subgraph Home Assistant
mq_int
end
subgraph ha_dev [HA Device for X2/X4]
e1(Binary sensor entities)
e2(Sensor entities)
end
subgraph mq_int [MQTT Integration]
ha(Auto discovery) --> e1
ha(Auto discovery) --> e2
ha_dev
end
Any ESP32 board with a SPI-connected Semtech SX1276 or SX1262 LoRa transceiver operating in the 915 MHz ISM band will work. The supported and tested boards are:
| Board | ESP32 Chip | LoRa | Status |
|---|---|---|---|
| Heltec WiFi LoRa 32 V2 | ESP32 | SX1276 | Tested |
| Heltec WiFi LoRa 32 V3 | ESP32-S3 | SX1262 | Tested |
| Heltec WiFi LoRa 32 V4 | ESP32-S3 | SX1262 | Untested — same ESP32 chip and GPIO as V3; use the V3 firmware |
Auto-detects Heltec V2 (ESP32 + SX1276) vs V3 (ESP32-S3 + SX1262) and flashes the matching firmware. Requires a desktop browser with WebSerial support (Chrome / Edge / Brave / Arc / Opera / recent Firefox). Other ESP32 boards may work but may require configuring and building from source.
Can't use WebSerial? Download the merged binary for your board from the latest GitHub release and flash with esptool:
# Heltec V2 (ESP32 + SX1276) python -m esptool --chip esp32 -b 460800 write_flash 0x1000 smoke-x-receiver-heltec-v2.bin # Heltec V3 or V4 (ESP32-S3 + SX1262) python -m esptool --chip esp32s3 -b 460800 write_flash 0x0 smoke-x-receiver-heltec-v3.bin
Wi-Fi setup via Improv-Serial (PSK networks)
After flashing, the install dialog will offer to configure Wi-Fi directly from your browser using the Improv-Serial protocol. Enter your SSID and password; the device connects without rebooting and the dialog links you straight to the device web UI. This works with WPA2 and WPA3 personal (PSK) networks only.
AP-mode fallback (enterprise networks or skipped setup)
If your network uses WPA2/WPA3-Enterprise (EAP-TTLS), click Skip in the install dialog — Improv does not support enterprise credentials. The device will initialize its own Wi-Fi access point. This is also the case if you close the install dialog before completing Wi-Fi setup, you manually installed with esptool, or any time the device cannot reach its configured network. Join the device AP from your phone or laptop:
Smoke X ReceiverThe extra B is for BYOBBNavigate to http://192.168.4.1/wlan to enter your WPA2/WPA3-PSK or WPA2/WPA3-Enterprise credentials (identity, username, password, and optionally a CA certificate).
Once connected
Once on Wi-Fi, the device:
smokex — the
device IP address will be shown on the OLED display.
Full setup details — Smoke X pairing flow, MQTT URI / TLS configuration, Home Assistant auto-discovery setup — are in the project setup guide.