Telemetry & Monitoring
Environmental Sensors & Telemetry
MeshCore nodes can be equipped with environmental sensors to report weather data, air quality, and precise positioning across the mesh. This turns repeater nodes into distributed sensor stations. Note that MeshCore's sensor/telemetry support is more limited and more firmware/build-dependent than Meshtastic's telemetry module - check the MeshCore repository for the current list of supported sensors before planning a deployment.
Supported sensor types
| Sensor | Measurements | Interface | Cost | Notes |
|---|---|---|---|---|
| BME280 | Temperature, humidity, barometric pressure | I²C or SPI | $3 - 8 | Most common; accurate; fast response |
| BME680 | Temperature, humidity, pressure, VOC/air quality index | I²C or SPI | $8 - 15 | Adds air quality score; best for environmental monitoring |
| SHT31 | Temperature, humidity | I²C | $5 - 10 | Higher humidity accuracy than BME280 (Sensirion SHT31 ≈ ±2% RH vs Bosch BME280 ≈ ±3% RH); no pressure |
| GPS modules | Latitude, longitude, altitude, speed, heading | UART | $5 - 25 | See GPS module comparison below |
| INA219 / INA260 | Voltage, current, power draw | I²C | $2 - 5 | Battery and solar monitoring; useful for remote health checks |
GPS module comparison
Current-draw and time-to-first-fix figures below are approximate; confirm against each module's datasheet (u-blox M8/M10, Quectel L76K, Unicore UC6580) for your specific board and configuration. Which GPS chip a given board ships with varies by revision.
| Module | Constellations | Current draw | Cold fix time | Notes |
|---|---|---|---|---|
| u-blox M8N | GPS, GLONASS, BeiDou | ~25 mA | ~30 s | Common in T-Beam; good urban performance (note: T-Echo commonly ships the Quectel L76K, not the M8N) |
| u-blox M10 | GPS, GLONASS, BeiDou, Galileo | ~15 mA | ~25 s | Newer generation; lower power, better accuracy. The MAX-M10S below is a specific M10-family module |
| u-blox MAX-M10S | GPS, GLONASS, BeiDou, Galileo | ~5 mA | ~25 s | Ultra-low power; T-Deck Plus; best for battery nodes |
| Quectel L76K | GPS, GLONASS, BeiDou | ~20 mA | ~35 s | Budget option; lower sensitivity than u-blox |
| UC6580 | GPS, GLONASS, BeiDou, Galileo, QZSS, NavIC (L1+L5) | ~30 mA | ~20 s | Dual-band L1+L5; high precision. Verify the exact Heltec board name it ships on against current Heltec listings |
Note: GPS draws significant power (~15 - 30 mA active). For repeater deployments where position is static, configure the node to fix position at startup and then disable GPS polling to save power.
Connecting a BME280 to common boards
Most MeshCore-compatible boards expose I²C headers. The pin assignments below are indicative only - always check your specific board's official pinout before wiring. I²C pins are remappable in firmware on many boards, the firmware default may differ from the values shown, and you must confirm each VCC pin is 3.3 V (not a 5 V pin) to avoid damaging the sensor:
| BME280 pin | RAK4631 / WisBlock | Heltec V4 / V3 | T-Echo |
|---|---|---|---|
| VCC | 3.3V (verify pin) | 3.3V (verify pin) | 3.3V (verify pin) |
| GND | GND | GND (verify pin) | GND |
| SDA | SDA (check board pinout) | SDA (check board pinout) | SDA (check board pinout) |
| SCL | SCL (check board pinout) | SCL (check board pinout) | SCL (check board pinout) |
| SDO | GND (I²C addr 0x76) | GND | GND |
| CSB | 3.3V (I²C mode) | 3.3V | 3.3V |
Enabling telemetry in MeshCore firmware
Sensor support is compiled into the firmware for supported boards. For custom sensor connections, build flags similar to the following are used - but verify the exact build-flag names against the current MeshCore source (platformio.ini and the sensor driver code), as the names below are illustrative and may differ between firmware versions:
# In platformio.ini build flags, add a sensor definition
# (verify exact flag names in the MeshCore source):
build_flags =
-DHAS_BME280=1
-DBME280_I2C_ADDR=0x76
# Then rebuild and flash (see the PlatformIO CLI docs):
pio run -e your_target --target upload
As of 2026-06-08, pre-built firmware with BME280 support may be offered for some boards such as the RAK4631 WisBlock (which has a dedicated sensor slot) and select Heltec builds. Availability of pre-built sensor variants changes over time - check the MeshCore firmware releases/flasher page for the current list rather than assuming a given board has a pre-built image.
Telemetry data in the mesh
Sensor data is included in periodic telemetry packets broadcast by the node. Other nodes and apps that receive these packets display:
- Temperature and humidity at the repeater's physical location
- Barometric pressure trend (useful for weather monitoring)
- Air quality index (BME680 only)
- Battery voltage and solar input (if INA219 connected)
As an illustrative example, a local mesh community might operate several telemetry-equipped repeaters on hilltops and tower sites, providing real-time weather data for the surrounding area via the mesh network. (This is a hypothetical use case, not a documented specific deployment.)
Network monitoring with MQTT
For operators managing multiple nodes, MeshCore can be bridged to MQTT for centralized monitoring:
- Run a MeshCore Room Server (running on dedicated nRF52840 or ESP32 hardware)
- Traffic the Room Server is configured to bridge (such as messages, telemetry, and node advertisements it receives) is forwarded to MQTT topics - confirm exactly what the bridge forwards against the MeshCore repository, as not all mesh traffic is necessarily relayed
- Visualize with Grafana + InfluxDB for historical trending
- Alert on node disappearance (node stops advertising = possible power failure)
See the Room Servers & Gateways section for MQTT bridge setup details.