Studio
Soil to Signal: The Shopping List, Phase by Phase
Every part the soil-moisture project needs, listed in the phase that first needs it — with prices, links and the one rule that says what not to buy yet.
A companion to Soil to Signal: one section per roadmap phase, in the order they run. Every part appears once, in the phase that first needs it; later phases say what they inherit. Links and prices were live on Amazon UK on 21 September 2026.
Sequencing rule, roadmap Phase 0: do not order relay, pump, solar or 12 V until their phase opens. Nothing that can move water exists until probes and calibration are proven. The later sections are here so the parts are known, not so they are bought now.
Phase 0 · Phase 1 · in progress — bench node, pot week, calibration
Sep–Oct 2026 · pot week running since 19 Sep

One node, three probes, three pots. Deck reads only.
Owned: ESP32-WROOM-32U + pigtail · probes 3/4/5 alive (HW-390, TLC555) · F-F Dupont ribbon · wall USB charger · Pi 5 deck · printed case + probe hoods · gravity irrigation kit (printing)
On order · 19 Sep: second ESP32 dev board · 5 × HW-390 probes
To buy: nothing. Breadboard abandoned 18 Sep — direct-wired, three probes per node.
Phase 2 · Oct–Nov 2026 — node runs on its own
Shelf, wall charger, a month unattended. Enclosure and battery-node items parked until there is a garden.
Home now: only the BME280, and only if room air is wanted on the deck (needed before any frost alert in Phase 5a). Parked, garden only: the enclosure set — one per outdoor node, whether it senses (2c) or waters (4). Battery-node prep: the divider resistors, for battery_v.

The enclosure set, laid out. Same box shape for every outdoor node; the watering node uses a bigger one. Drawn with the breadboard — the terminal adapter replaces it.
| Part | Notes | Link | £ |
|---|---|---|---|
| BME280 breakout, I²C, 3.3 V — GY-BME280-3.3 · optional at home, needed for frost | Room air temperature, humidity, pressure on the deck. Never DHT22. I²C lead under a metre. | B07DJ588Z3 | 6.99 |
| Screw-terminal adapter, 38-pin ESP32 — 2 pcs · one per outdoor node | Breadboard springs corrode in a damp box and already killed probes 1 and 2. Match the 38-pin board, not the 30-pin. | B0C2TX17WX | 5.99 |
| Enclosure, IP65, 150 × 110 × 70, M20 glands — EYPINS · sensing nodes | Glands underneath, drip loop on every cable. Printed tray insert and panel bracket sized once the box is in hand. The watering node needs the larger box in Phase 4 instead. | B0DBQ5D64L | 12.59 |
| SMA female bulkhead ↔ U.FL pigtail, 15 cm — 3 pack | Antenna outside the box on the bulkhead. Empty U.FL socket measured −82 dBm; antenna fitted, −44. | B0BQWFC327 | 6.99 |
| Micro-USB lead, 20 cm, 24 AWG braided — supply → board, inside the box | Short and thick is brownout insurance: ~250 mA radio peaks sag a thin cable and the board resets mid-reading. | B0DM95S61Z | 3.98 |
| 100 kΩ resistors, ¼ W 1 % — 120 pcs · 2 per battery node | Divider cell+ → 100 k → GPIO35 → 100 k → GND for battery_v. Tells the deck when to bring a node in. | B0FPWYJJB3 | 4.59 |
| Total, one enclosure set + BME280 | Adapter pack and pigtail pack cover three nodes. | 41.13 |
Phase 5a · Nov 2026 — alerts on the deck
Dry pot, frost. Software on the Pi; the BME280 above is the only hardware it needs. Nothing to buy.
Phase 2b · parked — probes into the beds
Blocks on the WiFi survey. One node per bed, three probes, ≤ 3 m of lead, recalibrated in bed soil. Nothing to buy: boards and probes from the spares ordered 19 Sep, one Phase 2 enclosure set per node.
Phase 2c · parked · optional — battery and solar sensing node
Dec 2026 – Jan 2027 · a bed that only senses, too far for a cable
Opens when: Phase 2's battery-node items are proven on USB — deep sleep with a wake window, GPIO-switched probe VCC, battery_v — and the bed passed the WiFi survey. Then the panel is one line item, not a phase. Inherits from Phase 2: one enclosure set (adapter, box, pigtail, USB lead, resistors).

Power chain and wake cycle. The panel exists only to keep the probe reading.
| Part | Notes | Link | £ |
|---|---|---|---|
| Panel, 6 V 5 W, toughened glass, DC plug — Waveshare | 6 V not 5 V — chargers need > 4.5 V and a 5 V panel gives nothing in dull light. Plug matches the manager below. South, ~40° tilt. | B07PNTRSNY | 25.99 |
| Solar power manager, 6–24 V in, 5 V USB out — Waveshare · only 4 left | Use the PH2.0 socket, leave the 14500 holder empty. Bench test first: node asleep, is the 5 V output still on an hour later? Some cut out below ~50 mA. Fallback: Solar Power Manager (D) B0CT2ZBML9, takes an 18650. | B094FWZVFH | 14.99 |
| LiPo, 3.7 V 2000 mAh, JST-PH 2.0, protected — EEMB 803465 | Check polarity against the manager's socket before plugging in. Red to +. Reversed = dead board. Will not charge below 0 °C; the cell buffers a fortnight of that. | B09DPP44GM | 8.99 |
| Total per solar sensing node | + £34 for its Phase 2 enclosure set → ~£84 a node. | 49.97 |
Alternative list B (XIAO ESP32C3 + 2 W panel, runs through winter) stays in the repo's solar-sensor-node.md.
Phase 4 · parked · last — watering node, the 25 W 12 V kit
Summer 2027 · one box senses and waters one bed · no socket, ever (decided 20 Sep 2026)
Before any part is ordered: every phase above done · panel site south-facing and out of the hose's reach · WiFi survey at the bed passed · butt height vs bed known (siphon) · pump sized from head and volume, ~10 L per run for a 2 × 1 m bed. Before the relay is wired: every interlock in YAML — max run, min gap, no run on a stuck probe or forecast rain, STOP that only stops, nothing over the reporting path can start it. Dry run a week, wet run into a bucket, then the bed. Inherits from Phase 2: adapter, pigtail, USB lead — but not the small box; the one below replaces it.

One panel, one battery, one ground. The relay in the box is the only thing that can close the pump circuit.
| Part | Notes | Link | £ |
|---|---|---|---|
| Solar kit, 25 W 12 V panel + PWM controller + brackets — ECO-WORTHY | ~30 Wh on a grey September day, ~80 in June. The bundled PWM controller defaults to lead-acid: set a lithium/LiFePO4 profile or user-defined 14.4 V absorb / 13.6 V float, or swap it for one that has the setting. | B0G2R7BXBM | 49.99 |
| Battery, 12 V 7 Ah LiFePO4, built-in BMS — ULTRAMAX Neo | 84 Wh: a week of node + watering with no sun. BMS handles over/under-voltage; the controller still needs the right profile. Sits inside the box. | B0GL261RD6 | 27.99 |
| Inline blade fuse holders, waterproof, 12 AWG — 6 holders + 66 fuses (2–30 A) | One fuse on the battery rail, one on the pump feed. 3 A for the pump below; size above the stall current of the pump you buy. | B0DKX9R1FK | 7.99 |
| Relay module, 1 ch, opto-isolated, 3.3 V trigger — low-level trigger | ESP32 GPIO drives only the opto side. Contacts must exceed pump stall current, not running current. Low-level trigger: pull-up on the GPIO so a reboot does not click it. | B08SQHWS7R | 5.97 |
| Flyback diodes, 1N5408 3 A — 10 pcs · need 1 | Across the pump terminals, stripe to +. Catches the inductive kick when the pump stops so it does not reach the relay or the board. | B00XWDD1ZS | 4.29 |
| Buck converter, 12/24 V → 5 V 3 A, USB out | Feeds the dev board's micro-USB via the Phase 2 lead. Common ground with the pump rail — a floating ground gives readings that drift and look plausible. | B0H87RCXNJ | 4.64 |
| Pump, 12 V brushless submersible, 800 L/h, 5 m head — HSEAMALL | Sits in the butt, no priming, ~1 A. 10 L in under a minute at low head. Submersible over diaphragm: a diaphragm pump is 145 psi and amps, wrong tool for a drip line. | B07L89V1N6 | 14.99 |
| Check valve, ½" barb, one-way — 2 pack | If the butt sits above the bed, water siphons after the pump stops. Valve on the pump outlet, or route the outlet above the water line. | B0F4MCH5LT | 5.19 |
| Drip irrigation kit, 15 m 4 mm tube + drippers — Pawfly | Drip line ≥ 5 cm from any probe — a probe next to a dripper reads the dripper, not the bed. | B0F6LFWWBF | 7.99 |
| Pump cable, 2-core 1 mm² thin-wall, 10 m | Box → butt. A power run does not care about length; only sensor leads do. | B06XNVZTR9 | 10.59 |
| Flexible conduit, 20 mm, 10 m + glands | Pump cable buried in it. Glands into the box from underneath. | B07WSQFR71 | 18.50 |
| STOP switch, mushroom latching, IP65 enclosure, 1NC | NC contact in series with the relay trigger or the pump feed. It can only ever stop. Nothing on the deck, phone or cloud can start. | B00NTT91Y0 | 9.99 |
| Enclosure, IP66, 200 × 150 × 100, ABS — replaces the Phase 2 box for this node | Controller, 7 Ah battery, relay, buck, fuses and the board all live here. Glands underneath, drip loops. | B0GXHZ299K | 17.59 |
| Water butt, 100 L slim, tap + lid + stand — only if not owned | Lid keeps mosquitoes and leaves out of the pump. Stand height is the siphon question above. | B0GV11NKL3 | 33.89 |
| Total, watering node | + ~£17 adapter, pigtail, lead from Phase 2. Board and three probes from the 19 Sep spares; new two-jar calibration on that chip. Minus £33.89 if the butt exists. | 219.60 |
A bed that only senses keeps the small 5 W / LiPo node from Phase 2c; this box is for a bed that waters.
Phase 5b · Phase 6 · later · optional — beyond the deck, retention
Software only. Nothing to buy.
Not on any list: resistive probes (corrode in a season) · DHT22 (reads low, drifts) · Raspberry Pi at the bed (no ADC) · a mains socket outdoors (none, decided 20 Sep 2026) · a cloud key on any node · anything that lets the deck, phone or cloud start a pump.
Prices in GBP, checked 21 Sep 2026.



