The side camera sees the dough line through the glass. P-B, P-M
Question: what share of frames over 8 h were flagged unmeasurable (residue, condensation, light changes), and why?
Neil 17:23Z (faces the jar) · Codex (glass and residue risk)
Product requirements · Draft 0.3
A white-PLA box beside a starter jar watches the dough climb, and the phone on the same Wi-Fi tells the baker when it has doubled, proven in one real, unplugged, eight-hour session.
A home baker feeds a sourdough starter and has to catch it near its peak before mixing dough. The rise takes hours and the peak moves with room temperature and humidity, so the baker keeps coming back to look.
For this proof of concept the baker is Neil. "A chargeable device that watches your sourdough rise, tracks ambient temperature and moisture, and connects to an app on your phone over wifi — thinking very low cost, esp32." Neil 17:18Z
Current workaround. Checking the jar by eye. The sources don't record this, so it is proposed and tested by H6.
Why now. On 2026-10-17 Neil committed to a physical first build: "I'm going to be doing this first with a single white color PLA … on an ender 2 pro" Neil 20:13Z, and set the goal: "I want to see how far I can push the first prototype" Neil 17:30Z. The concept, renders, CAD and site exist; nothing has been printed, wired or measured. Print notes · Expert review, follow-up 3
The time is fixed and the scope fits it. Six weeks is a proposed appetite (D-11). The milestone is one working prototype that passes the acceptance session in §5. It is not a product, a production PCB, a cost-down, or a reliable unattended alert on every phone state.
No reporting line: whoever holds the phone on the same Wi-Fi sees everything.
Prints, wires, flashes and measures the prototype; owns the training set and model
"I want to see how far I can push the first prototype, this is the AI age, brother." Neil 17:30Z
Feeds the starter, sets the jar beside R-01, waits for the alert
"…a chargeable device that watches your sourdough rise, tracks ambient temperature and moisture, and connects to an app on your phone over wifi." Neil 17:18Z
Hypotheses replace success metrics. All are open at Draft 0.3; the 11-28 session is the review.
The side camera sees the dough line through the glass. P-B, P-M
Question: what share of frames over 8 h were flagged unmeasurable (residue, condensation, light changes), and why?
Neil 17:23Z (faces the jar) · Codex (glass and residue risk)
A model trained on Neil's videos measures rise on the phone. P-M
Question: mean height error on held-out sessions as a share of jar fill height, and inference time per frame on the chosen phone.
Neil 17:27Z, 17:28Z
Eight hours unplugged is reachable with a cell that fits the shell. P-B
Question: measured average current with capture every 30–60 s and batched Wi-Fi; what capacity gives 8 h plus warning headroom; does it fit?
Neil 17:22Z · Codex (16 h aspiration) · Eng set (Rev C 1,000 mAh illustrative; Rev D models the 103450 cell)
Room readings stay honest inside a warm box. P-B
Question: temperature and RH offset against a reference after 60 min, plugged and unplugged.
Codex · Eng set sheet 05 (keep heat away from RH sensor)
The phone delivers the alert in time. P-B
Question: alert latency after a verified doubling in each phone state (foreground + plugged, locked, backgrounded, Wi-Fi dropped). Which states fail outright on the D-01 platform?
Neil 17:28Z, 17:30Z · Codex
A curve and an alert beat checking the jar. P-B
Question: across PoC sessions, did Neil stop checking the jar between feeding and alert? If not, what was he checking for?
Proposed
The enclosure prints in white PLA on the Ender-2 Pro without roof supports. P-M
Question: do the split trays, face insert and base print, dry-fit, hold the camera on axis and clear the USB-C plug?
Neil 20:13Z · Print notes
Mark the jar once, then leave it
The baker sets a clear, straight-sided jar on the marked spot of the base and marks jar bottom and starting level on the first frame. Rise is reported as % of that baseline.
Rise curve on the phone
The app shows rise % against elapsed time, the latest frame, air temperature and RH, updating while the session runs.
Doubling alert
The baker sets a rise threshold (default 2×). The phone posts a local notification when measured rise crosses it.
Peak alert
The phone also flags the peak: rise has stopped climbing or started to fall for a set window.
Air temperature and humidity
R-01 reports room air temperature and relative humidity with each frame. RH describes room air, not dough hydration.
Runs a full session unplugged
R-01 runs a capture session on battery for at least 8 h.
Low-battery light
An amber light turns on when forecast remaining runtime falls below a threshold. The forecast uses measured load, not a fixed battery voltage.
Always pluggable over USB-C
R-01 can stay on a USB-C wall adapter indefinitely and charges while it runs. Plugging or unplugging does not interrupt the session.
Phone finds R-01 on local Wi-Fi
R-01 and the phone talk over the home network with no cloud service.
Gaps and bad frames are shown, not smoothed
Frames the model cannot measure are flagged; the curve shows a gap instead of an invented point.
Survives a Wi-Fi drop
During an outage R-01 keeps capturing and delivers buffered frames when the network returns, as far as storage allows; anything lost shows as a gap.
Prints in white PLA on the Ender-2 Pro
All printed parts are one white PLA, sliced for a stock Ender-2 Pro (165 × 165 × 180 mm, 0.4 mm nozzle). The shell splits into front and rear trays printed on their outer faces, plus a flat face insert and base, so the roof needs no supports. No paint, colour or lettering.
Camera faces the jar from the side
An ESP32-S3 with PSRAM drives a camera that looks at the jar from beside it, at a distance fixed by the base mark.
Frame and reading on a fixed cadence
R-01 captures a JPEG every 30–60 s with a same-timestamp SHTC3 reading and sends them to the phone in batches.
Power path holds under camera and Wi-Fi bursts
USB-C 5 V sink, power-path charger, protected one-cell LiPo and 3.3 V rail: no brownout when camera and Wi-Fi run together, and no more USB current than the source allows.
Training set from Neil's videos
Neil's fermentation videos become a labelled set: selected frames, draft auto-labels reviewed by hand; labels for jar region, dough boundary, measurable flag, jar bottom and initial level. Train/eval split by recording session, never by random frame.
Rise model runs on the phone
Segmentation runs in the app, not on the ESP32 or a server, and turns each frame into a height and a measurable flag.
Session log
Each session logs frames captured, delivered and lost, reconnects, flagged frames, alert time and phone state, and the battery voltage/current trace.
Alert delivery measured per phone state
The doubling alert is tested in foreground + plugged, locked, backgrounded and Wi-Fi-dropped states. Results are recorded, not promised.
Device footage joins the training set
Sessions recorded through R-01's own camera are labelled and added, since they match deployment better than other videos.
One button starts and stops a session
A single top button starts or ends a session without the phone.
| ID | Question | Options | Owner | Needed by | Status |
|---|---|---|---|---|---|
| D-01 | Which phone platform first? | iPhone · Android | Neil | 10-24 | Decided (default, delegated 10-17; reversible): iPhone first (Neil works on macOS; Core ML on-device); Android later |
| D-02 | Runtime target and light threshold. Neil said ~8 h runtime and a light at <8 h left; these conflict. | 8 h total, light at a small margin (e.g. <1 h) · ~16 h new, light at <8 h (Codex) | Neil | 11-07 | Decided (default, delegated 10-17; reversible): ~16 h on a fresh charge; low-battery light when <8 h remain (satisfies both stated requirements) |
| D-03 | Battery capacity and cell | Size from measured current (H3); the Rev D model carries a 103450 cell (10 × 34 × 50 mm) | Neil | 11-07 | Decided (default, delegated 10-17; reversible): 2,000 mAh 1S Li-Po (103450-class), resized after measured current (H3) |
| D-04 | Cost target for "very low cost" | BOM ceiling in $ · no target for the PoC | Neil | after 11-28 | Decided (default, delegated 10-17; reversible): PoC BOM ceiling US$45 excluding phone and filament; production target revisited after 11-28 |
| D-05 | What triggers the alert? | Rise threshold (2×) · peak detection · both | Neil | 11-07 | Decided (default, delegated 10-17; reversible): Both: rise threshold (default 2×) is P0; peak detection stays P1 |
| D-06 | Electronics path for the PoC (architectural) | Custom board per sheets 04/05 · off-the-shelf ESP32-S3 camera board with charger and sensor modules | Neil | 10-24 | Decided (default, delegated 10-17; reversible): Off-the-shelf for the PoC: Freenove ESP32-S3-WROOM CAM board (OV2640) + Adafruit SHTC3 breakout + 5 V 1 A USB-C charge/discharge module; custom board (sheets 04/05) deferred post-PoC. 10-18: board changed from the Seeed XIAO ESP32S3 Sense to the Freenove board (Neil); enclosure internals refitted in Rev D |
| D-07 | Unattended alerts | Foreground first, measure the rest · backend push now | Neil | 10-17 | Decided: foreground first (Neil 17:30Z) |
| D-08 | Cloud in the PoC | None · backend | Neil | 10-17 | Decided: none (Codex, accepted) |
| D-09 | Charging and wall-power connector | USB-C · other | Neil | 10-17 | Decided: USB-C (Neil 19:40Z) |
| D-10 | How to measure rise | Top-down ToF · side camera · optical strip | Neil | 10-17 | Decided: side camera (Neil 17:23Z); ToF rejected |
| D-11 | Appetite | Six weeks to 11-28 (proposed) · other | Neil | 10-24 | Decided (default, delegated 10-17; reversible): Six weeks to 11-28 accepted |
| D-12 | Wi-Fi credentials for the PoC | Compiled in · SoftAP or BLE provisioning | Neil | 11-07 | Decided (default, delegated 10-17; reversible): Compiled-in credentials for the PoC; provisioning post-PoC |
| D-13 | Supported jar | Neil's own jar only · a size range | Neil | 10-24 | Decided (default, delegated 10-17; reversible): Neil's own jar only |
| D-14 | Brand palette (chosen by Codex, not stated by Neil) | Keep · change | Neil | after 11-28 | Decided (default, delegated 10-17; reversible): Keep the palette |
Architecture lives in the engineering set and first-print notes.
source/engineering/rise-r01-engineering-set.pdf (sheets 01–03 mechanical, 04–05 electrical) · electrical-sources.md · README.txt · source/first-print-notes.txt
.agent-artifacts/transcript-requirements.md: Neil's verbatim requirements and Codex proposals, 2026-10-17.source/expert-review.txt: expert concept review, 2026-10-17.docs/prd.md.