Field Deployment of Meshtastic Nodes

Getting Meshtastic working on a bench is straightforward. Getting it working reliably outdoors in a field — surviving weather, running on battery for weeks, mounted at height to maximize range — is a different problem. This covers node placement strategy, enclosures, power, and the practical lessons from deploying LoRa hardware in real environments.

Node Placement and Height

Height is the single biggest factor in LoRa range. The Fresnel zone — the elliptical region around the direct path between two antennas — needs to be clear of obstructions. In open fields, even 3 metres of height above surrounding vegetation makes a significant difference:

Fresnel zone radius at midpoint (r₁, approximate):
  r₁ = 17.3 × sqrt(d / (4 × f))

  where d = distance (km), f = frequency (GHz)

For d = 2km, f = 0.915 GHz:
  r₁ = 17.3 × sqrt(2 / (4 × 0.915))
  r₁ = 17.3 × sqrt(0.547)
  r₁ ≈ 12.8 metres

The Fresnel zone at midpoint is ~13 metres in radius.
To avoid significant signal loss, the path should be clear for at least
60% of this radius above obstructions — roughly 8 metres clearance.

Practical implication: in a field with 1m tall crops:
  Node at 2m height → most of Fresnel zone blocked → poor link
  Node at 5m height → partial clearance → marginal link
  Node at 10m+ → clear Fresnel zone → good link
Fresnel Zone Clearance vs Obstruction Top diagram shows antennas mounted at 2 meters, where the Fresnel zone intersects ground obstacles causing signal loss despite visual line-of-sight. Bottom diagram shows antennas at 10 meters, where the entire Fresnel zone clears the ground obstacles. Low Mount (2m) Fresnel zone obstructed by terrain/vegetation 1m vegetation Signal Degraded Elevated Mount (10m+) 60%+ of Fresnel zone radius clears obstacles Clear Line of Sight & Fresnel Zone r₁
Visual line-of-sight is not enough for reliable RF links. The Fresnel zone (an elliptical area around the direct path) must be mostly clear of obstructions. At 915 MHz over a 2km distance, the midpoint radius is ~13m; mounting antennas low allows vegetation or the curve of the earth to block the lower portion of the signal, causing severe attenuation.

Antenna Selection

Antenna typeGainPatternUse case
Small stub (included with module)1–2 dBiOmnidirectionalTesting only — too short for field use
Omnidirectional fiberglass, 915MHz3–5 dBiOmnidirectionalGeneral field node — connects in all directions
Omnidirectional fiberglass, high gain8–10 dBiNarrower vertical patternFlat terrain — more horizontal gain, less vertical
Yagi / directional10–16 dBiDirectionalPoint-to-point link between specific nodes
Connector types — get this right before ordering:
  Waveshare modules: SMA female connector
  Most external antennas: SMA male plug (direct connect)
                       or N-type (weatherproof for outdoor runs)

Use LMR-240 or LMR-400 coax if running cable between the node enclosure
and a roof-mounted antenna. Standard RG-58 has too much loss at 915 MHz
for runs over 3 metres.

Loss at 915 MHz (per metre):
  RG-58: ~0.45 dB/m  (a 5m run = 2.25 dB lost)
  LMR-240: ~0.22 dB/m
  LMR-400: ~0.13 dB/m

Weatherproof Enclosures

For outdoor deployment, IP65 or better rated enclosures are required.
Standard electrical project boxes rated IP65/IP67 work well.

Important details:
  - Antenna connector must penetrate the enclosure — use a bulkhead N-type or SMA
    connector rated for outdoor use; seal with self-amalgamating tape
  - Cable entry points: use waterproof cable glands (PG7 for small wires)
  - Avoid black enclosures in direct sun — internal temperature can exceed 60°C
    which affects battery and electronics. Use light grey or white.
  - Orient the enclosure so any condensation drains away from the electronics
  - Silica gel desiccant packet inside reduces condensation

Battery mount:
  - LiPo or Li-Ion inside the enclosure
  - Li-Ion 18650 cells handle -20°C to 60°C — better cold tolerance than LiPo flat cells
  - At temperatures below 0°C, Li-Ion capacity drops ~20-30%; below -20°C, they struggle
  - For winter field use, consider insulating the enclosure or a heated enclosure

Power Options

Power sourceProsConsBest for
USB power bankEasy; no setupLimited capacity; not weatherproof; may auto-shutoff at low current drawTesting and short deployments
18650 Li-Ion + TP4056 chargerCheap; replaceable cellsManual charging; no protection if charger failsShort deployments with accessible nodes
LiPo + solar + MPPT chargerSelf-sustaining indefinitelyMore complex; solar panels add bulkLong-term deployment in sunlit locations
Primary lithium AA/D cellsExtreme cold tolerance; no charging neededNot rechargeable; costShort-duration winter deployments

Build the Power Budget from Measurements

Battery life estimates are a starting point, not a deployment guarantee. Measure the complete node at the battery input: radio, Pico, sensors, regulator, charger, and any indicator LEDs all count.

Average current ≈
  (sleep current × sleep time
   + receive current × receive time
   + transmit current × transmit time)
  / total time

Usable battery capacity is lower than the label:
  cold weather + regulator loss + battery ageing + reserve

For a solar node, size against the worst useful month rather than a bright July day. Record panel orientation, shading, enclosure temperature, and battery voltage over several days before relying on the system unattended.

Solar sizing example (915MHz Pico node, transmitting every 5 minutes):
  Average current draw: ~2 mA (sleep + periodic TX)
  Daily energy: 2 mA × 24h = 48 mAh

  A 1W 5V solar panel produces ~100-150 mAh on a good day in Canada
  (accounting for angle, clouds, daylight hours)

  Panel: 1W-2W panel (Voltaic, Adafruit, etc.)
  Battery: 2000-5000 mAh LiPo
  MPPT charger: CN3791-based or Adafruit Solar Charger

  This combination should sustain a node indefinitely from April–October
  in southern Canada. Winter is marginal — short days, snow on panel.

Node Configuration for Field Use

# Optimize for battery life — reduce transmit intervals
$ meshtastic --set position.position_broadcast_secs 1800    # 30 min position updates
$ meshtastic --set telemetry.device_update_interval 900     # 15 min telemetry
$ meshtastic --set device.role ROUTER_CLIENT                # act as relay when awake

# ROUTER_CLIENT mode: relays other nodes' messages while also sending its own
# SENSOR mode: low-power, doesn't relay (saves battery, reduces mesh participation)
# CLIENT_MUTE: receives only — does not relay at all

# Power saving on Pico (put radio in sleep between transmissions)
$ meshtastic --set power.ls_secs 300      # low-sleep after 5 min of inactivity
$ meshtastic --set power.min_wake_secs 10 # stay awake minimum 10s after waking

Testing Before Deployment

Range test before mounting permanently:
1. Set up one node as the base station (ideally in a high location or connected to PC)
2. Walk with the second node, watching RSSI in the Meshtastic app
3. Note where RSSI drops below -120 dBm — that's your reliable edge
4. Check SNR — stay above -10 dB for reliable packet delivery

Use the range test plugin (both nodes must have it configured):
$ meshtastic --set range_test.enabled true
$ meshtastic --set range_test.sender 60   # send a packet every 60 seconds
# The receiving node logs RSSI/SNR for each packet — useful for coverage mapping

Tools:
  Meshtastic iOS/Android app: shows RSSI and SNR for each received packet
  Meshtastic Python CLI + --listen: logs all packets with signal info

Deployment Checklist

  • Burn in the assembled node indoors for at least a day on the intended power source.
  • Photograph wiring, antenna connectors, and enclosure layout before closing it.
  • Export the Meshtastic configuration and record the firmware version.
  • Confirm the antenna is matched to the regional band and sealed at the bulkhead.
  • Check that cable glands, fasteners, and the enclosure still close with the battery installed.
  • Set a maintenance date and define what low-battery or missing-telemetry condition triggers a visit.

A field node should fail loudly enough to be noticed. Logging the last telemetry time and battery voltage at the gateway is more useful than discovering an outage weeks later.

Common Field Problems

ProblemLikely causeFix
Intermittent linkTrees swaying in wind, varying Fresnel zone obstructionRaise antenna height; increase SF
Node stops transmittingBattery voltage too lowCheck battery size; add solar; reduce transmit interval
Good RSSI but packet lossMultipath interference (reflections)Try slightly different antenna height or position
Works in summer, fails in winterWet snow on antenna; battery cold issuesInsulate enclosure; use Li-Ion instead of LiPo
Range much less than expectedFresnel zone obstructed; wrong antennaRaise height; check antenna connector is tight; verify frequency match

Keep a Deployment Record

Node name:
Location / approximate height:
Hardware and firmware:
Regional setting and modem preset:
Antenna and cable:
Battery and solar details:
Expected telemetry interval:
Baseline RSSI / SNR:
Last service date:

That record turns a future troubleshooting visit into a comparison against known-good conditions instead of a fresh guessing session.

References