Quatra's kit irrigates by measured need instead of a fixed schedule: watering on a timer wastes water on days the soil is already wet and stresses crops on days it is not. Turning that idea into a sellable product meant getting three hard things right at once: agronomic math that is provably correct, hardware control that fails safe, and a platform that operates devices installed far from any technician.
GRAL engineered the full stack and took it to production: firmware that computes the crop's actual daily water demand on the controller, an edge bridge that keeps remote devices connected over unreliable networks, and a cloud platform where operators monitor, override, and let the AI optimize zone by zone.
The operator opens one screen and sees the whole deployment: every field, every device, live water usage measured against the day before. Quick controls activate the fleet, hand control to the AI, or stop everything instantly.

Each controller cabinet aggregates eight soil moisture probes, a full weather station (temperature, humidity, solar radiation, wind, rainfall), fertilizer sensing (pH, nitrogen, phosphorus, potassium, EC), and a flow meter. It drives eight irrigation valves and three fertigation valves, and reports home every few seconds.

The monitoring view shows the device fleet with live sensor bars and valve states, and lets an operator start or stop irrigation per device or across the fleet. Alerts surface what matters: high wind, low soil moisture, a faulty sensor, a device gone offline. An emergency stop is always one click away.

Zones, plots, and devices are first-class objects in the platform, so the same software runs a large commercial installation and a research trial with dozens of individually mapped plots. A new deployment is configured, not custom-built.

AI Smart Irrigation optimizes watering per zone from the measured data, and AI Insights raises suggestions the way a colleague would. Every automated action is visible, logged, and overridable from the same screen. The operator stays in charge; the system does the arithmetic.

The irrigation brain is a hardware-agnostic firmware library in pure C99 for ESP-IDF: stateless, no globals, no allocation, callable from parallel tasks without locks. It computes the field's daily reference evapotranspiration with the full 13-step FAO-56 Penman-Monteith method, then decides per zone from weighted soil-moisture readings, the crop's water-use coefficient, and the accumulated evapotranspiration persisted across reboots. A state machine with explicit stop conditions guarantees a valve never stays open on bad data. Around 120 test assertions run on every build, on a laptop, with no hardware attached.
Soil moisture probes report over LoRa, built for kilometers of range on batteries; their readings reach the controller through the edge bridge. The weather station and the relay boards that drive irrigation and fertigation valves speak RS-485, the industrial bus that shrugs off electrical noise in a pump house. A flow meter closes the loop: the system verifies that the water it ordered actually moved.
A Raspberry Pi CM5 sits beside the controller and runs a small Python daemon that shuttles messages between the controller's serial port and the cloud, over HTTPS or MQTT. It runs as a supervised system service, survives reboots and connection drops, and is covered by its own unit test suite.
Firmware, bridge, and webapp speak one compact JSON protocol: eleven message types covering telemetry, valve commands, configuration, and alerts. The same schema that leaves the microcontroller's UART arrives at the dashboard, which is why a sensor reading in the field becomes a chart in the browser in seconds, with nothing translated in between.
Sensors, pumps, machines, plants. We build the firmware, the bridge, and the dashboard that make them one system.
Let's Talk