Skip to main content

Progress

A running snapshot of where the build is. Update this file as things move.

Status at a glance

SubsystemStatusNotes
System spec (RO-SPEC-001)Rev K — publishedProcurement-anchored to BOM Rev N; adds forced-air cooling system (4× Noctua NF-A12x25 + DDR-15G-12 + TT-200 PT100); T-101/T-102: Spike CF15/CF5
Wiring plan (WIRE-001)Rev D — publishedAdds §14 Enclosure Cooling System (4″ side-wall cutouts, 2 intake low + 2 exhaust high, DDR-15G-12 24→12 V converter, two-stage PLC control on P2-08TRS #2 Y4/Y5 driven by TT-200 PT100); §3.3 load budget, §4 / §7 / §9 tables and §2 thermal note updated; build sequence (now §15) sequences the cooling install before fitment of the rest; open items now §16 — see Wiring plan
Bench commissioning (BENCH-001)Rev B — publishedPhase 0 (receiving inspection / smoke test, day-the-parts-arrive) → Phase A (PLC dry bench, 120 V only, including pump/UV selector-control checks) → Phase B (drive bench, 240 V) → Phase C (wet test, deferred to skid commissioning); per-point validation checklist — see Bench commissioning
Tank sourcing (T-101, T-102)Selected — BOM Rev MSpike CF15 (T-101) + CF5 (T-102), 304 SS, SoCal Brewing Supply
Metering pumpsSpec publishedThree identical diaphragm pumps (Grundfos DDC 6-10 on BOM)
Bill of materialsRev N — currentAdds forced-air cooling system for the Hoffman enclosure (4× Noctua NF-A12x25, ZYAMY magnetic filters, Noctua NA-FG1-12 grills, Mean Well DDR-15G-12 24→12 V converter, PT100 enclosure RTD) — see BOM
PLC / controlsControls package — first Composer-2.5 SDK authoring pass landed10 Structured Text modules, 140-row tag CSV, GS21 Modbus map verified against User Manual Rev E, 10 §5.5-aligned recipes, 8-screen HMI spec (107 bindings), 10 Productivity Simulator scenarios — see Controls index and controls/water/ on the repo
VFDsPhase 2 — on BOMGS21 series + line reactors ordered; CB-1/2/3 branch protection settled
Sensors / instrumentsPhase 3CT/PT/flow on BOM; some TBD; TT-200 enclosure PT100 added (offer submitted)
Output devicesPhase 4Valves, UV, metering pumps, UV contactor, pump relay/switch layer on BOM
HMIPhase 5CM5-T10W on BOM (backordered at last update)
Physical assemblyPhase 6Hoffman CSD362410 enclosure (36" × 24" × 10", originally NEMA 4/12/13, derated to ~NEMA 12/IP54 after fan cutouts, UL 508A Listed) procured; CP3624G sub-panel sourcing in progress; cooling-system parts (4× Noctua fans + DDR-15G-12 + magnetic filters + grills) acquired or on order; Socomec disconnect, terminal distribution, neutral bar, wire duct, static mixer, tanks
Permitting (San Diego DEH)Pre-submittalSee regulatory

RO-SPEC-001 Rev I (April 2026)

Rev I re-anchors the spec to BOM Rev J — additional procurement around the UV unit, sediment/carbon filter cartridges, SS filter housings, and the second AutomationDirect control-panel buy list. The most material process change remains the UV step-up; the most material panel change is the finalized six-branch breaker architecture and downstream pump/UV control hardware.

AreaChange
UVLarger lamp/reactor in the same controller family — Pulsar PUV-200-20 (20 GPM-class) replaces the previously-specified PUV-200-10-BGF (10 GPM-class). Same controller, same install footprint intent, but ≈ 3.5× the rated throughput at every dose point: 39 GPM @ 16 mJ/cm², 21 GPM @ 30 mJ/cm², 16 GPM @ 40 mJ/cm² (all 95 % UVT). At the 4 GPM recirc design flow, delivered dose climbs from ≈ 44 / 31 mJ/cm² (fresh / EOL) on the -10 to ≈ 158 / 111 mJ/cm² on the -20 — ≈ 7× the USEPA 16 mJ/cm² potability minimum even at end-of-lamp-life, and comfortably above the NSF/ANSI 55 Class A reference dose of 40 mJ/cm² throughout lamp life. The unit itself remains uncertified (Class A is a unit-level type-test, not a dose threshold) — plan-check submittal pathway under SD DEH MFF §IV.C unchanged. Full recalculation in system overview §3.5. Skid-layout impact: reactor diameter steps up from 2.5″ on the -10 to 3.5″ on the -20 (length essentially unchanged at ~36″) and inlet/outlet steps up from ¾″ MNPT to 1″ MNPT — confirm clamps, brackets, and fittings on the recirc loop accordingly. All -20-specific spec values (lamp 42 W / system 51 W, replacement P/Ns 406-PUV-LM-20 / 406-PUV-QS-20, dimensions, port size) sourced from the Pulsar manual p. 22 spec table, now archived at Pulsar-UV-Manual.pdf.
Pre-filtrationSediment cartridge (550-USWPF-4520-05), carbon block (507-USWCB-4520-10), and SS housings (645-PWSSH-120 × 2) procured as already specified — no design change. Confirms the Rev H spec.
Control panel electricalSecond AutomationDirect buy list finalized in BOM Rev J: Socomec SIRCO M main disconnect, 30 A feeder / post-disconnect L1/L2 terminal distribution, isolated neutral bar, wire duct, CB-1/2/3 VFD breakers, CB-4 controls, CB-5 shared metering-pump branch with individual relay / HOA selector controls, and CB-6 UV branch with selector + contactor.

RO-SPEC-001 Rev H (April 2026)

Rev H replaces generic “or equal” component language with the specific make / model / part numbers actually being purchased, aligned with BOM Rev G. The technical spec lives in System overview; this section is the human-readable revision log.

AreaChange
HMIC-more EA9-T10WCLCM5-T10W (newer CM5 series). Software: CM5 Series Software v8.0 (not EA9 Designer).
PLC baseP2-08B (8-slot) → P2-11B (11-slot) — P2-08B was not available on the used market when procurement ran; electrically the same for populated modules, with more expansion slots.
UVSpecified as US Water Systems Pulsar PUV-200-BGF (30 mJ/cm² at 95% UVT at rated flow; recirc at ~4 GPM delivers large margin — see §3.5 in the system spec).
Pre-filtrationUS Water Systems stack: 550-USWPF-4520-05 (5 µm pleated sediment) + 507-USWCB-4520-10 (carbon block), both 4.5″×20″, in 645-PWSSH-120 304 SS housings.
RO membrane vesselUS Water Systems 257-208238 (2540 SS pressure vessel).
ConductivityHanna HI7635 (CT-101); Levtech HMCCS (CT-102, CT-103).
24 VDC field powerMean Well NDR-120-24.
Post-injection mixingKoflo 105955Q34R static mixer on the line into T-102.
ElectricalAutomationDirect LR2 line reactors (input side of VFDs); Southwire VFDC-16-4B-1 shielded VFD cable to motors (§6).
Metering pumpsGrundfos DDC 6-10 AR-PVC/V/C-F-31I001FG (Product No 98586903, × 3) procured. NSF/ANSI 61 is model-level approved per Grundfos catalog (CE · CSA-US · NSF 61 · EAC · RCM); the procured EU-build nameplates carry CE / CSA-US / EAC / RCM (reg N20693) but do not stamp the NSF 61 mark (regional marking practice, not a compliance gap). Plan-check submittal combines the Grundfos catalog page (model-level NSF 61 evidence), nameplate photos, and the wetted-parts materials declaration (PVC head / PTFE diaphragm / ceramic balls / FKM gaskets), filed under SD DEH MFF §IV.C. Full submittal package: Metering pumps §8.

Recent changes

  • May 2026: Controls package — first SDK authoring pass. Stood up a Cursor SDK / Composer-2.5 authoring workflow under controls/water/ and ran the full task battery in one evening, then landed it in two commits (scaffold + Composer output). Sixteen npm run sdk:* tasks are now registered in scripts/cursor-agent/sdk-tasks.ts — each Composer run writes one set of artifacts plus a publication breadcrumb under content/water/controls/. Tag database (controls/water/tags/tags.csv) is 140 rows spanning every physical Slot 1/2/3/4/5 I/O point (cross-checked against WIRE-001 §5–§9), GS21 Modbus mirrors, retained setpoints, 10 recipe arrays, alarm latches, and the CM5 ANN_ALM_WORD0 annunciator word. Structured Text under controls/water/st/ covers cooling (two-stage TT-200 hysteresis + 115 °F OT latch), interlocks (BV-101 + T-101 LSH/LSL + HOA permissives, with ladder-translation memo for the hard-interlock rungs), alarms (rising-edge latch, centralized HMI ack, conditional clears for OT / UV / VFD-reset), UV lockout (disinfection checklist parity + BCD lamp-life decoder), RO sequence (TON soft-start ramp + outer pressure PID + ILK-004 LSH gate), T-102 fill state machine (3-state with SV-TREAT confirm timer + end-of-fill CT-103 snapshot), dosing (cubic carrier-flow curve or FT-102 pulse fallback + Grundfos DDC stroke WORDs + CT-103 trim ±5 %), P-103 distribution PID (anti-windup + 2 Hz/s slew limit + T-102 critical-level inhibit), ice demand (FS-101 routing with UV / disinfect guards + SV-RECIRC polarity coordination), and a delta-recipe helper for barista per-mineral ppm dial-ins. Modbus reference (controls/water/modbus/) corrects the placeholder 40001+hex offset error — verified against the GS20 / GS21 User Manual Rev E: frequency command at 48194 (2001h) ×0.01 Hz, output frequency at 48452 (2103h), fault word at 48449 (2100h) low byte, fault clear pulse at 48195 (2002h) bit 1, plus drive-side setup parameters (P09.00, P09.01=38.4, P09.04=12, P00.20=1, P00.21=2) and the 41554–41559 fault history block. Recipes (controls/water/recipes/) align to RO-SPEC-001 §5.5: SCA Gold Cup, Light Roast — High Extraction, Medium Roast — Balanced, and Rao/Perger Water at indices 0–3 (matching the spec table); JCWS service profiles (Espresso Standard JC, Perla Negra, Matcha service water, still drinking water) at 4–7; two operator NV slots at 8–9. HMI spec (controls/water/hmi/) is an 8-screen ASCII wireframe set (HomeMain, RecipeSelect, RecipeEditDelta, AlarmActive, TrendsMulti, CoolingDetail, UVDisinfectWizard, DiagnosticsForces), a 107-row widget → PLC-tag binding map, and an alarm-strings CSV indexed to the ANN_ALM_WORD0 bit map. Simulator scenarios (controls/water/sim-tests/) cover the 10 representative paths — happy-path fill, UV fault mid-fill, recipe change mid-fill, delta-recipe propagation, cooling stage transitions, RO start/stop, ice blocked by UV, T-101 LSL → P-102 drop, TT-200 OT latch, and the alarm ack wave (UV safety class survives bulk ack). Workflow is documented in controls/water/README.md and the artifact conventions live in controls/water/AGENTS.md. The PLC / HMI vendor projects (.adpro / .cm5) remain hand-assembled on the Windows toolchain host from these sources — there is no automated round-trip into the vendor binaries, and that's intentional given the UL 508A + SD DEH plan-check review trail. Next-up Windows-side validation per content/water/controls/windows-pipeline-validation.md: paste controls/water/st/cooling.st into a Productivity Suite ST task, run the simulator against sim-cooling-stages.md and sim-tt200-overtemp.md, then iterate against the larger ST modules.
  • May 2026: BOM Rev N / RO-SPEC-001 Rev K / WIRE-001 Rev D — added the forced-air cooling system for the Hoffman CSD362410 control enclosure. With 3 VFDs + 3 line reactors + the PLC stack running at load (≈ 200–300 W dissipation) and the Gladiator miniature breakers' +40 °C / 104 °F operating limit binding the thermal design, passive dissipation off the sealed steel shell is no longer adequate at San Diego summer indoor ambient. The cooling system adds: 4× Noctua NF-A12x25 120 mm fans (2 intake low + 2 exhaust high — diagonal airflow that works with convection, ~35 CFM/fan free-air, intake filters derate further), ZYAMY 120 mm magnetic dust filter frames on the intakes (tool-free service), Noctua NA-FG1-12 SX5 wire grills on the inside face of every fan for finger/tool safety, a Mean Well DDR-15G-12 DIN-rail 24→12 VDC converter (15 W, fed from the panel 24 V bus via CB-4), and a generic PT100 3-wire waterproof RTD (TT-200) into the spare channel 2 on the P2-06RTD module. The PLC runs two-stage on/off control on P2-08TRS #2 Y4 / Y5 — stage 1 at ≈ 95 °F (1 intake/exhaust pair), stage 2 at ≈ 105 °F (both pairs), with deadbands on the off-transitions to prevent chatter; the Noctua PWM lead is left unconnected so the fans run full speed when powered. TT-200 is exposed on the HMI for display, logging, and an over-temp alarm. Punching four 4″ side-wall cutouts drops the enclosure rating from NEMA 4 / 12 / 13 (IP66) to ≈ NEMA 12 / IP54 — dust-protected with splash resistance, which remains appropriate for the indoor coffee-shop install but is no longer hose-down or wet-location rated. Single-stage fallback documented (one relay, all four fans together) if simpler logic is preferred at the cost of less granular control. Full detail in System overview §5.7 (physical install) and Wiring plan §14 (cutout layout, relay/fan power wiring, RTD placement, build sequence); BOM now serves Rev N.
  • May 2026: BOM Rev M / RO-SPEC-001 Rev J — T-101 and T-102 procurement path changed from Sanke keg conversion (TBD) to Spike Brewing CF15 (15 gal, T-101) and CF5 (5 gal, T-102), 304 SS conical unitanks via SoCal Brewing Supply. System overview §3.3 updated; BOM page now serves Rev M.
  • April 2026: BOM Rev K / WIRE-001 Rev C — control-panel enclosure procured: Hoffman (nVent) CSD362410 (Concept Single-Door Wall-Mount, 36" H × 24" W × 10" D, gray steel, NEMA Type 4 / 12 / 13 / IP66, UL 508A Listed File E61997) for $377.13 new-open-box on eBay (list price $2,082). Conductive CP3624G sub-panel added as a separate line — required because the §13 grounding scheme bonds DIN rails to the backplate; the plain CP3624 (white-painted) would be electrically isolated by its powder coat at the rail-mounting points. Wiring-plan §2 reworked to fit the tighter 24" usable width vs. the original 30" basis: Zone A now spans two horizontal rails (breakers up top, L1/L2 KN-T8 distribution stacks + NA-414-1 neutral bar below); Zone B drives row carries an explicit 50 mm inter-drive thermal-spacing call-out and line reactors are repositioned above/below the drives rather than beside them; door layout fixes the CM5-T10W HMI top-centre with the four GCX3370-22 selectors in a horizontal row below. Spec-side anchor changed from BOM Rev J → BOM Rev K. See Wiring plan §2 / §13 / §14 and BOM.
  • April 2026: BOM Rev J / WIRE-001 Rev B — finalized second AutomationDirect buy list for the control panel: 36" × 30" × 10" enclosure basis, Socomec SIRCO M main disconnect, L1/L2 KN-T8 distribution stacks, isolated neutral bar, wire duct, branch breakers, ZL-RLS4-24 pump relay module, GCX3370-22 selector switches for MP-101 / MP-102 / MP-103 / UV, and CWC07-00-40V18 UV contactor. Electrical architecture settled at CB-1 20 A 2P for VFD-101, CB-2/CB-3 15 A 2P for VFD-102/103, CB-4 15 A controls, CB-5 15 A shared metering-pump branch with per-pump relay / HOA cutoff, and CB-6 15 A UV branch. See Wiring plan, Dosing pumps wiring, and BOM.
  • April 2026: Bench commissioning plan BENCH-001 Rev B — added Phase 0 (receiving inspection / smoke test) for the day the AutomationDirect parts arrive: lower-bar than Phase A, designed to fit in a weekend, proves every module is alive (Productivity Suite Hardware Configuration → Read from PLC is the receiving-inspection moment) and every I/O point physically responds to a coarse stimulus before any program development starts. Bench BOM restructured into three subsections (always-required / Phase A precision / Phase B 240 V); the loop calibrator is now explicitly optional with documented workarounds (real sensors, 10-turn pot voltage divider, IDE tag-force on the engineering-unit tag downstream of analog scaling). Notes on running the toolchain on a Beelink mini PC over RDP. See Bench commissioning.
  • April 2026: Bench commissioning plan BENCH-001 Rev A published — three-phase build-up that gets the PLC, HMI, and full I/O rail running off a single 120 V wall outlet (Phase A) before adding a 240 V drop for one-drive-at-a-time VFD bench testing (Phase B), with the wet test deferred to on-skid commissioning (Phase C). Includes a bench-only bill of materials (~$100–150 of test gear: 4–20 mA loop calibrator, RTD precision resistors, jumper wires, LEDs) and a per-point sign-off checklist covering every discrete input, analog channel, RTD, and relay output. See Bench commissioning.
  • April 2026: Wiring plan WIRE-001 Rev A published — control-panel wiring intent for the procured Phase 1/2 hardware (P2-550 + P2-11B + 5 I/O modules, 3× GS21 drives + LR2 reactors, Mean Well NDR-120-24 24 VDC PSU, CM5-T10W HMI, DIN/terminal-block stack). Covers power distribution and CB-1…CB-4, panel zoning, per-point I/O assignments, VFD line- and motor-side wiring with single-end shielded cable, RS-485 Modbus daisy chain, HMI Ethernet, single-bus grounding scheme, and a recommended cold-checkout / one-drive-at-a-time bring-up sequence. See Wiring plan.
  • April 2026: System spec Rev I + BOM Rev H — UV unit procured as Pulsar PUV-200-20 (20 GPM-class lamp/reactor, ≈ 3.5× the throughput of the previously-specified PUV-200-10 at every dose point); pre-filter cartridges and SS housings procured as already specified. UV dose calculation in system overview §3.5 fully recalculated; performance summary, materials and standards, and compliance sections updated to match. Spec-rev change list: RO-SPEC-001 Rev I.
  • April 2026: Project rebranded from "Paleo Treats Water Skid" to Juliet Coffee Water System (JCWS) to separate the product identity from the first install location. Docs site moved from water.paleotreats.com to water.juliet.coffee. BOM CSV filenames changed from PT-water-BOM-rev-*.csv to JCWS-BOM-rev-*.csv. Document numbers (RO-SPEC-001 etc.) unchanged.
  • April 2026: System spec Rev H + BOM Rev G — procurement-anchored part numbers; Docusaurus site + BOM CSV workflow documented (static/specs/bom/README.md).
  • BOM moved from Rev F → Rev G; interactive BOM page points at latest CSV.
  • System spec advanced Rev G → Rev H (regulatory Rev G work remains in §8.1; Rev H is the procurement alignment).
  • Site published at water.juliet.coffee.

Next milestones

  1. Receive and inspect the second AutomationDirect order — verify breakers, terminal distribution, relay module, selector switches, UV contactor, and panel infrastructure against BOM Rev K
  2. Phase 0 receiving inspection of the AutomationDirect controls — confirm every module boots and responds to a stimulus before starting program development; per Bench commissioning §3 (one weekend, 120 V only)
  3. PLC bench setup with first real I/O test — execute Bench commissioning Phase A, including pump selector/relay and UV selector/contactor control checks where safe
  4. Receive Spike CF15/CF5 — confirm TC port layout vs. P&ID; complete NSF 61 documentation
  5. Punch the four 4″ cooling-fan cutouts on the Hoffman CSD362410 side walls per Wiring plan §14.2, install the Noctua fans + ZYAMY filters + NA-FG1-12 grills + DDR-15G-12 converter + TT-200 RTD, and bench-verify the two-stage control logic per System overview §5.6
  6. Windows-side controls validation — RDP into the toolchain box, git pull, paste controls/water/st/cooling.st into a Productivity Suite ST task, run the offline simulator against controls/water/sim-tests/sim-cooling-stages.md + sim-tt200-overtemp.md, log results in the cooling breadcrumb. Then proceed through the remaining ST modules in dependency order (interlocks → alarms → UV lockout → RO sequence → fill SM → dosing → P-103 PID → ice demand).
  7. Initial CM5 HMI screen build — translate controls/water/hmi/screens.md wireframes into the CM5 Series Software v8.0 designer; wire tag bindings per controls/water/hmi/bindings.md; load alarm strings from controls/water/hmi/alarm-strings.csv.
  8. Confirm GS21 Modbus register numbering in GSoft2 against the Modbus reference and update controls/water/tags/tags.csv MB_* placeholders with the verified addresses.
  9. Pre-submittal meeting with San Diego DEH — the Controls package index is the first draft of the "Section 4 — Control logic" exhibit for the plan-check submittal.

How to read this page

The Last updated timestamp at the bottom of every page (this one included) comes straight from git. If something was last touched a month ago, it really was last touched a month ago.