Live lab

Two sensor nodes on our bench, one on MQTT and one on LoRaWAN. Everything here is a real protocol behaviour you can trigger: commands, retained state, Last Will messages, Class A downlinks.

MQTT node

ESP32 with a temperature and humidity sensor, a light sensor, an RGB LED and a current monitor, publishing to a Mosquitto broker over TLS.

Connecting

LED colour

Publishes a command with QoS 1. The node applies it and publishes its new state as a retained message.

Sample rate

Round trip

Sends a timestamp to the node and waits for the echo.

-- ms

Break the connection

Drops the node's network. The broker publishes its Last Will, then the node reconnects and restores its state.

Temperature--
Humidity--
Current draw--
Light--
Firmware
v0.9.0 (sim)
Uptime
--
Free heap
--
Wi-Fi RSSI
--
Last reset
Power on

Packet inspector

Subscribed to probaho/lab/node-01/#
TimeDirTopicQoSRetainBytesPayload

LoRaWAN node

STM32WL node on batteries, joined to The Things Stack through our own gateway. Real nodes report every few minutes; this one is sped up to every 20 seconds so you can watch it.

Last uplink

RSSI
--
SNR
--
Data rate
--
Frequency
--
Airtime
--
Gateways
--
Frame counter
--
Received
--

Payload

Five bytes on air. The same values as JSON would be about ten times larger and, at SF7, need more than twice the airtime.

----------
  • Bytes 0–1: temperature × 100, signed
  • Byte 2: humidity × 2
  • Bytes 3–4: battery in millivolts
{ }

Recent uplinks

    Airtime and battery calculator

    Spreading factor, payload size and reporting interval decide how long the radio is on, and that decides battery life. Change the settings to see the trade-off.

    Estimated battery life--
    Airtime per uplink
    --
    Uplinks per day
    --
    Airtime per day
    --
    The Things Network fair use: 30 s per day--

    Assumes 125 kHz bandwidth, coding rate 4/5, 13 bytes of LoRaWAN overhead, 45 mA while transmitting, 10 µA for the whole board while asleep, and 80% of rated capacity usable. Real results depend on temperature, transmit power and sensor current, which is why we measure them on the actual board.