Build notes for the v4 kit. Pins and parts come from the firmware on the main branch (hub and soil probes 8.5.0.0; Sonoff plugs and control panel 8.3.0.0). Setting up a finished kit instead? Start with the user guide. Power down between changes. A couch already killed a board. Mains wiring must follow your local rules and be done by a licensed electrician where the law requires it.
BUILD NOTES

DSC-HUB build

A headless ESP32, three DHT22 tails, a CO2 input and five PWM channels. The hub runs the climate ladder and its own failsafes; the Pi brain switches the plugs.

Hub enclosure on a hard bench.
Hub enclosure on a hard bench.

You need: an ESP32-WROOM-32, three DHT22 sensors on long tails, a CO2 sensor with a voltage output, PWM-to-0-10 V converter modules for the five channels, a multimeter (you meter every output) and a USB cable for the first flash. Order of operations: bench, meter the outputs, flash, install in the tent, bind the plugs, then the unplug test (see Milestones below). The pins below are the ones the v4 firmware expects on an ESP32-WROOM-32.

On this page
  1. How it works
  2. Diagram
  3. Milestones
  4. Cost band + next

Problem

A pile of ESPHome YAML is not a controller until the output chain is metered and the fail-safe is proven.

Build

ESP32-WROOM-32 in the box. DHT22 tent on GPIO27, room on GPIO4, clone on GPIO13. CO2 sensor voltage on GPIO34. Fans and lamps on 1 kHz PWM through PWM-to-0-10 V modules jumped to 0-10 V, labelled both ends.

Result

Fans answer the dashboard and the DSC-Control panel. Above 35 °C, or with a dead tent sensor, the hub's own failsafe takes over, Pi or no Pi.

How it works

Bench

No screen or dial on the hub since v4: the DSC-Control panel is the glass, over ESP-NOW. Tails long enough to reach intake and clone canopy. Use a WROOM-32: GPIO16/17 are PSRAM pins on WROVER modules.

Output chain

GPIO16 exhaust outside, GPIO17 main intake, GPIO18 clone intake, GPIO19 exhaust to room, GPIO23 the SF1000 dimmer (it dims one of the two lamps in the 4x8; the other 4x8 lamp is on a smart plug). GPIO5 is spare. Set every converter jumper to 0-10 V. 0 / 50 / 100% duty, meter the module (expect a small floor voltage at 0%). The power domains and signal lines are mapped on the schematics page.

Install

Tent sensor at canopy, room at intake, clone on a yoyo. Confirm gentle negative pressure at baseline. A typical chain is room → 2x4 → 4x8.

Bind

Mains and heat. The plugs switch mains-powered appliances: wiring and outlets must follow your local rules, with a licensed electrician where the law requires it, and the heater and heat mat must sit clear of anything that can burn. Heater, heat mat, humidifier and dehumidifier sit on Sonoff BASIC R2 plugs. The hub raises demand and the Pi brain switches the relay. Every plug boots OFF and switches itself OFF when it has not heard from the brain for its grace time: heater 60 s, heat mat and humidifier 90 s, dehumidifier 240 s. The plugs are bound when each one shows in Kit › Inventory; the unplug test then proves the times.

Diagram

room 2x4 4x8

Milestones

  1. 1. Bench
  2. 2. Meter outputs
  3. 3. Flash
  4. 4. Tent
  5. 5. Bind
  6. 6. Unplug test

Cost band + next

Buy-new parts: the kit list in the user guide. Dumpster substitutes: Dumpster Edition.

Flash after you have metered the outputs, then install in the tent and bind the plugs. Then do not skip the unplug test. Building the soil probes too? Do the DSC-POT build, then flash everything in one go.