> Source: https://nexusatlas.dev/guides/position-adverts — Nexus Atlas developer documentation (Guides). Converted from the HTML page; the page is canonical.

# Tune position adverts for fast movers shipped

Range prediction and the terrain weights in routing read the positions other nodes *advertise*, so every node weighs an edge the same way and routing stays loop-free. How fresh those positions are is set by when a moving node re-advertises. The defaults keep ground nodes calm and make aircraft react within about a second; this guide shows the three settings, when to change them and how to see what they do. The mechanism is described under [Position adverts](https://nexusatlas.dev/docs/concepts/mesh#position-adverts).

> **What you need:** nodes that know their position — live telemetry on the [telemetry socket](https://nexusatlas.dev/docs/concepts/telemetry), `[interface] position`, or `PUT /api/position`. The settings live in `[link_monitor]` and apply without a restart.

## The defaults

```
[link_monitor]
position_advert_distance_m        = 25    # moved this far from the last advert: one at once (0 = off)
position_advert_interval_secs     = 10    # moving at all: at least this often (0 = off)
position_advert_min_interval_secs = 1.0   # fewest seconds between two, node-wide
```

| Trigger | Sends a position advert when |
|---------|------------------------------|
| Distance | the node is position_advert_distance_m from the position in its last advert |
| Period | the node has a fix, has moved at least 1 m since its last advert, and position_advert_interval_secs have passed |
| Terrain | a neighbour path changed terrain state (clear, marginal, shadowed, unknown) and the node has moved since its last advert |

A parked or static node sends nothing extra: no movement, no period advert. The 30 s advert refresh and link changes still carry the position as before. The fix is checked every 250 ms.

Why 25 m: it is about a second of fixed-wing flight, under two for a multirotor, and less than one 30 m elevation cell, so a smaller step would not change a terrain profile. A walking dismount advertises every 10 s.

## The rate limit and narrow bearers

A position advert is an ordinary routing flood. It marks every link as owing one, and each link carries it when that link is due:

- A link with its own `[[link]] route_advert_interval_secs` — a bearer you declared narrow — carries it only when that interval is due, coalesced with the newest fix.

- Every other link carries position adverts at most once per `position_advert_min_interval_secs`, node-wide, however fast the node moves. Position adverts are not held to the global `[mesh] route_advert_interval_secs` spacing of topology changes.

`position_advert_min_interval_secs` takes 0.1 to 3600; a value longer than the period is warned, because the period trigger would be held to it.

## Worked settings

**A survey aircraft with a long-range radio**

```
[link_monitor]
position_advert_distance_m = 10       # the others route on a picture within 10 m of the truth

[[link]]
name = "rfd900"
route_advert_interval_secs = 16       # the radio still carries one advert per 16 s
```

**A ground vehicle convoy on a shared narrowband net**

```
[link_monitor]
position_advert_distance_m        = 50
position_advert_interval_secs     = 20
position_advert_min_interval_secs = 5.0
```

**Fixed sites: only the refresh**

```
[link_monitor]
position_advert_distance_m    = 0
position_advert_interval_secs = 0
```

## Seeing it

The snapshot's `position_adverts` block holds the live settings and the counters:

| Field | Meaning |
|-------|---------|
| sent, by_distance, by_period, by_terrain | Position adverts sent, and by which trigger |
| rate_limited | Triggers held by the minimum interval |
| paced_held | Adverts a paced link was not yet due for |
| moved_m | Distance from the position in the last advert |
| per link: floods, position_floods, paced_held | What each link carried and held |

What to expect: a 220 m move reaches the other nodes in 136–210 ms. Moving 60 m every 200 ms, a node sends about one advert a second on an ordinary link and one per pacing interval on a paced one, with `rate_limited` and `paced_held` climbing accordingly, and its last fix reaches the others within about a second after it stops. Behind a ridge, with [terrain](https://nexusatlas.dev/guides/terrain) loaded, both ends move the route through a relay about 0.5 s after the move, where the 30 s refresh alone took about 23 s.

## Boundaries

- The rate limit holds on the advertising node's own links. A node that relays an advert re-floods it at once on every link, paced or not, as it does for every advert, so a mover's position adverts cross a relay's narrow bearer at up to the mover's own rate.

- Receivers project an advertised position `rssi_lookahead_secs` ahead of now, not from the advert's age, so the distance trigger is plain distance from the last advert: a straight, steady flight still advertises every 25 m.
