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.
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.
- Permissions — public / 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.
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.
| Sensor | I2C | Measures |
|---|---|---|
| BME280 ← the weather pick | 0x76/0x77 | Temp, humidity, pressure |
| BME680 | 0x76 | + gas / air-quality (IAQ) |
| BMP280 · BMP085 | 0x76/0x77 | Temp, pressure |
| AHT10/20 · SHTC3 · SHT4x | 0x38/0x70/0x44 | Temp, humidity |
| LPS22HB | 0x5C | Temp, pressure |
| INA219 / 226 / 260 / 3221 | 0x40–0x44 | Voltage, current, power (battery/solar) |
| MLX90614 | 0x5A | Non-contact IR temperature |
| VL53L0X | 0x29 | Distance (e.g. water/snow level) |
| RAK12035 | 0x20 | Soil moisture + temp (gardens/farm) |
| RAK12500 / NMEA | 0x42 | GPS (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.)
From board to reading, step by step
-
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.
-
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).
-
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).
-
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.
What people build with it
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.
Farm & garden
Soil-moisture nodes (RAK12035) and remote temperature checks for fields, greenhouses, and orchards.
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.
Go deeper
Building a weather node?
Share your sensor build — or see what’s already on the air — in #meshcore.