// guide · meshcore

The Sensor firmware: weather over the mesh

Guide · updated June 2026

MeshCore’s Sensor firmware turns a cheap LoRa board into an off-grid weather station — temperature, humidity and pressure, served to anyone on the mesh who asks. No internet, no cell, sips battery. Here’s what it does, which sensors plug in, and how to read the data.

What the Sensor role actually is

MeshCore nodes take on roles — Companion, Repeater, Room Server, and Sensor. A Sensor node is a leaf: it reads its attached sensors and answers questions, but it doesn’t relay other traffic. That focus is the point — it stays asleep and barely touches the battery.

The model is pull-based: the sensor doesn’t spray readings into the air. It waits, and when a companion (with permission) asks for telemetry, it answers. Readings are packed with CayenneLPP — a tiny standard encoding — so a full weather report is just a handful of bytes on the air.

RoleSensor (leaf)
ModelPull-based
SensorsI2C, auto-detected
EncodingCayenneLPP
Best onLow-power / solar nRF52
Data outApp or MQTT

What it can do

  • Environment telemetry — temperature, humidity, pressure, air quality, plus battery/solar voltage and (optionally) GPS.
  • History on the node — it keeps a rolling time-series buffer, so you can ask for the min / max / average over a window, not just the latest reading.
  • Alerts — threshold triggers (e.g. low battery, temp over a limit) push a confirmed message to subscribed admins, with retries.
  • Permissionspublic / guest / admin tiers. Anyone might read battery and uptime; richer telemetry and GPS sit behind a login.
  • Tunable cadence — sensor telemetry typically logs every 30–60 min (adjustable); shorter intervals mean fresher data but more battery.
// hardware

Weather sensors you can connect

Wiring is dead simple — I2C sensors need just four pins: VCC, GND, SDA, SCL. The firmware scans the I2C bus on boot and auto-detects what’s there, so there’s nothing to configure.

SensorI2CMeasures
BME280 ← the weather pick0x76/0x77Temp, humidity, pressure
BME6800x76+ gas / air-quality (IAQ)
BMP280 · BMP0850x76/0x77Temp, pressure
AHT10/20 · SHTC3 · SHT4x0x38/0x70/0x44Temp, humidity
LPS22HB0x5CTemp, pressure
INA219 / 226 / 260 / 32210x40–0x44Voltage, current, power (battery/solar)
MLX906140x5ANon-contact IR temperature
VL53L0X0x29Distance (e.g. water/snow level)
RAK120350x20Soil moisture + temp (gardens/farm)
RAK12500 / NMEA0x42GPS (lat, lon, altitude)

For a weather node, the BME280 is the classic — the full temp/humidity/pressure trio for a couple of dollars. Step up to the BME680 if you also want an air-quality reading. (Sensor support is compiled in per board, so use a firmware build that includes your sensor.)

// get weather data

From board to reading, step by step

  1. Flash the Sensor firmware

    At flasher.meshcore.io, pick your board and the Sensor firmware build (one that includes your sensor driver), and flash it. New to flashing? Start with Set up your first MeshCore node.

  2. Wire the sensor (or use a built-in one)

    Connect your BME280 to VCC, GND, SDA, SCL — that’s it; it’s auto-detected. Or skip wiring entirely with a board that has sensors onboard (below).

  3. Find it in the app

    On your companion, open the MeshCore app and Discover nodes → Discover sensors, add the sensor node, and authenticate (admin or guest password).

  4. Request telemetry

    Request telemetry and you’ll get temperature, humidity, pressure, battery (and GPS if enabled). Ask for min/max/average to pull the stored history, and tune the logging interval to taste.

No-solder options: the Seeed T1000-E has a temperature + light sensor and GPS built in — flash Sensor firmware and it just works. The SenseCAP Solar Node is a sealed, solar-powered nRF52 node — ideal for a deploy-and-forget weather station.

Get the data off the mesh

Want your weather data in a dashboard? Run an observer that bridges the mesh to MQTT, then pull it into Home Assistant, InfluxDB, or Grafana for graphs and history. RF Lab already runs a broker — see the observer firmware guide to point a node at it.

// in the wild

What people build with it

weather

Off-grid weather stations

A BME280 on a solar nRF52 node, dropped on a ridge or a barn — temp/humidity/pressure with no internet for miles.

land

Farm & garden

Soil-moisture nodes (RAK12035) and remote temperature checks for fields, greenhouses, and orchards.

air

Air-quality & alerts

BME680 IAQ monitors, plus threshold alerts (frost, heat, low battery) pushed to admins automatically.

For deploy-and-forget builds, the community leans on power-efficient firmware like EasySkyMesh — tuned for single-digit-milliamp idle so a small panel keeps a sensor node alive indefinitely.

Building a weather node?

Share your sensor build — or see what’s already on the air — in #meshcore.