Skip to main content
OPEN METHODOLOGY

Your probe knows. Your sprinkler knows. The runtime is just division.

TurfPulse translates soil-moisture readings into the exact minutes of runtime needed — per zone, per fire. The math isn't proprietary. It's the same FAO-56 + Christiansen framework university extensions have used for decades. We just wired it to a Rachio.

This page documents the formula in full so anyone can rebuild it. Copy it. Run it in Excel. Or let TurfPulse run it 24/7 for the price of a bag of fertilizer per month.

The 5-step formula

Each step has a citation. Each step is independently testable. This is the entire engine.

1

Pick a target SVWC band

SVWC = Soil Volumetric Water Content (what the probe reads). For Bermuda we target 30%. That's safely above TAMU's 12% drought floor and inside the OPTIMAL bucket band.

# Bermuda default
target_svwc_pct = 30

# TAMU AgriLife: bermuda fairways enter
# visible drought stress below 12% on
# fine sandy loam (Wherley et al.)
2

Compute the deficit

How far below target is the probe right now? If at-or-above target, we don't fire — micro-fires waste water and disrupt root depth.

deficit_svwc_pct = max(0, target_svwc_pct − current_svwc_pct)

# Example: probe = 22%, target = 30%
# → deficit = 8%
3

Convert volumetric % to inches

SVWC is already volumetric — multiply by the effective root zone depth in inches. For Bermuda, TAMU pegs the effective root zone at 6" (80%+ of bermuda roots live there).

deficit_in = (deficit_svwc_pct / 100) × root_zone_in

# 0.08 × 6 = 0.48"
4

Cap at 0.75″ per session

Anything more either ponds (clay) or drains below the root zone (sand). Both wasted. This is the agronomic safe-runoff ceiling per IA SWAT testing protocols.

capped_in = min(deficit_in, 0.75)
5

Convert inches to minutes via PR × DU

PR = your nozzle's precipitation rate (in/hr). DU = Christiansen Distribution Uniformity (~0.75 for residential pop-ups). Clamp to [5 min, 60 min] for sanity.

effective_pr_inhr = nozzle_inhr × du
raw_minutes       = (capped_in / effective_pr_inhr) × 60
runtime_minutes   = max(5, min(60, raw_minutes))

# Example: 0.48" / (0.5 × 0.75) × 60
#        = 0.48 / 0.375 × 60
#        = 76.8 → clamped to 60

Worked example

Round Rock, TX. Bermuda. CH2 ("trigger zone") reads 22% SVWC at 5:30 AM predawn. Zone PR is 0.5 in/hr (rotor). User typed "30 min" in their schedule.

Step 1target_svwc30 %TurfPulse Bermuda default
Step 2deficit_svwc30 − 22 = 8 %Step 2 formula
Step 3deficit_in0.08 × 6 = 0.48 in6 in root zone
Step 4capped_inmin(0.48, 0.75) = 0.48 inBelow cap
Step 5effective_pr0.5 × 0.75 = 0.375 in/hrPR × DU
Step 5raw_minutes0.48 / 0.375 × 60 = 76.8Inches → min
Step 5runtime_minutes60 minClamped to MAX_RUN_MIN

TurfPulse fires Zone 2 for 60 minutes instead of the typed 30, because the probe says the deficit warrants it. Three days later when the same probe reads 28%, TurfPulse fires Zone 2 for ~10 minutes. Same total weekly water — distributed where the soil asks for it.

DIY this in Excel

Copy this worksheet. Punch in your probe reading at B1. Cell B11 is your runtime.

CellLabelFormula / Value
B1current_svwc_pct (probe)enter from probe
B2target_svwc_pct30
B3root_zone_in6
B4nozzle_inhr (PR)0.5
B5du0.75
B6deficit_svwc_pct=MAX(0, B2-B1)
B7deficit_in=(B6/100)*B3
B8capped_in=MIN(B7, 0.75)
B9effective_pr_inhr=B4*B5
B10raw_minutes=(B8/B9)*60
B11runtime_minutes (final)=MAX(5, MIN(60, B10))

Sources & citations

Full data sources page

Every threshold on this page traces back to peer-reviewed work. Click through for the DOI.

  • FAO-56 Penman-Monteith — Allen, R.G., Pereira, L.S., Raes, D., & Smith, M. (1998). Crop Evapotranspiration: Guidelines for Computing Crop Water Requirements. FAO Irrigation and Drainage Paper No. 56. fao.org/4/x0490e
    Used for: ET₀ computation in the daily water budget.
  • Wherley et al. (TAMU AgriLife Extension) — soil-moisture-based deficit irrigation thresholds for warm-season turfgrass cultivars on USGA-spec sand profiles (2014–2020 series). aggieturf.tamu.edu
    Used for: 12% SVWC drought-floor override on bermudagrass.
  • Smith-Kerns Dollar-Spot Model — Smith, D.L., Kerns, J.P., et al. (2018). Development and validation of a weather-based warning system to advise fungicide applications to control dollar spot on turfgrass. PLOS ONE 13(3): e0194216. DOI: 10.1371/journal.pone.0194216
    Used for: Dollar-spot pressure score (5-day moving avg RH × daily mean temp logistic regression). 20% spray threshold cuts fungicide use up to 30%.
  • Christiansen 1942 — Christiansen, J.E. Hydraulics of Sprinkling Systems for Irrigation. California Agricultural Experiment Station Bulletin 670. UC Bulletin 670
    Used for: Distribution Uniformity (DU) coefficient in Step 5 — converts nominal nozzle PR to effective PR.
  • Dewpoint band & leaf-wetness research — Latin, R., et al. (2021). Dollar Spot of Turfgrass: Biology, Epidemiology, and Management. Phytopathology, APS Journals. APS review
    Used for: Dewpoint 60–70°F advisory band on the disease-pressure tile (prolonged leaf-wetness epidemiology).
  • Irrigation Association SWAT — Smart Water Application Technologies testing protocols. irrigation.org/SWAT
    Used for: 0.75″/session safe-runoff cap in Step 4.
  • Extension references — University of Missouri IPM1029 (MU IPM1029) and University of Georgia Circular 891 (UGA C-891).
    Used for: Predawn fire bias, dew-removal protocol, deep-and-infrequent watering pattern.

See the full data sources & credits page for every weather feed, soils dataset, and model TurfPulse uses — with public URLs and licenses.

Set it up yourself

Honesty check before you click "buy": probes don't talk to Rachio out of the box. Ecowitt sensors broadcast on 915 MHz to their own gateway → gateway pushes to Ecowitt's cloud → something (TurfPulse, or your own script) reads that cloud and tells Rachio what to do. There's a small wiring layer in between. A geek can figure it out in an afternoon. A homeowner who's never seen an API key is going to want a guide. This is that guide.

Difficulty meter
Geek mode: 4/10One afternoon. You've used Postman before.
Homeowner DIY: 7/10A weekend. With this guide. With patience.
Skip the headache: 1/10Sign up for TurfPulse. We do the wiring.

The gear (with my affiliate links)

Same hardware I run on my own lawn. Buying through these links costs you nothing extra and helps me keep the lights on at TurfPulse — which is how this guide stays free instead of behind a paywall. Amazon Associates disclosure applies.

GearWhyCost bandGet it
Ecowitt GW1100 Wi-Fi GatewayThe hub. One per house. Receives every probe + station signal and pipes it to Ecowitt cloud.$Amazon
Ecowitt WH51 Soil Moisture Probes (3-pack)The brains of the operation. Bury one per zone trio (DRY / AVG / WET). The combo TurfPulse parses today.$$Amazon
🆕 Ecowitt WH52 Soil Moisture + Temp + EC (3-in-1, 2026)Newer single-probe combo — moisture (0–100%) + temp (−40 to 60°C) + electrical conductivity 0–10,000 μS/cm (catches salt buildup from over-fertilizing or hard water). Replaces the WH51+WN34 pair with one battery, one hole per zone, IP66 entire device, 16 channels per gateway. Pairs with GW1100 (match 915 MHz US version). $29.99 each on Amazon — cheaper than buying WH51+WN34 separately. ✅ TurfPulse parses WH52 payloads natively (moisture + temp + EC bands: deficient/ideal/watch/high). Plug it in, the dashboard fills in.$$Amazon
Ecowitt WN34 Soil Temperature Probe (skip if going WH52)Drives pre-emergent timing + warm-season green-up alerts. Buy ONLY if you went WH51 — the WH52 already includes temperature.$Amazon
Rachio 3 Smart Sprinkler Controller (8 or 16 zone)The actuator. Anything with the public Rachio API works; the 3rd-gen has the cleanest auth flow.$$$Amazon
Catch-cup set (12 cups)You need to MEASURE your nozzle PR for Step 5 of the formula. Don't skip this — guessed PR is worse than no PR.$Amazon
Ecowitt WS90 7-in-1 Weather StationNOT REQUIRED. Skip this. The closed-loop runs on soil probes alone — they're the only sensor that talks to the dirt your roots actually live in. Forecast data from your local NWS station is already plenty. The WS90 is a "nice-to-have" for backyard weather hobbyists, not a prerequisite.$$$ (skip)Amazon

FTC disclosure: As an Amazon Associate, TurfPulse earns from qualifying purchases. The list above isn't every probe on the planet — it's the gear that's actually been buried in my own yard for the Memorial Day Showcase, with the part numbers that play cleanly with the Ecowitt cloud → TurfPulse → Rachio pipeline.

The 4-step wiring (what isn't on the box)

1

Bury the probes by convention

Pick a fixed convention before the shovel hits dirt. I use CH1 = DRY zone (worst-draining), CH2 = AVG (representative baseline), CH3 = WET (the over-water guard). Label them with a Sharpie. Never move them. The TurfPulse override fires off CH1 specifically — get that one in your worst spot.

2

Pair the gateway, get the API keys

Set up the Ecowitt gateway in the WS View Plus app. Once probes are reporting, generate an Application Key + API Key in the Ecowitt web console (User Center → API). Copy the MAC of your gateway. Three strings. Put them somewhere safe.

3

Get a Rachio Personal Access Token

Rachio web app → Account Settings → Get API Key. Generate a Personal Access Token (PAT). This is the credential that lets anything on the internet fire your zones — keep it private. TurfPulse stores it encrypted at rest with Fernet keys.

4

Wire them together

You can roll your own glue (a 50-line Python cron job that polls Ecowitt and POSTs to Rachio) or paste your three Ecowitt strings + Rachio PAT into TurfPulse and let the cron loop + Guardian + skip-gates run 24/7. Either path works. Both end at "my sensors told the controller when to water."

The summer test — and where the savings go

A two-week experiment proves nothing. The real proof is lasting the whole summer. May through October, full Texas heat, the controller deciding for itself based on probes — that's the test.

Track your municipal water bill from the same months last year. Most homeowners running probe-driven irrigation see 20–40% water reduction versus a calendar-fired Rachio with stock Weather Intelligence. On a $180/month summer water bill, that's $35–$70 saved every month — call it $200+ across the season.

Here's the rule for that money: it goes back into the soil. Compost. Gypsum. Humic acid. A bag of Essential G. Soil amendments compound — better soil holds more water, which lets the probes report higher SVWC, which lets the controller fire less, which saves more money, which buys more amendments. That's the flywheel.

Summer savings → soil amendments calculator (rough)
Average TX summer water bill$180 / month × 6 = $1,080
Conservative 25% reduction−$270 saved
→ 4 bags of Essential G (humic + biology)~$120
→ Pelletized gypsum (40 lb × 2)~$50
→ Compost top-dress for 1 zone~$80
Net: water bill funded next year's soil work$0 out of pocket

Who put this together

Compiled by Derwin — a regular guy in Round Rock, TX who got tired of his Rachio firing through rainstorms and skipping during heat waves. He buried three soil probes at sunset, watched CH2 dry first, mapped them to zones, and figured out that the math is the easy part — getting the probes to actually talk to the controller is what nobody tells you about.

This page exists because he built the wiring once, wrote it down, and decided that gating it behind a paywall would be a betrayal of why he started TurfPulse in the first place. Use the math. Use the guide. Buy the gear through his links if you want to say thanks. And if your water bill drops this summer — that's him helping you save it. Tip your hat.

"My sensors told the controller when to water." — the headline he wrote two weeks before the Memorial Day reveal.

The fair-price pitch

You can absolutely DIY this. The math is here. The probes are about $40 each on Amazon (you only need 1–3). You don't need a weather station — your local NWS station already covers forecast and ET₀ inputs. An afternoon of soldering and Python and you've got your own little brain.

What TurfPulse charges for is the part that's annoying:

  • The 24/7 cron loop that polls Ecowitt every 15 min and tags clean predawn / predusk anchors.
  • The Rachio token vault + auto-fire dispatcher with sensor-gated Guardian policy (no fires on theory, ever).
  • The skip-gate stack — rain, freeze, wind, dewpoint, MAD, city blackout — wired to your probes.
  • The TAMU drought-floor override that fires anyway when CH1 < 12 %.
  • The activity-feed receipt showing every fire & skip with the exact agronomic snapshot that drove it.

For a homeowner that's about $5–8/month. For an enthusiast, $15. The probes pay for themselves in saved water in one summer; TurfPulse pays for itself in the second summer when the cron catches the 100° week you didn't notice because you were on vacation.

If the math here is enough for you — go build it. We'll cheer you on. If you'd rather we run it for you — we're here.

Made with Emergent