Each node is a full radio install. The fields that matter most:
src/licensed.js, so field data can correct them in one place.Sectors, dishes, yagis and panels show a blue beam wedge covering their real beamwidth. Drag the white handle at the wedge tip to aim β links and heatmaps recompute on release. Off-boresight targets pay a pattern penalty in both azimuth and elevation: a high-gain omni has a narrow vertical beam and will genuinely lose a drone directly overhead, and the Tilt field matters when serving targets far above or below you.
Every link label shows distance, the best usable MCS, and expected throughput. Click a link for the terrain profile: ground elevation with earth curvature, the line-of-sight ray, the Fresnel ellipse, and the worst obstruction marked.
On any node card, set the remote end's height and gain (what does a 2 m handheld see? a 100 m drone?) and click Coverage heatmap. The map colors everywhere that node can serve, by achievable MCS/throughput β computed over real terrain in every direction, honoring the antenna's beam shape. Recompute after aiming or config changes; run it per-scenario by changing the remote height.
β© Coverage sim (toolbar) opens the simulation panel. It combines every node's footprint into one overlap map: areas served by one radio show the normal rate colors, two same-band radios show deep blue (redundant β survives any single-node outage), and three or more show purple (extreme coverage β maximum mesh resilience). The legend reports kmΒ² per tier, and the figures flow into the exported report.
Two remote platform modes β this is the important choice:
Display metrics let you ask different questions of the same simulation: Data rate (throughput/redundancy tiers), Signal level (dBm), Terrain loss vs free space (the dB the terrain is costing you β the clearest way to see shadows), Link margin, and Minimum altitude to connect.
Minimum altitude to connect colors every point by the lowest height above the ground beneath it at which a link closes. If part of the area also drops out again higher up, the legend warns you: with a narrow-vertical-beam antenna (a high-gain collinear omni, or a downtilted sector) those locations have an altitude window, not a floor β climbing is not always better.
π£ Mission route analyses a path rather than an area. Add waypoints by clicking the map, or paste coordinates (decimal degrees, or DMS like 40Β°01'30"N 105Β°16'12"W, one per line β the parser skips anything it can't read and tells you). Waypoints are draggable, and the analysis re-runs when you move one.
Configure the vehicle radio separately from the fixed infrastructure: platform, radio, band, channel width, its own antenna from the catalog, and either a height above ground (terrain-following) or a flight level. Every position along the route is then tested against every radio on the map that shares the vehicle's band β radios on other bands are excluded and counted, because they cannot serve it.
You get the achievable bandwidth along the route, the percentage of the route that meets your required data rate, the longest continuous dropout in metres, the number of handovers, and the serving structure β which radio carries which share of the route. The chart shows bandwidth over terrain with the vehicle's path, dropouts shaded red, handover ticks, and a colour strip identifying the serving radio at every point. It all goes into the exported report.
Nano and Mini radios carry no GPS β which is precisely the form factor that flies. OEM and Wearable units do have it, so in a mixed mesh those become your position references. Each node card states which case it is.
πΆ Locate by signal turns that into geometry. Pick the radio with no GPS, enter the level each known-position radio reports for it, and the tool inverts the link budget into a range per reference, intersects them, and places the radio β then tells you how much to trust it. Range rings and their uncertainty bands are drawn on the map with a shaded confidence region at the intersection.
Be honest with the budget uncertainty figure: every dB of doubt about antenna gain, cable loss or TX calibration becomes a multiplicative distance error. Β±6 dB is a factor of two in free space, which the panel states in plain numbers. Three or more references resolve the geometry; two leave a mirror ambiguity, and the tool says so rather than pretending. If the rings disagree by more than your stated budget, a gain figure is wrong or one path is obstructed β worth more than the position itself.
Already have sites deployed (or saved)? In the Plan Advisor choose Extend existing infrastructure: pick your anchor node, pick the target on the map, and say what platform needs service. The advisor evaluates the true terrain path using your node's actual configuration β including how it's currently aimed β and recommends the least-change fix: a remote kit alone if it works, a re-aim, a taller mast, amplification, or a relay site it locates along the profile (with coordinates and mast height) when a single hop can't close. Every option includes a full install spec: boresight bearing, heights, cable class and length.
Link budgets use the official Doodle Labs methodology β conservative per-MCS sensitivities and transmit powers matching the Doodle Labs Range Estimation Tool exactly, with a 10 dB fade margin. On top of that, this tool adds what a distance-only calculator can't: real elevation profiles (30 m SRTM data), 4/3-earth curvature, the 60% first-Fresnel-zone clearance criterion, ITU-R P.526 knife-edge diffraction, antenna radiation patterns, and frequency-dependent cable loss. Predictions are planning-grade: field-verify critical links, and remember interference, vegetation, and installation quality are not modeled.
Step-by-step walkthroughs of the most common jobs. Each takes 2β5 minutes.
Nine times out of ten it's height, not distance. Near-ground antennas (1β2 m) graze the terrain, so the Fresnel zone is buried and diffraction eats the budget. Open the terrain profile and look at the ellipse. Fixes in order of cheapness: raise the antennas, narrow the channel (3/5 MHz buys several dB), add gain, add a BDA, add a relay.
The 100 km figures are field demonstrations with high-gain directional antennas, altitude, and clear line of sight. This tool uses Doodle Labs' conservative sales-engineering numbers (same as the official Range Estimation Tool) plus a 10 dB fade margin, so what it promises survives contact with reality. Give it the same dish + altitude and it will show you those big numbers too.
MCS (Modulation and Coding Scheme) is the radio's gearbox: MCS 0 is low gear β slow (β5 Mbps at 20 MHz) but usable on a whisper of signal; MCS 15 is top gear β β83 Mbps but needs ~20 dB more signal. MCS 8β15 use both antennas to carry two data streams (needs 2Γ2 MIMO both ends). The tool always shows the best MCS your margin supports; the mesh adapts rate automatically in the field.
Free-space loss grows with frequency (+16 dB from 915 to 5800 MHz). Lower bands also diffract around obstacles better. The trade: less spectrum, narrower channels, less throughput, and bigger antennas. That's why band selection is a mission decision, and why the Plan Advisor searches across bands.
Halving bandwidth halves the noise the receiver ingests: β3 dB noise floor β +3 dB sensitivity. 20 MHz β 5 MHz buys ~6 dB, roughly doubling FSPL range β at proportionally less throughput. When the mission is telemetry, narrow channels are free range.
β = on Doodle Labs' official Recommended Antenna Matrix. Unmarked = third-party antennas verified against manufacturer datasheets during this tool's catalog build. β = community-submitted by users of this tool (validated for plausibility but not datasheet-verified β treat accordingly).
No β both ends of a link must be on the same band and channel to communicate. The tool computes the link at Node A's frequency; keep both nodes' bands matched (the Plan Advisor always does). The exception is the Mesh Rider Dual Radio, which runs two bands simultaneously as separate links.
Enter its effective gain in the node's BDA gain field (e.g. Mesh Rider Boost β +13 dB TX in C-band; Triad units vary by band). The advisor will also suggest amplification automatically when a path needs it. Watch antenna power ratings β some antennas (e.g. certain 5 W-rated sectors) can't take a 20 W BDA.
Both, for different questions. A drone flying level over varying terrain holds a constant altitude ASL (what a barometric altimeter reads), so the Flight level mode is the honest model of level flight: over a valley the aircraft is high above ground, over a ridge it is close, and the link changes accordingly. Height above ground (terrain-following) answers the regulatory/practical question β small-UAS ceilings such as 400 ft are AGL-referenced, and the Minimum altitude to connect map is deliberately solved in AGL because "climb to X m above the ground" is an instruction a pilot can follow. Use flight level to plan a level mission, AGL to plan a climb.
Grey means the flight level you selected is below the ground at that point β the terrain is higher than your altitude, so no aircraft can be there. That is deliberately distinguished from "no signal" (left clear). Raise the altitude and the grey shrinks; the exported report also quotes the below-terrain area in kmΒ².
No, and the tool will tell you when it isn't. Climbing clears terrain, but it also moves the aircraft up through the vertical pattern of the ground antenna. A high-gain collinear omni concentrates its energy near the horizon, so a drone that climbs too high flies out of the beam β the classic "cone of silence" overhead. In our testing, a 12Β° vertical beamwidth left about 38% of the area with an altitude window instead of a simple floor, and a 6Β° beamwidth about 82%. When the minimum-altitude map detects this, it warns you, and the report states the affected percentage. Plan the altitude band, not just a minimum.
At 1β2 m above ground the terrain physics alone is optimistic: 30 m elevation data cannot see the fences, ditches, hedgerows and vehicles that actually block a ground platform, and ground reflection makes the real path worse than a clean knife-edge model. The near-ground penalty applies Doodle Labs' own empirical near-ground curve and takes the worse of it and the terrain physics. Turn it on for UGVs, vehicles and handhelds; leave it off for masts, aircraft and vessels. It roughly halved the predicted ground coverage in our test area β that is the point.
Elevation comes from ~30 m resolution global data (SRTM-derived) β excellent for hills and mountains, blind to buildings, trees, and anything smaller than ~30 m. In cities or forests, treat clear-LOS results as optimistic and budget extra margin. Building-aware modeling is on the roadmap.
Not explicitly β that's what the 10 dB fade margin is for. In congested RF environments (2.4 GHz in cities) or over water (strong multipath), aim for +15β20 dB margin instead, and prefer the quieter bands.
Layouts live in your browser and in .json files you save β nothing is uploaded. The one shared thing is antenna submissions via "Share to antenna library", which are visible to all users by design.
They're planning-grade engineering estimates on conservative assumptions β good enough to design against, not a warranty. Field-verify critical links before committing hardware, especially near-ground, maritime, and urban paths.