# Assembly instructions — byitl_hp01_hydroponic_plant_pot

Build order is generated from QA-verified mates (each mate's two parts were confirmed to meet at the joint).

## Printed parts

- `reservoir_body`
- `lid`
- `electronics_tower`
- `tower_cover`
- `grow_ring`
- `window_bezel`
- `net_cup`

## Purchased + hardware

- 1× Adafruit Feather ESP32-S3 8MB No PSRAM (USB-C, WiFi/BLE)
- 1× DFRobot E-201-C Analog pH Probe (BNC) + Gravity pH board
- 1× LONG RIGID Ø16 BNC-class EC probe (e.g. DFRobot K=1 DFR0300-H) + conditioning board — a rigid probe that seats in the -X well; NOT a short cabled TDS head, which would dangle and fall through the well
- 1× BH1750 ambient light breakout (GY-302, I2C)
- 1× Adafruit MOSFET Driver breakout, STEMMA JST-PH (low-side switch)
- 1× WS2812B addressable LED strip, 60/m, IP65, ~0.5 m grow tape
- 1× USB-C 5 V 2 A wall adapter + 2 m USB-C cable
- 1× 3-inch slotted hydroponic net cup (Ø75 mm lip)
- 1× Hydroton clay pebbles / rockwool growing medium (net-cup fill)
- 1× Hydroponic nutrient A+B (Kratky, makes reservoir solution)
- 1× Clear PETG sight sheet 46 x 118 x 2 mm (window glazing)
- 1× Ø1 mm silicone O-ring cord, ~0.6 m — sits in the ~1.2 mm window rebate groove (secondary seal; the primary seal is the aquarium-silicone bead per PRINTING.md)
- 1× Clear PETG/acrylic disc Ø10 x 1.5 mm — seals the BH1750 sky window on the tower cover (passes ambient light, keeps spills/condensation out of the mains-powered box)
- 2× Rubber grommet / compression gland Ø17 (pH+EC well seal)
- 1× STEMMA QT / JST-SH 4-pin to female DuPont, 0.4 m (BH1750/I2C)
- 2× RG174 BNC coax pigtail, 0.5 m (pH/EC probe to board)
- 1× 22AWG silicone hook-up wire, 3-conductor 0.4 m (WS2812 leads)
- 1× 1000uF 10V electrolytic across the WS2812 5 V rail
- 1× 330 ohm resistor in series with the WS2812 data line
- 1× Lid seat (skirt over rim, no hardware)
- 4× M3x10 self-tapping
- 8× M3x12 self-tapping
- 8× M2x8 self-tapping
- 4× Press-fit locating pegs (no hardware)
- 1× Net-cup lip seat (no hardware)
- 1× Probe well seat (BNC shoulder on catch rim)

## Steps

1. Join **lid** ↔ **reservoir_body** with 1× Lid seat (skirt over rim, no hardware) (press_fit) at (0.0, 63.5, 168.0). _Lid drops on and its skirt laps the reservoir rim; lifts straight off for planting and cleaning._
2. Join **electronics_tower** ↔ **reservoir_body** with 4× M3x10 self-tapping (screw) at (-40.0, -70.0, 34.0). _Tower front wall bolts to four Ø6 bosses on the reservoir -Y face; 10 mm screw = 3 mm wall + ~6 mm into solid boss._
3. Join **tower_cover** ↔ **electronics_tower** with 4× M3x12 self-tapping (screw) at (-52.0, -77.0, 150.0). _Cover lifts off for wiring the boards; BH1750 rides with it._
4. Join **light_sensor** ↔ **tower_cover** with 2× M2x8 self-tapping (screw) at (-4.4, -103.6, 146.2). _BH1750 hangs under the cover on two stand-offs at its probed 3.0 mm hole centres, chip up to the sky window; header pins point down into the tower for wiring._
5. Join **mcu_feather** ↔ **electronics_tower** with 4× M2x8 self-tapping (screw) at (-13.1, -123.5, 8.0). _Four stand-offs at the PROBED hole centres (2x Ø2.50 + 2x Ø2.20). USB-C on the real receptacle centreline exits the back wall; a plug seats through the cutout._
6. Join **mosfet_driver** ↔ **electronics_tower** with 2× M2x8 self-tapping (screw) at (40.2, -107.3, 8.0). _Two stand-offs at the probed holes + an anti-rock pad under the free end. Screw terminals face up, reachable with the cover off._
7. Join **grow_ring** ↔ **lid** with 4× Press-fit locating pegs (no hardware) (press_fit) at (-76.0, -40.0, 172.0). _Grow ring rests on the lid top; four Ø4.4 pegs press into Ø4.2 blind holes (positive retention). The WS2812 tape adheres into the inward channel band; leads exit the back notch, aligned over the lid cable slot, to the tower._
8. Join **window_bezel** ↔ **reservoir_body** with 4× M3x12 self-tapping (screw) at (-27.0, 65.0, 45.0). _Bezel clamps the clear PETG sheet into the rebate. The seal is a bead of aquarium silicone around the sheet edge (an optional Ø1 mm O-ring cord sits in the ~1.2 mm groove as a secondary seal). Leak-test per PRINTING.md._
9. Join **net_cup** ↔ **lid** with 1× Net-cup lip seat (no hardware) (press_fit) at (40.0, 0.0, 176.0). _3-inch net cup drops into the centre hole; its lip catches on the lid (positive vertical stop). Base sits ~31 mm into the start solution for the Kratky air gap to open as it drops._
10. Join **ph_probe** ↔ **lid** with 1× Probe well seat (BNC shoulder on catch rim) (press_fit) at (63.5, 0.0, 178.0). _pH probe slides through the Ø20.2 square guide bore; the Ø19.5 BNC-cap shoulder rests on the Ø18.5 catch rim — a positive stop so it cannot fall in. Lift out for calibration/storage. BNC head + coax stay above the lid._

## Wiring (power harness)

Power front-end: **mcu_feather**

**5V**
- `mcu_feather` → `mosfet_driver` (22AWG) — Feather USB (5 V bus) pin -> driver V+ screw terminal.
- `mosfet_driver` → `grow_ring` (22AWG) — Driver switched output -> WS2812 strip 5 V rail (in the ring channel). 1000 uF across the rail at the strip.

**GND**
- `mcu_feather` → `mosfet_driver` (22AWG)
- `mosfet_driver` → `grow_ring` (22AWG)
- `mcu_feather` → `ph_probe` (22AWG)
- `mcu_feather` → `light_sensor` (22AWG)

**PWM**
- `mcu_feather` → `mosfet_driver` (22AWG) — GPIO (LEDC-capable) -> driver STEMMA JST-PH signal (grow-light power gate / global dim).

**DATA**
- `mcu_feather` → `grow_ring` (22AWG) — GPIO -> WS2812 DIN through a ~330 R series resistor.

**pH_ADC**
- `mcu_feather` → `ph_probe` (22AWG) — pH BNC -> DFRobot Gravity analog pH board (tower shelf) -> Feather ADC. Board is BOM `modeled: False` (no vendor CAD).

**I2C**
- `mcu_feather` → `light_sensor` (22AWG) — STEMMA QT -> BH1750 (addr 0x23) inside the tower.

