BotanicBrain: The Box That Talks Back
There hasn't been a timer in my tent for months. There's a controller I built myself that checks before it waters. Here's what came out of it – and more import…
A timer knows nothing. It doesn't know whether your pot is still soaking wet. It doesn't know that the plant drank twice as much today because the lamp ran two degrees warmer. It holds exactly one piece of information – what time it is – and makes a decision about water with it. 🌱
For me, though, none of this started with ambition. It started with a very practical problem. I live with a chronic illness, three hours a day is my limit, and on bad days I don't make it into the tent at all. So my first idea was fairly basic: something automatic needs to handle this, so nothing dies while I'm flat on my back.
A timer would almost have solved that. Almost. Because once it runs unsupervised for a few days, "waters reliably" quickly turns into "drowns reliably" – or the exact opposite, depending on how warm the week was. And I'd noticed something else: left to myself, I water by feel, and the feeling is always a day late.
So I started building a controller that checks before it waters. It's called BotanicBrain, it has been running on my own plants for months, and this article is not a product launch. There is nothing to buy. It's a progress report – including the parts where it breaks.
What the thing actually measures
At the core is a sensor that sits inside the root ball rather than scratching at the surface. It reports three things, every minute:
- Water content (VWC): how much water is actually in the substrate right now, as a percentage.
- Salt content (EC): how concentrated the nutrient solution is inside the pot – not the one in your reservoir, but the one the roots are actually sitting in.
- Substrate temperature : the temperature in the pot, not the temperature of the room.
On top of that comes climate: temperature and humidity over a wireless link, from which the controller works out VPD (if that means nothing to you, there's a guide here: Understanding VPD).
Sounds unspectacular. The difference is enormous all the same. "I water every four hours" and "I know the pot is sitting at 58 % right now" aren't two levels of precision for the same thing. One is guessing, the other is looking.
Numbers turn into an answer: dryback
A single reading isn't information yet. What matters is the curve – and the most important one is called dryback.
Dryback is simple: how far the pot dries down between two waterings. You water, the value jumps up, then it falls slowly. How fast it falls and how far – that's the plant's answer to what you just did.
And that's where it gets interesting, because that answer can be steered:
- Small dryback, frequent shots, the pot stays wet – the plant feels safe and builds leaf mass. That's the vegetative push.
- Large dryback, the pot dries down noticeably in between – the plant gets controlled, mild stress and puts its energy into flowers instead of leaves. That's the generative push.
That's the whole trick behind what the pros call crop steering: you're having a conversation with the plant about water, and dryback is her side of it. Without a sensor, you're having that conversation blindfolded.
Which is why the controller doesn't run a schedule. It runs a daily rhythm in four phases: dry down deliberately overnight, refill in several small shots in the morning, hold the level during the day, then let it run down again towards the evening. What triggers the first shot isn't the clock – it's the water content in the pot.
What went wrong
Now for the part you never see in product videos. Because the honest yield of this project isn't the pretty curves. It's the days when something was broken.
The day without a dryback. One morning I see that the curve stayed flat overnight. No drying down, nothing. My first thought was: sensor's dead. It wasn't. The dripper hole had torn out, the water was running down the outside of the pot – and because the line sat lower than the pot, it quietly kept siphoning more water through after the pump had stopped. So the plant was standing in the wet while it should have been drying down. You couldn't see any of that on the plant at that point. You could see it on the curve immediately.
The bug that wound itself up. A control loop in my software was supposed to nudge the dryback target a little every day. Except it could never reach its target at night, because a separate safety limit was holding it back. So it kept turning up. And up. The result: the evening phase wandered about an hour deeper into the day, every day. Textbook mistake, it even has a name. I still only caught it because the thing logs what it does, every single day.
The clock you can't trust. For a long time my controller had no battery-backed clock of its own; it pulled the time off the network. One single outlier was enough – for a moment the box believed it was night, and switched into its evening phase in the middle of the day. Ever since, my rule has been: a machine that acts on the time of day needs a clock that belongs to it. Not one it fetches from somewhere. …
BotanicBrain: The Box That Talks Back