A smart computer
for the garden.

Local soil sensing, weather-aware watering, and plant-health AI on hardware you own. No account. Nothing leaves your network unless you send it.

Open source · Self-hosted · Runs on a Raspberry Pi you already own
The Device

One appliance,
three postures.

Same guts in all three: Raspberry Pi 4, RTL-SDR, optional Zigbee. What changes is the arrangement, to match how your garden actually looks. Stake into a bed, tripod on the patio, or the 10-inch panel by the potting bench.

Mk IStake · 5″ · 3.8 lb
Mk IITripod · 5″ · 4.2 lb + sand
Mk IIITripod · 10″ panel · 5.6 lb + sand
Materials & certification
  • EnclosurePolycarbonate IP65, UV-stable, off-white or black
  • ComputeRaspberry Pi 4 (4 GB) · 128 GB industrial microSD
  • RadioRTL-SDR v3 · 915 MHz whip on SMA bulkhead
  • Display5″ HDMI IPS · optional 10″ capacitive touch
  • Power10 W solar · 10,000 mAh Li-ion · MPPT controller
  • StakePultruded fiberglass, 48″, tapered ground point
  • TripodAnodized 6061 aluminum, sand-hook center post

The device is designed to look like it belongs outside. Not a wearable, and not a tablet on a stick. An instrument. Fiberglass and anodized aluminum where a survey stake or a farmer's rain gauge would live.

The 10″ variant reads as a wall panel by the potting bench; the compact stake as a garden marker among the beds. Neither hides.

The prettiest smart-home gadget still reads as a gadget. GardenOS reads as a tool.— Design brief, mk I

The Operating System

A screen you can
read from ten feet away.

GardenOS is designed to be glanceable. Standing at the potting bench with muddy hands, you should see the state of every bed in one look. Dry beds tinted. The next run named. The reasoning behind a weather decision sitting right next to the decision.

GardenOS
TUE · AUG 11 · 2:14 PM 74°F · CLOUDY RAIN IN 4H
v1.0.6
Beds
4 BEDS · 6 SENSORS
BED 1 · ZONE 3
Tomatoes
42% OPTIMAL
BED 2 · ZONE 2
Peppers
38% OPTIMAL
BED 3 · ZONE 1
Herbs
61% MOIST
BED 4 · ZONE 4
Lettuce
29% DRY
SELECTED BED
Tomatoes
Cherokee Purple · Sun Gold
MOISTURE
42% · optimal
LAST WATER
18h ago
NEXT RUN
Wed 6:00 am
SENSOR
0x8A3C · 3.1V
Water zone 3 · 8 min
FORECAST
NOW
74°
+2H
71°
+4H
RAIN
+8H
64°
DAWN
59°
Skipping 6 pm run — rain expected
ZONES
4ONLINE
0 RUNNING · 1 SCHEDULED
✓ B-HYVE LINKED
ALERTS
▲ LETTUCE BELOW 30%
↻ UPDATE 1.0.7 READY
▤ SENSOR 0x9C21 LOW
Figure 2.1Main dashboard · 10″ landscape, 1280 × 800
Other screens
PAIRING
Wake up a sensor now.
LISTENING · 915 MHZ
0x8A3C ✓ Bed 1
0x9C21 ✓ Bed 2
0xF104 ✓ Bed 3
0x4EAB ● new — assign?
2.2Sensor pairing
ALERT · 3:42 PM
Lettuce is dry.
Moisture 29% — below the 32% floor you set for this bed. No rain in the 12-hour forecast.
Water zone 4 · 6 min
Snooze 2 h
2.3Alert card
SETUP · 3 OF 12
Where is your garden?
SAN DIEGO, CA
USDA zone 10a · Southern California
2.4First-boot step 3
HISTORY · 7 DAY
Tomatoes · bed 1
▲ WATERED · MON, THU
2.5Moisture history
In the Garden

Wired to the yard,
not the cloud.

The stake goes where the garden is: pushed into the soil at the head of a raised bed, or standing on its tripod on the patio. Solar keeps it charged. Its antenna reaches every sensor in the yard.

Figure 3.1Illustrated install · four raised beds, one stake, four moisture sensors reporting to the antenna at 915 MHz.
3.2Morning · south bed
3.3Night · low-power screen
3.4Rain · designed for it
The Sensor Network

Every bed
reports in.

Long-range 915 MHz sensors in each bed report soil moisture, light, and air temperature. The stake listens directly. No gateway, no bridge, no Zigbee mesh dance. Batteries last a season and beyond.

Figure 4.1Sensor topology · one stake, four sensors, no gateway.

Each sensor is a small stake pushed into the soil beside a plant. Every 60 seconds it sends a short packet: moisture, battery, ambient light, temperature. That goes out on the 915 MHz ISM band, using the same protocol as commercial Fine Offset gear.

The stake decodes them directly. An RTL-SDR dongle inside listens with rtl_433, translates the packets to MQTT, and Home Assistant handles the rest. No hub to buy, no cloud round-trip, no service to subscribe to.

Range is the good surprise: one stake covers a suburban lot end-to-end. AA batteries last twelve to eighteen months. Sensors survive winter under snow. These have been through a Vermont February.

Sensor variants
SOIL · MK I

Moisture & temp

Capacitive probe, 4″ depth. AA × 2. The workhorse.

SOIL · MK II

Light-added

Adds lux photodiode above soil line. Sun-mapping.

AIR

Micro-climate

Air temp, humidity, dew point. Under bed cover or greenhouse.

RAIN

Rain gauge

Tipping-bucket. Replaces forecast for the last mile.

Auto Water

Watering that
knows the weather.

GardenOS decides when to run each zone. It watches your soil, checks the sky, remembers what it did yesterday, and either opens the valve or explains why it didn't. It works with your existing B-hyve today. In v2 it will work with a hose manifold we build ourselves.

Figure 5.1Decision path · sensor to valve, roughly 400 ms.

The rules engine is intentionally simple. Every bed has a moisture floor, a moisture ceiling, and a preferred watering window. Weather forecast overrides both. You can edit the numbers, but the defaults are picked from plant type and USDA zone at setup.

Everything the system decides is explained inline. "Skipping 6 pm run — rain expected." Not "watering skipped." Trust decays fast when the reasoning is hidden.

A garden that quietly waters itself the right amount is one of the rare tech promises that always feels like magic — when it works.— Product brief, v0
Downstream — the drip lines
Figure 5.2Drip topology · off-the-shelf irrigation distributor kit downstream of the hose timer.

GardenOS doesn't reinvent the drip line. A $30 hose distributor kit, the kind sold for greenhouses and raised beds, splits one hose output into as many as eight emitters. B-hyve opens the water, the distributor spreads it, the emitters drip.

What GardenOS adds is the timing decision above the hose. When to run zone 4, for how long, whether to skip because rain is coming: all of it flows from the moisture sensor and the forecast, not from a clock.

The Amazon-grade distributor kit lasts a season or two before UV degrades the plastic. That's fine. We recommend a specific kit in the setup guide and sell a hardened replacement in the accessory line.

Plant Doctor

Photograph a leaf.
Get an opinion.

Something wrong with your tomato leaves? Snap a photo from the app. The model reads the picture and names what it sees: nutrient deficiency, pest damage, early blight. Then it tells you what to do about it.

6.1Camera view · tomato leaf
6.2AI reading · deficiency identified
6.3Suggested action · shown reasoning

The photo endpoint is a small FastAPI service on the Pi. You bring your own API key, Anthropic or OpenAI, and the photo goes straight from your device to the model. GardenOS never sees the image.

Every reading is stored in the garden journal with the photo, timestamp, and outcome. Over a season you get a working record of what went wrong and what fixed it, per plant, per bed, per year.

  • Cost≈ $0.003 per photo (Claude Sonnet)
  • Latency1.5–3 sec typical
  • PrivacyYour API key, your terms, no relay
  • OfflinePhotos queue, upload when back online
The Sun Map

Thirty days of light.
Then a planting plan.

The Mk II sensor adds a photodiode. Set one in each spot you're considering planting, wait a month. GardenOS builds a heatmap of sun exposure across your yard and cross-references your plant database to tell you what will actually thrive where.

Figure 7.1Sun heatmap · south-west corner gets the most light; the fence line is deep shade.

The database bundled with GardenOS carries about 400 common vegetables, herbs, and ornamentals with real light requirements. Not the vague "full sun / partial shade" of a seed packet, but a minimum number of hours of direct light, by variety.

SUGGESTED PLANTING
Tomatoes8h+ · south row
Peppers8h+ · south row
Basil6h · center bed
Lettuce4h · east shade
Chard4h · east shade
Mint · thyme2h · fence line
The Almanac

Knows the season.
Knows the plant.

Each plant in your garden runs on its own timeline: seed, sprout, vegetative, flower, fruit, senescence. GardenOS tracks where every plant is in its cycle and tells you when to feed, prune, stake, and harvest. Different fertilizer for different phases, different plants.

GROW CYCLE · TOMATO · CHEROKEE PURPLE
Season · March through October
TODAY · AUG 11 · FRUITING
Figure 8.1One plant's calendar · phase, feeding, and next action.

Every plant in the bundled database carries its NPK schedule by phase, its water needs, its companion pairings, its common pests, and its harvest window for your zone. Adding "Cherokee Purple tomato" to a bed pulls all of that in.

The system nudges you when action is due. Not a wall of push notifications. One weekly digest that says what needs your hands, plus urgent one-offs for real emergencies (frost tonight, powdery mildew spreading in bed 2).

THIS WEEK · AUG 11
Sucker tomatoes — bed 1
Side dress peppers with 5-10-10
Second sowing of lettuce — bed 4
Harvest window opens — basil
Compost tea for herb bed
What's Next

A hose manifold
we make ourselves.

Today watering runs through an off-the-shelf B-hyve timer, which means a cloud API in the middle of a system built to avoid one. The obvious answer is a 4-outlet hose-bib controller of our own: fully local, no account, no reverse-engineered protocol. Just water on when we say water on. A sketch, not a schedule.

GARDENOS · BIB IV · CONCEPT

The hose timer we should have built first.

Four independent hose outputs, brass fittings, latching solenoids that hold state without power. Talks to the stake over the same 915 MHz radio as the sensors. Fully local. No Orbit account, no cloud, no unofficial API to reverse-engineer.

  • Outputs4 × 3/4″ garden hose, brass
  • Valves12 V DC latching solenoid, 0-flow when idle
  • Radio915 MHz two-way with the stake
  • Power4 × AA · 18 months typical
  • EnclosureCast aluminum, IP67, mounts on bib
  • ShipsEst. Q2 2028 · $149 est. retail
Roadmap after Bib IV
2028 · Q3

Grow bed

Modular raised-bed frame with integrated soil sensors, drip line, and marker slots. Ships flat.

2028 · Q4

Greenhouse pack

Air temp, humidity, and vent-motor control for hoop houses and cold frames.

Roadmap

What works,
and what might.

No dates. This is one person's garden project, and the only honest schedule is the order things are likely to happen in.

Running today
  • Soil-aware watering decisions, each one explained in a plain sentence
  • Valve control through Home Assistant, watering disarmed until you say otherwise
  • Plant catalogue with real daylight-hour ranges, not vague “full sun”
  • Garden journal with photos
  • AI plant doctor — your own API key, Claude, Gemini or OpenAI
  • Almanac and a weekly digest to your phone
  • Pairing-based access. No account, no password, nothing to leak
  • Kiosk mode for a screen at the appliance
Being built
  • Wi-Fi setup on the device itself — it becomes its own access point, your phone joins it and hands the credentials over
  • Boot and welcome sequence, so it starts like an appliance rather than a computer
  • Soil sensors received directly over 915 MHz, with no gateway in between
  • Soil salinity from the newer sensors — measured fertiliser instead of a calendar
On the list
  • A weather station on the same radio, so watering can follow evaporation rather than a clock
  • Beds that calibrate their own field capacity instead of using a number you guessed
  • A manual mode that works with no sensors at all
  • Backup and restore, so a dead SD card does not cost a season
  • A sun map — waiting on sensors that do not exist yet
  • Our own hose-bib controller (X)

Nothing here is promised. Some of it will land, some will turn out to be a bad idea once it meets a real garden, and some is waiting on hardware that is not for sale at a sensible price yet. The list is what is being thought about. It is not a commitment, and not a release plan.

Running it

Two ways to run it.

A Raspberry Pi is one way to package GardenOS, not a requirement. If you already run a server, run it there instead.

Mode one

Appliance

A dedicated Pi that behaves like a product. On first boot it raises its own access point so a phone can hand over your Wi-Fi credentials, and it drives a screen if one is attached.

  • Installed by a provisioning script on a fresh card
  • Pairing code on the screen, or through the setup portal
  • Screen optional, detected automatically
Mode two

Self-hosted

Containers on a machine you already own — a NAS, a mini PC, a home server. It is already on your network, so it never raises an access point.

  • Installed by docker compose up
  • Pairing code printed to the container log
  • Screen none
Two things to know before you choose. The radio is a USB stick that has to be plugged into whatever runs GardenOS, and it has to be within range of the stakes in your beds. A server in a basement is usually both too far away and too well shielded. Home Assistant also has to run with host networking, or device discovery will not cross the container bridge.
Build one

It is a project, not a product.

GardenOS is not for sale and there is nothing to pre-order. It is software you install on your own hardware, and a parts list you buy yourself from whoever you like.

What you need. A Raspberry Pi 4 (2 GB is enough, 4 GB is comfortable), a microSD card, an RTL-SDR receiver, and one or more Ecowitt soil sensors. Everything else is optional: a screen if you want the kiosk, an enclosure if it lives outdoors. If you already have a Pi doing nothing in a drawer, you are most of the way there.

Flash the card

Raspberry Pi OS Lite 64-bit. Set SSH and your Wi-Fi in the imager before first boot, so the Pi comes up on the network by itself.

Run the provisioning script

It installs the radio toolchain, Home Assistant, and the GardenOS service, and writes the marker that tells GardenOS it is an appliance rather than a container.

./provision-gardenos.sh

Free the radio from the kernel

Linux claims the dongle as a TV tuner the moment it is plugged in, and every radio tool then reports “device busy”. The provisioning script handles this; a self-hosted install needs it done once on the host.

blacklist dvb_usb_rtl28xxu
blacklist rtl2832
blacklist rtl2830

Wake a sensor and pair it

Press the button on a WH51 and it appears in the pairing screen within a minute. Give it a bed. There is nothing else to configure.

BUILD PHOTOGRAPH
added as the hardware is assembled
Figure 12.1The assembled receiver before the enclosure is closed.
Not yet public

The source and the flashable image are still private while the first builds are underway. This is where they will be.