5
Layers
3
Builds ready now
2
Blocked builds
MQTT
Protocol
HA
Orchestrator
Bill of materials
🖥 Layer 1 — Hub (Raspberry Pi 5) Partial — NVMe outstanding
ComponentStatusNotesPrice (est.)
Raspberry Pi 5 16GBIn handMain compute hub. Runs Home Assistant + MQTT broker.R2,800
Official Pi 5 case (red/white)In handR350
Official Pi 5 PSU 5A 27W + EU/SA adapterIn handEnough power for Pi 5 + HATsR450
Pi 5 active coolerIn handRequired for sustained workloadsR280
ML-2020 RTC batteryIn handKeeps time during load sheddingR60
64GB A2 microSD (Pi OS pre-loaded)In handBoot media — temporary until NVMe arrivesR280
M.2 NVMe Base (PCIe HAT for Pi 5)In handPCIe storage HATR420
NVMe SSD 256GB M.2 2230OutstandingRequired for production storage~R800
Official Pi keyboard + hubIn handSetup / admin onlyR650
Micro-HDMI to HDMI cableIn handSetup / admin onlyR120
Status: Hub functional on microSD. Not production-ready until NVMe SSD arrives. Once NVMe is installed, remove the microSD for reliability.
⚖️ Layer 2 — Weight Sensing Nodes 1 of 3 nodes ready
ComponentQtyStatusNotesPrice (est.)
HX711 ADC 24-bit board3In handReads load cell data via SPI — 1 per sensor nodeR85 each
Load cell GML611 5kg1In handLight items: canisters, jars, dry goods (flour, rice, sugar)R190
Load cell 50kg2OutstandingHeavy items: water drums, bulk bags. Blocks 2 additional nodes.~R350 each
Wemos D1 Mini V4 4MB1In handWiFi microcontroller — 1 per sensing node. Reports to Pi over MQTT.R95
Dupont F-F jumper wires 20cmSetIn handHX711 to D1 Mini wiringR45
Male + female pin headersSetIn handSoldered connectionsR30
Architecture: D1 Mini reads HX711, reports weight over WiFi to Pi hub via MQTT. Pi compares reading to threshold defined in HA or Pantry config. Threshold crossed → webhook fires to Pantry Edge Function → pending shopping list item created.
📡 Layer 3 — Presence / Distance Sensing Ready
ComponentQtyStatusNotesPrice (est.)
VL53L0X Laser Ranging Module (ToF)1In handTime-of-flight distance sensor. Detects shelf presence. Runs on I2C — pairs with D1 Mini or directly with Pi.R120
Use case: Proximity trigger rather than weight. "Is the item on the shelf or not?" Useful for items where exact weight isn't needed — e.g. detecting if a large container is present vs absent.
📶 Layer 4 — Zigbee Coordinator Ready
ComponentStatusNotesPrice (est.)
SONOFF Dongle Lite MG21In handUSB Zigbee coordinator. Plug into Pi, flash Zigbee2MQTT or ZHA in Home Assistant.R380
Enables: Zigbee smart buttons (manual triggers for Grace/kids), Zigbee smart plugs, and future Zigbee-native sensors (Aqara, etc.) as the sensor network grows.
📦 Layer 5 — Enclosures + Assembly Tools Ready
ComponentQtyStatusNotesPrice (est.)
Enlec ENL120806C IP65 ABS enclosure 120×80×55mm2In handIP65 waterproof. Houses 2 sensor nodes. Kitchen-safe.R180 each
Hummel PG11 cable glands4In hand2 per enclosure — power in + data/sensor outR25 each
Magnum MAG1220 soldering iron 60W1In handAssemblyR280
Solder wire 0.71mm 60/401In handAssemblyR65
Status: Can assemble 2 fully enclosed, IP65-rated sensor nodes now.
Cost summary
LayerComponentsIn-hand cost (est.)Outstanding (est.)
Layer 1 — HubPi 5 + case + PSU + cooler + RTC + storage + peripherals~R5,410~R800 (NVMe)
Layer 2 — Weight sensingHX711 ×3 + load cells + D1 Mini + wiring~R640 (1 node)~R700 (2× 50kg cells)
Layer 3 — PresenceVL53L0X ToF module~R120
Layer 4 — ZigbeeSONOFF Dongle Lite MG21~R380
Layer 5 — Enclosures2× IP65 enclosures + glands + tools~R825
In-hand total
~R7,375
Outstanding
~R1,500
Full BOM total
~R8,875
Prices are estimates from SA component suppliers (Communica, DIY Electronics, Micro Robotics). Actual prices may vary.
What can be built now vs. what's blocked
✅ Pi 5 Hub (dev/staging)
Pi 5 + case + PSU + cooler + RTC + microSD
Ready — functional on microSD
✅ 1× Weight node (5kg, enclosed)
D1 Mini + HX711 + 5kg load cell + IP65 enclosure + glands
Ready to assemble and deploy
✅ 1× Presence node (ToF)
VL53L0X + D1 Mini (or direct Pi I2C)
Ready to wire
✅ Zigbee coordinator
SONOFF Dongle Lite + Pi USB
Plug in + flash Zigbee2MQTT
🔴 2× Weight nodes (50kg)
Need: 2× 50kg load cells
Blocked — order outstanding
🔴 Pi 5 production hub
Need: NVMe SSD 256GB M.2 2230
Blocked — order outstanding
Data flow — sensor to Pantry app
Sensor
Weight / Presence
D1 Mini + HX711 / VL53L0X
Protocol
MQTT
WiFi to Pi hub
Orchestrator
Home Assistant
Threshold evaluation
Backend
Edge Function
Supabase webhook receiver
App
Pending item
Lerato approves / dismisses
Sensor node reports reading → Pi/HA evaluates against configured threshold → if threshold crossed, fires webhook to Pantry Supabase Edge Function → Edge Function creates "pending" shopping list item → Lerato sees it in app and approves or dismisses. Human always in the loop before anything is ordered.
Connected backlog stories