# Assembly instructions — byitl_sp01_smart_plant_pot

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

## Printed parts

- `pot_body`
- `saucer`
- `enclosure_base`
- `enclosure_lid`
- `reservoir_tank`
- `pump_strap`
- `fill_cap`

## Purchased + hardware

- 1× Adafruit Feather ESP32-S3 8MB No PSRAM (USB-C, WiFi/BLE)
- 1× Adafruit STEMMA Soil Sensor - I2C capacitive moisture probe
- 1× BH1750 ambient light breakout (GY-302, I2C)
- 1× Adafruit MOSFET Driver breakout, STEMMA JST-PH (low-side switch)
- 1× Micro Peristaltic Pump 3V/6V — 5 V dosing pump, ~30 mL/min, 6 mm OD tubing
- 1× USB-C 5 V 2 A wall adapter + 2 m USB-C cable
- 1× STEMMA QT / JST-SH 4-pin to JST-PH 4-pin cable, 1 m (tether)
- 1× 5-way female DuPont jumper lead, 150 mm (BH1750 spur)
- 1× 22AWG silicone hook-up wire pair, 300 mm (pump leads)
- 1× Silicone tubing 3 mm ID / 6 mm OD, 2 m (reservoir and dose lines)
- 1× Inline tube strainer / pickup weight for 6 mm OD tubing
- 1× 1N5819 Schottky flyback diode across the pump
- 1× 470uF 16V electrolytic across the 5 V rail (pump inrush)
- 1× Tray seat (no hardware)
- 2× M2.5x6 pan-head
- 2× M2.5x16 pan-head
- 6× M2x8 self-tapping
- 2× M3x16 self-tapping
- 1× Strap clamp (no hardware)
- 6× M3x12 self-tapping
- 1× Tank seat (no hardware)
- 1× Cap friction fit (no hardware)

## Steps

1. Join **pot_body** ↔ **saucer** with 1× Tray seat (no hardware) (press_fit) at (0.0, 0.0, 6.0). _Pot drops into the saucer and stands on three ribs; water drains out from under it._
2. Join **soil_probe** ↔ **pot_body** with 2× M2.5x6 pan-head (screw) at (82.0, 4.4, 220.0). _Probe bolts FLAT to the inner-wall boss through its own 2.54 mm holes (probed centres, 8.636 mm apart). 207 mm^2 of face contact; screw head bears on the bare PCB band at local X 20-27, which carries no components on either side._
3. Join **light_sensor** ↔ **pot_body** with 2× M2.5x16 pan-head (screw) at (96.1, 63.4, 236.0). _Board lands on two hollow standoffs at its probed 3.0 mm hole centres; its -Y edge slides under a lip first. M2.5x16: 1.6 board + 8.2 clear bore + 6.2 mm thread into an 8.5 mm pilot._
4. Join **mcu_feather** ↔ **enclosure_base** with 4× M2x8 self-tapping (screw) at (146.1, 20.1, 8.0). _Four standoffs at the PROBED hole centres — 2x 2.50 mm at (2.540, 2.540)/(2.540, 20.320) and 2x 2.20 mm at (48.260, 1.842)/(48.260, 20.955). M2 passes both sizes. 8 mm screw: 1.6 board + 6.4 into a 7.5 mm pilot._
5. Join **mosfet_driver** ↔ **enclosure_base** with 2× M2x8 self-tapping (screw) at (172.9, -3.5, 8.0). _Two standoffs at the probed hole centres, plus a third unfastened pad under the JST end so the board cannot see-saw on its single line of screws._
6. Join **pump_strap** ↔ **enclosure_base** with 2× M3x16 self-tapping (screw) at (190.5, -48.6, 26.6). _Strap bolts to the front bulkhead and the rear stop. M3x16: 6 mm strap + 10 mm thread into a 13 mm pilot in solid 23 mm-wide bosses._
7. Join **pump** ↔ **pump_strap** with 1× Strap clamp (no hardware) (press_fit) at (190.5, -36.1, 26.6). _The strap bears on the pump-head top face; the cradle takes the flange front face, both flange X edges, the motor rear plate and the head underside. Five real measured faces — the flange has no screw holes._
8. Join **enclosure_lid** ↔ **enclosure_base** with 6× M3x12 self-tapping (screw) at (147.0, -47.0, 105.0). _Six bosses; lid lifts off for service and to change the reservoir._
9. Join **reservoir_tank** ↔ **enclosure_base** with 1× Tank seat (no hardware) (press_fit) at (297.5, 0.0, 3.0). _Tank drops into the wet bay with 2-8 mm clearance; lift straight out for cleaning once the lid is off._
10. Join **fill_cap** ↔ **enclosure_lid** with 1× Cap friction fit (no hardware) (press_fit) at (316.5, 0.0, 108.0). _Refill through the lid port without opening the case; the cap flange lands on the lid around the port._

## 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` → `pump` (22AWG) — Driver switched output -> pump +. Flyback across the pump.

**GND**
- `mcu_feather` → `mosfet_driver` (22AWG)
- `mosfet_driver` → `pump` (22AWG)
- `mcu_feather` → `soil_probe` (22AWG)
- `mcu_feather` → `light_sensor` (22AWG)

**PWM**
- `mcu_feather` → `mosfet_driver` (22AWG) — GPIO (LEDC-capable) -> driver STEMMA JST-PH signal.

**I2C**
- `mcu_feather` → `soil_probe` (22AWG) — STEMMA QT -> 1 m 4-wire tether -> probe JST-PH. 100 kHz.
- `mcu_feather` → `light_sensor` (22AWG) — Same bus, spurred at the pot. BH1750 addr 0x23, probe 0x36.

