What is a LoRa Mesh Network?

LoRa (Long Range) is a low-power radio protocol that operates in unlicensed spectrum, 915 MHz in North America. MeshCore is an open-source firmware that turns inexpensive LoRa hardware into a self-routing, infrastructure-free messaging network. No cell towers, no internet, no subscription. Nodes hear each other, relay packets, and collectively form a resilient communications mesh.

Where does the Portland MeshCore network actually reach?

Each MeshCore repeater node broadcasts from a fixed position on the landscape. Terrain determines what it can see and therefore what it can serve. This map stacks individual geometric viewsheds for 387 Portland area repeaters into a single cumulative coverage surface. Pixel values represent the count of nodes with unobstructed line-of-sight to each ground location. The plugin loads automatically with a 3-class discrete ramp (pale yellow → burnt orange → deep rust) at 60% opacity. Class breaks are derived from the actual pixel distribution using log-scale percentiles.

Not all nodes are equal.

The plugin enriches each node with derived attributes from the viewshed outputs: terrain-visible area (km²), pixel-level reach count, dominant coverage azimuth, line-of-sight peer count, and per-peer free-space path loss (FSPL). These fields drive a structural classification that reads like a network topology audit. The dominant azimuth reveals which direction each node’s coverage is actually facing, useful for identifying nodes whose footprint is largely redundant with a neighbor, and for spotting directional gaps in the network.

The peer count threshold of 3 matters: a node with three or more line-of-sight peers has genuine redundant routing paths and for each visible peer, the plugin computes free-space path loss (FSPL), the predicted signal attenuation over that link based on distance and 915 MHz frequency. Below that 3 peer threshold, it’s a spur, its failure removes coverage with no alternate route. Node markers are clickable — select any point to inspect its classification, coverage area, peer count, and dominant direction.

Classification tells you where the network is structurally exposed but not how well those nodes are actually heard. A Critical node on a ridge may have few peers because terrain isolates it, or because its signal simply doesn’t carry far enough to establish links. Structural position and signal quality are not the same thing, and a node’s classification cannot tell you which problem it has. The SNR heatmap answers that question from the receiver’s perspective.

Geometry tells you where. RF tells you how well.

The viewshed pipeline is a geometric model, it captures terrain blockage, the dominant first-order constraint in hilly terrain, but not Fresnel zone clearance, antenna mismatch, local interference, or actual received power. An Observer node logs every MeshCore advert packet it receives to disk. Each advert is self-identifying: it carries the transmitting node’s public key, GPS coordinates, and the SNR measured at the Observer’s antenna. The plugin reads that log, matches each packet to a known node location, and interpolates a continuous SNR surface via IDW.

The result is not a map of the network, it is a map of what the mesh sounds like from one antenna. Move the Observer three blocks uphill and you get a different map. That subjectivity is not a limitation; it is the point. Planned live ingest via MQTT, a lightweight message broker already used by the MeshCore network, will allow the surface to update continuously as packets arrive, turning a static log-file snapshot into a living RF picture of the mesh that refreshes in near real-time.

Build the mesh in your area.

Every dataset shown in this example webmap was generated from hardware that costs less than $50.00 and firmware that is entirely open source. A basic LoRa node running MeshCore joins the nearest mesh automatically, no infrastructure, no subscription. An Observer node is the same hardware with packet logging enabled; point the plugin at its output and you have the analytical pipeline shown here running for your region.

Start by checking whether nodes already exist near you. The plugin pulls the global MeshCore registry on first run, if your area shows sparse coverage, you are looking at a gap the community hasn’t filled yet. Drop a repeater on a rooftop, a ridge, or a tower and run the viewshed pipeline to see exactly what terrain it serves before you ever key up a radio.

Modern communications infrastructure is capable but fragile. The Mesh is the resilient supplement, and communities build it. The Cascadia regional network is active at cascadiamesh.org. For backbone infrastructure, education, and national coordination visit meshamerica.com. Bring your GIS skills. The network needs people who understand terrain, coverage, and spatial gaps as much as it needs hardware.