Skip to content

Crops Data & Library

NachtRave edited this page Mar 3, 2023 · 10 revisions

Basics

Crop data is the essential building block of any Hydroponics system. It contains the information necessary to determine what the general feed parameters are, what any given crop's alkalinity should be, as well as the kind of environment needed for a given crop to be able to grow most effectively. While there are other parameters that can then fine-tune such even further, crop data is at its heart the basis for all crop-related decision making.

Supported Crops

As of this writing, the following crops have their data pre-programmed into Hydruino (specified by the CropType enumeration):

  • Aloe Vera
  • Anise
  • Artichoke
  • Arugula
  • Asparagus
  • Basil
  • Bean (common)
  • Bean (broad)
  • Beetroot
  • Black Currant
  • Blueberry
  • Bok-choi
  • Broccoli
  • Brussels Sprout
  • Cabbage
  • Cannabis (generic)
  • Capsicum
  • Carrots
  • Catip
  • Cauliflower
  • Celery
  • Chamomile
  • Chiccory
  • Chives
  • Cilantro
  • Coriander
  • Corn (sweet)
  • Cucumber
  • Dill
  • Eggplant
  • Endive
  • Fennel
  • Fodder
  • Flowers (generic)
  • Garlic
  • Ginger
  • Kale
  • Lavender
  • Leek
  • Lemon Balm
  • Lettuce (generic)
  • Marrow
  • Melon
  • Mint (generic)
  • Mustard Cress
  • Okra
  • Onions
  • Oregano
  • Pak-choi
  • Parsley
  • Parsnip
  • Pea (common)
  • Pea (sugar)
  • Pepino
  • Peppers (bell)
  • Peppers (hot)
  • Potato (common)
  • Potato (sweet)
  • Pumpkin
  • Radish
  • Rhubarb
  • Rosemary
  • Sage
  • Silverbeet
  • Spinach
  • Squash
  • Sunflower
  • Strawberries
  • Swiss Chard
  • Taro
  • Tarragon
  • Thyme
  • Tomato
  • Turnip
  • Watercress
  • Watermelon
  • Zucchini
  • & up to 8 custom crops

Please consult growing guides for any kind of crop you are growing. It is vital that you familiarize yourself with any specific growing requirements - especially the kind of space required, kind of supports needed (if any), ability to grow alongside other crops, and common maintenance needed to prevent infection and disease (pro-tip: recycling systems should use filters & UV cleaners, else use a drain-to-waste (DTW) setup).

Note that some plants, especially those from the Mint class, are very invasive and will tend to creep-over to other crop planters, potentially starving them of resources. Additionally, some crops produce very pungent odors and can be hazardous to people with allergies and to common housepets. While Hydruino does track many of these additional aspects in the flags section of its data (and may occasionally alert the user to such - e.g. pruning reminders, hostility to pets, etc.), it is up to you, the end user, to know what you're doing.

Crop Data & Customization

While many crops are already programmed into the system, custom crop data can also be set up and used instead. As of this writing, 8 additional custom crops can be specified by the system, which then get loaded and used when a Crop object is set up to use it. Note that crop-data is very memory intensive, however, and uses up memory very quickly - going ham can stress smaller MCUs.

As of this writing, the kinds of crop data that is available/can be customized in Hydruino include:

  • Name of crop
  • Weekly growing phases & total grow weeks
  • Daily light hours needed per growth stage
  • pH and TDS/EC ranges (overall/base - for custom additives, see Reservoirs)
  • Temperature ranges for both feed water and crop itself
  • Nightly feed reduction multiplier (if needed)
  • Flags including invasiveness, largeness, if it's perennial (grows back every year), benefits from pruning/spraying, and allergy/house pet toxicity.

Crops Library

The Crops Library is a Singleton inside of Hydruino that allows users to check-out crop data (like checking out a library book), and then later return that data back to the library (which then may deallocate such to save on memory, if not being used elsewhere). While the data is "checked-out," it is guaranteed to stay allocated. Default crop data (non-custom) is kept stored either as minified JSON data inside of Flash or externalized to SD card or EEPROM, and deserialized as needed. This allows the system to only have crop data allocated for what it needs, and returns or caches any vitals as needed when memory gets low.

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

Clone this wiki locally