Skip to main content

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.

Supported sensor types

SensorMeasurementsInterfaceCostNotes
BME280Temperature, humidity, barometric pressureI²C or SPI$3–8Most common; accurate; fast response
BME680Temperature, humidity, pressure, VOC/air quality indexI²C or SPI$8–15Adds air quality score; best for environmental monitoring
SHT31Temperature, humidityI²C$5–10Higher accuracy than BME280 for humidity; no pressure
GPS modulesLatitude, longitude, altitude, speed, headingUART$5–25See GPS module comparison below
INA219 / INA260Voltage, current, power drawI²C$2–5Battery and solar monitoring; useful for remote health checks

GPS module comparison

ModuleConstellationsCurrent drawCold fix timeNotes
u-blox M8NGPS, GLONASS, BeiDou~25 mA~30 sCommon in T-Echo, T-Beam; good urban performance
u-blox M10GPS, GLONASS, BeiDou, Galileo~15 mA~25 sNewer generation; lower power, better accuracy
u-blox MAX-M10SGPS, GLONASS, BeiDou, Galileo~5 mA~25 sUltra-low power; T-Deck Plus; best for battery nodes
Quectel L76KGPS, GLONASS, BeiDou~20 mA~35 sBudget option; lower sensitivity than u-blox
UC6580GPS, GLONASS, BeiDou, Galileo, QZSS, NavIC (L1+L5)~30 mA~20 sHeltec T096; dual-band L1+L5; highest precision available

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. Standard connection:

BME280 pinRAK4631 / WisBlockHeltec V4 / V3T-Echo
VCC3.3V3.3V (pin 13)3.3V
GNDGNDGND (pin 14)GND
SDAIO1 (SDA)GPIO 41SDA (P0.26)
SCLIO2 (SCL)GPIO 42SCL (P0.27)
SDOGND (I²C addr 0x76)GNDGND
CSB3.3V (I²C mode)3.3V3.3V

Enabling telemetry in MeshCore firmware

Sensor support is compiled into the firmware for supported boards. For custom sensor connections:

# In platformio.ini build flags, add sensor definition:
build_flags =
  -DHAS_BME280=1
  -DBME280_I2C_ADDR=0x76

# Then rebuild and flash
pio run -e your_target --target upload

Pre-built firmware with BME280 support is available for RAK4631 WisBlock (which has a dedicated sensor slot) and select Heltec builds. Check the MeshCore firmware releases page for available variants.

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)

The RegionMesh community operates several telemetry-equipped repeaters on hilltops and tower sites, providing real-time weather data for the surrounding area via the mesh network.

Network monitoring with MQTT

For operators managing multiple nodes, MeshCore can be bridged to MQTT for centralized monitoring:

  • Run a Raspberry Pi or server with a room server + MQTT bridge
  • All mesh traffic (messages, telemetry, node advertisements) is forwarded to MQTT topics
  • 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.