Skip to content

Controller Overview

NachtRave edited this page Mar 1, 2023 · 9 revisions

Introduction

What is it?

Hydruino is an Arduino-based automation controller program that automates the growing of various common plants via the use of consumer-grade off-the-shelf equipment available at many different hobbyist and aquarium stores. It's intended to be used by anyone interested in throwing some fun hobbyist electronics together and growing some of their own food, using low-power IoT Arduino-compatible microcontrollers (MCUs).

What are some uses of it?

It can be set up as a fun classroom experiment managed by a knowledgeable teacher, as well as a weekend project thrown together by someone who enjoys tinkering. It can be a gift to a loved one, as well as just a fun project to experiment with. It can also be set up to manage small to medium sized grow farms, so long as your microcontroller has the capacity to keep track of everything.

What's it cost?

Hydruino is distributed for free using the non-restrictive MIT license: do whatever you want with it, modify it and redistribute it however you wish, we ask for nothing in return, but also offer zero guarantees. However, if you find this program to be useful and you would like to help support its furthered development please consider a subscription to our Patreon.

Overview

Hydruino manages a digital copy of what equipment you have available, and then figures out, based upon the system you have programmed into it, how best to utilize it. This includes turning on and off the grow lights, managing water pumps (including peristaltic dosing pumps), balancing pH/TDS before feedings, amongst a variety of other activities like running daily scheduling processes.

Usage

Hydruino is expected to be ran either as a library that one programs against in their own Arduino sketch, or as one of the examples that offers various complete programs for common setups. The best option is of course to simply build the full system example through the Arduino IDE after installing it from the Libraries Manager - in either case, it will be required to at least view the top of the example sketch to ensure your MCU's pin connections match.

How it Works

Hydruino interacts with the various actuators that can independently enable/disable the various equipment in use (such as an AC socket on relay), but also expects to interact with a variety of sensors, both analog and digital, each with their own savable user calibration data. Whatever sensor data is available is utilized to make the best decisions on how to grow the plants being grown, which are linked together via attachments. Power management can also be set up to limit total equipment activations allowed at once to maintain power to already active equipment.

Attachments between objects, specified by the end user during system configuration, allow specialized behavior between such objects to occur, such as solution reservoirs containing pH-Up in one and pH-Down in another being used to maintain proper alkalinity of feed water during feedings. Other common configurations can include using an exhaust or circulation fan to activate when CO2 levels dip or a grow tent gets too warm, or using a water heater before feeding to warm the water to a more tropical temperature (useful in cold weather climates).

Feed reservoirs act as both a main liquid mixing container and feed channel that feeds the various crops when its feed pumps are engaged. Feedings occur via crops signaling for such, either on a feeding on/off timer or driven by a feeding trigger, such as one with an attachment to a soil moisture sensor. Additionally, feedings can be customized on a weekly dosing schedule, as well as set up to use a variety of various custom additives, so long as each has their own dosing pump. Custom crop data can be configured as needed, as well as suggested feeding charts be copied over, near verbatim, and Hydruino will figure out the rest.

Limitations

Multi-Crop Feeding Channel

We recommend growing the same kind of crop (or ones with very similar nutrient requirements) with similar starting sow dates in any similar feed reservoir/channel so that feedings aren't averaged out too broadly, potentially causing issues.

Growth Parameter Setpointing

Feed parameters are specified weekly, using multipliers to adjust feed concentration used during feeding. Some feed parameters, such as pH, CO2 level, etc., may have a reduced range of setpointing available (i.e. to just that of a few specific growth phases).

MCU Storage

The limit to how much Hydruino can keep track of and manage depends entirely on how much Flash, free RAM, and open I/O pins are available on the MCU used. Hydruino is programmed with microcontroller-level RAM limitations in mind (doing its best to instead prefer longer and more costly operations to save on memory usage), and is targeted to a minimum Mega2560-like spec (256kB Flash, 8kB RAM) for the simple example / bare-bones system sketch. Larger sketches, such as the full system example sketch, will require a more modern MCU (512kB+ Flash, 32kB+ RAM), but may also require exporting of library data to an external storage device (such as SD card or EEPROM - see data writer example) if not enough Flash space is available.

Brought to you by the generous support of our Patreons. Please consider a subscription if you find this software useful.

Clone this wiki locally