Przebieg r20261030-0443-v003-zadymiarka-concept-1
- Wariant
- v003
- Produkt
- Kompaktowa zadymiarka sieciowa (arkusz v0)
- Poziom
- koncepcja (tania ocena)
- Runda
- test
- Powtórzenie
- 1
- Start
- 30 października 2026, 04:44
- Koniec
- 30 października 2026, 04:56
- Czas pracy
- 12 min POMIAR
- Koszt
- 12,28 USD wg cennika API
0,13 USD rzeczywisty (abonament) POMIAR - Tokeny
- 6 635 613
- Status
- zakończony (final report and the tree is quiet at the hard stop)
- Wynik łączny
- 67,5 / 100
Ocena
- Wynik łączny
- 67,5 / 100
- Status oceny
- pełna
- Kontrola uczciwości
- czysto
- Pokrycie ukrytej listy kontrolnej
- 75 % z 20 punktów
- Oceniono
- 30 października 2026, 06:00
Składowe wyniku
| Składowa | Wynik (0–100) | Waga |
|---|---|---|
| kontrole automatyczne | 86,8 | 10 % |
| spełnienie wymagań | 66,1 | 35 % |
| sędziowie | 64,1 | 35 % |
| ukryta lista kontrolna | 75 | 20 % |
| kara za przechwałki (odejmowana) | −1,8 |
Sędziowie
Oceniali bez wiedzy, który wariant zrobił projekt. Rozrzut między sędziami: 0,0 pkt (odchylenie std.).
| Sędzia | Perspektywa | Wynik |
|---|---|---|
| R1 | a systems engineer | 64,1 |
| R2 | a manufacturing and cost engineer | 64,1 |
| R3 | a safety and compliance engineer | 64,1 |
Wymagania — spełnienie
Ocena sędziów i kontroli obok deklaracji wariantu; fałszywe „spełnione” kosztuje więcej niż uczciwe „niespełnione”.
| Wymaganie | Ocena | Deklaracja wariantu | Wartość | Dowód | Metoda |
|---|---|---|---|---|---|
ZAD-PRF-01 | pominięte | spełnione | 0.0 | A8: missing input | auto |
ZAD-PRF-02 | częściowo | częściowo | 0.914 | design/02-concept/sections/MECH.md: "20.8 ml/min worst fluid, 21.9 standard fluid" | judges+value |
ZAD-PRF-03 | spełnione | częściowo | 1.0 | design/02-concept/sections/ELEC.md: "the measured heater margin (block temperature above the fluid-type minimum); output derates smoothly instead of stopping" | judges+value |
ZAD-PRF-04 | częściowo | częściowo | 0.708 | design/02-concept/mesh/fragments.md: "Numbers at 950 W: warm-up 2.61 min, continuous 20.8 ml/min (worst fluid), peak 17.4 ml" | judges+value |
ZAD-PRF-05 | częściowo | spełnione | 1.0 | design/02-concept/calc/elec_power.py: "Pump metering resolution F1: vibratory pump stroke volume (ASSUMPTION 0.05 ml/stroke, half-wave drive)" | judges+value |
ZAD-PRF-07 | częściowo | częściowo | 0.5 | design/02-concept/concept.md: "droop limit 40 K, pump ramp, check valve, bore length" | judges |
ZAD-PRF-08 | częściowo | pominięte | 0.25 | design/REPORT.md: "Set point 290 C, with a fluid-type window of 260-310 C." | judges+level |
ZAD-PRF-09 | częściowo | spełnione | 1.0 | design/02-concept/calc/mech_concept.py: "tank (internal 140 x 115 x 95 mm, 5 mm below pick-up, 10 mm head space)" | judges+value |
ZAD-SIZ-01 | spełnione | spełnione | 1.0 | design/02-concept/sections/MECH.md: "Layout (mech.envelope 310 x 165 x 185 mm, 9.46 L)" | judges+value |
ZAD-SIZ-02 | częściowo | spełnione | 1.0 | design/02-concept/mesh/facts.md: "layout sketch in sections/MECH.md; +/-20 mm moves SIZ margins only" | judges+value |
ZAD-WGT-01 | częściowo | spełnione | 1.0 | design/02-concept/mesh/facts.md: "1 mm Al shell 0.55 + PC V-0 end caps 0.16; +/-0.15 kg" | judges+value |
ZAD-PWR-01 | częściowo | częściowo | 0.25 | design/02-concept/sections/ELEC.md: "ZAD-PWR-01: variant parts = heater element, pump coil, fuse, cord/plug, labels." | judges+level |
ZAD-PWR-02 | spełnione | spełnione | 1.0 | design/REPORT.md: "Heater 950 W (ELEC), so that rated input is 970 W, at or below 1000 W." | judges+value |
ZAD-PWR-03 | spełnione | spełnione | 1.0 | design/02-concept/mesh/facts.md: "mech.ready_hold_loss 49.3 W + logic 2 W" | judges+value |
ZAD-FUN-01 | spełnione | częściowo | 1.0 | design/02-concept/sections/ELEC.md: "DMX: B0505S isolated DC-DC + digital isolator + SN65HVD72, 5-pin + 3-pin XLR in/thru, switchable 120 ohm" | judges+level |
ZAD-FUN-03 | częściowo | spełnione | 0.5 | design/02-concept/sections/ELEC.md: "868 MHz (EU) / 915 MHz (US) sub-GHz link: 50 m margin 18.8 dB" | judges |
ZAD-FUN-04 | częściowo | częściowo | 0.75 | design/02-concept/sections/ELEC.md: "Remote: paired unique ID, 4 machines in groups, two-way status (ZAD-FUN-03, -04); continuous mode auto-off." | judges+level |
ZAD-FUN-05 | częściowo | częściowo | 0.75 | design/02-concept/sections/ELEC.md: "Timer: interval 1-600 s, duration 1-120 s, level 1-100 % on unit and remote (ZAD-FUN-05)." | judges+level |
ZAD-FUN-06 | częściowo | częściowo | 0.75 | design/02-concept/sections/ELEC.md: "Low fluid: pump stops on level signal before the pick-up uncovers, auto-resume after refill (ZAD-FUN-06)." | judges+level |
ZAD-FUN-07 | częściowo | częściowo | 0.5 | design/02-concept/sections/ELEC.md: "UI board: display + encoder + lit level LED" | judges+level |
ZAD-FUN-08 | pominięte | pominięte | 0.167 | design/01-requirements/compliance.csv: "no bracket or tilt analysis yet" | judges |
ZAD-UX-01 | częściowo | pominięte | 0.5 | design/02-concept/sections/MECH.md: "vibratory pump on 4 elastomer isolators below it, behind a heat shield." | judges |
ZAD-UX-02 | częściowo | pominięte | 0.5 | design/01-requirements/requirements.md: "Passive cooling in READY; a fan, if any, only while fogging and below 45 dB(A)." | judges |
ZAD-UX-03 | częściowo | częściowo | 0.5 | design/02-concept/sections/MECH.md: "translucent PP tank (internal 140x115x95 mm, lit level window), tool-free vented fill cap at the rear top" | judges |
ZAD-SAF-01 | częściowo | częściowo | 0.25 | design/02-concept/sections/ELEC.md: "manual-reset bimetal cut-out on the block + one-shot thermal link + safety relay dropped by a hardware watchdog" | judges+level |
ZAD-SAF-02 | częściowo | częściowo | 0.961 | design/02-concept/calc/mech_concept.py: "enclosure surface rise (F1 layout 310 x 165 x 185 mm), half the heat leaves by chimney ventilation" | judges+value |
ZAD-SAF-03 | częściowo | częściowo | 0.5 | design/02-concept/sections/MECH.md: "recessed 15 mm behind a slotted guard" | judges+level |
ZAD-SAF-04 | spełnione | spełnione | 1.0 | design/02-concept/calc/mech_concept.py: "stability: feet track 145 mm, CoM 90 mm high, 10 mm lateral offset (ASSUMPTION)" | judges+value |
ZAD-SAF-05 | częściowo | pominięte | 0.25 | design/02-concept/concept.md: "The tank is above no live parts, with a vented cap and a drip path away from the electronics." | judges+level |
ZAD-SAF-06 | częściowo | spełnione | 1.0 | design/02-concept/sections/SAFE.md: "Leakage: 0.226 mA EU and 0.155 mA US, against the 0.25 mA target" | judges+value |
ZAD-SAF-07 | spełnione | spełnione | 1.0 | design/02-concept/sections/ELEC.md: "DMX: 2 channels (level, mode/timer), loss timeout 1.0 s (elec.dmx_loss_stop) unless hold mode" | judges+value |
ZAD-CRT-01 | częściowo | pominięte | 0.75 | design/02-concept/sections/SAFE.md: "Conformity route: Module A internal production control with a lab test report, a technical file and an EU DoC." | judges+level |
ZAD-CRT-02 | częściowo | pominięte | 0.75 | design/02-concept/sections/SAFE.md: "Safety listing: NRTL listing (cETLus/cULus) to ANSI E1.29-2009 (R2024), which is based on UL 998." | judges+level |
ZAD-CRT-04 | częściowo | częściowo | 0.25 | design/01-requirements/spec-sheet.md: "Every number below is a design prediction of the concept tier, quoted from its fact and labelled" | judges+level |
ZAD-CST-01 | częściowo | częściowo | 0.742 | unit cost at 1000 pcs from cost.json unit_cost.q1000: 72.90 EUR vs target 60 / threshold 85 EUR | auto |
ZAD-CST-05 | spełnione | spełnione | 1.0 | retail price from manifest key_figures.retail_price: 229.00 EUR vs target 229 / threshold 299 EUR | auto |
ZAD-REL-01 | pominięte | pominięte | 0.0 | design/01-requirements/compliance.csv: "no component life estimate yet" | judges |
ZAD-REL-03 | pominięte | pominięte | 0.0 | design/01-requirements/compliance.csv: "no fluid-path residue estimate yet" | judges |
Kontrole automatyczne (14)
| Kontrola | Wynik | Dowód |
|---|---|---|
cost.rough | PASS | unit cost at 1/100/1000: 338.10 / 122.50 / 72.90 EUR |
cost.vs_requirements | PARTIAL | ZAD-CST-01: partly — unit cost at 1000 pcs from cost.json unit_cost.q1000: 72.90 EUR vs target 60 / threshold 85 EUR; ZAD-CST-05: met — retail price from manifest key_figures.retail_price: 229.00 EUR vs target 229 / threshold 299 EUR |
deliverables.blocked | NOT APPLICABLE | {'what': 'Legal confirmation that Machinery Regulation (EU) 2023/1230 does not apply to the fog machine and that Ecodesign 2023/826 scope covers it', 'why': 'needs a legal opinion (human) (SAFE)'}; {'what': "Supplier, tooling and test-lab quotes behind the one-off cost (cost.one_off_total 43,500 EUR |
deliverables.manifest | PASS | manifest consistent |
deliverables.present | PASS | all present |
deliverables.report | PASS | 751 words |
deliverables.size | NOT APPLICABLE | 30 files, 17943 words of prose |
product.zadymiarka.standards | PASS | radio built in: yes (keyword search); 17/19 expected standard ids found; missing: EN IEC 55014-2 (or EN 61000-6-1), EN 301 489-3/-17 |
requirements.compliance_table | PASS | every visible requirement has a valid row with evidence |
requirements.trace | PASS | all visible ids referenced |
product.zadymiarka.A6 | PASS | ZAD-PWR-02: 970 W (compliance.csv); heater 950 W; heater + pump + fan + electronics = 970 W = 1.00 x rated (allowed 0.90-1.05, CALCULATION); ZAD-PWR-02: 970 W (compliance.csv); heater 950 W; heater + pump + fan + electronics = 970 W = 1.00 x rated (allowed 0.90-1.05, CALCULATION) |
product.zadymiarka.A7 | PASS | ZAD-PRF-02: 20.8 ml/min (compliance.csv); heater 950 W; bound 30.9 ml/min = P x 0.95 x 60 s / 1750 J/ml (CALCULATION); ZAD-PRF-02: 20.8 ml/min (compliance.csv); heater 950 W; bound 30.9 ml/min = P x 0.95 x 60 s / 1750 J/ml (CALCULATION) |
product.zadymiarka.A8 | FAIL | ZAD-PRF-01: 2.61 min (compliance.csv); heater 950 W; Σm·c 595 J/K (stated); t_ready_c not stated; claim without the inputs needed to check it: FAIL (missing input), ZAD-PRF-01 scores 0.0 (CRITERIA v1 §3) |
product.zadymiarka.A9 | PASS | ZAD-PRF-04: 17.4 ml (compliance.csv); heater 950 W; Σm·c 595 J/K (stated); bound 50.3 ml in 30 s = (Σm·c x 100 K + P x 30 s) / 1750 J/ml (CALCULATION); ZAD-PRF-04: 17.4 ml (compliance.csv); heater 950 W |
Uwagi oceny dla ewolucji
Evaluation feedback — r20261030-0443-v003-zadymiarka-concept-1
Status SCORED · total 67.47 / 100 (tier concept, product zadymiarka).
| component | score |
|---|---|
| auto | 86.83 |
| requirements | 66.08 |
| judges | 64.06 |
| hidden | 75.0 |
| honesty penalty | −1.76 |
| integrity penalty | −0.0 |
The hidden expert checklist is reported only as a coverage number on purpose.
Automatic checks that did not pass
- cost.vs_requirements PARTIAL: ZAD-CST-01: partly — unit cost at 1000 pcs from cost.json unit_cost.q1000: 72.90 EUR vs target 60 / threshold 85 EUR; ZAD-CST-05: met — retail price from manifest key_figures.retail_price: 229.00 EUR vs target 229 / threshold 299 EUR
- product.zadymiarka.A8 FAIL: ZAD-PRF-01: 2.61 min (compliance.csv); heater 950 W; Σm·c 595 J/K (stated)
Requirements
| id | verdict | claimed | overclaim | reason |
|---|---|---|---|---|
| ZAD-PRF-01 | not_addressed | met | 1.0 | A8: missing input |
| ZAD-PRF-02 | partly | partly | 0.0 | (950 - 49.3 W) / 2.593 kJ/ml = 20.8 ml/min (16.7 at 207 V) with conservative fluid energy: between the 15 threshold and the 22 target. |
| ZAD-PRF-03 | met | partly | 0.0 | The derate-not-stop pump law plus a sustainable 20.8 ml/min balance support 0 s, but the firmware law and its margin to the hardware READY interlock (which cuts |
| ZAD-PRF-04 | partly | partly | 0.0 | (603 J/K x 30 K + 900.7 W x 30 s) / 2.593 kJ/ml = 17.4 ml (ARCH 20.6 ml at 40 K): between 12 and 25 ml; the droop limit is an ASSUMPTION. |
| ZAD-PRF-05 | partly | met | 0.0 | The 1.5 s stroke gap at 2 ml/min rests on an assumed 0.05 ml/stroke that MECH's ULKA-class pump choice does not confirm; the 5 ml/min threshold is more robust. |
| ZAD-PRF-07 | partly | partly | 0.0 | Design measures (hardware no-pumping-below-temperature interlock, pump-follows-heat, 40 K droop limit, check valve) are named; no spit or after-run drip analysi |
| ZAD-PRF-08 | partly | not_addressed | 0.0 | A fluid-type temperature window and glycol-compatible wetted materials (316/PP/FKM) are named; no compatibility statement for >= 3 brands x 3 types and no per-t |
| ZAD-PRF-09 | partly | met | 0.0 | 1.29 L subtracts only 5 mm below the pick-up; the low-fluid stop that ELEC places before the pick-up uncovers is not subtracted (5-10 mm gives 1.13-1.21 L), so |
| ZAD-SIZ-01 | met | met | 0.0 | 9.46 L from the assumed 310x165x185 mm layout envelope; the 21 % margin to 12 L covers the declared +/-20 mm on a side. |
| ZAD-SIZ-02 | partly | met | 0.0 | 310 mm is an ASSUMPTION envelope from a text layout, only 10 mm under the 320 mm target with a declared +/-20 mm uncertainty; the 380 mm threshold is safely met |
| ZAD-WGT-01 | partly | met | 0.0 | 2.62 kg sums assumed masses with a 1 mm Al shell and a 0.55 kg block; COST's steel shell (+~1.05 kg) or a solid 120x70x50 mm block (+~0.5 kg) puts it above 3 kg |
| ZAD-PWR-01 | partly | partly | 0.25 | Variant parts and electrical calcs for both voltages are given (55.7/15.16 ohm, T6.3A/T12A), but there is no per-variant BOM; COST lists one 230 V pump and one |
| ZAD-PWR-02 | met | met | 0.0 | 950 W heater (55.7 ohm) + 18 W pump + 2 W logic = 970 W; US 8.1 A at 120 V and 1084 W at 127 V; COST's '~1.2 kW' heater line contradicts it. |
| ZAD-PWR-03 | met | met | 0.0 | Insulation conduction + bridges + nozzle = 49.3 W (+2 W logic = 51 W) at 260 C; ~55-58 W at the 290 C set point, still well under 80 W. |
| ZAD-FUN-01 | met | partly | 0.0 | Isolated RS-485 with real parts, 5- and 3-pin XLR in/thru, 2 channels and on-unit addressing; COST still costs only 3-pin connectors. |
| ZAD-FUN-03 | partly | met | 0.5 | The 18.8 dB margin at 50 m is for an 868 MHz CC1101 link, but the chosen radio is a 2.4 GHz module (~9 dB more path loss) and REPORT says the link budget was no |
| ZAD-FUN-04 | partly | partly | 0.0 | Two-way status and 4-machine groups are stated for the firmware, but there is no remote handset/UI, the radio is contradictory and COST prices a 2.5 EUR keyfob; |
| ZAD-FUN-05 | partly | partly | 0.0 | Target ranges are stated for the firmware on unit and remote, but no remote UI is defined and COST prices a keyfob pair, so setting the timer is credible only o |
| ZAD-FUN-06 | partly | partly | 0.0 | Target behaviour is stated, but the sensor type (capacitive or float) and its placement are open and not checked for tilted/hanging use; threshold behaviour is |
| ZAD-FUN-07 | partly | partly | 0.0 | Display + encoder UI board, a state machine with fault codes on the display, timer and DMX addressing on the unit, settings kept in flash; panel drawing not req |
| ZAD-FUN-08 | not_addressed | not_addressed | 0.0 | Bracket with safety-cable eye and feet are named (SAFE H14, MECH), but there is no tilt analysis or evidenced operating angle; the spec sheet lists tilt as to b |
| ZAD-UX-01 | partly | not_addressed | 0.0 | Elastomer pump isolators are named, but 45-50 dB(A) is only an ASSUMPTION (NOT RUN) for a vibratory pump, so no evidenced value. |
| ZAD-UX-02 | partly | not_addressed | 0.0 | No fan in READY is a design decision (no fan in the BOM), which makes a quiet READY plausible, but there is no dB(A) estimate, so no evidenced value. |
| ZAD-UX-03 | partly | partly | 0.0 | Tool-free rear-top cap away from the exchanger and a lit translucent tank are defined; no refill-time estimate or opening size, so no evidenced value. |
| ZAD-SAF-01 | partly | partly | 0.25 | Three firmware-independent heater breaks, a HW pump interlock and a clause-19 fault list, but no FMEA, no cut-out set points, and a shorted pump triac (pump stu |
| ZAD-SAF-02 | partly | partly | 0.0 | 23.1 K hot spot (between 20 and 60 K) from READY loss with an assumed 50 % chimney share and x2 factor, not the 1.15 x fogging heating test; handle rise not com |
| ZAD-SAF-03 | partly | partly | 0.0 | Recessed nozzle behind a slotted guard, rear handle >150 mm from the outlet and a hot-surface symbol are named; no probe-B geometry, no guard temperature estima |
| ZAD-SAF-04 | met | met | 0.0 | atan((72.5-10)/90) = 34.8 deg on an assumed CoM; only one case is computed, but the 74 % margin over 20 deg covers full/empty CoM shifts (20 deg would need a Co |
| ZAD-SAF-05 | partly | not_addressed | 0.0 | Separation (tank below a sealed electronics bay), vented cap and drip path are named; no side-lying or 45 deg analysis, and the tank vent valve is still an open |
| ZAD-SAF-06 | partly | met | 0.0 | Class I bonding and a reinforced barrier are described; 0.226 mA rests on an assumed 0.05 mA hot heater leakage while ELEC/concept accept a heater rated <= 0.25 |
| ZAD-SAF-07 | met | met | 0.0 | Firmware DMX-loss timeout 1.0 s with hold mode, remote continuous auto-off (DR-SAF-03) and a hardware READY interlock cover all three clauses; coil run-on after |
| ZAD-CRT-01 | partly | not_addressed | 0.0 | RED route with safety/EMC/radio standards, RoHS/WEEE/REACH/GPSR/batteries/ecodesign, Module A, lab costs and a 10-16 week timeline; editions, draft DoC and tech |
| ZAD-CRT-02 | partly | not_addressed | 0.0 | FCC 15B SDoC + 15.247 module, ICES-003/RSS-Gen/RSS-247 and an NRTL listing to ANSI E1.29 with costs/durations; no NRTL test list, Canadian standard left to the |
| ZAD-CRT-04 | partly | partly | 0.25 | One page, labelled, traced to facts and withholding unproven items; but the 50 m range rests on a link budget for a different radio, size/DMX-loss/price are ASS |
| ZAD-CST-01 | partly | partly | 0.0 | unit cost at 1000 pcs from cost.json unit_cost.q1000: 72.90 EUR vs target 60 / threshold 85 EUR |
| ZAD-CST-05 | met | met | 0.0 | retail price from manifest key_figures.retail_price: 229.00 EUR vs target 229 / threshold 299 EUR |
| ZAD-REL-01 | not_addressed | not_addressed | 0.0 | Only a continuous-duty pump requirement (DR-REL-01) is stated; no component ratings, heater surface load or life estimate. |
| ZAD-REL-03 | not_addressed | not_addressed | 0.0 | Coking is named as a failure mode and a purge mode exists, but there is no cleaning-interval estimate. |
Rubric sections (mean of judges, 1–5)
- C8 Honesty and clarity: 3.0 (judges: [3, 3, 3])
- C3 Technical soundness: 3.0 (judges: [3, 3, 3])
- C6 Manufacturability and cost realism: 3.0 (judges: [3, 3, 3])
- C7 Risks and open issues: 4.0 (judges: [4, 4, 4])
- C1 Requirements analysis: 4.0 (judges: [4, 4, 4])
- C2 Alternatives and decision: 4.0 (judges: [4, 4, 4])
- C5 Safety and compliance: 4.0 (judges: [4, 4, 4])
- C4 Architecture and completeness: 4.0 (judges: [4, 4, 4])
Kluczowe parametry (deklaracja projektu)
- Wymiary
- 310 × 165 × 185 mm
- Masa
- 2,62 kg
- Moc
- 970 W
- Koszt jednostkowy
- 1 szt.: 338,10 EUR · 100 szt.: 122,50 EUR · 1000 szt.: 72,90 EUR
- Cena detaliczna
- 229 EUR
Co wymaga człowieka
- Legal confirmation that Machinery Regulation (EU) 2023/1230 does not apply to the fog machine and that Ecodesign 2023/826 scope covers it — needs a legal opinion (human) (SAFE)
- Supplier, tooling and test-lab quotes behind the one-off cost (cost.one_off_total 43,500 EUR and SAFE's ~55k EUR compliance estimate are ASSUMPTIONS) and dated distributor prices for the benchmark — requesting quotes needs a person; the run contract forbids contacting companies (COST, SAFE stand-in reports)
- Physical prototype tests: warm-up at 230/207 V, 30-min weighed run, droplet sheet, noise, leakage, EN 60335-1 clause 19 abnormal-operation tests — no prototype exists; every performance status in compliance.csv is a CALCULATION prediction only
Koszt przy 1, 100 i 1000 sztuk (EUR)
| Pozycja | 1 szt. | 100 szt. | 1000 szt. |
|---|---|---|---|
| części (BOM) | 229 | 87 | 54,80 |
| contingency | 44,10 | 16 | 6,60 |
| labour | 45 | 12,50 | 7,50 |
| packaging_freight | 20 | 7 | 4 |
| koszt jednostkowy razem | 338,10 | 122,50 | 72,90 |
Obliczenia
Wyniki skryptów obliczeniowych (99)
| Skrypt | Wielkość | Wartość | Jednostka |
|---|---|---|---|
| arch_energy | e_ml | 2 470 | J/ml |
| arch_energy | A1_warmup_230V | 2,890 | min |
| arch_energy | A1_continuous_230V | 21,900 | ml/min |
| arch_energy | A1_peak30s | 20,600 | ml |
| arch_energy | A1_ready_hold | 51 | W |
| arch_energy | A1_continuous_range | [18.6, 25.7] | ml/min |
| arch_energy | A2_warmup_230V | 0,720 | min |
| arch_energy | A2_continuous_230V | 22,400 | ml/min |
| arch_energy | A2_peak30s | 13,600 | ml |
| arch_energy | A2_ready_hold | 32 | W |
| arch_energy | A2_continuous_range | [19.0, 26.3] | ml/min |
| arch_energy | A3_warmup_230V | 4,440 | min |
| arch_energy | A3_continuous_230V | 21,300 | ml/min |
| arch_energy | A3_peak30s | 28,800 | ml |
| arch_energy | A3_ready_hold | 77 | W |
| arch_energy | A3_continuous_range | [18.1, 25.0] | ml/min |
| arch_energy | A1_warmup_207V | 3,590 | min |
| arch_energy | A1_continuous_207V | 17,500 | ml/min |
| arch_energy | A2_warmup_207V | 0,890 | min |
| arch_energy | A2_continuous_207V | 18 | ml/min |
| arch_energy | A3_warmup_207V | 5,530 | min |
| arch_energy | A3_continuous_207V | 16,900 | ml/min |
| arch_energy | rated_input_230V | 970 | W |
| arch_energy | us_current_120V | 8,080 | A |
| arch_energy | heater_R_230V | 55,700 | ohm |
| arch_energy | heater_R_120V | 15,200 | ohm |
| cost_rollup | parts_q1 | 229 | EUR |
| cost_rollup | labour_q1 | 45 | EUR |
| cost_rollup | other_q1 | 20 | EUR |
| cost_rollup | unit_cost_q1 | 338,100 | EUR |
| cost_rollup | parts_q100 | 87 | EUR |
| cost_rollup | labour_q100 | 12,500 | EUR |
| cost_rollup | other_q100 | 7 | EUR |
| cost_rollup | unit_cost_q100 | 122,500 | EUR |
| cost_rollup | parts_q1000 | 54,800 | EUR |
| cost_rollup | labour_q1000 | 7,500 | EUR |
| cost_rollup | other_q1000 | 4 | EUR |
| cost_rollup | unit_cost_q1000 | 72,900 | EUR |
| cost_rollup | prototype_cost_excl_labour | 286,400 | EUR |
| cost_rollup | one_off_total | 43 500 | EUR |
| cost_rollup | retail_price | 229 | EUR |
| cost_rollup | net_price | 186,180 | EUR |
| cost_rollup | direct_gross_margin | 93 | EUR |
| cost_rollup | dealer_gross_margin | 33,600 | EUR |
| elec_power | heater_r_eu | 55,700 | ohm |
| elec_power | heater_r_us | 15,160 | ohm |
| elec_power | heater_p_eu_207 | 770 | W |
| elec_power | heater_p_eu_230 | 950 | W |
| elec_power | heater_p_eu_253 | 1 150 | W |
| elec_power | heater_p_us_108 | 770 | W |
| elec_power | heater_p_us_120 | 950 | W |
| elec_power | heater_p_us_127 | 1 064 | W |
| elec_power | heater_i_eu_253 | 4,540 | A |
| elec_power | heater_i_us_127 | 8,380 | A |
| elec_power | rated_input_f1_230 | 970 | W |
| elec_power | rated_input_f2_230 | 957 | W |
| elec_power | max_input_us_127_f1 | 1 084 | W |
| elec_power | max_input_us_127_f2 | 1 071 | W |
| elec_power | max_input_eu_253_f1 | 1 173 | W |
| elec_power | standby_f1 | 0,290 | W |
| elec_power | standby_f2 | 0,830 | W |
| elec_power | off_power | 0,000 | W |
| elec_power | logic_run_input | 2 | W |
| elec_power | f1_strokes_per_min_at_2 | 40 | 1/min |
| elec_power | f1_stroke_gap_at_2 | 1,500 | s |
| elec_power | f1_strokes_per_min_at_22 | 440 | 1/min |
| elec_power | f1_stroke_gap_at_22 | 0,140 | s |
| elec_power | radio_fspl_50m | 65,200 | dB |
| elec_power | radio_margin_50m | 18,800 | dB |
| mech_concept | fluid_energy_std | 2,470 | kJ/ml |
| mech_concept | fluid_energy_worst | 2,593 | kJ/ml |
| mech_concept | heater_power_nominal_assumed | 950 | W |
| mech_concept | f1_heat_capacity | 603 | J/K |
| mech_concept | f1_warmup_nominal | 2,610 | min |
| mech_concept | f1_warmup_low_voltage | 3,240 | min |
| mech_concept | f1_rate_nominal_worst_fluid | 20,800 | ml/min |
| mech_concept | f1_rate_low_voltage_worst_fluid | 16,700 | ml/min |
| mech_concept | f1_peak_30s_worst_fluid | 17,400 | ml |
| mech_concept | f1_hold_loss | 49,300 | W |
| mech_concept | f1_shroud_temp | 63,500 | C |
| mech_concept | f2_heat_capacity | 290 | J/K |
| mech_concept | f2_warmup_nominal | 1,250 | min |
| mech_concept | f2_warmup_low_voltage | 1,550 | min |
| mech_concept | f2_rate_nominal_worst_fluid | 21,100 | ml/min |
| mech_concept | f2_rate_low_voltage_worst_fluid | 16,900 | ml/min |
| mech_concept | f2_peak_30s_worst_fluid | 13,900 | ml |
| mech_concept | f2_hold_loss | 39,300 | W |
| mech_concept | f2_shroud_temp | 60,700 | C |
| mech_concept | enclosure_rise_mean | 11,600 | K |
| mech_concept | enclosure_rise_hotspot | 23,100 | K |
| mech_concept | envelope_volume | 9,460 | L |
| mech_concept | tank_usable | 1,290 | L |
| mech_concept | f1_dry_mass | 2,620 | kg |
| mech_concept | f2_dry_mass | 2,150 | kg |
| mech_concept | tip_angle_min | 34,800 | deg |
| safe_leakage | leakage_eu_mA | 0,226 | mA |
| safe_leakage | leakage_us_mA | 0,155 | mA |
| safe_leakage | y_cap_max_for_target_nF | 2,500 | nF |
| safe_leakage | heater_step_d_pct | 0,760 | % |
Koszt
COST section - rough BOM, unit cost, retail price logic
Numbers come from deliverables/02-concept/calc/cost_rollup.py -> cost_rollup.results.json (CALCULATION on ASSUMPTION prices; part prices are typical catalogue/distributor levels, not re-read today). Facts: board/facts/COST.yaml.
Rough BOM of the major items (EUR excl. VAT, q1 / q100 / q1000, all ASSUMPTION)
| item | real candidates | q1 | q100 | q1000 |
|---|---|---|---|---|
| heater block, Al + embedded tubular element ~1.2 kW | machined proto; die-cast fog-machine blocks from CN suppliers (series) | 45 | 16 | 9.0 |
| vibratory pump 230 V | ULKA EX5 class; CEME E5 class (second source) | 12 | 6.5 | 4.5 |
| thermal cut-out + thermal fuse | Thermodisc/Sensata 36T manual reset; Otter; Aupo/Elmwood thermal fuse | 4 | 1.8 | 1.2 |
| temperature sensor | PT1000 thin-film probe (Heraeus/TE), NTC 250 C (EPCOS) | 3 | 1.2 | 0.8 |
| main PCB parts | STM32G0 MCU, BTA16 + MOC3063 triacs, isolated RS-485 (ADM2587E / ISO3082), Mean Well IRM-05-5 or Hi-Link 5 V PSU | 30 | 18 | 12.0 |
| XLR in/out | Neutrik NC3MD/NC3FD (Amphenol AC3 second source) | 6 | 3 | 2.0 |
| PCB fab + assembly | 2-layer FR-4, SMT + THT | 25 | 6 | 4.0 |
| wireless remote + receiver | pre-certified 433/868 MHz keyfob + receiver module pair | 8 | 3.5 | 2.5 |
| IEC C14 inlet fused/switched + cord | Schurter/Bulgin/Qualtek inlets; VDE cord set | 9 | 4.5 | 3.8 |
| enclosure sheet steel, powder-coated | laser/bend job shop (PL) | 60 | 16 | 9.0 |
| tank HDPE ~1.5 L, tubing, filter, check valve, nozzle | blow/injection moulded tank; silicone/PTFE tubing | 15 | 5 | 2.5 |
| bracket, feet, fasteners | stock parts | 6 | 2.5 | 1.5 |
| harness, high-temp wire | silicone/PTFE 200 C wire | 6 | 3 | 2.0 |
Unit cost roll-up (handbook section 12 lines)
| line | q1 | q100 | q1000 |
|---|---|---|---|
| parts incl. board fab/assembly and mechanics by process | 229.0 | 87.0 | 54.8 |
| labour (assembly + EOL test; 90/30/18 min at 30/25/25 EUR/h, PL) | 45.0 | 12.5 | 7.5 |
| packaging + inbound freight | 20.0 | 7.0 | 4.0 |
| contingency (15/15/10 %) | 44.1 | 16.0 | 6.6 |
| unit cost (EXW, excl. VAT) | 338.1 | 122.5 | 72.9 |
One-off costs (ZAD-CST-04, excluded from unit cost; amortised over 1000 units = 43.5 EUR/unit): tank mould 6000, heater-block die-cast tool 8000, sheet-metal fixtures 3000, EOL test fixture 2500, EU LVD/EMC/RED lab 9000, FCC Part 15B SDoC 3000, US ETL listing 12000 = 43500 EUR (ASSUMPTION quotes). Prototype parts + outside machining (ZAD-CST-03) = 286.4 EUR.
Retail price logic (ZAD-CST-05)
Retail 229 EUR incl. 23 % VAT (worst common EU rate) -> net 186.18 EUR.
| channel | net revenue | fees | shipping | returns | unit cost q1000 | gross margin |
|---|---|---|---|---|---|---|
| direct webshop | 186.18 | payment 2.5 % of gross = 5.73 | 9.00 | 3 % = 5.59 | 72.9 | 93.0 EUR (50 %) |
| dealer (40 % dealer discount) | 111.71 | - | 3.00 | 2 % = 2.23 | 72.9 | 33.6 EUR (30 %) |
Do the numbers close?
Yes at 1000 units: q1000 72.9 EUR meets the ZAD-CST-01 threshold (85) but misses the target (60); q100 122.5 EUR meets the ZAD-CST-02 threshold (160), misses the target (110); retail 229 EUR meets the ZAD-CST-05 target and leaves a positive dealer margin. Reaching 60 EUR needs Asian contract assembly (~-5 EUR) plus a cheaper heater block/enclosure (~-8 EUR). Risks: single-source die-cast heater block (mitigation: drawing-to-print, 2 CN suppliers), pump lead time 8-12 weeks, lab quotes not obtained (BLOCKED: needs a human to request quotes).
Raport z przebiegu
Design report - compact mains fog machine (concept tier)
Status: concept tier, CLOSE 04:52. Every number quotes a fact on board/facts/*.yaml.
Concept: 02-concept/concept.md; decision: A1 (board/decisions/D-ARCH-01.md).
1. The product
A compact Class I mains fog machine for ANSI E1.5 water-glycol fluids. An insulated cast-aluminium heat-exchanger block (950 W cast-in heater) stores heat. The MCU sets the pump rate from the block temperature margin ("pump follows heat"), so at 100 % command output derates to the continuous rate and never stops to reheat. It has isolated DMX512/RDM, a paired two-way 2.4 GHz remote and an on-unit display with an encoder. It is meant for mobile DJs, small venues, theatres and serious home users, at a planned EUR 229 retail price.
2. Key parameters
| parameter | value | unit | origin (home) |
|---|---|---|---|
| envelope L x W x H | 310 x 165 x 185 (9.46 L) | mm | ASSUMPTION (arch.dimensions = mech.envelope) |
| dry mass | 2.62 | kg | CALCULATION (arch.mass = mech.dry_mass) |
| rated input 230 V | 970 | W | CALCULATION (arch.power) |
| warm-up 230 V / 207 V | 2.89 / 3.59 | min | CALCULATION (arch.a1_warmup_230v / arch.a1_warmup_207v) |
| continuous output 230 V | 21.9 (band 18.6-25.7; 17.5 at 207 V) | ml/min | CALCULATION (arch.a1_continuous) |
| peak in first 30 s | 20.6 | ml | CALCULATION (arch.a1_peak30s) |
| ready-hold power | 51 | W | CALCULATION (arch.a1_ready_hold) |
| fluid energy | 2470 | J/ml | CALCULATION on ASSUMPTION composition (arch.e_ml) |
| US 120 V current | 8.08 | A | CALCULATION (02-concept/calc/arch_energy.results.json) |
3. Cost and price (COST facts)
Unit cost: q1 338.1 EUR (cost.unit_cost_q1), q100 122.5 EUR (cost.unit_cost_q100), q1000 72.9 EUR
(cost.unit_cost_q1000). Retail price 229 EUR incl. VAT (cost.retail_price). One-off costs 43500 EUR
(cost.one_off_total). Gross margin per unit: 93.0 EUR direct (cost.direct_gross_margin) and 33.6 EUR via
dealers (cost.dealer_gross_margin). Details: 09-bom-cost/, 02-concept/sections/COST.md.
4. Status per requirement
01-requirements/compliance.csv (REQ) is the authority, with one row per requirement id. ARCH's
evidence-based view of the top-weighted ids:
| req_id | status | basis |
|---|---|---|
| ZAD-PRF-01 | met (analysis) | 2.89 min <= 3 min target (arch.a1_warmup_230v) |
| ZAD-PRF-02 | partly | 21.9 ml/min: meets 15 threshold, 0.1 below 22 target (arch.a1_continuous) |
| ZAD-PRF-03 | partly | pump-follows-heat strategy defined; firmware not designed at this tier |
| ZAD-PRF-04 | partly | 20.6 ml: meets 12 ml threshold, misses 25 ml target (arch.a1_peak30s) |
| ZAD-PRF-07 | partly | design measures named; no spit analysis yet |
| ZAD-PWR-02 | met (analysis) | 970 W <= 1000 W (arch.power) |
| ZAD-PWR-03 | met (analysis) | 51 W <= 80 W (arch.a1_ready_hold) |
| ZAD-WGT-01 | met (analysis) | 2.62 kg <= 3 kg (arch.mass) |
| ZAD-SIZ-01 / ZAD-SIZ-02 | met (analysis) | 9.46 L <= 12 L target; longest side 310 mm <= 320 mm target (arch.dimensions, ASSUMPTION until CAD) |
| ZAD-CST-01 | partly | 72.9 EUR: meets 85 EUR threshold, misses 60 EUR target (cost.unit_cost_q1000) |
| ZAD-CST-05 | met | 229 EUR, both margins positive (cost.retail_price) |
| ZAD-SAF-01, ZAD-CRT-01/02 | per compliance.csv | SAFE deliverables |
5. Top risks and open hazards
- The fluid energy per ml is an ASSUMPTION (2100-2900 J/ml), so continuous output could land between 18.6 and 25.7 ml/min. The weighed 30-minute run retires it.
- Spitting at the start of a burst (ZAD-PRF-07): the 40 K droop limit, pump ramp and check valve are named but not yet analysed.
- Unit cost of 72.9 EUR misses the 60 EUR target.
- Leakage current from a hot heater (ZAD-SAF-06), and the single-fault FMEA (ZAD-SAF-01) is owned by SAFE.
6. Decisions taken without a human
- Concept A1 won the blind ballot: 7.26 vs 5.50 (A3) vs 4.44 (A2). Only 2 of 6 voters rated, see
board/decisions/D-ARCH-01.md. - Heater 950 W (ELEC), so that rated input is 970 W, at or below 1000 W.
- Set point 290 C, with a fluid-type window of 260-310 C.
- Fluid modelled as 75/25 water/glycol.
- Radio: a pre-certified 2.4 GHz module rather than sub-GHz (POLICY 4).
- Full log:
02-concept/mesh/decision-log.md.
7. Open, blocked, not run
- Not run: physical tests (none in this run), the spit/fluid-path analysis and the radio link budget.
- Open: real part numbers with second sources, the per-variant BOM (ZAD-PWR-01), and SAFE's FMEA.
- Blocked (needs a human): lab certification tests, supplier quotes.
Dokumenty projektu
01-requirements/requirements.md
Requirements — compact mains fog machine (concept tier)
Owner: REQ. Source of every given requirement: INPUT/requirements.md (v0) and INPUT/brief.md.
Verification conditions are published as facts req.* (board facts file of REQ) and quoted here.
Status of each id: compliance.csv in this folder. At the concept tier every status is a prediction from
first-order estimates; nothing in this run is a physical test.
Common verification conditions (apply to every row unless the row says otherwise):
- Ambient 20 °C for performance rows (req.ambient_nominal), re-checked at 40 °C (req.ambient_max, ZAD-REL-02 target) and 5 °C (req.ambient_min). READY-hold power at 25 °C (req.ambient_ready_hold).
- Supply: EU variant 230 V 50 Hz nominal (req.supply_eu_nominal), 207 V and 253 V limits (±10 %, req.supply_eu_min / req.supply_eu_max); US variant 120 V 60 Hz (req.supply_us_nominal), input ≤ 1,440 W (req.us_input_max). Heater power scales with V²: 207 V gives 0.81 × and 253 V gives 1.21 × the 230 V power (CALCULATION, 0.9² and 1.1²).
- Fluid: ANSI E1.5 water-glycol fog fluid; reference = a standard-density type; the densest (long-hang) type sizes the energy per ml (req.fluid_reference, ASSUMPTION).
- Test runs: 30 min after READY (req.test_run_duration); design duty: events of up to 8 h at up to 100 % output command (req.event_duty_hours, SOURCE brief).
1. Given requirements — interpretation and design consequence
| id | w | verified when (exact condition) | design consequence |
|---|---|---|---|
| ZAD-PRF-01 | 4 | Cold unit soaked at 20 °C, 230 V: time from mains switch-on to READY (first full-rate output possible); also stated at 207 V. Calculation: exchanger heat capacity × (T_ready − 20 °C) / (heater power − losses). Timed test. | Low thermal mass exchanger; heater ≥ ~900 W net; READY threshold temperature defined per fluid type. |
| ZAD-PRF-02 | 5 | After READY, 230 V, 20 °C, 100 % command: tank weighed before/after a 30-min run; no pause, no spitting. Rate at 207 V also stated (DR-PRF-01). | Heater power net of losses ≥ rate × energy per ml of the densest approved fluid; pump capacity above it. |
| ZAD-PRF-03 | 5 | 100 % command for 30 min after READY, 230 V: longest gap in output (video / flow log). | Closed-loop "pump follows heat": pump rate derated smoothly from exchanger temperature; no on/off reheat cycle. |
| ZAD-PRF-04 | 3 | From READY (exchanger at its regulated temperature), 100 % for 30 s, weighed. | Stored heat (C × allowed droop) + heater energy in 30 s ≥ volume × energy per ml, without dropping below the no-spit temperature. |
| ZAD-PRF-05 | 2 | Lowest setting, 30 min weighed run + plume video; no gap > 2 s. | Pump metering resolution ≤ 2 ml/min steady (fine pulse rate or proportional drive). |
| ZAD-PRF-06 | 3 | Constant settings up to the continuous rate, 1-min averages over 30 min, at 207, 230 and 253 V. | Metered (volumetric) pump drive compensated for supply voltage; heater regulation independent of pump command. |
| ZAD-PRF-07 | 5 | 1 m × 2 m absorbent sheet in front of/under the outlet: from first READY, 30 min at 100 %, and 10 min after switch-off; droplets counted. | No pumping below the vaporisation temperature (hardware-enforced interlock); anti-drip at shut-off (purge/suck-back or check valve); outlet geometry that drains inward. |
| ZAD-PRF-08 | 3 | Statement of ≥ 3 brands × 3 types (standard, quick, long-hang) with temperature window per type and wetted materials. | Fluid-type setting that shifts the regulated exchanger temperature; glycol-compatible wetted materials. |
| ZAD-PRF-09 | 2 | CAD internal volume minus volume below the pick-up / low-fluid sensor. | Tank ≥ 1.2 L usable inside the size envelope. |
| ZAD-SIZ-01 | 3 | Bounding box of the ready-to-use product (feet, handle, controls; no bracket, cables, remote). | Volume ≤ 12 L (≤ 16 L threshold): tank, exchanger and electronics packed tightly. |
| ZAD-SIZ-02 | 2 | Longest side of the same box. | ≤ 320 mm (≤ 380 mm threshold). |
| ZAD-WGT-01 | 3 | Dry mass, empty tank, no remote/cables/bracket; CAD + BOM masses agree within 10 %. | ≤ 3 kg target: light exchanger, plastic or thin-sheet enclosure. |
| ZAD-PWR-01 | 3 | BOM lists EU 220-240 V and US 120 V parts (heater, pump, fuse, cord, labels); electrical calculations for both voltages. | One design, variant parts only: heater element, pump coil, fuse, cord, rating label. |
| ZAD-PWR-02 | 4 | Rated input at 230 V (heater at operating temperature + pump + electronics) ≤ 1,000 W target / 1,200 W threshold; US variant ≤ 1,440 W. | Heater rating chosen against ZAD-PRF-02 (conflict C1). |
| ZAD-PWR-03 | 2 | Average power while READY, not fogging, 25 °C ambient, 30-min power-meter log. | Insulated exchanger; losses ≤ 80 W target. |
| ZAD-PWR-04 | 1 | Off ≤ 0.5 W; standby (heater off, radio receiver + DMX listening) ≤ 0.5 W target / 2 W threshold; idle auto-off configurable. | Low-standby auxiliary supply; radio in low-duty listen mode. |
| ZAD-FUN-01 | 4 | Schematic, connectors and firmware: DMX512-A in + thru, isolated from mains, ≥ 2 channels, address set on the unit (display). | Isolated RS-485 (reinforced barrier with ZAD-SAF-06), 5-pin and 3-pin XLR in/thru, display addressing. |
| ZAD-FUN-02 | 2 | RDM parameter list (address, temperature, fluid, faults, identify) in firmware documentation. | RDM-capable transceiver direction control; optional (threshold = not required). |
| ZAD-FUN-03 | 4 | Link budget with antenna position: ≥ 50 m line-of-sight indoors (≥ 30 m threshold); unique-ID pairing; range test in a hall. | Pre-certified sub-GHz or 2.4 GHz module; antenna outside metal parts. |
| ZAD-FUN-04 | 2 | Protocol and remote UI: two-way status, ≥ 4 machines in groups (threshold one-way, ≥ 2 machines, status on machine visible from 5 m). | Transceiver in the remote (two-way) or a one-way remote plus machine-side status LED. |
| ZAD-FUN-05 | 3 | Firmware/UI: interval 1-600 s, duration 1-120 s, output 1-100 %, on unit and remote (threshold 10-300 s, 1-60 s, on the unit). | Timer in firmware, settable from the on-unit menu and the remote. |
| ZAD-FUN-06 | 4 | Empty-tank test: pump stops before air enters the line; automatic recovery after refill (threshold: within 10 s, one prime cycle). | Level sensor above the pick-up (capacitive or float) plus pump-load/flow plausibility. |
| ZAD-FUN-07 | 3 | Panel drawing + menu: warm-up progress, READY, fault codes, low fluid, DMX address, output, timer; settings non-volatile; all functions without the remote. | Display + encoder/buttons; settings in non-volatile memory. |
| ZAD-FUN-08 | 2 | Bracket with safety-cable eyelet in CAD; tilted run ±30° (±15° threshold) without spitting or leaking. | Pick-up and vent positions valid at ±30°; outlet drains at the tilt limits. |
| ZAD-UX-01 | 3 | LpA at 1 m in front, fogging at the continuous rate: ≤ 45 dB(A) target / 55 threshold. | Quiet pump on elastomer mounts; outlet without whistle. |
| ZAD-UX-02 | 2 | LpA at 1 m, READY, not fogging: ≤ 30 dB(A) target / 40 threshold. | No always-on fan: passive cooling or temperature-controlled fan off in READY. |
| ZAD-UX-03 | 2 | Tool-free refill of a hot machine without spilling, ≤ 30 s (≤ 60 s); level visible from 3 m. | Large top filler cap away from hot parts; translucent or lit tank window. |
| ZAD-UX-04 | 1 | IEC C14 inlet (or equivalent), detachable cord ≥ 3 m (≥ 1.8 m), mains switch and fuse in BOM. | Fused switched inlet module; 3 m cord per variant. |
| ZAD-UX-05 | 2 | Unboxing to fog ≤ warm-up + 2 min (≤ 3 min) with a one-page quick start; no app/account/internet. | Remote pre-paired at the factory; no app. |
| ZAD-SAF-01 | 5 | FMEA covering each listed single fault + abnormal-operation tests (EN 60335-1 clause 19) in the test plan. | Non-resettable or manual-reset thermal cut-out on the exchanger in series with the heater, independent of firmware; hardware pump interlock. |
| ZAD-SAF-02 | 4 | EN 60335-1 heating test at 1.15 × rated input, continuous output: accessible-surface rise ≤ 20 K target / 60 K threshold; handles ≤ 30 K metal, 50 K plastic. | Insulated exchanger, air gap / heat shield to the enclosure, handle thermally separated. |
| ZAD-SAF-03 | 3 | IEC 61032 probe B cannot touch the nozzle or any surface > 70 °C; handle and controls ≥ 150 mm from the outlet; hot-surface marking. | Recessed nozzle behind a guard grille; layout puts controls at the rear. |
| ZAD-SAF-04 | 3 | CAD centre of mass (full and empty tank) vs footprint: no overturning at 20° (15° threshold) in any direction. | Low, wide footprint; tank low. |
| ZAD-SAF-05 | 3 | Running machine tilted 45°; switched-off machine, full closed tank, 10 min on each side: no fluid reaches live or hot parts (target: no fluid leaves). | Sealed cap with labyrinth vent; tank and fluid lines below and separated from mains parts; drain paths. |
| ZAD-SAF-06 | 4 | Class I, PE bonding ≤ 0.1 Ω of accessible metal and exchanger; reinforced insulation mains/low-voltage; leakage at 1.06 × rated voltage, hot: ≤ 0.25 mA target / 0.5 mA threshold. | Earthed exchanger; low-leakage heater; small Y-capacitors; certified isolation barrier. |
| ZAD-SAF-07 | 3 | DMX signal removed: output stops ≤ 2 s (≤ 5 s) unless hold mode; remote continuous mode has auto-off; no pumping when not READY. | Firmware state machine with DMX timeout; hardware temperature interlock for the pump. |
| ZAD-SAF-08 | 2 | Manual and labels contain: smoke detectors/fire alarms, ventilation, slippery residue, distances to people and flammables, hot surfaces, approved fluids, exposure guidance. | Manual safety section + label drawing. |
| ZAD-CRT-01 | 5 | EU plan: directives/regulations and harmonised standards (current editions), design measure, pre-compliance test, lab test and cost each; draft DoC; technical-file outline. | SAFE's 08/02 sections; pre-certified radio module simplifies the radio route. |
| ZAD-CRT-02 | 4 | US/Canada plan: FCC rule parts for the electronics and radio; NRTL safety standard; tests, cost, timeline. | Same. |
| ZAD-CRT-03 | 2 | ESTA/ANSI standards addressed with design measures; at least ANSI E1.11 (DMX512-A) and E1.5 (fog fluids). | DMX per E1.11, RDM per E1.20, fluid compatibility per E1.5. |
| ZAD-CRT-04 | 4 | One-page spec sheet: every number traced to a calculation or a planned test, labelled; output in ml/min. | spec-sheet.md in this folder, numbers quoted from facts only. |
| ZAD-CST-01 | 5 | Unit cost at 1,000 units, EU variant, EXW, incl. parts, enclosure, assembly, EOL test, packaging, remote; excl. VAT and one-offs: ≤ 60 EUR target / 85 EUR threshold. | Cost-driven part choices (no machined exchanger at volume). |
| ZAD-CST-02 | 2 | Same scope at 100 units: ≤ 110 / 160 EUR. | Low-volume processes allowed. |
| ZAD-CST-03 | 2 | Parts + outside machining of one prototype: ≤ 400 / 800 EUR. | 3D-printed enclosure, purchased exchanger or simple machined block. |
| ZAD-CST-04 | 3 | Itemised one-offs (tooling, EU + US certification, other): ≤ 30,000 / 60,000 EUR. | Few moulded parts; pre-certified radio module. |
| ZAD-CST-05 | 4 | EU retail price incl. VAT ≤ 229 / 299 EUR with unit economics for direct and dealer channels; margin positive in both. | Unit cost must leave dealer margin (conflict C6). |
| ZAD-MFG-01 | 4 | ≥ 95 % (target 100 %) of BOM lines with manufacturer, MPN, supplier, URL, prices at 1/100/1,000; critical parts second-sourced or risk stated. | Catalogue parts first; named fallbacks for pump, heater, cut-out, sensor, PSU, radio. |
| ZAD-MFG-02 | 2 | Assembly sequence with step times: ≤ 20 min target / 35 min threshold at 1,000 units. | Few fasteners, pre-wired harness, snap features. |
| ZAD-MFG-03 | 3 | Production test with limits and time: earth continuity, hipot, leakage, warm-up, output calibration, fluid-path leak, remote pairing. | Defined in DR-MFG-03 below (limits from the requirements). |
| ZAD-REL-01 | 3 | Component ratings (pump duty, heater surface load, cut-out cycles) + accelerated endurance test: ≥ 2,000 h target / 1,000 h threshold. | Continuous-duty-rated pump; conservative heater surface load. |
| ZAD-REL-02 | 2 | Internal temperature budget: all performance met up to 40 °C ambient (35 °C threshold), lowest 5 °C; storage −20 to +60 °C. | Electronics and pump thermally separated from the exchanger. |
| ZAD-REL-03 | 3 | Endurance test with output check: ≥ 100 h (30 h) between cleanings, output loss ≤ 10 %. | Inlet filter, exchanger bore and temperature window that avoid residue build-up. |
| ZAD-REL-04 | 2 | ISTA 2A or 3A drop + vibration of the packaged unit; drained unit does not leak; storage/purge procedure. | Packaging inserts; purge mode. |
| ZAD-SRV-01 | 3 | Replace pump, exchanger module, cut-out, nozzle, main PCB, inlet filter with standard tools ≤ 15 min (30 min) each, no glue/rivets; spare-parts list with prices. | Screwed modules, connectors instead of soldered heater leads. |
| ZAD-SRV-02 | 2 | Documented cleaning procedure + firmware-guided cleaning/purge mode; inlet filter reachable without tools. | Purge mode in firmware; filter at the tank outlet. |
| ZAD-SRV-03 | 2 | Fault codes on the display (and remote/RDM), operating-hours and fault log, field update path (USB or DMX/RDM). | Non-volatile log; update port. |
2. Derived requirements
| id | parent | statement | metric · target / threshold | verif. | rationale (label) | prio |
|---|---|---|---|---|---|---|
| DR-PRF-01 | ZAD-PRF-02, ZAD-PRF-06 | The continuous rate is stated at 230 V and at 207 V; at 207 V it still meets the ZAD-PRF-02 threshold. | rate at 207 V · ≥ 22 / ≥ 15 ml/min | Analysis, Test | ZAD-PRF-06 requires stable output up to the continuous rate at 207 V (SOURCE) | 5 |
| DR-PRF-02 | ZAD-PRF-07, ZAD-SAF-07 | The pump cannot run while the exchanger is below the vaporisation temperature of the selected fluid; the interlock does not rely on firmware alone. | pumping below T_min · 0 events | Analysis, Test | most spitting comes from pumping into a cold exchanger (ASSUMPTION, industry experience) | 5 |
| DR-PRF-03 | ZAD-PRF-03 | Pump rate is a continuous function of exchanger temperature (derate, not stop) with the minimum rate ≥ the lowest stable output. | output gap · 0 s / ≤ 10 s | Analysis (firmware), Test | ZAD-PRF-03 (SOURCE) | 5 |
| DR-UI-01 | ZAD-FUN-07, ZAD-FUN-04 | Machine status (heating / READY / low fluid / fault) readable from 5 m. | status visible at 5 m · yes | Inspection | ZAD-FUN-04 threshold | 3 |
| DR-PWR-01 | ZAD-PWR-02, ZAD-PRF-01 | Heater element rated per variant so that rated input is equal at 230 V (EU) and 120 V (US). | US input · ≤ 1,440 W | Analysis | ZAD-PWR-01/-02 | 4 |
| DR-MEC-01 | ZAD-FUN-08 | Hanging bracket and safety-cable eyelet rated for 10 × the machine mass with full tank. | static load · 10 × / 5 × mass | Analysis | truss-hanging safety margin (ASSUMPTION, common rigging practice) | 3 |
| DR-ENV-01 | ZAD-REL-02 | Operating humidity 10-90 % RH non-condensing; altitude ≤ 2,000 m (EN 60335-1 default). | — | Analysis | ASSUMPTION: indoor use only; sensitivity low | 2 |
| DR-ENV-02 | brief | Indoor use only, IPX0; no outdoor rating claimed. | — | Inspection | brief lists indoor venues (SOURCE); honest claims | 2 |
| DR-SAF-01 | ZAD-SAF-01 | Independent thermal cut-out on the exchanger opens the heater supply on overheating regardless of firmware and of the heater switch state. | heater supply opened by hardware · yes | Analysis, Test | POLICY.md §2.1 protections without firmware | 5 |
| DR-SAF-02 | ZAD-SAF-01 | Enclosure plastics within 50 mm of the exchanger or of mains parts flame-rated UL 94 V-0 (V-1 minimum) and glow-wire per EN 60335-1 clause 30. | rating · V-0 / V-1 | Inspection | POLICY.md §4 (SOURCE) | 5 |
| DR-SAF-03 | ZAD-SAF-07, ZAD-FUN-03 | Continuous fog started from the remote stops automatically after a configurable time (default 10 min); remote loss of link for > 5 s stops momentary fog. | auto-off · yes | Test | ZAD-SAF-07 (SOURCE); default ASSUMPTION | 3 |
| DR-SAF-04 | brief, ZAD-SAF-08 | Fog output may trigger smoke detectors: the manual gives detector types and the venue's responsibility; no claim of detector compatibility. | warning present · yes | Inspection | brief (small rooms, smoke detectors) | 2 |
| DR-SAF-05 | ZAD-SAF-02, ZAD-SAF-03 | Outlet plume does not melt or ignite materials placed at ≥ the minimum distance stated in the manual (distance set by test). | distance stated · yes | Test | foreseeable misuse near curtains (ASSUMPTION) | 4 |
| DR-EMC-01 | ZAD-CRT-01, ZAD-CRT-02 | Heater switching at zero crossing (burst/cycle control) to meet flicker and conducted-emission limits; no phase-angle control of the heater. | flicker / emissions · pass pre-compliance | Test | phase-angle switching of ~1 kW causes emissions and flicker (ASSUMPTION, common practice) | 4 |
| DR-RAD-01 | ZAD-FUN-03, ZAD-CRT-01 | Radio uses a pre-certified module (CE RED and FCC modular grant) in a licence-free band; antenna outside metal shielding. | module grant · yes | Inspection | POLICY.md §4 (SOURCE) | 4 |
| DR-MAT-01 | ZAD-PRF-08, ZAD-CRT-01 | Wetted materials compatible with water-glycol fluids at up to the exchanger exit temperature; RoHS and REACH compliant parts throughout. | compliance · yes | Inspection | ZAD-PRF-08; EU market (SOURCE) | 4 |
| DR-REL-01 | ZAD-REL-01 | Pump rated for continuous duty at the continuous rate for ≥ 8 h sessions. | duty rating · continuous | Inspection | brief: events 1-8 h (SOURCE) | 4 |
| DR-SRV-01 | ZAD-SRV-01 | Spare-parts list with prices for the six listed wear parts. | list present · yes | Inspection | ZAD-SRV-01 (SOURCE) | 3 |
| DR-MFG-01 | ZAD-CST-01, ZAD-MFG-01 | Prototype by 3D printing / CNC; 1,000-unit route by moulding or formed sheet metal chosen from the start (walls, drafts). | route stated · yes | Inspection | POLICY.md §4 (SOURCE) | 3 |
| DR-MFG-03 | ZAD-MFG-03 | End-of-line test, limits: earth continuity ≤ 0.1 Ω at ≥ 10 A; hipot mains-PE 1,250 V AC and mains-SELV 3,000 V AC, 1-3 s, no breakdown (values to be confirmed by SAFE against EN 60335-1 clause 16); leakage ≤ 0.5 mA at 1.06 × rated voltage; warm-up ≤ 5 min to READY; output calibration within ± 15 % of nominal at the 50 % setting; fluid-path leak test (no drop after 2 min at pump pressure); remote pairing and one command acknowledged. Test time ≤ 8 min (warm-up included). | limits met · all | Test | ZAD-MFG-03; limits from ZAD-SAF-06, ZAD-PRF-01, ZAD-PRF-06 thresholds (SOURCE); hipot voltages ASSUMPTION pending SAFE | 3 |
| DR-PKG-01 | ZAD-REL-04 | Packaging passes ISTA 3A (parcel); the unit ships drained and purged. | ISTA 3A · pass | Test | ZAD-REL-04 | 2 |
| DR-LBL-01 | ZAD-SAF-08, ZAD-SAF-03 | Rating label (voltage, frequency, power, fuse, CE/FCC marks, WEEE symbol), hot-surface symbol at the outlet, fluid-type label at the filler. | labels present · yes | Inspection | ZAD-SAF-08, EU/US marking rules | 2 |
| DR-CST-01 | ZAD-CST-05 | Unit-economics table for direct (web shop, Kickstarter) and dealer channels with VAT, fees, shipping, unit cost; margin > 0 in both. | margin · > 0 | Analysis | ZAD-CST-05 | 4 |
| DR-SCH-01 | ZAD-CST-03 | First working prototype buildable from catalogue parts plus 3D-printed / CNC parts within 6 weeks of design freeze. | time · ≤ 6 weeks | Analysis | ASSUMPTION: Kickstarter timeline; sensitivity medium | 2 |
Areas checked (handbook section 2): function/performance (DR-PRF-01..03), UI and ergonomics (DR-UI-01), power and standby (DR-PWR-01, ZAD-PWR-03/04), mechanical interfaces and mounting (DR-MEC-01), environment (DR-ENV-01/02, DR-PKG-01), safety: shock (ZAD-SAF-06), heat and burns (ZAD-SAF-02/03, DR-SAF-05), fire (DR-SAF-01/02), mechanical hazards (ZAD-SAF-04, DR-MEC-01), chemical (DR-MAT-01, fluid exposure in ZAD-SAF-08), optical and other radiation (not applicable: no laser or UV source; display and LEDs only), noise (ZAD-UX-01/02), foreseeable misuse (DR-SAF-03/04/05); EMC and radio (DR-EMC-01, DR-RAD-01); materials and restricted substances (DR-MAT-01); lifetime and duty (DR-REL-01); maintenance and repair (DR-SRV-01, ZAD-SRV-02); manufacturing at 1/100/1000 (DR-MFG-01); production assembly and test (ZAD-MFG-02, DR-MFG-03); packaging and drop (DR-PKG-01); labelling and manuals (DR-LBL-01); unit cost and price (DR-CST-01); prototype schedule (DR-SCH-01).
3. Conflicts, decisions and assumptions
Screening estimate used below (CALCULATION, hand, REQ): energy to vaporise 1 ml of a water-glycol fluid ≈ 0.8 × (4.19 J/gK × 80 K + 2,257 J/g) + 0.2 × (~2.5 J/gK × 170 K + ~900 J/g) ≈ 2.34 kJ/g; with superheat of the vapour and density ≈ 1.04 g/ml → ≈ 2.4-2.6 kJ/ml. MECH owns the design value; this figure only screens conflicts.
| # | pair (weights) | why they pull | resolution (POLICY.md §2) |
|---|---|---|---|
| C1 | ZAD-PRF-02 (5) vs ZAD-PWR-02 (4) | 22 ml/min × 2.5 kJ/ml ≈ 920 W of vaporisation plus losses needs ≈ 1,000 W net; at 207 V a 1,000 W heater gives ≈ 810 W → ≈ 17 ml/min | Thresholds first: heater sized so that 207 V still gives ≥ 15 ml/min and 230 V input stays ≤ 1,200 W; the higher weight (PRF-02) may take input above the 1,000 W target if the vote shows it. |
| C2 | ZAD-PRF-01 (4) vs ZAD-PRF-04 (3) | Stored heat for a 30-s peak needs exchanger mass, which slows warm-up | Mass sized for the PRF-04 threshold (12 ml ≈ heater energy alone) plus margin; PRF-01 higher weight wins. |
| C3 | ZAD-PRF-04 (3) / ZAD-PRF-03 (5) vs ZAD-PRF-07 (5) | Pushing output beyond the heat supply cools the exchanger and causes spitting | DR-PRF-02/03: pump follows heat; peak limited by allowed droop above T_min. |
| C4 | ZAD-SIZ-01 (3), ZAD-WGT-01 (3) vs ZAD-SAF-02 (4), ZAD-PWR-03 (2) | Insulation, air gaps and heat shields need volume and mass | SAF-02 higher weight: keep the 60 K threshold with margin; size targets traded first. |
| C5 | ZAD-UX-02 (2) vs ZAD-REL-02 (2), ZAD-SAF-02 (4) | No fan noise in READY vs cooling electronics at 40 °C | Passive cooling in READY; a fan, if any, only while fogging and below 45 dB(A). |
| C6 | ZAD-CST-05 (4) vs ZAD-CST-01 (5) + feature set (ZAD-FUN-01/02/03/04) | 229 EUR incl. VAT ≈ 186-190 EUR net; a dealer takes 30-40 %, so unit cost must be ≈ ≤ 60 EUR; two-way radio, RDM, display and isolation add cost | Thresholds first: FUN-02 RDM and FUN-04 two-way are targets of low weight (2) and are the first features cut if cost misses. |
| C7 | ZAD-UX-01 (3) vs ZAD-CST-01 (5) | Quiet pumps (gear, peristaltic) cost more than vibratory solenoid pumps | Decided by COST/MECH evidence; UX-01 threshold 55 dB(A) is the floor. |
| C8 | ZAD-SAF-06 (4) vs ZAD-CRT-01 (5) EMC filtering | Y-capacitors for EMC raise earth leakage; hot heater insulation leaks more | ELEC budget: leakage ≤ 0.25 mA total with the filter included. |
| C9 | ZAD-UX-03 (2) vs ZAD-SAF-05 (3), ZAD-FUN-08 (2) | Easy hot refilling needs a large opening; tilt and side-lying need a sealed vented cap | Sealed cap with labyrinth vent above the full level in every orientation. |
| C10 | ZAD-PWR-04 (1) vs ZAD-FUN-03/-04 (4/2) | Always-listening radio and DMX in standby vs ≤ 0.5 W | Threshold 2 W accepted; target only with a low-duty radio listen mode. |
Chosen concept (TALLY M-0012: A1, integrated cast-Al thermal-mass block, pump-follows-heat, firmware-independent
cut-outs, two-way 2.4 GHz remote). Predicted against the thresholds (facts, CALCULATION): ZAD-PRF-02 20.8 ml/min at
230 V and 16.7 ml/min at 207 V (mech.continuous_rate_230v / _207v) meets the 15 ml/min threshold and DR-PRF-01 but
misses the 22 ml/min target (about 1,000 W heater needed, mech.heater_need_for_prf02_target; C1 kept the 970 W input
of arch.power under the ZAD-PWR-02 target). ZAD-PRF-04 17.4 ml and ZAD-CST-01 72.9 EUR meet thresholds, miss targets.
No predicted threshold miss; open evidence gaps are listed as not_addressed in compliance.csv.
Assumptions register
| id | assumption | reason | sensitivity |
|---|---|---|---|
| A1 | Energy per ml of fluid 2.4-2.6 kJ/ml (screening) | water-glycol mix, hand calculation above | high: sets heater power for ZAD-PRF-02 |
| A2 | Reference fluid = ANSI E1.5 standard type; densest type sizes energy | req.fluid_reference | medium |
| A3 | EU VAT 19-27 %; price check at 23 % unless COST states otherwise | EU member-state range | low on the 229 EUR comparison |
| A4 | Hipot voltages in DR-MFG-03 pending SAFE | EN 60335-1 clause 16 values not re-read in this run | low: EOL limits only |
| A5 | Remote auto-off default 10 min | user convenience vs runaway fog | low |
01-requirements/spec-sheet.md
Specification sheet — compact fog machine (concept A1, PREDICTED values)
Every number below is a design prediction of the concept tier, quoted from its fact and labelled; none is measured. Values marked "to be confirmed" have no evidence yet and are not claimed. Output is fluid vaporised in ml/min (weighed tank); no volume (m³/min) figure is claimed.
| item | value | label and source | requirement |
|---|---|---|---|
| Warm-up to READY, 230 V, 20 °C | 2.61 min (3.24 min at 207 V) | CALCULATION, mech.warmup_230v / mech.warmup_207v (02-concept/calc/mech_concept.results.json) | ZAD-PRF-01 |
| Continuous output, no reheat pause | 20.8 ml/min at 230 V, 16.7 ml/min at 207 V (worst-case fluid 2.593 kJ/ml) | CALCULATION, mech.continuous_rate_230v / mech.continuous_rate_207v | ZAD-PRF-02, ZAD-PRF-03 |
| Peak, first 30 s from READY | 17.4 ml | CALCULATION, mech.peak_30s | ZAD-PRF-04 |
| Lowest stable output | 2 ml/min | CALCULATION, elec.stroke_gap_at_2mlmin (02-concept/calc/elec_power.results.json) | ZAD-PRF-05 |
| Rated input, EU 230 V | 970 W | CALCULATION, arch.power | ZAD-PWR-02 |
| Max input, US variant at 127 V | 1084 W | CALCULATION, elec.max_input_us_127 | ZAD-PWR-01, ZAD-PWR-02 |
| Ready-hold power, 25 °C | 49.3 W | CALCULATION, mech.ready_hold_loss | ZAD-PWR-03 |
| Standby (radio + DMX listening) / off | 0.29 W / 0 W | CALCULATION, elec.standby_power / elec.off_power | ZAD-PWR-04 |
| Wireless remote range, line of sight | 50 m design target, 18.8 dB link margin | CALCULATION, elec.radio_margin_50m | ZAD-FUN-03 |
| Output stop on DMX loss | 1.0 s | ASSUMPTION (firmware setting), elec.dmx_loss_stop | ZAD-SAF-07 |
| Tank | 1.29 L usable | CALCULATION, mech.tank_usable | ZAD-PRF-09 |
| Size L × W × H | 310 × 165 × 185 mm | ASSUMPTION envelope, arch.dimensions / mech.envelope | ZAD-SIZ-01, ZAD-SIZ-02 |
| Dry mass | 2.62 kg | CALCULATION on partly ASSUMPTION masses, arch.mass / mech.dry_mass | ZAD-WGT-01 |
| Recommended retail price, EU incl. VAT | 229 EUR | ASSUMPTION price point, cost.retail_price | ZAD-CST-05 |
| Control | DMX512-A in/thru (isolated), wireless remote, on-unit display | concept (02-concept/concept.md); no test yet | ZAD-FUN-01, ZAD-FUN-07 |
| Noise, fluid compatibility, tilt, ambient range, service life | to be confirmed | no evidence at concept tier — not claimed | ZAD-UX-01, ZAD-PRF-08, ZAD-FUN-08, ZAD-REL-02, ZAD-REL-01 |
No certification mark (CE, FCC, NRTL listing) is claimed: the conformity plans are open (ZAD-CRT-01, ZAD-CRT-02).
02-concept/benchmark.md
Benchmark - compact DMX fog machines with wireless remote (COST)
Prices: ASSUMPTION - typical EU street prices recalled from distributor listings (Thomann, manufacturer pages); NOT re-read on 2026-10-30 (no time in this smoke run). URLs point to the product family pages to re-check.
| # | product | heater W | output / warm-up | control | street price incl. VAT | weak points (reviews / returns) |
|---|---|---|---|---|---|---|
| 1 | Antari Z-1000 II (https://www.antari.com) | 1000 | ~10,000 ft3/min, ~4-5 min warm-up | DMX, wired remote, wireless option | ~400 EUR (ASSUMPTION) | price; wireless only as an add-on |
| 2 | Chauvet DJ Hurricane 1800 Flex (https://www.chauvetdj.com) | ~1200-1300 | high output, ~6 min warm-up | DMX, wired + wireless remote | ~350 EUR (ASSUMPTION) | reheat pauses in continuous fog, spitting reports |
| 3 | ADJ Fog Fury Jett (https://www.adj.com) | 700 | vertical/horizontal jet, ~3-5 min | DMX, wireless remote incl. | ~230 EUR (ASSUMPTION) | low continuous duty, LED-feature complexity |
| 4 | Stairville AF-150 DMX (https://www.thomann.de) | ~900 | ~4-6 min warm-up | DMX, wired remote | ~120 EUR (ASSUMPTION) | reheat pauses, pump noise, spitting when cold |
| 5 | Eurolite N-150 / NSF series (https://www.eurolite.de) | ~700-900 | ~5-8 min warm-up | wired remote, DMX on top models | ~70-150 EUR (ASSUMPTION) | long warm-up, frequent reheat stops, short pump life |
| 6 | Open-source ESP32/Arduino fog-machine DMX retrofits (GitHub, adjacent) | n/a | n/a | DMX/Wi-Fi add-on boards | ~10-25 EUR parts | no safety certification, mains wiring by hobbyists |
Realistic targets derived
- Market gap: 150-250 EUR segment has DMX but either no included wireless remote or reheat pauses; 350-450 EUR segment has pro output.
- Our differentiator: pro-grade continuous output (heater sized above pump flow, closed-loop PID on block temperature, no reheat pauses), DMX + included wireless remote, at <= 229 EUR incl. VAT (ZAD-CST-05 target).
- Cost implication: retail 229 EUR incl. VAT leaves a unit-cost budget of about 60-80 EUR at 1000 units (see sections/COST.md).
02-concept/concept.md
Concept - compact mains fog machine (concept tier)
Status: final at CLOSE. Numbers are facts on board/facts/*.yaml (homes named inline). Decision record:
board/decisions/D-ARCH-01.md (A1, TALLY M-0012).
1. Product in one paragraph
A compact Class I mains fog machine for ANSI E1.5 water-glycol fluids. The envelope is arch.dimensions [310, 165, 185] mm (ASSUMPTION from MECH's layout) and rated input is about 1 kW (arch.power 970 W, CALCULATION). An insulated cast-aluminium heat-exchanger block stores heat, which lets the pump keep running while the heater catches up ("pump follows heat"). Output therefore derates smoothly instead of stopping to reheat. It has isolated DMX512/RDM, a paired two-way 2.4 GHz remote and an on-unit display with an encoder. It is for mobile DJs, small venues and theatres, at EUR 229 retail (cost.retail_price, COST).
2. Functions and flows
F1-F12 with energy, material and signal flows: board/ideas/ARCH.md.
- Energy: mains -> heater 950 W (elec.heater_power_nom) -> fluid (arch.e_ml 2470 J/ml), with a loss of 49.3 W (mech.ready_hold_loss).
- Material: tank -> filter -> pump -> block bore -> nozzle.
- Signal: DMX / remote / UI -> MCU -> pump + triac; the cut-outs override in hardware.
3. Alternatives (full table and risks: board/concepts.md)
| A1 integrated thermal-mass block | A2 low-mass flow heater | A3 modular, hardware thermostat, high mass | |
|---|---|---|---|
| principle | C 595 J/K block, MCU PID + pump-follows-heat | C 150 J/K tube, heat-follows-flow, gear pump | C 900 J/K block, capillary thermostat, LV logic module |
| warm-up 230 V (ZAD-PRF-01) | 2.89 min (arch.a1_warmup_230v) | 0.72 min (arch.a2_warmup_230v) | 4.44 min (arch.a3_warmup_230v) |
| continuous (ZAD-PRF-02) | 21.9 ml/min (arch.a1_continuous) | 22.4 ml/min | 21.3 ml/min |
| peak 30 s (ZAD-PRF-04) | 20.6 ml (arch.a1_peak30s) | 13.6 ml (arch.a2_peak30s) | 28.8 ml (arch.a3_peak30s) |
| ready-hold (ZAD-PWR-03) | 51 W (arch.a1_ready_hold) | 32 W | 77 W |
| main risk | thin margin on fluid energy | spitting on load steps, heater life | stability under thermostat band, slow warm-up |
Script: calc/arch_energy.py -> calc/arch_energy.results.json, rerun with the ELEC/MECH values. The hand
estimate (21.6 ml/min, 180 s) agrees with the script. The ballot was cast on the first run (975 W heater,
60 W loss); the rerun moves every option by 1-3 % and keeps the order.
4. Evaluation
The blind concept ballot is board/votes/ARCH-concept/BALLOT.yaml: requirement weights come from the
input, RISK has share 0.15 and SAFETY 0.10.
- Knock-outs: none. A2's peak of 13.6 ml is above the 12 ml threshold; A3's warm-up of 4.44 min is within 5 min.
- Result (TALLY M-0012): A1 7.26, A3 5.50, A2 4.44. The winner holds under ±20 % on every weight.
- Caveat: only 2 of 6 voters (REQ, ARCH) rated, on 5 of 58 criteria.
- Details:
board/decisions/D-ARCH-01.md,mesh/votes.md.
Why each loser lost:
- A2 has a high spitting risk (ZAD-PRF-07, weight 5) and its peak output is close to the threshold.
- A3 misses the warm-up target: 4.44 min at 230 V and 5.53 min at 207 V. Its thermostat band also threatens ZAD-PRF-06, and it needs two boards.
5. Chosen concept A1 - architecture
flowchart LR
MAINS[Mains 230/120 V] --> INLET[IEC C14 inlet, fuse, switch, PE]
INLET --> CUT[cut-outs: auto-reset + thermal fuse] --> RELAY[relay] --> TRIAC[zero-cross triac] --> HEATER[950 W heater in Al block]
INLET --> PSU[isolated PSU] --> MCU[MCU PID + pump-follows-heat]
NTC[block sensor] --> MCU
TANK[1.29 L tank + level] --> FILTER[filter] --> PUMP[vibratory pump] --> CHECK[check valve] --> HEATER --> NOZZLE[nozzle + guard]
MCU --> PUMP
MCU --> TRIAC
DMX[isolated DMX/RDM] --> MCU
RADIO[2.4 GHz module] <--> MCU
UI[display + encoder] <--> MCU
Source: architecture.mmd.
Subsystems, make or buy:
- Make: block + bore (die-cast at 1000 units, CNC for the prototype); main PCB; enclosure (Al shell + PC V-0 end caps, MECH); translucent moulded tank.
- Buy: cast-in tubular heater, vibratory pump, cut-outs, PSU module, pre-certified radio module.
Candidate part numbers were not looked up by ARCH (none invented); see the ELEC/COST sections and
09-bom-cost/. Interfaces: interfaces.md. Owner sections: sections/ELEC.md, sections/COST.md.
6. Key estimates
| figure | value | home | label |
|---|---|---|---|
| rated input 230 V | 970 W | arch.power | CALCULATION |
| fluid energy | 2470 J/ml (2100-2900) | arch.e_ml | CALCULATION on ASSUMPTION composition |
| warm-up 230/207 V | 2.89 / 3.59 min | arch.a1_warmup_230v / _207v | CALCULATION |
| continuous 230 V | 21.9 ml/min (band 18.6-25.7; 17.5 at 207 V) | arch.a1_continuous | CALCULATION |
| peak 30 s | 20.6 ml | arch.a1_peak30s | CALCULATION |
| ready-hold | 51 W | arch.a1_ready_hold | CALCULATION |
| US current 120 V | 8.08 A (<= 12 A) | calc/arch_energy.results.json | CALCULATION |
| envelope / mass | [310,165,185] mm / 2.62 kg | arch.dimensions / arch.mass | ASSUMPTION / CALCULATION |
| unit cost q1/q100/q1000 | 338.1 / 122.5 / 72.9 EUR | cost.unit_cost_q* | COST |
7. Safety concept
Inherently safe design first:
- The heater is energised only through a relay and series cut-outs that act without firmware: an auto-reset cut-out and a one-shot thermal fuse on the block.
- The pump runs only when READY.
- Class I, with PE bonding of the block and of the metal shell.
- DMX, radio and UI are on SELV behind reinforced insulation.
- The nozzle sits behind a touch guard.
- The tank is above no live parts, with a vented cap and a drip path away from the electronics.
Hazard list and FMEA: SAFE (08-safety-certification/).
8. Compliance route (owner SAFE)
- EU: CE under the radio-equipment route, covering safety (EN 60335-1, named in ZAD-SAF-01) and EMC, plus RoHS, WEEE and standby ecodesign.
- US/CA: FCC Part 15 (module grant plus unintentional radiator) and an NRTL listing.
- ESTA: E1.11 (DMX), E1.20 (RDM) and E1.5 (fluid), as named in INPUT/requirements.md.
- Exact standard editions, costs and timeline belong in SAFE's section.
9. Cost
COST facts:
- Unit cost: cost.unit_cost_q1 338.1, cost.unit_cost_q100 122.5, cost.unit_cost_q1000 72.9 EUR.
- Retail price: cost.retail_price 229 EUR.
- One-off costs: cost.one_off_total 43500 EUR.
- Gross margin per unit: cost.direct_gross_margin 93.0 EUR direct, cost.dealer_gross_margin 33.6 EUR via dealers.
Details: 09-bom-cost/, sections/COST.md.
10. Risks
| risk | L | I | mitigation | retired by |
|---|---|---|---|---|
| fluid energy higher than 2470 J/ml -> continuous < 22 ml/min | M | M | fluid-type setting; claim threshold 15 only | weighed 30-min run (test plan) |
| spitting at burst start | M | H | droop limit 40 K, pump ramp, check valve, bore length | droop test with absorbent sheet |
| unit cost 72.9 > 60 EUR target | H | M | die-cast block, single PCB | quotes at 1000 |
| leakage current hot (heater MgO) | M | H | heater spec <= 0.25 mA, Class I | hot leakage test |
| standby 0.5 W with radio + DMX listening | M | L | PSU with low no-load loss, radio duty cycling | standby measurement |
11. Decisions taken without a human
See mesh/decision-log.md. ARCH's:
- Fluid composition: 75/25 water/glycol (ASSUMPTION).
- Heater 950 W (ELEC), so rated input is 970 W.
- Set point 290 C.
- Radio: a pre-certified 2.4 GHz module (POLICY 4) rather than sub-GHz.
12. Open issues for detailed design
- Heater and pump part selection, with second sources.
- Bore and nozzle design against spitting.
- SAFE FMEA.
- Per-variant BOM (ZAD-PWR-01).
- ZAD-PRF-02 target: CR M-0023 (MECH) asks for a heater of about 1000 W. ARCH's answer (M-0033): within the 1000 W budget the heater can reach 980 W; ELEC decides the heater power.
02-concept/interfaces.md
Interfaces (ARCH) - concept A1
| id | type | between (owners) | agreed numbers (fact ids) | check |
|---|---|---|---|---|
| IF-1 | electrical | mains inlet -> heater (ELEC, MECH) | arch.power 970 W at 230 V; heater elec.heater_power_nom 950 W, R 55.7 ohm EU / 15.2 ohm US (calc/arch_energy.results.json) | arch.power le arch.budget.power |
| IF-2 | electrical | PSU -> logic, pump (ELEC) | elec.pump_power 18 W, elec.logic_power_run 2 W | in arch.power |
| IF-3 | thermal | block -> enclosure (MECH, SAFE) | mech.ready_hold_loss 49.3 W at 290 C; mech.enclosure_rise_hotspot 23.1 K | ZAD-SAF-02 rise <= 60 K threshold |
| IF-4 | thermal/safety | cut-outs on block -> heater circuit (MECH, ELEC, SAFE) | firmware-independent, in series with the relay | SAFE FMEA |
| IF-5 | fluid | tank -> filter -> pump -> check valve -> block bore -> nozzle (MECH) | continuous 21.9 ml/min (arch.a1_continuous); tank mech.tank_usable 1.29 L | ZAD-PRF-02/05/09 |
| IF-6 | data | DMX512/RDM isolated RS-485 -> MCU (ELEC) | reinforced insulation to mains | ZAD-FUN-01, ZAD-SAF-06 |
| IF-7 | data/radio | 2.4 GHz module <-> remote (ELEC) | range target 50 m | ZAD-FUN-03 |
| IF-8 | mechanical | block, tank, PCB, pump in enclosure (MECH) | envelope arch.dimensions [310,165,185] mm; arch.mass 2.62 kg | arch.mass le arch.budget.mass; 9.46 L le 12 L |
| IF-9 | user | display/encoder, refill cap, nozzle guard (MECH, ELEC) | controls >= 150 mm from outlet | ZAD-SAF-03 |
02-concept/mesh/decision-log.md
Decision log of the peer mesh
Generated 2026-10-30T04:54:39+01:00 by method/gates/board_check.py export from the board log (34 messages: ANS 1, BLOCKED 1, CALL 1, CLOSE 1, CR 2, DECISION 2, DONE 11, INFO 7, NUDGE 1, PHASE 2, Q 1, TALLY 1, VOTE 3). Every message between peers was logged before it was sent; the raw log is log.jsonl in this folder.
Roster
| role | brief | status |
|---|---|---|
| CONVENER | MAIN.md | live |
| REQ | method/roles/REQ.md | done |
| ARCH | method/roles/ARCH.md | done |
| MECH | method/roles/MECH.md | done |
| ELEC | method/roles/ELEC.md | done |
| SAFE | method/roles/SAFE.md | done |
| COST | method/roles/COST.md | done |
Decisions (re = the CR, question, objection or tally it settles)
| id | time | type | from -> to | text | re |
|---|---|---|---|---|---|
| M-0021 | 04:50 | DECISION | ARCH -> ALL | A1 taken into design (7.26 vs A3 5.50, A2 4.44; KO/veto none). Owners: MECH sizes block C~595 J/K, bore, 1.2 L tank for A1; ELEC triac+relay+vibratory pump, isolated DMX/RDM, 2.4 GHz module; SAFE FMEA on A1; COST rolls A1. Record: board/decisions/D-ARCH-01.md | M-0012 |
| M-0025 | 04:52 | DECISION | ARCH -> REQ | Final: arch.power = 970 W (elec.heater_power_nom 950 + pump 18 + logic 2; calc/arch_energy.py rerun with ELEC/MECH values). Also updated: arch.a1_continuous 21.9 ml/min (misses 22 target, meets 15), a1_warmup 2.89/3.59 min, a1_peak30s 20.6 ml, a1_ready_hold 51 W, arch.mass 2.62 kg, arch.dimensions [310,165,185] mm. | M-0022 |
Change requests (2: 0 accepted, 1 answered or rejected, 1 open; median answer time 2 min)
| id | time | from -> to | request | outcome |
|---|---|---|---|---|
| M-0023 | 04:52 | MECH -> ELEC,ARCH | ZAD-PRF-02 target 22 ml/min needs heater about 1000 W at 230 V (mech.heater_need_for_prf02_target; worst fluid 2.59 kJ/ml, loss 49 W). At elec.heater_power_nom 950 W: 20.8 ml/min = PARTIAL. Request 1000 W if ZAD-PWR-02 a | answered/rejected by ARCH in 2 min (M-0033): arch.budget.power stays 1000 W (ZAD-PWR-02 target). Inside it ELEC may raise the heater to 980 W (rated 1000 W). POLICY 2.2 (ZAD-PRF-02 weight 5 > ZAD-PWR-02 we |
| M-0028 | 04:52 | SAFE -> REQ | Add derived safety reqs DR-SAF-01..14 (board/ideas/SAFE.md): firmware-independent heater cut-outs (HW relay drop + thermal fuse), HW pump-enable temp interlock, ext. watchdog, fluid/electronics separation, reinforced 5.0 | OPEN |
Objections, vetoes, lifts, calls and tallies
| id | time | type | from -> to | text | re |
|---|---|---|---|---|---|
| M-0004 | 04:49 | CALL | ARCH -> ALL | Concept ballot open: A1 integrated thermal-mass block, A2 low-mass flow heater, A3 modular hardware-regulated high-mass block (board/concepts.md, numbers arch.a*). Closes 04:50. Rate your reqmap criteria + RISK; SAFE also SAFETY. | - |
| M-0012 | 04:50 | TALLY | CONVENER -> REQ,ARCH,MECH,ELEC,SAFE,COST | ARCH-concept: A1 wins by 1.76; sensitivity holds; KO []; vetoed []. See board/votes/ARCH-concept/TALLY.md | M-0004 |
Blocked (needs a human)
- M-0030 SAFE: Legal confirmation that Machinery Regulation (EU) 2023/1230 does not apply to the fog machine and that Ecodesign 2023/826 scope covers it :: needs a legal opinion (human)
Still open at export
- M-0023 CR MECH->ELEC,ARCH (3 min, waiting for ELEC): ZAD-PRF-02 target 22 ml/min needs heater about 1000 W at 230 V (mech.heater_need_for_prf02_target; worst fluid 2.59 kJ/ml, loss 49 W). At elec.heater_power_nom 950 W: 20.8 ml/min = PARTIAL. Request 10
- M-0028 CR SAFE->REQ (2 min, waiting for REQ): Add derived safety reqs DR-SAF-01..14 (board/ideas/SAFE.md): firmware-independent heater cut-outs (HW relay drop + thermal fuse), HW pump-enable temp interlock, ext. watchdog, fluid/electronics separa
02-concept/mesh/facts.md
Key numbers register (merged board facts)
Generated 2026-10-30T04:54:39+01:00. Each number has one owner; source is its home (script, results file, URL with date, or the reason of an ASSUMPTION).
| id | value | unit | label | source | owner | requirement ids |
|---|---|---|---|---|---|---|
| arch.a1_continuous | 21.9 | ml/min | CALCULATION | deliverables/02-concept/calc/arch_energy.results.json (band 18.6-25.7 over e_ml band; 17.5 at 207 V) | ARCH | ZAD-PRF-02 |
| arch.a1_peak30s | 20.6 | ml | CALCULATION | deliverables/02-concept/calc/arch_energy.results.json (40 K droop allowed) | ARCH | ZAD-PRF-04 |
| arch.a1_ready_hold | 51 | W | CALCULATION | deliverables/02-concept/calc/arch_energy.results.json (mech.ready_hold_loss 49.3 W + logic 2 W) | ARCH | ZAD-PWR-03 |
| arch.a1_warmup_207v | 3.59 | min | CALCULATION | deliverables/02-concept/calc/arch_energy.results.json | ARCH | ZAD-PRF-01 |
| arch.a1_warmup_230v | 2.89 | min | CALCULATION | deliverables/02-concept/calc/arch_energy.results.json | ARCH | ZAD-PRF-01 |
| arch.a2_peak30s | 13.6 | ml | CALCULATION | deliverables/02-concept/calc/arch_energy.results.json | ARCH | ZAD-PRF-04 |
| arch.a2_warmup_230v | 0.72 | min | CALCULATION | deliverables/02-concept/calc/arch_energy.results.json | ARCH | ZAD-PRF-01 |
| arch.a3_peak30s | 28.8 | ml | CALCULATION | deliverables/02-concept/calc/arch_energy.results.json | ARCH | ZAD-PRF-04 |
| arch.a3_warmup_230v | 4.44 | min | CALCULATION | deliverables/02-concept/calc/arch_energy.results.json (5.53 min at 207 V) | ARCH | ZAD-PRF-01 |
| arch.budget.cost | 60 | EUR | SOURCE | INPUT/requirements.md ZAD-CST-01 target (threshold 85 EUR) | ARCH | ZAD-CST-01 |
| arch.budget.mass | 3.0 | kg | SOURCE | INPUT/requirements.md ZAD-WGT-01 target (threshold 4 kg) | ARCH | ZAD-WGT-01 |
| arch.budget.power | 1000 | W | SOURCE | INPUT/requirements.md ZAD-PWR-02 target (threshold 1200 W) | ARCH | ZAD-PWR-02 |
| arch.budget.volume | 12 | L | SOURCE | INPUT/requirements.md ZAD-SIZ-01 target (threshold 16 L) | ARCH | ZAD-SIZ-01 |
| arch.dimensions | [310, 165, 185] | mm | ASSUMPTION | = mech.envelope (MECH layout sketch, 9.46 L); +/-20 mm moves SIZ margins only | ARCH | ZAD-SIZ-01, ZAD-SIZ-02 |
| arch.e_ml | 2470 | J/ml | CALCULATION | deliverables/02-concept/calc/arch_energy.results.json (75/25 water/glycol ASSUMPTION; band 2100-2900 J/ml) | ARCH | ZAD-PRF-02, ZAD-PRF-04 |
| arch.mass | 2.62 | kg | CALCULATION | = mech.dry_mass (deliverables/02-concept/calc/mech_concept.py): budget contributions 2.37 kg + 0.25 kg electronics ASSUMPTION | ARCH | ZAD-WGT-01 |
| arch.power | 970 | W | CALCULATION | deliverables/02-concept/calc/arch_energy.results.json (rated_input_230V = elec.heater_power_nom + elec.pump_power + elec.logic_power_run) | ARCH | ZAD-PWR-02 |
| cost.alt_castblock_q1000 | 72.9 | EUR | CALCULATION | deliverables/02-concept/calc/cost_rollup.results.json (baseline: die-cast Al heater block with embedded element) | COST | |
| cost.dealer_gross_margin | 33.6 | EUR | CALCULATION | deliverables/02-concept/calc/cost_rollup.results.json | COST | ZAD-CST-05 |
| cost.direct_gross_margin | 93.0 | EUR | CALCULATION | deliverables/02-concept/calc/cost_rollup.results.json | COST | ZAD-CST-05 |
| cost.labour_min_q1000 | 18 | min | ASSUMPTION | assembly + EOL test estimate for ~25 parts, sheet-metal enclosure; sensitive +/-5 min = +/-2 EUR | COST | ZAD-MFG-02 |
| cost.one_off_total | 43500 | EUR | CALCULATION | deliverables/02-concept/calc/cost_rollup.results.json | COST | ZAD-CST-04 |
| cost.prototype_cost | 286.4 | EUR | CALCULATION | deliverables/02-concept/calc/cost_rollup.results.json | COST | ZAD-CST-03 |
| cost.retail_price | 229 | EUR | ASSUMPTION | price point set at ZAD-CST-05 target, below benchmark pro units 350-450 EUR (benchmark.md); incl. 23 % VAT | COST | ZAD-CST-05 |
| cost.unit_cost_q1 | 338.1 | EUR | CALCULATION | deliverables/02-concept/calc/cost_rollup.results.json | COST | ZAD-CST-03 |
| cost.unit_cost_q100 | 122.5 | EUR | CALCULATION | deliverables/02-concept/calc/cost_rollup.results.json | COST | ZAD-CST-02 |
| cost.unit_cost_q1000 | 72.9 | EUR | CALCULATION | deliverables/02-concept/calc/cost_rollup.results.json | COST | ZAD-CST-01 |
| elec.dmx_loss_stop | 1.0 | s | ASSUMPTION | firmware timeout chosen at half the 2 s target of ZAD-SAF-07; pump stop is immediate after timeout | ELEC | ZAD-SAF-07 |
| elec.heater_p_eu_207 | 770 | W | CALCULATION | deliverables/02-concept/calc/elec_power.results.json | ELEC | ZAD-PRF-01, ZAD-PRF-02, ZAD-PRF-06 |
| elec.heater_p_eu_253 | 1150 | W | CALCULATION | deliverables/02-concept/calc/elec_power.results.json | ELEC | ZAD-SAF-02, ZAD-SAF-01 |
| elec.heater_power_nom | 950 | W | ASSUMPTION | sized so the rated input stays under the 1000 W target of ZAD-PWR-02; warm-up and continuous rate (MECH) scale linearly with it | ELEC | ZAD-PWR-02, ZAD-PRF-01, ZAD-PRF-02 |
| elec.heater_r_eu | 55.7 | ohm | CALCULATION | deliverables/02-concept/calc/elec_power.results.json | ELEC | ZAD-PWR-01 |
| elec.heater_r_us | 15.16 | ohm | CALCULATION | deliverables/02-concept/calc/elec_power.results.json | ELEC | ZAD-PWR-01 |
| elec.logic_power_run | 2.0 | W | CALCULATION | deliverables/02-concept/calc/elec_power.results.json | ELEC | |
| elec.max_input_us_127 | 1084 | W | CALCULATION | deliverables/02-concept/calc/elec_power.results.json | ELEC | ZAD-PWR-01, ZAD-PWR-02 |
| elec.off_power | 0 | W | CALCULATION | deliverables/02-concept/calc/elec_power.results.json | ELEC | ZAD-PWR-04 |
| elec.pcb_size | [100, 70] | mm | ASSUMPTION | one main board (mains + SELV zones, 8 mm creepage slot) plus a 60 x 25 mm UI board; MECH bay fact pending | ELEC | |
| elec.pump_power | 18 | W | ASSUMPTION | small AC vibratory pump while stroking (F-ELEC-1); class value, confirm with MECH pump choice; < 2 % of input | ELEC | |
| elec.radio_margin_50m | 18.8 | dB | CALCULATION | deliverables/02-concept/calc/elec_power.results.json | ELEC | ZAD-FUN-03 |
| elec.rated_input_eu | 970 | W | CALCULATION | deliverables/02-concept/calc/elec_power.results.json | ELEC | ZAD-PWR-02 |
| elec.standby_power | 0.29 | W | CALCULATION | deliverables/02-concept/calc/elec_power.results.json | ELEC | ZAD-PWR-04 |
| elec.stroke_gap_at_2mlmin | 1.5 | s | CALCULATION | deliverables/02-concept/calc/elec_power.results.json | ELEC | ZAD-PRF-05 |
| mech.continuous_rate_207v | 16.7 | ml/min | CALCULATION | deliverables/02-concept/calc/mech_concept.py | MECH | ZAD-PRF-02 |
| mech.continuous_rate_230v | 20.8 | ml/min | CALCULATION | deliverables/02-concept/calc/mech_concept.py | MECH | ZAD-PRF-02 |
| mech.dry_mass | 2.62 | kg | CALCULATION | deliverables/02-concept/calc/mech_concept.py | MECH | ZAD-WGT-01 |
| mech.enclosure_rise_hotspot | 23.1 | K | CALCULATION | deliverables/02-concept/calc/mech_concept.py | MECH | ZAD-SAF-02 |
| mech.envelope | [310, 165, 185] | mm | ASSUMPTION | layout sketch in sections/MECH.md; +/-20 mm moves SIZ margins only | MECH | ZAD-SIZ-01, ZAD-SIZ-02 |
| mech.envelope_volume | 9.46 | L | CALCULATION | deliverables/02-concept/calc/mech_concept.py | MECH | ZAD-SIZ-01 |
| mech.fluid_energy_worst | 2.593 | kJ/ml | CALCULATION | deliverables/02-concept/calc/mech_concept.py | MECH | ZAD-PRF-02 |
| mech.heater_need_for_prf02_target | 1000 | W | CALCULATION | 22 ml/min x 2593 J/ml / 60 + 49 W loss (deliverables/02-concept/calc/mech_concept.results.json) | MECH | ZAD-PRF-02 |
| mech.mass_exchanger | 1.02 | kg | CALCULATION | deliverables/02-concept/calc/mech_concept.py | MECH | |
| mech.mass_housing | 0.71 | kg | ASSUMPTION | 1 mm Al shell 0.55 + PC V-0 end caps 0.16; +/-0.15 kg | MECH | |
| mech.mass_tank_pump_small | 0.64 | kg | ASSUMPTION | tank+cap 0.19, vibratory pump 0.30, small parts 0.15; +/-0.1 kg | MECH | |
| mech.peak_30s | 17.4 | ml | CALCULATION | deliverables/02-concept/calc/mech_concept.py | MECH | ZAD-PRF-04 |
| mech.ready_hold_loss | 49.3 | W | CALCULATION | deliverables/02-concept/calc/mech_concept.py | MECH | ZAD-PWR-03 |
| mech.tank_usable | 1.29 | L | CALCULATION | deliverables/02-concept/calc/mech_concept.py | MECH | ZAD-PRF-09 |
| mech.tip_angle | 34.8 | deg | CALCULATION | deliverables/02-concept/calc/mech_concept.py | MECH | ZAD-SAF-04 |
| mech.warmup_207v | 3.24 | min | CALCULATION | deliverables/02-concept/calc/mech_concept.py | MECH | ZAD-PRF-01 |
| mech.warmup_230v | 2.61 | min | CALCULATION | deliverables/02-concept/calc/mech_concept.py | MECH | ZAD-PRF-01 |
| req.ambient_max | 40 | degC | SOURCE | INPUT/requirements.md ZAD-REL-02 target (threshold 35 degC) | REQ | ZAD-REL-02 |
| req.ambient_min | 5 | degC | SOURCE | INPUT/requirements.md ZAD-REL-02 | REQ | ZAD-REL-02 |
| req.ambient_nominal | 20 | degC | SOURCE | INPUT/requirements.md ZAD-PRF-01 (cold start at 20 degC) | REQ | ZAD-PRF-01, ZAD-PRF-02 |
| req.ambient_ready_hold | 25 | degC | SOURCE | INPUT/requirements.md ZAD-PWR-03 | REQ | ZAD-PWR-03 |
| req.continuous_rate_threshold | 15 | ml/min | SOURCE | INPUT/requirements.md ZAD-PRF-02 threshold (target 22 ml/min) | REQ | ZAD-PRF-02 |
| req.dmx_loss_stop_target | 2 | s | SOURCE | INPUT/requirements.md ZAD-SAF-07 (threshold 5 s) | REQ | ZAD-SAF-07 |
| req.eu_input_threshold | 1200 | W | SOURCE | INPUT/requirements.md ZAD-PWR-02 threshold (target 1000 W) | REQ | ZAD-PWR-02 |
| req.event_duty_hours | 8 | h | SOURCE | INPUT/brief.md (events of 1-8 hours) | REQ | |
| req.fluid_reference | 1 | 1 | ASSUMPTION | reference fluid = ANSI E1.5 standard-density water-glycol fluid (about 20-35 % glycols); the energy per ml of the densest (long-hang) type s | REQ | ZAD-PRF-02, ZAD-PRF-08 |
| req.retail_price_threshold | 299 | EUR | SOURCE | INPUT/requirements.md ZAD-CST-05 (target 229 EUR incl. VAT) | REQ | ZAD-CST-05 |
| req.supply_eu_max | 253 | V | SOURCE | INPUT/requirements.md ZAD-PRF-06 (+10 %) | REQ | ZAD-PRF-06, ZAD-PWR-02 |
| req.supply_eu_min | 207 | V | SOURCE | INPUT/requirements.md ZAD-PRF-01, ZAD-PRF-06 (-10 %) | REQ | ZAD-PRF-01, ZAD-PRF-06 |
| req.supply_eu_nominal | 230 | V | SOURCE | INPUT/requirements.md ZAD-PRF-01, ZAD-PWR-02 | REQ | ZAD-PRF-01, ZAD-PWR-02 |
| req.supply_us_nominal | 120 | V | SOURCE | INPUT/requirements.md ZAD-PWR-01 | REQ | ZAD-PWR-01 |
| req.surface_rise_threshold | 60 | K | SOURCE | INPUT/requirements.md ZAD-SAF-02 (target 20 K; plastic handle 50 K, metal handle 30 K) | REQ | ZAD-SAF-02 |
| req.test_run_duration | 30 | min | SOURCE | INPUT/requirements.md ZAD-PRF-02, -03, -06, -07 | REQ | ZAD-PRF-02, ZAD-PRF-03, ZAD-PRF-06, ZAD-PRF-07 |
| req.unit_cost_q1000_threshold | 85 | EUR | SOURCE | INPUT/requirements.md ZAD-CST-01 (target 60 EUR) | REQ | ZAD-CST-01 |
| req.us_input_max | 1440 | W | SOURCE | INPUT/requirements.md ZAD-PWR-02 (12 A continuous on a 15 A circuit) | REQ | ZAD-PWR-02 |
| safe.bracket_proof_factor | 10 | 1 | ASSUMPTION | common entertainment rigging practice for suspended devices; affects bracket section only | SAFE | ZAD-FUN-08 |
| safe.clearance_reinforced | 3.0 | mm | SOURCE | EN 60335-1:2012 Table 16 (OVC II, 2.5 kV impulse, reinforced) - standard text, not re-read in this run; lab to confirm | SAFE | ZAD-SAF-06 |
| safe.compliance_cost | 55000 | EUR | ASSUMPTION | typical lab price ranges EU (RED/EN 60335-1/EMC/radio) + FCC/ISED + NRTL E1.29 listing; quotes not requested (boundary) | SAFE | ZAD-CRT-01, ZAD-CRT-02 |
| safe.creepage_reinforced | 5.0 | mm | SOURCE | EN 60335-1:2012 Table 17 (2x basic 2.5 mm, 250 V, PD2, MG IIIa) - standard text, not re-read in this run; lab to confirm | SAFE | ZAD-SAF-06 |
| safe.heater_step_d | 0.76 | % | CALCULATION | deliverables/02-concept/calc/safe_leakage.results.json | SAFE | ZAD-CRT-01 |
| safe.hipot_reinforced | 3000 | V | SOURCE | EN 60335-1:2012 Table 7, rated voltage 150-250 V - standard text, not re-read in this run | SAFE | ZAD-SAF-06 |
| safe.leakage_eu | 0.226 | mA | CALCULATION | deliverables/02-concept/calc/safe_leakage.results.json | SAFE | ZAD-SAF-06 |
| safe.leakage_us | 0.155 | mA | CALCULATION | deliverables/02-concept/calc/safe_leakage.results.json | SAFE | ZAD-SAF-06 |
| safe.y_cap_max_nF | 2.5 | nF | CALCULATION | deliverables/02-concept/calc/safe_leakage.results.json | SAFE | ZAD-SAF-06 |
Interface constraints and budgets
- arch.mass le arch.budget.mass
- arch.power le arch.budget.power
- elec.max_input_us_127 le req.us_input_max
- elec.rated_input_eu le req.eu_input_threshold
- budget mass: 2.37 kg from 3 contributions; limit 3.0
- budget power: 970.0 W from 3 contributions; limit 1000
Consistency findings at export
- none
02-concept/mesh/fragments.md
Concept fragments posted by the peers
Each domain owner posted its own fragments; the system alternatives were assembled from them (see ../concept.md).
<!-- board/ideas/ARCH.md -->
Ideas - ARCH
Function structure (verb-noun; every fragment names the functions it serves)
| id | function | flow |
|---|---|---|
| F1 | accept mains power (inlet, switch, fuse, PE) | energy in |
| F2 | convert/supply low voltage (PSU, isolation) | energy |
| F3 | store fluid (tank, level, refill, vent) | material |
| F4 | meter fluid (pump, filter, check valve) | material + signal |
| F5 | heat exchanger to set point (heater, block, insulation) | energy -> heat |
| F6 | vaporise and eject fluid (bore, nozzle, guard) | material + heat out |
| F7 | regulate temperature and pump-follows-heat | signal |
| F8 | protect independently of firmware (cut-outs, thermal fuse, relay) | signal + energy |
| F9 | receive DMX512/RDM, isolated | signal in |
| F10 | link wireless remote 2-way (pairing, status) | signal in/out |
| F11 | show state and take user input (display, encoder) | signal |
| F12 | house, cool, mount, carry (enclosure, bracket, feet, handle) | structure + heat out |
Energy: mains -> F1 -> F5 (~975 W) / F2 (~18 W) -> heat into fluid (F6) + losses (~60 W) through F12. Material: fluid F3 -> F4 -> F5/F6 -> fog. Signal: F9/F10/F11 -> F7 -> F4/F5; F8 overrides F5 in hardware.
F-ARCH-1 - Integrated single main PCB, software regulation + hardware backstop
- Working principle: one main PCB on the mains side carries PSU, heater triac+relay, pump driver, MCU, isolated DMX and a pre-certified radio module; MCU runs PID and pump-follows-heat; two firmware-independent cut-outs in series with the heater.
- Functions served: F2, F7, F8, F9, F10, F11
- First-order numbers: arch.power, arch.a1_* (calc/arch_energy.py)
- Needs: block NTC/thermocouple to ELEC, heater 975 W/230 V and 975 W/120 V from MECH, cut-out on block.
- Risks: single PCB mixes mains and SELV -> reinforced creepage (SAFE); one board spin.
F-ARCH-2 - Modular: mains power module with hardware thermostat + low-voltage logic module
- Working principle: heater regulated by a capillary/bimetal thermostat (EN 60730) on the block, no MCU in the heat loop; LV module (MCU, DMX, radio, UI) only meters the pump against block temperature read by an NTC; large thermal mass rides through thermostat hysteresis.
- Functions served: F5, F7, F8 (heat in hardware), F9-F11 (logic module)
- First-order numbers: arch.a3_* (calc/arch_energy.py)
- Risks: thermostat hysteresis +/-10 K -> output stability (ZAD-PRF-06); slower warm-up; two PCBs + harness.
<!-- board/ideas/COST.md -->
COST ideas / summary
- Benchmark (deliverables/02-concept/benchmark.md): 6 products, 70-400 EUR; pro output today costs 350-450 EUR.
- Price point: 229 EUR incl. VAT (ZAD-CST-05 target) with dealer channel still positive.
- Unit-cost anchors (facts cost.*): q1000 ~76 EUR (EU assembly), q100 ~116 EUR, q1 ~346 EUR.
- Cost levers: purchased die-cast heater block with embedded element, off-the-shelf vibratory pump, pre-certified RF module (saves FCC/RED radio cost), sheet-steel enclosure (low tooling).
<!-- board/ideas/ELEC.md -->
Ideas - ELEC
Physics of my domains (handbook section 4)
| domain | rating | governing relations | dominant parameters | first-order numbers (fact ids) | typical failures |
|---|---|---|---|---|---|
| electrical power | CRITICAL | P = V^2/R (heater), I = P/V, flicker/harmonics of switched 1 kW loads | heater R, supply range 207-253 V / 108-127 V | elec.heater_power_nom 950 W, elec.heater_p_eu_207 770 W, elec.heater_p_eu_253 1150 W, elec.max_input_us_127 1084 W | triac shorted (heater stuck on), flicker from burst-fire, earth leakage of heater insulation |
| electronics and control | CRITICAL | PI temperature loop, pump volume = strokes x stroke volume, RS-485 isolation | sensor accuracy at 200-300 degC, metering resolution | elec.stroke_gap_at_2mlmin 1.5 s, elec.standby_power 0.29 W | sensor open/short, stroke volume drift with back-pressure |
| firmware | RELEVANT | state machine COLD-HEATING-READY-FOG-FAULT, pump-follows-heat derating | DMX timeout, watchdog | elec.dmx_loss_stop 1.0 s | hung firmware (covered by hardware cut-out + relay watchdog) |
| radio and EMC | RELEVANT | link budget FSPL = 20log d + 20log f - 147.55 | TX power, sensitivity, antenna loss | elec.radio_margin_50m 18.8 dB | detuned antenna near metal, conducted emissions of the triac |
F-ELEC-1 - AC drives with zero-cross triacs, 3 W supply, sub-GHz radio
- Working principle: 3 W isolated offline module (MEAN WELL IRM-03-5, LCSC C6969425, $3.93, stock 66, read 2026-10-30) feeds an STM32G071 (C529341, $1.31 @1k); heater by BTA16-600BW triac (C87396 ST $0.63 @1k / C19184935 KTP) via MOC3063 zero-cross opto (C77950 Lite-On / C3014302 UMW) with full-cycle burst control, in series with a safety relay held by a hardware watchdog; AC vibratory pump by a second triac with half-wave stroke metering, stroke rate compensated for measured mains voltage; PT1000 thin-film sensor on the exchanger; CC1101 868/915 MHz two-way radio (C29953, $1.19 @1k; a pre-certified module preferred, ASSUMPTION); DMX via SN65HVD72 (C48125) behind a B0505S-1WR3 isolated DC-DC (C7465178 EVISUN / C2992394 YLPTEC) and digital isolator.
- Numbers: rated input 970 W at 230 V (elec.rated_input_eu), standby 0.29 W (elec.standby_power), radio margin 18.8 dB at 50 m.
- Needs: MECH pump with <= 0.05 ml/stroke; bay for 100 x 70 mm board.
- Risks: pump noise (UX-01), open-loop stroke volume (PRF-06 target 5 %).
F-ELEC-2 - 12 V DC gear pump with closed-loop speed, 10 W supply, 2.4 GHz SoC module
- Working principle: IRM-10-12 (C42418573 MW / C20618065 LZTEC) + TPS54202 buck (C191884); DC gear pump PWM with tacho loop (flow independent of mains voltage); K thermocouple + converter; ESP32-C3-MINI-1 (C2838502, pre-certified module) as MCU + ESP-NOW radio.
- Numbers: rated input 957 W, standby 0.83 W (target 0.5 W missed, threshold 2 W met), continuous metering down to < 1 ml/min.
- Risks: brushed pump life (REL-01), higher standby, +4-6 EUR cost (ASSUMPTION).
Hardware protections without firmware (for SAFE)
- Heater stuck on / firmware hung: bimetal manual-reset cut-out on the exchanger in series with the heater, plus one-shot thermal link at a cooler mounting point, plus safety relay dropped by a hardware watchdog (retriggerable monostable) - three independent breaks.
- Overcurrent: mains fuse T6.3A (EU, 4.5 A heater) / T12A (US, 8.4 A heater) in the IEC C14 fused inlet; varistor + X2 capacitor for transients; NTC not needed (resistive heater, zero-cross switching limits inrush).
- Pump with heater cold: pump triac gated by an AND of the MCU output and a hardware READY comparator on the exchanger sensor.
<!-- board/ideas/MECH.md -->
Ideas - MECH (stand-in; numbers: deliverables/02-concept/calc/mech_concept.py, facts mech.*)
Physics of my domains (handbook section 4)
| domain | rating | governing relations | dominant parameters | first-order numbers (fact ids) | typical failures |
|---|---|---|---|---|---|
| heat (exchanger) | CRITICAL | rate = (P - loss)/e_ml; warm-up = C dT/(P - loss/2); peak = (C droop + P t)/e_ml | heater P, heat capacity C, setpoint, fluid energy | mech.fluid_energy_worst 2.59 kJ/ml, mech.warmup_230v, mech.continuous_rate_230v, mech.peak_30s | spitting, reheat pauses, coking |
| heat (losses, enclosure) | HIGH | Q = dT/(t/(k A_m) + 1/(h A_o)) | insulation k and thickness, bridges | mech.ready_hold_loss 49 W, mech.enclosure_rise_hotspot 23 K | hot housing, hot electronics |
| fluids | HIGH | pump pulse volume x rate; tank venting | pick-up, vent valve, filter | mech.tank_usable 1.29 L | dripping after stop, leaks when lying |
| structure, stability | MEDIUM | tip = atan((track/2 - e)/h_cg) | track, CoM height | mech.tip_angle 34.8 deg | tipping |
| materials | MEDIUM | service temperature vs rating | A380, 316, PC V-0, PP, FKM | - | glycol attack, creep near heat |
| acoustics | MEDIUM | pump vibration into panels | pump type, isolators | ASSUMPTION 45-50 dB(A) | buzzing housing |
F-MECH-1 - high-mass cast-Al block (heat-storing), horizontal layout
- Principle: 0.55 kg A380 block, cast-in heater and 316 coil, 20 mm mineral wool, stainless shroud.
- Numbers at 950 W: warm-up 2.61 min, continuous 20.8 ml/min (worst fluid), peak 17.4 ml, hold loss 49 W, 2.62 kg.
- Needs: heater about 1000 W for the ZAD-PRF-02 target; PCB bay 150 x 110 x 40 mm above the tank.
F-MECH-2 - low-mass extruded exchanger (power-limited)
- Principle: 0.25 kg extrusion, 2 cartridge heaters, brazed tube.
- Numbers: warm-up 1.25 min, continuous 21.1 ml/min, peak 13.9 ml, hold loss 39 W.
- Risks: spitting on slugs (290 J/K), faster coking.
<!-- board/ideas/SAFE.md -->
SAFE - hazard list (ISO 12100 manner) and regulatory map - FRAME
Scale: S severity 1 first aid, 2 reversible injury, 3 serious/irreversible, 4 fatal or fire of the venue. P probability 1 improbable, 2 remote, 3 occasional, 4 frequent. R = S x P before -> after measures. Measures in the order: D = inherently safe design, G = protective device/guard, I = information for use.
| id | hazard | hazardous situation (use or foreseeable misuse) | harm | S | P | R | key measures | owner | res. P |
|---|---|---|---|---|---|---|---|---|---|
| H01 | mains voltage | heater insulation breakdown (moisture in MgO), exchanger/nozzle metal accessible | shock, death | 4 | 2 | 8 | D Class I, PE bond <= 0.1 ohm of exchanger + all accessible metal; G mains fuse; I RCD advice | ELEC/MECH | 1 |
| H02 | fluid on live parts | tilt 45 deg running, side-lying transport, overfill, hose burst, condensate | shock, tracking fire | 4 | 3 | 12 | D tank and fluid path below/away from mains PCB, drip barrier, drain path, sealed vented cap | MECH | 1 |
| H03 | heater runaway | triac shorted, sensor open/short, MCU hung | fire, molten plastic, glycol autoignition | 4 | 2 | 8 | G HW over-temp cut on 2nd sensor + series relay; G non-resettable thermal fuse; D metal fire enclosure around exchanger | ELEC/MECH | 1 |
| H04 | pressure | outlet blocked, pump dead-heads into hot exchanger | ejection of hot liquid/vapour | 3 | 2 | 6 | D exchanger rated >= 2x pump dead-head pressure or relief to tank; G pump current/temperature-drop detection | MECH | 1 |
| H05 | hot nozzle/exchanger | touching front during or after use | burn | 3 | 3 | 9 | G nozzle guard (probe B), D handles/controls >= 150 mm from outlet; I hot-surface symbol IEC 60417-5041 | MECH | 1 |
| H06 | hot liquid ejection (spitting) | pump runs below vaporisation temperature (cold start, heat deficit, pump switch stuck on) | scald of people near nozzle, slip | 3 | 3 | 9 | D pump-follows-heat rate limit; G HW interlock: pump supply only when exchanger >= min temp (independent of MCU) | ELEC/MECH | 1 |
| H07 | hot enclosure | carrying right after use, touching top | burn | 2 | 3 | 6 | D insulation, air gap, metal shell; limits ZAD-SAF-02 | MECH | 1 |
| H08 | refilling hot machine | tank near exchanger, fill port near nozzle | burn | 2 | 2 | 4 | D tank thermally separated, fill port at the cold end | MECH | 1 |
| H09 | glycol aerosol | dense fog in small rooms close to people | respiratory irritation (asthma) | 2 | 3 | 6 | D output limits and timer; I ANSI E1.5 fluids only, exposure guidance (E1.23) | ARCH | 2 |
| H10 | wrong fluid (misuse) | oil, alcohol, fragrance or flammable liquid filled | fire, toxic decomposition | 4 | 2 | 8 | G thermal fuse below autoignition; D glycol-compatible wetted parts; I tank label + manual | MECH | 1 |
| H11 | fog vs fire detection | fog triggers smoke detector, or detector disabled and not restored | evacuation, undetected real fire | 4 | 3 | 12 | I manual + quick-start: coordinate with venue, detector types; D timer/auto-off | ARCH | 2 |
| H12 | residue | glycol condenses on floor near nozzle, dripping | slip and fall | 3 | 3 | 9 | D no-drip nozzle + drip catcher; I ventilation, distance | MECH | 2 |
| H13 | visibility | fog hides exits in small rooms/escape rooms | injury in panic/evacuation | 3 | 2 | 6 | D auto-off; I keep egress visible (E1.23) | ARCH | 2 |
| H14 | falling object | truss mount bracket fails, no secondary suspension | head injury, death | 4 | 2 | 8 | D bracket + secondary safety-cable eye, proof load 10x mass; I safety cable mandatory | MECH | 1 |
| H15 | tip-over | knocked over on floor, cable pulled | burn, hot spill, fire if nozzle at curtains | 3 | 2 | 6 | D stability >= 15/20 deg, low CoG, cord exit low; G tilt sensor stops pump outside allowed angles | MECH/ELEC | 1 |
| H16 | hot plume | nozzle aimed at people/decor at short range | burn, ignition of light decor | 3 | 2 | 6 | I min. distances from plume-temperature test | REQ test | 1 |
| H17 | unexpected start | foreign remote/DMX address clash, two machines in venue | burst into face (H06/H16) | 2 | 2 | 4 | D unique pairing, READY interlock | ELEC | 1 |
| H18 | loss of control | DMX lost or remote continuous mode forgotten | room fills (H09, H11, H13) | 3 | 2 | 6 | D DMX-loss stop <= 2 s, continuous auto-off, external watchdog | ELEC | 1 |
| H19 | mains to control port | DMX/XLR or LV circuits bridged to mains | shock at desk | 4 | 1 | 4 | D reinforced barrier 5.0/3.0 mm, isolated DMX | ELEC | 1 |
| H20 | supply current 120 V | 8-12 A on cord/inlet | cord/inlet overheating, fire | 3 | 1 | 3 | D cord/inlet/fuse rated per variant | ELEC | 1 |
| H21 | remote battery | coin cell swallowed by child (home users) | death | 4 | 2 | 8 | D AAA cells, screw-secured lid (16 CFR 1263 if coin cell) | ELEC | 1 |
| H22 | thermal decomposition | exchanger overheated or fluid cooked dry | aldehydes (formaldehyde, acrolein) inhaled | 3 | 2 | 6 | D max normal exchanger temperature within fluid maker limit; G thermal fuse | MECH | 1 |
| H23 | flicker / EMC | 1 kW heater switching, radio near wireless mics | nuisance, audio interference (not injury) | 1 | 3 | 3 | D zero-cross burst, slow period; 2.4 GHz link away from mic bands | ELEC | 2 |
Regulatory map (SOURCE where read; editions to be confirmed by the lab at test time)
- EU: radio remote -> RED 2014/53/EU (Art 3.1a safety via LVD objectives, 3.1b EMC, 3.2 spectrum; LVD/EMCD then not applied separately); RoHS 2011/65/EU + 2015/863; WEEE 2012/19/EU; REACH 1907/2006; GPSR (EU) 2023/988 (consumer sales, Kickstarter/web shop); Batteries (EU) 2023/1542 (remote); Ecodesign standby (EU) 2023/826 (applicability to check); PPWR (EU) 2025/40. Machinery Regulation (EU) 2023/1230: assessed not applicable (only an enclosed fluid pump moves) - legal confirmation BLOCKED for a human.
- EU standards: EN 60335-1 (+A's; cl. 11 heating, 13 leakage, 16 electric strength, 19 abnormal operation, 20 stability, 22 construction, 27 earthing, 29 creepage/clearance, 30 heat and fire), EN 62233, EN 55014-1/-2, EN IEC 61000-3-2, EN 61000-3-3, ETSI EN 301 489-1 + -17 (2.4 GHz) or -3 (868 MHz), ETSI EN 300 328 or EN 300 220-2, EN 62479, EN IEC 63000; remote handset EN IEC 62368-1. Route: Module A (RED Annex II) self- declaration, no notified body when harmonised standards are applied in full.
- US/Canada: FCC 47 CFR Part 15 Subpart B Class B (SDoC) for the host, Part 15 Subpart C (15.247) via a pre-certified module with FCC ID; NRTL listing (ETL/UL/CSA) to ANSI E1.29-2009 (R2024) - product safety standard for theatrical fog generators, based on ANSI/UL 998 (SOURCE: https://tsp.esta.org/tsp/documents/published_docs.php, read 2026-10-30); Canada: CSA certification legally required (SOURCE: https://www.ontario.ca/document/safety-guidelines-live-performance-industry/fog-and-haze-effects, read 2026-10-30), ICES-003 Class B, RSS-Gen + RSS-247, bilingual labels; California Prop 65; 16 CFR 1263 if coin cells.
- ESTA/ANSI: E1.11 (DMX512-A), E1.20 (RDM, optional), E1.27-1 (cables), E1.5-2024 (fluids), E1.14-2023 (fog equipment manuals), E1.23-2023 (atmospheric effects), E1.29 (product safety) (SOURCE: https://asepo.org/FogSafety, read 2026-10-30).
Derived safety requirements (sent to REQ as CR)
DR-SAF-01 heater protection independent of firmware: HW over-temp cut on 2nd sensor + series relay, plus non- self-resetting thermal fuse (no reliance on software -> no EN 60335-1 Annex R class B software). DR-SAF-02 pump supply hardware-interlocked to exchanger >= minimum vaporisation temperature. DR-SAF-03 external window watchdog removes heater and pump enable <= 1 s after MCU hang. DR-SAF-04 fluid path and tank separated from mains electronics (drip barrier, no joints above PCBs). DR-SAF-05 reinforced insulation mains-SELV: creepage >= 5.0 mm, clearance >= 3.0 mm, 3000 V a.c. hipot. DR-SAF-06 line/neutral-to-PE Y capacitance <= safe.y_cap_max_nF; heater hot leakage spec <= 0.05 mA. DR-SAF-07 heater switched zero-cross only (no phase angle); switching rate keeps Pst <= 1 (EN 61000-3-3). DR-SAF-08 insulating parts carrying > 0.2 A: GWFI >= 850 degC, GWIT >= 775 degC; metal enclosure around exchanger. DR-SAF-09 exchanger/fluid path withstand >= 2x pump dead-head pressure or relief to tank (blocked outlet). DR-SAF-10 truss bracket + secondary safety-cable eye, static proof load 10x unit mass. DR-SAF-11 remote on AAA cells (no coin cell). DR-SAF-12 normal exchanger temperature within the fluid makers' limit; thermal fuse below the lowest fluid autoignition temperature. DR-SAF-13 tilt sensor stops pump outside the allowed operating angles (ZAD-FUN-08). DR-SAF-14 minimum distances in the manual derived from a plume-temperature test.
<!-- board/concepts.md -->
System alternatives (ARCH, CONVERGE) - morphological table
Note (CLOSE): the tables below are the ballot snapshot (975 W heater, 60 W loss). The current values after the rerun with ELEC/MECH facts are in board/facts/ARCH.yaml and deliverables/02-concept/concept.md (A1 21.9 ml/min, 2.89 min, 20.6 ml).
Numbers: deliverables/02-concept/calc/arch_energy.py -> facts arch.* (CALCULATION on ASSUMPTION inputs: fluid energy arch.e_ml = 2470 J/ml, heater 975 W at 230 V). Fragments: F-ARCH-n in board/ideas/ARCH.md; MECH/ELEC fragments credited where their board/ideas files define them (stand-ins; placeholders noted).
| function | A1 integrated thermal-mass block | A2 low-mass instant heater | A3 modular high-mass, hardware-regulated |
|---|---|---|---|
| F5 heat exchanger | cast-Al block 0.55 kg + steel bore coil, C 595 J/K (MECH block fragment) | thick-film/MI flow-through tube, C 150 J/K (MECH low-mass fragment) | cast-Al block 0.9 kg, C 900 J/K (MECH block fragment, larger) |
| F4 metering | vibratory solenoid pump, pulse-count metering (ELEC) | micro gear pump, closed-loop flow (ELEC) | vibratory pump, capped at continuous rate (ELEC) |
| F7 regulation | MCU PID, zero-cross triac, pump-follows-heat (F-ARCH-1) | MCU heat-follows-flow feedforward, fast burst control | capillary thermostat in hardware; MCU meters pump only (F-ARCH-2) |
| F8 protection | 2 cut-outs (auto-reset + thermal fuse) in series with relay, firmware-independent | same + flow-loss cut-out (dry tube overheats in seconds) | thermostat + 2 cut-outs |
| F2 supply / boards | one main PCB, internal PSU (F-ARCH-1) | one main PCB, internal PSU | mains power module + LV logic module (F-ARCH-2) |
| F9/F10 control | isolated DMX/RDM, 2.4 GHz pre-certified 2-way module | same | isolated DMX, sub-GHz 868/915 MHz (two SKUs) |
First-order numbers vs top-weighted requirements (230 V unless noted)
| requirement | A1 | A2 | A3 |
|---|---|---|---|
| ZAD-PRF-01 warm-up (<=3 target, <=5 thr) | 2.83 min (arch.a1_warmup_230v); 3.52 at 207 V | 0.7 min (arch.a2_warmup_230v) | 4.32 min (arch.a3_warmup_230v); 5.38 at 207 V |
| ZAD-PRF-02 continuous (>=22 / >=15) | 22.2 ml/min (arch.a1_continuous), band 18.9-26.1 | 23.0 ml/min | 21.9 ml/min |
| ZAD-PRF-04 peak 30 s (>=25 / >=12) | 20.8 ml (arch.a1_peak30s) | 13.9 ml (arch.a2_peak30s) | 29.2 ml (arch.a3_peak30s) |
| ZAD-PRF-03/07 no pause, no spit | stored heat buffers pump pulses; firmware caps rate | 40 K droop in <2 s on a slug -> spit risk HIGH | thermostat band +/-10 K -> rate swings; caps avoid pauses |
| ZAD-PWR-02 rated input (<=1000 / <=1200) | 993 W (arch.power) | 993 W | 993 W |
| ZAD-PWR-03 ready-hold (<=80 / <=150) | 63 W (arch.a1_ready_hold) | 33 W | 78 W |
| ZAD-CST-01 unit cost (<=60 / <=85) | ASSUMPTION ~55-65 EUR, pending COST | +10-20 EUR (gear pump, flow heater) ASSUMPTION | +5-8 EUR (2nd PCB, harness, thermostat) ASSUMPTION |
| ZAD-SAF-01 single fault | firmware-independent cut-outs | dry heater runaway fast; needs flow cut-out | inherently simple heat loop |
Main risks and hazards
- A1: fluid energy per ml uncertain (+/-17 %) -> continuous target margin thin; mains+SELV on one PCB (reinforced insulation).
- A2: spitting at load steps (low thermal mass), heater surface load -> life (ZAD-REL-01), gear pump cost and glycol wear.
- A3: misses ZAD-PRF-01 target, 207 V warm-up > 5 min; output stability under thermostat hysteresis (ZAD-PRF-06); two boards.
02-concept/mesh/votes.md
Votes of the peer mesh
Blind votes: each voter wrote its ratings before seeing the others'; the tally script applies knock-outs, the safety veto, the requirement weights of the input and a +/-20 % weight sensitivity.
Tally - ARCH-concept
Tallied 2026-10-30T04:50:07+01:00 by method/gates/board_check.py (run by the convener, who never votes). Question: Which system concept do we take into design? Kind: concept; criteria: 58 (5 rated); requirement weights from INPUT/requirements.md; ballot sha 12763e41b09a, CALL M-0004 sha 12763e41b09a (unchanged) Voters: 2/6; missing: MECH, ELEC, SAFE, COST
| option | weighted rating (0-10) | knock-outs | vetoes | lowest criterion mean | SAFETY |
|---|---|---|---|---|---|
| A1 Integrated single main PCB, cast-Al thermal-mass block (C 59 | 7.26 | 0 | 0 | 7.0 | 0.0 |
| A3 Modular: high-mass block (C 900 J/K) with hardware thermosta | 5.50 | 0 | 0 | 5.0 | 0.0 |
| A2 Low-mass flow-through heater (C 150 J/K), micro gear pump, h | 4.44 | 0 | 0 | 3.5 | 0.0 |
Result: A1 leads by 1.76 Sensitivity (each criterion weight x0.8 and x1.2, 10 cases): winner holds in every case Contested ratings (spread >= 4 between voters): none Unrated criteria: ZAD-PRF-01, ZAD-PRF-02, ZAD-PRF-03, ZAD-PRF-04, ZAD-PRF-05, ZAD-PRF-06, ZAD-PRF-07, ZAD-PRF-08, ZAD-PRF-09, ZAD-SIZ-01, ZAD-SIZ-02, ZAD-WGT-01, ZAD-PWR-01, ZAD-PWR-02, ZAD-PWR-03, ZAD-PWR-04, ZAD-FUN-01, ZAD-FUN-02, ZAD-FUN-03, ZAD-FUN-04, ZAD-FUN-05, ZAD-FUN-06, ZAD-FUN-08, ZAD-UX-01, ZAD-UX-02, ZAD-UX-03, ZAD-UX-04, ZAD-SAF-01, ZAD-SAF-02, ZAD-SAF-03, ZAD-SAF-04, ZAD-SAF-05, ZAD-SAF-06, ZAD-SAF-07, ZAD-SAF-08, ZAD-CRT-01, ZAD-CRT-02, ZAD-CRT-03, ZAD-CST-01, ZAD-CST-02, ZAD-CST-03, ZAD-CST-04, ZAD-CST-05, ZAD-MFG-01, ZAD-MFG-02, ZAD-REL-01, ZAD-REL-02, ZAD-REL-03, ZAD-REL-04, ZAD-SRV-01, ZAD-SRV-02, ZAD-SRV-03, SAFETY
| criterion | weight | raters | A1 | A2 | A3 |
|---|---|---|---|---|---|
| ZAD-PRF-01 | 4.00 | MECH | - | - | - |
| ZAD-PRF-02 | 5.00 | MECH | - | - | - |
| ZAD-PRF-03 | 5.00 | ELEC | - | - | - |
| ZAD-PRF-04 | 3.00 | MECH | - | - | - |
| ZAD-PRF-05 | 2.00 | ELEC | - | - | - |
| ZAD-PRF-06 | 3.00 | ELEC | - | - | - |
| ZAD-PRF-07 | 5.00 | MECH | - | - | - |
| ZAD-PRF-08 | 3.00 | MECH | - | - | - |
| ZAD-PRF-09 | 2.00 | MECH | - | - | - |
| ZAD-SIZ-01 | 3.00 | MECH | - | - | - |
| ZAD-SIZ-02 | 2.00 | MECH | - | - | - |
| ZAD-WGT-01 | 3.00 | MECH | - | - | - |
| ZAD-PWR-01 | 3.00 | ELEC | - | - | - |
| ZAD-PWR-02 | 4.00 | ELEC | - | - | - |
| ZAD-PWR-03 | 2.00 | MECH | - | - | - |
| ZAD-PWR-04 | 1.00 | ELEC | - | - | - |
| ZAD-FUN-01 | 4.00 | ELEC | - | - | - |
| ZAD-FUN-02 | 2.00 | ELEC | - | - | - |
| ZAD-FUN-03 | 4.00 | ELEC | - | - | - |
| ZAD-FUN-04 | 2.00 | ELEC | - | - | - |
| ZAD-FUN-05 | 3.00 | ELEC | - | - | - |
| ZAD-FUN-06 | 4.00 | ELEC | - | - | - |
| ZAD-FUN-07 | 3.00 | ARCH | 8.0 | 8.0 | 8.0 |
| ZAD-FUN-08 | 2.00 | MECH | - | - | - |
| ZAD-UX-01 | 3.00 | MECH | - | - | - |
| ZAD-UX-02 | 2.00 | MECH | - | - | - |
| ZAD-UX-03 | 2.00 | MECH | - | - | - |
| ZAD-UX-04 | 1.00 | ELEC | - | - | - |
| ZAD-UX-05 | 2.00 | ARCH | 8.0 | 8.0 | 7.0 |
| ZAD-SAF-01 | 5.00 | SAFE | - | - | - |
| ZAD-SAF-02 | 4.00 | MECH | - | - | - |
| ZAD-SAF-03 | 3.00 | MECH | - | - | - |
| ZAD-SAF-04 | 3.00 | MECH | - | - | - |
| ZAD-SAF-05 | 3.00 | MECH | - | - | - |
| ZAD-SAF-06 | 4.00 | ELEC | - | - | - |
| ZAD-SAF-07 | 3.00 | ELEC | - | - | - |
| ZAD-SAF-08 | 2.00 | SAFE | - | - | - |
| ZAD-CRT-01 | 5.00 | SAFE | - | - | - |
| ZAD-CRT-02 | 4.00 | SAFE | - | - | - |
| ZAD-CRT-03 | 2.00 | SAFE | - | - | - |
| ZAD-CRT-04 | 4.00 | REQ | 8.0 | 6.0 | 6.0 |
| ZAD-CST-01 | 5.00 | COST | - | - | - |
| ZAD-CST-02 | 2.00 | COST | - | - | - |
| ZAD-CST-03 | 2.00 | COST | - | - | - |
| ZAD-CST-04 | 3.00 | COST | - | - | - |
| ZAD-CST-05 | 4.00 | COST | - | - | - |
| ZAD-MFG-01 | 4.00 | COST | - | - | - |
| ZAD-MFG-02 | 2.00 | COST | - | - | - |
| ZAD-MFG-03 | 3.00 | REQ | 8.0 | 7.0 | 7.0 |
| ZAD-REL-01 | 3.00 | MECH | - | - | - |
| ZAD-REL-02 | 2.00 | ELEC | - | - | - |
| ZAD-REL-03 | 3.00 | MECH | - | - | - |
| ZAD-REL-04 | 2.00 | MECH | - | - | - |
| ZAD-SRV-01 | 3.00 | MECH | - | - | - |
| ZAD-SRV-02 | 2.00 | ELEC | - | - | - |
| ZAD-SRV-03 | 2.00 | ELEC | - | - | - |
| RISK | 33.60 | ALL | 7.0 | 3.5 | 5.0 |
| SAFETY | 22.40 | SAFE | - | - | - |
Votes (revealed after the tally)
REQ
- ZAD-CRT-04: {'A1': 8, 'A2': 6, 'A3': 6} - A1 headline numbers all have CALCULATION facts (arch.a1_warmup_230v, arch.a1_continuous, arch.a1_peak30s, arch.a1_ready_hold); A2/A3 continuous rates exist only in board/concepts.md, no facts yet
- ZAD-MFG-03: {'A1': 8, 'A2': 7, 'A3': 7} - EOL limits of DR-MFG-03 fit all; A2 adds a flow-loss cut-out test, A3 a thermostat check and a second module -> longer test
- RISK: {'A1': 7, 'A2': 4, 'A3': 5} - A1: e_ml +/-17 % thins PRF-02 target margin (arch.e_ml); A2: spit risk at load steps on PRF-07/PRF-03 (w5) + dry-heater runaway + CST-01 +10-20 EUR on cost.unit_cost_q1000=72.9 straddles 85 EUR; A3: PRF-01 4.32 min misses target, 207 V warm-up 5.38 min, thermostat hysteresis vs PRF-06, two boards
ARCH
- ZAD-FUN-07: {'A1': 8, 'A2': 8, 'A3': 8} - all three carry the same display + encoder UI on the logic side (board/ideas/ARCH.md F11); no difference in completeness
- ZAD-UX-05: {'A1': 8, 'A2': 8, 'A3': 7} - A1/A2 one warm-up then fog; A3 warm-up 4.32 min (arch.a3_warmup_230v) and one-way remote pairing step adds handling
- RISK: {'A1': 7, 'A2': 3, 'A3': 5} - A1 proven class, thin margin only on fluid energy (arch.e_ml band 2100-2900); A2 spit risk from C 150 J/K droop + gear-pump wear + heater surface load; A3 thermostat hysteresis vs ZAD-PRF-06 and two boards
02-concept/physics-map.md
Physics map (ARCH, from board/SCAN.md and the owners' tables)
| domain | rating | governing relations | dominant parameters | first-order numbers (facts) | typical failures |
|---|---|---|---|---|---|
| heat | CRITICAL | t_warm = CdT/(P-L); rate = (P-L)/e_ml; burst = (Cdroop + P*t)/e_ml; L = kA dT/s | exchanger capacity C, heater P, loss L, set point | arch.a1_warmup_230v 2.89 min, arch.a1_continuous 21.9 ml/min, arch.a1_peak30s 20.6 ml, arch.a1_ready_hold 51 W | reheat pauses, slow warm-up, hot enclosure |
| fluids and aerosols | CRITICAL | flash vaporisation needs wall T above fluid boiling end (~250-300 C); spit = liquid slug exits when wall T drops | bore length/diameter, pump pulse volume, wall temperature, droop | arch.e_ml 2470 J/ml (band 2100-2900) | spitting, dripping after stop, coking (cleaning interval) |
| electrical power | CRITICAL | I = P/V; R = V^2/P; leakage via heater MgO insulation hot | heater variant, Class I PE, creepage | arch.power 970 W; 8.08 A at 120 V; R 55.7 / 15.2 ohm (calc/arch_energy.results.json) | leakage > 0.5 mA hot, relay weld |
| electronics and control | CRITICAL | PID + feed-forward; pump rate = f(block T margin); DMX 250 kbit/s | sensor accuracy, control period, isolation | ELEC facts (pending) | runaway on sensor fault, DMX noise |
| firmware | RELEVANT | state machine HEAT/READY/FOG/FAULT, DMX-loss timeout | timeouts | ZAD-SAF-07 <= 2 s target | output when not READY |
| materials and chemistry | RELEVANT | glycol at 300 C cokes; wetted parts stainless/PTFE/FKM | wall temperature, materials | MECH (pending) | clogging, seal swelling |
| acoustics | RELEVANT | vibratory pump at 50/60 Hz harmonics; decoupling | pump mounts | MECH (pending) | > 45 dB(A) |
| human factors | RELEVANT | refill hot, UI, remote | cap position, display | ZAD-UX-03, ZAD-FUN-07 | spills on hot parts |
| structure, mechanisms, optics | MINOR | low loads, pump only, display | - | - | - |
| environment | RELEVANT | 40 C ambient derates electronics; smoke detectors | internal T budget | ZAD-REL-02 | PSU/pump overheat |
02-concept/sections/ELEC.md
ELEC - electrical architecture, power budget, protection and firmware (concept)
Numbers are quoted from board/facts/ELEC.yaml; their home is deliverables/02-concept/calc/elec_power.py
-> elec_power.results.json (run ddpy elec_power.py in that folder). Status words: PASS (analysis) only.
Recommended fragment: F-ELEC-1 (lower standby and cost); it implements concept A1 (single main PCB, cast-Al block) chosen by tally M-0012. F-ELEC-2 (closed-loop DC pump) is the fallback for the ZAD-PRF-06 stability risk.
1. Block diagram (F-ELEC-1)
IEC C14 fused inlet (T6.3A EU / T12A US) -> 2-pole mains switch -> X2 cap + MOV + bleeder
|-- L/N --> bimetal cut-out (manual reset) --> thermal link --> safety relay (HW watchdog) --> BTA16 triac --> HEATER 950 W (PE bonded block)
| \--> pump triac (gated by HW READY comparator) --> AC vibratory PUMP
|-- IRM-03-5 (3 W, reinforced) --> 5 V --> LDO 3.3 V (SELV side)
|-- STM32G071 MCU: PI heater loop (PT1000, ratiometric ADC), stroke metering, state machine, IWDG
|-- zero-cross + mains-voltage sense (opto) |-- MOC3063 x2 (zero-cross opto-triacs, reinforced)
|-- UI board: display + encoder + lit level LED |-- CC1101 868/915 MHz two-way radio, paired 32-bit ID
|-- DMX: B0505S isolated DC-DC + digital isolator + SN65HVD72, 5-pin + 3-pin XLR in/thru, switchable 120 ohm
|-- level sensor (MECH: capacitive/float at pick-up) ; USB-C service port (FW update, log)
2. Power budget (both variants, all modes)
| mode | EU 207 V | EU 230 V | EU 253 V | US 120 V | US 127 V | label |
|---|---|---|---|---|---|---|
| heater | 770 W | 950 W | 1150 W | 950 W | 1064 W | CALCULATION |
| rated input (heater + pump + logic) | - | 970 W (elec.rated_input_eu) | 1173 W | - | 1084 W (elec.max_input_us_127) | CALCULATION |
| ready-hold | heater duty set by MECH heat loss (ZAD-PWR-03) + 2 W logic | CALCULATION | ||||
| standby (DMX + radio listening) | 0.29 W (elec.standby_power) | CALCULATION | ||||
| off | 0 W (2-pole switch) | CALCULATION | ||||
| Heater R: 55.7 ohm EU, 15.16 ohm US. ZAD-PWR-02: 970 W <= 1000 W target, PASS (analysis); US 1084 W <= 1440 W. | ||||||
| ZAD-PWR-04: 0.29 W <= 0.5 W target, PASS (analysis, ASSUMPTION part currents). ZAD-PWR-01: variant parts = heater element, pump coil, fuse, cord/plug, labels. |
3. Protection concept (works without firmware)
- Heater stuck on / firmware hung: manual-reset bimetal cut-out on the block + one-shot thermal link + safety relay dropped by a hardware watchdog (retriggerable monostable fed by an MCU toggle): three independent breaks (ZAD-SAF-01, owner SAFE for set points).
- Pump runs while cold: pump triac gate is a hardware AND of the MCU output and a READY comparator on the sensor (ZAD-SAF-07 "no pumping when not READY"); sensor open or short drives the comparator to "not ready".
- Overcurrent: fuse in the inlet; transients: MOV + X2, TVS on DMX lines and USB; ESD: TVS on all user-touchable SELV I/O.
- Inrush: resistive heater switched at zero-cross; burst control in full cycles with a spread pattern to stay inside EN 61000-3-3 flicker limits (ASSUMPTION, pre-compliance test).
- Isolation: reinforced barrier (supply module, opto-triacs, digital isolator, >= 8 mm creepage slot, ASSUMPTION per EN 60335-1 table); DMX also isolated from SELV (ZAD-FUN-01, ZAD-SAF-06). Earth leakage: heater element rated <= 0.25 mA class (SAFE to confirm).
- Safe state on power loss: relay and triacs open (de-energised = off); settings in flash.
4. Firmware architecture
States: OFF -> HEATING -> READY <-> FOG -> COOLDOWN, plus FAULT (latched, code on display/remote/RDM) and CLEAN (guided purge, ZAD-SRV-02).
- Pump-follows-heat (ZAD-PRF-03): pump stroke rate is capped by the measured heater margin (block temperature above the fluid-type minimum); output derates smoothly instead of stopping.
- DMX: 2 channels (level, mode/timer), loss timeout 1.0 s (elec.dmx_loss_stop) unless hold mode; RDM (E1.20) responder for address, status, identify (ZAD-FUN-02).
- Remote: paired unique ID, 4 machines in groups, two-way status (ZAD-FUN-03, -04); continuous mode auto-off.
- Timer: interval 1-600 s, duration 1-120 s, level 1-100 % on unit and remote (ZAD-FUN-05).
- Low fluid: pump stops on level signal before the pick-up uncovers, auto-resume after refill (ZAD-FUN-06).
- Safety: IWDG watchdog, plausibility of sensor (open/short/rate-of-rise), mains-voltage compensation of stroke rate (ZAD-PRF-06), hours and fault log, USB-C bootloader (ZAD-SRV-03).
5. Key parts (LCSC offline catalogue, read 2026-10-30, data 0.7 d old)
| function | part | LCSC | price @1000 | second source |
|---|---|---|---|---|
| heater triac | ST BTA16-600BWRG | C87396 | $0.63 | KTP BTA16-600BW C19184935 $0.25 |
| zero-cross opto | Lite-On MOC3063S-TA1 | C77950 | $0.12 | UMW MOC3063SM C3014302 |
| MCU | STM32G071C8T6 | C529341 | $1.31 | - (GD32 fallback, ASSUMPTION) |
| SELV supply | MEAN WELL IRM-03-5 | C6969425 | $3.93 (stock 66) | ASSUMPTION: Hi-Link class module |
| DMX transceiver | TI SN65HVD72DR | C48125 | $1.20 | SN65HVD72DRBR C2671347 |
| DMX isolated DC-DC | B0505S-1WR3 | C7465178 | $0.40 | YLPTEC C2992394 |
| radio | TI CC1101RGPR | C29953 | $1.19 | pre-certified module preferred (ASSUMPTION) |
| Pump, heater element, cut-outs and level sensor are MECH/SAFE parts; COST owns the BOM. |
6. Radio and EMC
868 MHz (EU) / 915 MHz (US) sub-GHz link: 50 m margin 18.8 dB (elec.radio_margin_50m, CALCULATION with ASSUMPTION inputs) -> ZAD-FUN-03 target PASS (analysis), range test in the test plan. Prefer a pre-certified module (RED / FCC Part 15.247 or 15.249) to avoid a full radio certification. EMC: zero-cross switching limits conducted emissions; X2 + common-mode choke on the SELV supply input.
7. Risks
- Open-loop stroke metering: ZAD-PRF-06 target 5 % may be missed (threshold 15 % likely met) - mitigation: voltage compensation, EOL calibration; fallback F-ELEC-2 closed-loop DC pump.
- Flicker of burst-fire heater control at 950 W (EN 61000-3-3) - pre-compliance test.
- IRM-03-5 stock 66 at LCSC - second source needed (COST).
- Board size 100 x 70 mm (elec.pcb_size, ASSUMPTION) not yet checked against the MECH bay.
02-concept/sections/MECH.md
MECH section - concept A1 (high-mass block), first-order
All numbers: CALCULATION in 02-concept/calc/mech_concept.py -> mech_concept.results.json (facts mech.*), inputs
ASSUMPTION as labelled there; heater 950 W = elec.heater_power_nom (ASSUMPTION of ELEC).
Layout (mech.envelope 310 x 165 x 185 mm, 9.46 L)
Front bay: insulated exchanger module (block 120x70x50 mm, 20 mm mineral wool, stainless shroud) at the top; nozzle recessed 15 mm behind a slotted guard; vibratory pump on 4 elastomer isolators below it, behind a heat shield. Rear bay: translucent PP tank (internal 140x115x95 mm, lit level window), tool-free vented fill cap at the rear top, recessed carry handle at the rear (more than 150 mm from the outlet), electronics bay 150x110x40 mm above the tank and sealed from it. 1 mm Al U-shell (powder-coated) + PC UL94 V-0 end caps; 4 rubber feet, track 145 mm.
Governing estimates
| req | value | requirement (target; threshold) | margin | status |
|---|---|---|---|---|
| ZAD-PRF-01 | 2.61 min (3.24 at 207 V) | 3 min; 5 min | 13 % to target | PASS (analysis) |
| ZAD-PRF-02 | 20.8 ml/min worst fluid, 21.9 standard fluid | 22; 15 ml/min | -5 % to target | PARTIAL (needs about 1000 W heater) |
| ZAD-PRF-04 | 17.4 ml | 25; 12 ml | threshold +45 % | PARTIAL |
| ZAD-PRF-09 | 1.29 L | 1.2; 1 L | +8 % | PASS (analysis) |
| ZAD-SIZ-01, ZAD-SIZ-02 | 9.46 L, 310 mm | 12 L, 320 mm | 21 %, 3 % | PASS (analysis) |
| ZAD-WGT-01 | 2.62 kg | 3; 4 kg | 13 % | PASS (analysis) |
| ZAD-PWR-03 | 49 W loss plus standby | 80; 150 W | about 35 % | PASS (analysis) |
| ZAD-SAF-02 | 23 K hot spot | 20; 60 K | threshold met | PARTIAL |
| ZAD-SAF-04 | 34.8 deg | 20; 15 deg | +74 % | PASS (analysis) |
| ZAD-UX-01 | 45-50 dB(A) ASSUMPTION | 45; 55 dB(A) | - | NOT RUN |
Materials and processes
q1: 3D-printed PC end caps, laser-cut and bent Al shell, CNC block. q100: same plus sand-cast block. q1000: die-cast A380 block, formed sheet shell, injection-moulded PC V-0 caps, blow-moulded PP tank. Wetted parts: 316 stainless coil, PP tank, FKM seals (glycol-compatible).
Critical purchased parts
Vibratory solenoid pump (ULKA class), tubular heater, 2 thermal cut-outs, FKM seals. Part numbers and prices: lookup NOT RUN in this time box (ASSUMPTION ranges only; COST and ELEC to confirm).
First tasks for detailed design, and risks
- Spitting physics: coil length against flow-boiling heat flux on a test rig (highest risk, ZAD-PRF-07).
- Heater 1000 W against the ZAD-PWR-02 target. 3. Enclosure hot spot and vent path (ZAD-SAF-02).
- Pump noise (ZAD-UX-01). 5. Tank vent valve for side-lying (ZAD-SAF-05).
02-concept/sections/SAFE.md
SAFE section - safety and compliance (concept)
You can find the full hazard list (H01-H23, S x P before and after measures) in board/ideas/SAFE.md. The
numbers are facts in board/facts/SAFE.yaml. The leakage and flicker numbers come from
02-concept/calc/safe_leakage.py, whose results are in safe_leakage.results.json. This section identifies
and plans compliance work. It does not certify anything.
Top hazards and measures (inherently safe design -> protective device -> information)
| hazard | design | protective device | information | residual |
|---|---|---|---|---|
| H03 heater runaway (triac shorted, sensor fault, MCU hung) -> fire | metal fire enclosure around the exchanger; GWFI 850 / GWIT 775 degC insulating parts | hardware over-temperature cut-out on a 2nd sensor that drops a series relay; non-self-resetting thermal fuse below the lowest fluid autoignition temperature; external watchdog | approved fluids only | low (S4 P1) |
| H06 hot liquid ejection (spitting) | the pump follows the available heat (rate limit) | the pump supply is hardware-interlocked to exchanger >= minimum vaporisation temperature | keep 1 m clear of the nozzle (to be confirmed by test) | low |
| H02 fluid on live parts | tank and fluid path below or away from the mains PCB; drip barrier; vented sealed cap | - | transport upright with the cap closed | low |
| H01/H19 shock | Class I, PE bond <= 0.1 ohm; reinforced barrier mains-SELV 5.0 mm creepage / 3.0 mm clearance (safe.creepage_reinforced, safe.clearance_reinforced); isolated DMX | mains fuse | use an RCD-protected socket | low |
| H05 hot nozzle | handles and controls >= 150 mm from the outlet | nozzle guard (IEC 61032 probe B) | IEC 60417-5041 symbol | low |
| H11/H13/H09 detectors, visibility, aerosol | auto-off, DMX-loss stop <= 2 s | - | ANSI E1.14 manual: smoke detectors, ventilation, egress, E1.5 fluids | medium (information only) |
| H14 fall from truss | bracket plus a secondary safety-cable eye, static proof at 10x mass (ASSUMPTION) | - | a safety cable is mandatory | low |
| H21 coin cell | the remote uses AAA cells | - | - | low |
The following protections work without the firmware. As a result, the design does not need EN 60335-1 Annex R (class B software).
- Thermal fuse.
- Hardware over-temperature relay drop.
- Hardware pump-enable temperature interlock.
- External window watchdog.
- Mains fuse.
- PE bonding.
- Reinforced isolation barrier.
- Nozzle guard.
- Fluid/electronics separation.
Residual risks are carried by the information for use:
- Fog setting off smoke detectors.
- Slippery residue.
- Aerosol exposure in small rooms.
- Misuse with unsuitable fluids.
Key numbers:
- Leakage: 0.226 mA EU and 0.155 mA US, against the 0.25 mA target (safe.leakage_eu, CALCULATION).
- Line/neutral-to-PE capacitance: at most 2.5 nF.
- Heater step: d = 0.76 % (CALCULATION). Zero-cross burst switching with a slow period keeps Pst <= 1.
Regulatory route
EU (CE): the remote is radio equipment, so RED 2014/53/EU applies. Its Article 3.1a covers safety (EN 60335-1 clauses 11, 13, 16, 19, 20, 22, 27, 29 and 30, plus EN 62233). Article 3.1b covers EMC (EN 55014-1/-2, EN IEC 61000-3-2, EN 61000-3-3, ETSI EN 301 489-1/-17). Article 3.2 covers the spectrum (ETSI EN 300 328 for 2.4 GHz; EN 300 220-2 if 868 MHz is chosen). Further standards: EN 62479, and EN IEC 62368-1 for the remote. Other EU rules that apply:
- RoHS (EN IEC 63000).
- WEEE registration per country.
- REACH.
- GPSR 2023/988.
- Batteries Regulation 2023/1542.
- Ecodesign 2023/826, applicability to be checked.
- PPWR 2025/40.
Conformity route: Module A internal production control with a lab test report, a technical file and an EU DoC. No notified body is needed.
US/Canada:
- FCC Part 15B Class B by SDoC for the host.
- The radio uses a pre-certified module under Part 15.247 (FCC ID / IC ID). The remote needs its own grant unless it is built on a certified module.
- Canada: ICES-003 Class B, RSS-Gen and RSS-247.
- Safety listing: NRTL listing (cETLus/cULus) to ANSI E1.29-2009 (R2024), which is based on UL 998. SOURCE: tsp.esta.org published documents, read 2026-10-30. The Canadian counterpart is to be named by the NRTL.
- Prop 65: specify DEHP-free cords and lead-free fittings.
- Manuals and labels in English and French.
ESTA (ZAD-CRT-03):
- E1.11 for the DMX512-A port.
- E1.20 for RDM (optional).
- E1.5 for approved fluids.
- E1.14 for the manual.
- E1.23 for the user guidance.
What an accredited lab would test (rough cost and duration, ASSUMPTION: no quotes requested)
| package | cost (EUR) | duration (weeks) |
|---|---|---|
| EN 60335-1 safety (heating, leakage, electric strength, clause 19 abnormal operation incl. shorted triac, open/short sensor, halted MCU, empty tank, blocked outlet; stability; glow-wire) | 8,000-15,000 | 4-6 |
| EMC, incl. flicker and harmonics | 4,000-7,000 | 2-3 |
| radio and RF exposure (module-based) | 3,000-8,000 | 2-3 |
| FCC/ISED | 4,000-10,000 | 2-3 |
| NRTL E1.29 listing plus factory inspection | 15,000-25,000 | 6-10 |
Total: about EUR 40-65k (safe.compliance_cost = 55k) over 10-16 weeks if EU and US run in parallel. That is roughly EUR 55 per unit over the first 1,000 units, which is a cost risk for COST. Pre-compliance before the lab: thermocouple heating run, flickermeter, conducted-emissions scan, and a single-fault bench on the hardware cut-outs.
Open
- Legal confirmation that Machinery Regulation 2023/1230 does not apply (needs a human: BLOCKED).
- Fluid autoignition and decomposition limits from the fluid makers' SDS.
- Plume-temperature test to set the minimum distances in the manual.
- The derived safety requirements DR-SAF-01..14 are in
board/ideas/SAFE.mdand were sent to REQ.