Sarth Calhoun

Conspiracy · Machine

Ingather

Ingather is an integrated control system for a cannabis cultivation facility, built between August 2021 and March 2022. Rooms and zones, plant groups and strains, fertigation and lighting routines, dosing recipes and machines. A SvelteKit front end over a REST API, with its own server-side endpoints so the client never talks to the backend directly. Named for the archaic sense of the word: to gather in, to harvest.

The screens ran on monitors outside the rooms and on small touch panels, one per room, which is why the numbers are large and the controls are thumb-sized. A grower walking past a door could read the room without stopping.

The facility is gone and the API went with it. The demo runs anyway.

Ingather, a room overview: room phase, light level, zones and their fertigation programs, air handler readings.
A room overview. Try it.
Ingather, a zone: strain and batch, plant count and emitters, the lighting routine and the nutrient recipe with its numbered pumps.
A zone. Its strain, its lighting routine, its recipe.

What it controlled

A room holds zones; a zone holds a plant group of one strain. Each zone carries its own lighting routine, fertigation routine and nutrient recipe, so two zones in the same room can run differently.

The demo

The system it controlled no longer exists, so the demo is the app with invented data behind it: four rooms, thirteen zones, nine strains, twelve plant groups, five recipes, four dosing machines. Everything runs in the browser and nothing is stored anywhere but the visitor’s own machine, so anything changed belongs to whoever changed it and is gone when they clear it.

Time runs at 1800 times real speed, a full light cycle every forty eight seconds, because a grow room only shows what it is doing across a day. The readings are generated rather than replayed, and generated the way a room behaves rather than as five unrelated waves: the lamps drive everything, temperature follows them late, humidity runs against temperature, CO2 is injected only under the lights, and vapour pressure deficit is calculated from the other two. The two flower rooms run opposite schedules, so they read as opposites at any moment you look.

ingather-demo.marshy-runner.workers.dev

How it started

The creditIngather was built by Sarth Calhoun between August 2021 and March 2022.

Conspiracies

It sits with the rest of the data and systems work on Work. The pipeline writing is in External tables and DuckDB, where have you been all my life.