TL;DR: Position reporting should be intentional. Use Smart Position so your node only sends updates when you actually move, disable or coarse-limit position on public channels like LongFast, and allow precise location only on private channels where it’s useful. This keeps the mesh reliable, protects privacy, and prevents unnecessary radio traffic.
Position Reporting — How It Flows
The diagram below describes how Meshtastic decides if, when, and where a position update is transmitted.
1️⃣ GPS / Location Source
Your node determines its location using GPS or a fixed/manual position.
2️⃣ Smart Position Evaluation
The node checks movement thresholds before sending anything:
- Have you moved far enough?
- Have you moved fast enough?
- Has enough time passed?
If none of these conditions are met, no position packet is sent.
3️⃣ Channel Filtering
For each channel, Meshtastic applies channel-specific rules:
- Is position enabled on this channel?
- What precision is allowed?
This determines whether the update is sent as precise, coarse, or not sent at all.
4️⃣ Radio Transmission
Only channels that allow position data receive the update. Other channels see nothing.
This prevents private movement data from leaking onto public mesh channels.
Why this matters:
Every position packet is rebroadcast by nearby nodes. Excessive position traffic keeps infrastructure nodes awake, drains batteries, increases collisions, and reduces message reliability for everyone.
Position reporting controls how and when a Meshtastic node transmits its location to the mesh. When configured correctly, it provides useful awareness without creating unnecessary radio traffic.
When configured poorly, position updates are one of the largest sources of excess airtime on a mesh, especially on public channels and infrastructure-heavy networks.
How Position Reporting Works
Meshtastic can send position updates either on a fixed interval or based on movement. Smart Position replaces fixed timers with threshold-based logic, transmitting only when meaningful movement occurs.
This prevents constant background transmissions caused by GPS drift, stationary jitter, or overly aggressive broadcast intervals.
- Distance threshold: Sends an update only after moving far enough to matter
- Time threshold: Prevents repeated updates in short time windows
- Speed threshold: Avoids false “movement” when stationary
Important:
Fixed position broadcast intervals without Smart Position enabled can quickly overwhelm a busy mesh. Always enable Smart Position for mobile nodes.
Why Channel-Specific Position Matters
Position behavior is evaluated per channel. This allows precise location sharing on trusted channels while minimizing traffic and protecting privacy on public ones.
Public Channels (LongFast)
Public channels are shared by the entire mesh, including infrastructure routers, solar nodes, and battery-powered relays. Precise position updates on these channels provide little value and create unnecessary load.
- Increases channel utilization
- Forces routers and solar nodes to wake repeatedly
- Reduces overall message reliability
- Exposes precise movement data publicly
For this reason, LongFast should have position disabled or set to coarse precision only.
Private Channels (Family, Team, SAR)
Private channels are where precise location data is actually useful. Limiting detailed position updates to these channels provides accurate tracking without affecting the wider mesh.
Smart Position ensures updates are sent only when thresholds are crossed, keeping traffic intentional and predictable.
Why This Matters for Mesh Health
Uncontrolled position reporting is one of the most common causes of high channel utilization on Meshtastic networks.
- Consumes airtime that could be used for messages
- Increases packet collisions
- Reduces battery life for nearby nodes
- Prevents the mesh from scaling cleanly
Proper position configuration keeps the mesh efficient, reliable, and sustainable as more nodes are added.
Summary
- Enable Smart Position for all mobile nodes
- Disable or coarse-limit position on public channels
- Use precise position only on private channels
- Intentional position reporting keeps the mesh healthy