From the probe in the soil to the record of what you did about it.
Fourteen layers, and the loop they make. Here's every piece.
The sensors
A sealed, solar-powered node about the size of a jam jar, with a probe cartridge stacked underneath it. Every probe plugs into the cartridge; the node reads them and does the talking.
We place them where your land actually varies rather than on a grid: the pocket that frosts first, the slope that dries fastest, the corner that always picks up disease. How many a block needs depends on how much it varies — some take one, some take several — and we work that out with you at the walk-through.
The node sits at grade, tucked against the foot of the post that already carries your wires, where the harvester and the sprayer are steering around it anyway. Its solar panel goes up the same post on a small bracket, above the shade line, with a short lead down to the node. Nothing stands in the row. The battery carries a node for months without sun, and it talks to the gateway over LoRa.
There are no buttons and no openings. A magnet on your key ring wakes the node and puts it to sleep; the QR code on the housing provisions it. Firmware updates arrive over the same radio, in small pieces, while the node stays in the ground.
Every node carries a barometer. Pressure is a poor measure of absolute height, but between nodes under the same sky it resolves a few metres of fall well, so each node works out where it sits relative to the rest of its land. That is the shape that decides which corner frosts first, and no 90-metre elevation model can see it.
Probes plug into the cartridge through sealed ports: uncap, plug, hand-tighten. The cartridge knows what is plugged into it, so a swapped probe is recognised the moment the node wakes. Soil and leaf probes share it with instruments we build ourselves, like the trunk collar, and with certified control modules where you want control.
Burial depth is yours to choose. You dig to the level that matters for your root zone and record it when you scan the node in, and the system reads every measurement at that depth. Where you want a full moisture profile, stack nodes at 10, 30, and 60 cm on the same spot.
- Soil moisture & temperature Capacitive probes, buried at the depth you need, 30 cm by default
- Soil pH, N-P-K & salinity Nutrient and acidity probes on the same cartridge
- Leaf wetness In the canopy, on the block's own soil node
- Trunk collar Water held in the wood and the daily swell and shrink of the trunk, in microns, without a needle
- Microclimate Air temperature and humidity in a shielded probe, hand-sited in the hollow that frosts first
- Weather pole Wind speed and direction, rainfall, light, UV, PAR and pressure, one per land
- Tank & pump line Tank level, pipe flow and line pressure on your existing irrigation
- Water quality & dust pH, conductivity and turbidity at a dam or a source; PM2.5 and PM10 for spray drift
Why in the block at all: a weather station two kilometres away gives you the region's weather, and a satellite pass gives you last week's. A probe in the root zone of the block you are worried about gives you that block, now. The cold pocket at the bottom of the slope, the row that gets reflected heat, the corner that always picks up botrytis first — each one is a distinct signal, and only a reading taken there will carry it.

The gateway
One LoRa gateway per property. It collects every reading from every node, buffers locally, and backhauled over 4G LTE to the cloud.
The gateway is the bridge between the sensor field and the internet. It receives LoRa packets from all nodes within range (typically several kilometres line-of-sight), timestamps them, and forwards them upstream.
If the internet connection drops, the gateway buffers readings locally and re-streams them when connectivity returns. You don't lose data.
Larger properties or challenging terrain may need two or more gateways, we survey the site and place them for full coverage.

Real-time data
Every reading reaches your dashboard the second it lands, via NoLag, our own real-time messaging platform.
Most agricultural platforms batch data: readings arrive every five minutes, fifteen minutes, or once an hour. TerraCast streams in real time, the moment a reading lands, not on a batch cycle. When soil moisture drops, when temperature spikes, when a pump turns on, you see it immediately.
NoLag handles the delivery layer: persistent WebSocket connections, automatic reconnection, guaranteed ordering. The dashboard updates live without polling, and alerts and automations react to each reading as it arrives, not on the next scheduled sweep.
Hyper-local weather forecasts
Forecasts pulled for your land's own coordinates, laid over what your sensors are actually reading.
Standard weather forecasts are regional, they predict conditions for a grid cell that might be ten kilometres across. That's useful, but it can't tell you which row will frost or which block will dry out fastest.
TerraCast fetches the forecast for your property rather than the nearest town, and shows it against the grid. The gap between the two is where your land's character lives: the corner running 2°C under forecast on still nights, the slope drying faster than the model expects. Your nodes make that gap visible, and the agronomy models read both the forecast and the readings rather than the forecast alone.
Then it learns the gap. Two corrections are kept, and kept apart. One is about the forecaster: for each land and each day ahead, what was predicted against what the night actually did, so a forecast that habitually runs warm on your farm is served corrected. The other is about the ground: each node against the median of the rest of its land's fleet on the same night, which is the frost pocket's standing offset with everything the whole farm shares cancelled out. Only the forecaster's correction is applied land-wide. A microclimate smeared across a farm would tell the ridge it is about to freeze because the valley floor is, so the node's own offset stays on the node's own card.
It declines by default. Nothing is applied until twenty paired nights are in, and not then if the offset sits inside the noise or the spread is too wide to trust. Until it clears, the forecast passes through untouched and the land reads "4 of 20 nights" rather than a blank, so you watch the correction earn its place instead of finding it applied.
AI that understands your land
Not a generic chatbot. An AI layer trained on viticulture, pomology, and oliviculture literature, and fed with every reading from your specific blocks.
The knowledge base includes peer-reviewed research, best-practice guides, and cultivar-specific references. When the AI interprets your sensor data, it draws on this corpus to understand what a reading means for your specific crop at its current growth stage.
You can upload your own block notes, spray logs, observations, and lab reports. Send us a soil-analysis PDF and TerraCast parses the nutrient results, ties them to the block, and factors N-P-K, pH, EC, and organic matter into what it recommends, turning a lab result you'd otherwise file away into an input the AI actually reasons over. The AI incorporates all of it alongside the published literature, so its recommendations reflect both the science and your local experience.
Recommendations
Plain-language alerts with specific recommendations. Not raw numbers, explanations you can act on.
When something changes that matters, you get a notification with context: what happened, where, why it matters for your crop, and what to do about it. Everything that needs you also lands in one place, a daily briefing for each parcel that answers "what needs my attention today?", ranked by urgency, with the blocks to walk outlined on the map. Want to dig deeper? Ask the built-in farm advisor directly, it already has your full context and answers in real time.
Frost warnings
Per-block, per-hour. "Block 3 Pinot Noir is forecast to hit −1°C at 4 a.m. Consider bud spray or frost fan activation."
Heatwave alerts
Cumulative heat stress tracked per block. Irrigation recommendations adjusted for actual soil moisture.
Dry spell warnings
Block-level soil moisture trending, with days-to-stress estimates calibrated to your cultivar's tolerance.
Disease pressure
Humidity, temperature, and leaf wetness conditions correlated with mildew, botrytis, and other disease risk models.
Automation
Set rules that act through certified DIN-rail control modules — relays, energy meters, variable-speed drives — wired to the TerraCast node's own bus. No third-party cloud in the loop. Safety interlocks sit in our layer. Every action is logged. Manual override is always available.
Rules are simple: "If soil moisture in Block 5 drops below 28%, run zone 3 for 45 minutes." You define the trigger, the action, and the limits; TerraCast sends the command down its own path — node to control module — and logs everything. A control unit sets up exactly like a sensor: scan its QR code, and the relays on its bus appear ready to place and arm. A certified relay module puts any 24VAC valve, pump or contactor under rule control.
Irrigation control
Zone/valve run and stop with a hard time limit on every run, through a certified relay module on the node's bus. Triggered by soil-moisture thresholds per block.
Preview before control
New devices start in preview mode: rules record and notify what they would have done. You arm real control per device when you trust the rule.
Safety interlocks
Max-run caps enforced in our control layer with a hardware watchdog behind them, per-device cooldowns, mutual-exclusion groups, and a kill switch that beats everything, rules cannot override any of them.
Audit trail
Every automated action logged with timestamp, trigger, actor, and outcome, executed, previewed, or blocked by an interlock.
And you can rehearse before you arm anything. Start a session on your own land and the system lays a scenario over your real blocks, node by node: an overnight frost draining into the low ground, a heatwave, a fungal infection window, a burst main. You scrub through it and watch which rules fire, which alerts go out and what each control would have done. Every synthetic reading is tagged as such and your real readings are never touched; controls are locked while a session runs, and the whole thing is cleaned up when you end it.
The land waters itself
A rule is a thermostat. The irrigation scheduler is a decision: whether a block needs water tonight, how much, and why, in a sentence.
Two signals, each doing the job it is good at. The probe in the block decides whether: nothing runs unless measured soil moisture is below the range you accepted for that block. The weather decides how much: the run replaces what actually left the soil over the last days, reference evapotranspiration less rainfall, with the rain forecast for the next two days taken off before a drop goes on. A run too small to be worth starting a pump for is skipped, and it says so.
It proposes until you switch it on. Ask it to plan and each block gets a card — "Soil is at 24%, below the 28% minimum. 9 mm has evaporated over the week and 3 mm of rain is forecast, so 6 mm needs replacing: 38 minutes" — and you confirm or dismiss it. When you trust it, enable it for the land, set the overnight window and a hard ceiling per run, and it acts inside those bounds every night. Either way the water goes through the same control path as a rule, so the kill switch, arming, cooldowns and the maximum run time apply exactly as they always did. The scheduler produces a duration and a reason; it never gets to write its own safety logic.
AI suggests rules
The AI watches patterns, proposes rules, and waits for you to approve. It never fires actuators directly.
After a few weeks of data, the AI might notice: "You manually irrigated Block 7 every time soil moisture dropped below 30%. Want me to create a rule for that?" You review, adjust the thresholds if you like, and approve. From then on, it runs automatically.
This is deliberate. Automation should be transparent and under your control. The AI accelerates the setup, it doesn't take over.
The record of the work
Every spray, irrigation, harvest and repair, against the block it happened on — spoken into the chat rather than typed into a form.
Tell the advisor "sprayed block 4 with Kumulus this morning, 300 litres" and it hands back a card showing exactly what it is about to write: block, product, rate, date. Nothing is saved until you confirm. That matters more than it sounds — forms do not get filled in from the cab of a tractor, and a log written up at nine at night is a log of what someone remembers.
The record is append-only. A correction writes a new entry that supersedes the old one rather than editing it in place, so the register can show its own history. Product prices and withholding periods are copied onto each job at the time of work, so editing your catalogue next season cannot rewrite what was true last season.
Out of the same entries come pre-harvest and re-entry warnings on the morning briefing, an exportable spray register, machine hours against service intervals, stock drawn down without a stocktake, and cost per hectare split by the kind of job. More on farm records →
It learns which warnings you trust
Every accept, every dismissal, and every job you actually go and do is recorded against the monitor that raised it. A threshold you keep waving away gets handed back to you, relaxed.
Counting dismissals alone would be a poor way to judge a monitor, and it is the mistake we made first. One that fired twenty times, was acted on seventeen and waved away three is a good monitor — a raw count treats it exactly like one that fired three times and was ignored every time. So a dismissal only counts against a monitor when the dismissals outweigh the positives.
Doing the work counts for more than clicking accept. A completed job is a materially stronger claim than agreement — you did not merely nod at the advice, you went out and acted on it, and the farm record proves you did. So a completion is weighted at twice an acceptance, and because completions come from the records, the two halves of the system check each other.
When a monitor really is too sensitive, the system proposes a new threshold as a card you confirm. It never quietly retunes itself. And the tally resets each time a calibration is applied, so a threshold cannot creep away from you over successive rounds until the monitor stops firing at all.
The same separation holds for the sensor ranges themselves: the AI's baseline and your edits are stored apart and versioned, so regenerating a block profile never overwrites your judgement, and both remain readable as the record of who thought what.
The season, reviewed
At the end of the season, four things that have been piling up separately are read against each other: what the models saw, what the system said, what you did, and what the land returned.
The harvest is the number that makes the rest falsifiable. Yield and cost per hectare come out of the same records you kept through the year, and the review puts them beside the heat and disease indices the models accumulated, the alerts that fired, and the advice you accepted or left undone. Where they disagree, you see it: a block that yielded well under its cultivar's target, a monitor that fired all season and was never acted on, a piece of advice that was accepted and never became a job. Each finding says how many seasons it rests on.
Three rules it will not break. One season is one sample, so a single-season finding is an observation and is never presented as more. Nothing auto-applies: a finding carries a proposal at most — a revised yield target, a review of the noisiest monitor — as a card you confirm. And unknown is never zero: a block with no recorded harvest has an unknown yield, not a failed one.
Who can see what
Access is granted farm by farm. Belonging to the business is not the same as belonging on every farm it owns.
Owners and admins reach every property. Everyone else reaches the ones they have been given — as a manager who sets thresholds and rules, an operator who records work and runs controls, or a viewer who reads. An agronomist with their own account can be given one of your farms without joining your business.
Each person chooses how the system reaches them: in-app, email or SMS, and how urgent something must be before it is worth waking up for. An owner can see everyone's choices — including the ways someone can look configured and still be unreachable — but only the person themselves can change theirs. More on teams and access →
The same rule binds us. When someone from TerraCast helps you set up, they come in on an ordinary grant with a written reason and an expiry — it sits on your People list like anyone else's, they see a countdown on every screen, and it lapses on its own.
Deployment
QR code scan, walk the property, done. Your browser pins each node on the map as you go.
Each sensor node has a QR code on the housing. Open the dashboard on your phone, scan the code, and the browser uses your location to pin the node on the property map. Walk the rows, scan as you go, and the deployment builds itself. A pass of the magnet key wakes the node, and once it is reporting, its barometer settles where it sits against its neighbours, so the frost map takes its shape from the ground rather than from a survey.
No specialist equipment, no surveying crew, no separate provisioning app. Just a phone with a camera and a browser.
If you move a node later, pull it, walk it to the new spot, scan again. The map updates automatically.
