Skip to content

Understanding RSSI in TRBOnet Observations

Audience: Protected area staff, data analysts, and radio network administrators working with TRBOnet / MOTOTRBO position data in EarthRanger.

What this document covers: what the rssi field on a TRBOnet observation actually measures, how to read it, what it is genuinely useful for, and — importantly — the ways it will mislead you if taken at face value.

1. What you are looking at

TRBOnet position reports delivered into EarthRanger carry an rssi field alongside the GPS fix. A representative observation:

{
  "name": "",
  "rssi": -100.8482,
  "speed": 0.928125,
  "locked": false,
  "radius": 2.3984375,
  "altitude": 0.0,
  "direction": 180.0,
  "event_time": "2025-02-14T09:23:57.290000+00:00",
  "map_events": [],
  "radio_state": "online-gps",
  "event_action": "device_location_changed",
  "radio_state_at": "2025-02-14T09:23:57.290000+00:00"
}
Field Meaning Notes
rssi Received Signal Strength Indicator, in dBm Uplink. See §2.
speed Speed at time of fix Units are system-dependent — verify against known vehicle speeds before trusting.
radius GPS horizontal uncertainty, metres From the LRRP report. A very small value does not mean the fix is recent.
altitude Elevation Frequently reported as 0.0; MOTOTRBO LRRP often omits altitude. Do not treat 0.0 as sea level.
direction Heading, degrees Often a coarse or default value at low speed.
radio_state TRBOnet-tracked radio state e.g. online-gps.
locked Radio/subscriber state flag Semantics vary by TRBOnet version — confirm with your integrator before filtering on it.
event_time / radio_state_at Timestamps See §4.3 on store-and-forward.

The precision is not real

-100.8482 looks like a four-decimal measurement. It isn't. The neighbouring fields give it away: radius: 2.3984375 is exactly 307/128, and speed: 0.928125 is similarly a fixed-point artifact. These are scaled integers converted to floats. RSSI is the same — a quantized hardware reading run through a dB conversion.

Practical rule

Round to the nearest dB. Treat differences smaller than about 5 dB between individual readings as noise. If you want to know your system's true resolution, histogram the distinct RSSI values in your dataset; the spacing of the peaks is your actual quantization step.

2. Which direction is being measured, and why it matters

The rssi value is the uplink (talk-in) measurement

Signal strength as received at the repeater, from the ranger's radio.

The structural reason: RSSI is not part of the LRRP payload. Every other field above — position, radius, speed, direction — is generated by the radio and carried in the LRRP report. RSSI is not an LRRP element, which means it is stamped onto the record by the infrastructure at the point of reception. There is no mechanism by which a radio would report the downlink strength it observes in a standard LRRP position update.

So the data path is:

  1. A ranger's radio transmits a position report.
  2. The repeater's receiver measures the power of that inbound burst.
  3. TRBOnet logs the measurement against the position record.
  4. The record reaches EarthRanger via the integration.

Talk-in is generally the binding constraint in a DMR system. A handheld transmits at 4–5 W; a repeater transmits at 40–50 W. That roughly 10 dB advantage means a ranger will usually stop being heard before they stop hearing.

It's also the safety-critical direction. The question that matters during an incident is not whether a ranger can hear dispatch — it's whether a ranger in trouble can be heard.

One important caveat

You will sometimes see the claim that strong uplink RSSI guarantees solid downlink coverage. Treat that as a tendency, not a guarantee.

Antenna gain and feedline loss are reciprocal — they apply equally in both directions. The real asymmetry is just the ~10 dB of transmit power. But repeater sites are electrically noisy environments: co-located transmitters, solar charge controllers, switching power supplies, and intermodulation products all raise the noise floor at the receiver. Effective sensitivity at a real site is commonly 6–15 dB worse than the manufacturer's specification, which can consume the entire transmit-power advantage.

Uplink is usually the weak link. It is not reliably so, and the exceptions cluster at exactly the sites you'd least want to be wrong about.

3. Reading the numbers

RSSI is in dBm — decibels relative to one milliwatt. Values are negative, and closer to zero is stronger. Typical range in TRBOnet data: -50 dBm to -120 dBm.

Two things about DMR before the table:

  • DMR fails as a cliff, not a slope. Digital audio is clean until it isn't. There is a narrow band where you get garbling and dropped syllables, and below that, nothing. RSSI predicts margin to that cliff — it does not predict audio quality on a gradient.
  • RSSI is wideband channel power, including noise and interference. The same dBm figure means different things at a quiet ridge-top site and a noisy solar-powered one.
RSSI (dBm) Margin Field interpretation
Above -85 Ample Comfortable. Voice and telemetry reliable. Differences within this band are operationally meaningless — do not read significance into -45 vs -75.
-85 to -100 Adequate Normal working coverage for most of a patrol area. Occasional telemetry retries at the lower end.
-100 to -110 Thin Working, but with little headroom. Vulnerable to body position, foliage, and minor terrain features. Worth understanding why a location sits here.
-110 to -118 Marginal Near the practical decode limit. Expect intermittent failures and gaps in telemetry. Treat as effectively unreliable for life-safety communication.
Below -118 Suspect Below realistic sensitivity for most sites. Investigate for clamping or floor artifacts before believing it.

These thresholds are not universal — calibrate them per site

The boundaries above are starting points. The actual failure threshold is set by your site's noise floor, which varies by more than a full row of this table between a clean installation and a compromised one.

To find your real floor, take the low tail of the RSSI distribution per repeater site — the lowest values at which you still receive successful decodes. That empirical floor, not the datasheet figure, is what you should measure margin against.

Warning

Do this before publishing any coverage assessment internally. Otherwise your margin estimates will be optimistically wrong by more than the quantity you are trying to measure.

4. Five ways this data will mislead you

This is the most important section. Every item here has produced a wrong conclusion somewhere.

4.1 Survivorship bias — the big one

Every record in your dataset is a transmission that succeeded

Dead zones do not produce low RSSI values. They produce no data at all. A blank area on your RSSI heatmap is indistinguishable from an area nobody patrolled.

This means:

  • You cannot find dead zones by looking for low RSSI. Low RSSI marks the approach to a dead zone, at best.
  • Any claim that a heatmap "shows where terrain blocks the signal" is unsupported. The map shows where signals got through.
  • To actually locate coverage holes, use gap analysis on movement tracks: find trajectories that go silent and then reappear elsewhere. The silent interval is your candidate. Cross-check the endpoints against terrain.

4.2 Device heterogeneity

A vehicle-mounted mobile — 25–45 W into a roof-mounted antenna with clear ground plane and no body loss — will read roughly 15–17 dB hotter than a handheld at the same GPS coordinate. That is larger than the entire span from "adequate" to "marginal" in the table above.

Handheld readings are further affected by factors invisible in the data:

  • Power setting. High/low is a user-toggleable switch. 5–8 dB, undocumented in the record.
  • Antenna condition. Damaged, wrong-band, or aftermarket antennas are extremely common in field fleets and can cost 10 dB or more.
  • Carry mode and body loss. Belt vs. hand vs. pack is up to about 10 dB — and it correlates with activity type, which correlates with location. Foot patrols in thick bush carry differently than vehicle patrols on roads. This is confounding, not just noise.
  • Battery state. An aged battery sags under PA load and reduces output.

Practical rule

Never pool RSSI across device classes. Segment by subject/source type before any analysis. If you want a single comparable dataset, either normalize to one reference configuration (handheld, high power, on-belt) and accept wide error bars, or restrict analysis to vehicle mobiles, where the configuration is at least consistent.

4.3 Timestamps and store-and-forward

Queued reports paint good RSSI onto bad-coverage locations

If positions are queued during an outage and flushed on reconnect, the RSSI belongs to the moment of transmission, not the moment of the fix — systematically, and in exactly the places you care about most.

In the sample observation, event_time and radio_state_at are identical, which does not by itself prove anything either way. Verify with your integrator whether your TRBOnet configuration distinguishes fix time from receive time, and whether queued reports are flagged. If they aren't distinguishable, note the limitation prominently in anything you publish.

4.4 Multipath fading

A single RSSI reading is not a measurement of a location

At VHF and UHF, multipath produces ±10 dB swings over movements of less than a metre.

Always aggregate spatially. Recommended approach:

  • Bin into H3 cells at resolution 9–10, or a 250 m grid.
  • Take the median RSSI per cell, not the mean — medians resist outliers.
  • Carry the sample count with every cell. A cell with 3 observations and a cell with 300 should never render identically.
  • Consider reporting a low percentile (e.g. 10th) alongside the median. For life-safety planning, the bad-day value matters more than the typical one.

4.5 Multi-site systems

In IP Site Connect, Capacity Plus, or Linked Capacity Plus deployments, inbound RSSI is measured per repeater. Each site has a different antenna height, receiver chain, feedline run, and noise environment.

If your observation records don't carry a site or repeater identifier, you are averaging measurements from physically distinct receivers onto one map, and the result is not interpretable. Check whether TRBOnet exposes the receiving site, and whether your integration is carrying it through. If it isn't, that's a gap worth closing before building anything on top of this data.

5. What the data is genuinely good for

Ordered roughly by effort.

5.1 Operational context for dispatchers

The lowest-effort, highest-value use. Overlay a binned margin map in EarthRanger so dispatchers can see when a patrol has entered a thin-coverage area. When a track stops updating, the immediate question — "is this a comms gap or an incident?" — has a much better answer.

Because the receiver is fixed at the repeater, you have a stable reference point. Pick cells with dense historical coverage, then track median RSSI in those cells over months and years.

A step change in a reference cell means something physical happened: feedline water ingress, duplexer drift, connector corrosion, antenna damage, a failed preamp, or someone changed a power setting and didn't tell anyone. This is cheap to build, and with several years of history it works immediately.

5.3 Seasonal vegetation effects — band-dependent

Foliage attenuation is strongly frequency-dependent, and the difference matters:

  • VHF (136–174 MHz): penetrates vegetation relatively well. Expect a modest seasonal swing — a few dB on long paths through dense wet canopy.
  • UHF (400–470 MHz): materially more attenuation. Wet-season degradation is clearly measurable and can be operationally significant on marginal paths.

Many conservation deployments are VHF specifically for this reason.

Check your band before investing in this analysis

A VHF operator who logs 12 months expecting a large effect will find a small one and may wrongly conclude the data is bad.

5.4 Terrain correlation and repeater siting

Join binned RSSI against a digital elevation model. Because altitude in the observation is usually unpopulated, the DEM is doing real work here, not just decoration — terrain elevation and line-of-sight are the dominant propagation variables and the raw data is blind to them.

Weighted against patrol density, this tells you where an additional repeater or a relocation buys the most operational safety.

5.5 Antenna pattern decisions — with a safety caveat

If traffic is concentrated in an arc, a directional or sector antenna will push signal substantially further into the active zone.

A directional antenna reduces coverage outside the arc toward zero

In an emergency, people go where they don't normally patrol — a vehicle breakdown, a pursuit, a medical evacuation route. Weigh the gain against the loss of a fallback, and don't make this decision from patrol-density data alone.

5.6 Propagation modelling (advanced)

The highest-value use, and the only way to get a real coverage map.

Fit a terrain-aware propagation model (ITM/Longley-Rice, or a clutter-adjusted empirical model) against your measurements, then predict coverage everywhere — including the areas nobody patrols. Sparse, biased measurements combined with terrain data beat either input alone.

Path loss is reciprocal, so a model calibrated on uplink also predicts downlink: swap the ERP and sensitivity terms at each end of the link. One measurement set, both directions.

The target artifact is an emergency-call reliability map: probability that a transmission from a reference handheld configuration is successfully received, per cell, with sample counts and confidence bounds, model-filled where measurements don't exist. Survivorship bias (§4.1) is precisely why the model is mandatory rather than optional.

5.7 Interference detection

Cells where measured RSSI sits consistently above model prediction, or where the per-site noise floor is elevated relative to peers, flag possible interference or a receiver problem.

6. What this data is not

It is not a coverage map

What you have is a link-margin sample set along traveled paths, conditioned on successful transmission, from a heterogeneous fleet, at unknown power settings.

That is a genuinely valuable asset — but the phrase "we have mapped signal strength across the protected area" overstates it in three ways at once: the sampling is confined to patrol routes, the measurements are conditional on success, and the values aren't comparable across devices.

It becomes a coverage map after §5.6, and not before.

7. Checklist before publishing any analysis

  • Confirmed whether observations carry a receiving site/repeater identifier (§4.5)
  • Segmented by device class — handheld vs. mobile (§4.2)
  • Established the empirical noise floor per site from the low tail (§3)
  • Confirmed whether fix time and receive time are distinguishable (§4.3)
  • Confirmed the semantics of locked with your integrator before filtering on it (§1)
  • Binned spatially with medians and sample counts (§4.4)
  • Rounded RSSI to whole dB (§1)
  • Stated the survivorship limitation explicitly wherever a map is shown (§4.1)
  • Verified your band (VHF vs. UHF) before drawing vegetation conclusions (§5.3)

8. Common misconceptions

\"Low RSSI zones drain radio batteries because the radio transmits harder to reach the repeater.\"

There is no adaptive transmit power control in MOTOTRBO conventional or Capacity Plus systems. Transmit power is a static per-channel setting in the codeplug, optionally toggled by the user — the radio uses the same power next to the repeater as it does at the fringe. This is cellular behaviour, not DMR.

There is a real fringe-area battery effect, but the mechanism is different: failed transmissions get retried, so cumulative transmit time rises, and rangers working known-poor areas often switch manually to high power and leave it there. Both are worth managing — just not by the stated mechanism.

\"RSSI tells me audio quality.\"

RSSI is channel power, including noise and interference. It is not a quality metric like BER or SINR. Combined with DMR's cliff-edge failure behaviour, RSSI predicts margin to failure, not intelligibility on a gradient.

\"-45 dBm is better than -75 dBm.\"

Both are comfortable. Above roughly -85 dBm, differences carry no operational meaning. Very high readings can indicate receiver overload in unusual configurations, but mostly they just mean the radio was close to the repeater.

\"A gap in the heatmap is a dead zone.\"

It's either a dead zone or an area nobody visited, and the data cannot distinguish them. See §4.1.

Contributing

Corrections and additions welcome — particularly empirical noise-floor figures from real sites, and TRBOnet version-specific notes on the locked field and store-and-forward behaviour.

Contact support@earthranger.com or open an issue on GitHub.