Przebieg r20261030-0408-v001-zadymiarka-concept-2
- Wariant
- v001
- Produkt
- Kompaktowa zadymiarka sieciowa (arkusz v0)
- Poziom
- koncepcja (tania ocena)
- Runda
- kalibracja
- Powtórzenie
- 2
- Start
- 30 października 2026, 04:08
- Koniec
- 30 października 2026, 05:15
- Czas pracy
- 1 h 07 min POMIAR
- Koszt
- 45,56 USD wg cennika API
1,20 USD rzeczywisty (abonament) POMIAR - Tokeny
- 63 301 494
- Status
- zakończony (final report and the tree is quiet)
- Wynik łączny
- 82,6 / 100
Ocena
- Wynik łączny
- 82,6 / 100
- Status oceny
- pełna
- Kontrola uczciwości
- czysto
- Pokrycie ukrytej listy kontrolnej
- 89 % z 20 punktów
- Oceniono
- 30 października 2026, 06:00
Składowe wyniku
| Składowa | Wynik (0–100) | Waga |
|---|---|---|
| kontrole automatyczne | 92,6 | 10 % |
| spełnienie wymagań | 84,2 | 35 % |
| sędziowie | 77,1 | 35 % |
| ukryta lista kontrolna | 88,9 | 20 % |
| kara za przechwałki (odejmowana) | −0,9 |
Sędziowie
Oceniali bez wiedzy, który wariant zrobił projekt. Rozrzut między sędziami: 2,5 pkt (odchylenie std.).
| Sędzia | Perspektywa | Wynik |
|---|---|---|
| R1 (przebieg oceny 0) | a systems engineer | 75 |
| R2 (przebieg oceny 0) | a manufacturing and cost engineer | 75 |
| R3 (przebieg oceny 0) | a safety and compliance engineer | 81,2 |
| R1 (przebieg oceny 1) | a systems engineer | 78,1 |
| R2 (przebieg oceny 1) | a manufacturing and cost engineer | 75 |
| R3 (przebieg oceny 1) | a safety and compliance engineer | 78,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 | spełnione | spełnione | 1.0 | design/REPORT.md: "Warm-up to READY at 230 V (120 V same) / at 207 V ... 2.73 min / 3.36 min" | judges+value |
ZAD-PRF-02 | spełnione | spełnione | 1.0 | design/REPORT.md: "Continuous output, no pauses, 230 V (standard / quick fluid) ... 27.6 / 25.1 ml/min" | judges+value |
ZAD-PRF-03 | spełnione | spełnione | 1.0 | design/02-concept/architecture.md: "minimum rate during 30 min at 100 % = 27.6 ml/min at 230 V and" | judges+value |
ZAD-PRF-04 | częściowo | częściowo | 0.95 | design/02-concept/estimates.md: "Fluid vaporised in first 30 s at 100 % (standard / quick / dense, 230 V) ... 23.7 / 20.2 / 21.6 ml" | judges+value |
ZAD-PRF-05 | spełnione | spełnione | 1.0 | design/02-concept/architecture.md: "2 ml/min = 10 rpm = 0.67 roller passes per second (no gaps > 2 s," | judges+value |
ZAD-PRF-07 | częściowo | częściowo | 0.5 | design/02-concept/architecture.md: "comparator window (no pumping into a cold block, also with hung firmware)" | judges |
ZAD-PRF-08 | spełnione | spełnione | 1.0 | design/02-concept/spec-sheet.md: "Quick / Standard / Dense (adapts vaporiser temperature 240–270 °C)" | judges+level |
ZAD-PRF-09 | spełnione | spełnione | 1.0 | design/02-concept/calc/packaging_budget.py: "tank: 250 x 58 x 110 mm inside (gross), low-fluid sensor 10 mm above the sump floor" | judges+value |
ZAD-SIZ-01 | spełnione | spełnione | 1.0 | design/REPORT.md: "295 × 178 × 185 mm (9.71 L)" | judges+value |
ZAD-SIZ-02 | spełnione | spełnione | 1.0 | design/02-concept/architecture.md: "Envelope 295 × 178 × 185 mm = 9.71 L" | judges+value |
ZAD-WGT-01 | częściowo | spełnione | 1.0 | design/02-concept/calc/packaging_budget.py: "0.24 m2 x 7.85 kg/m2 x 0.5 holes" | judges+value |
ZAD-PWR-01 | spełnione | częściowo | 0.875 | design/09-bom-cost/bom.csv: "Heat exchanger, US variant: same block, 950 W/120 V heater (replaces HX-01)" | judges+level |
ZAD-PWR-02 | spełnione | spełnione | 1.0 | design/02-concept/estimates.md: "Rated input (heater + LV loads + triac loss) ... 962 W" | judges+value |
ZAD-PWR-03 | spełnione | spełnione | 1.0 | design/02-concept/estimates.md: "Ready-hold input power (loss + 3 W electronics) ... 33.0–37.6 W" | judges+value |
ZAD-FUN-01 | spełnione | spełnione | 1.0 | design/REPORT.md: "isolated DMX512-A in/thru on 3-pin and 5-pin XLR with RDM" | judges+level |
ZAD-FUN-03 | spełnione | spełnione | 1.0 | design/REPORT.md: "Remote range (coded PHY, 15 dB fade reserve) ... ~87 m" | judges+value |
ZAD-FUN-04 | spełnione | spełnione | 1.0 | design/02-concept/architecture.md: "LEDs per selected target: heating (amber blink), ready (green), low fluid (blue), fault (red)." | judges+level |
ZAD-FUN-05 | częściowo | spełnione | 0.792 | design/02-concept/architecture.md: "1–120 s, level 1–100 %, on unit, remote and DMX CH2." | judges+level |
ZAD-FUN-06 | spełnione | spełnione | 1.0 | design/02-concept/architecture.md: "LOW_FLUID (pump stopped before air reaches the pick-up; resumes when refilled)" | judges+level |
ZAD-FUN-07 | częściowo | częściowo | 0.25 | design/02-concept/architecture.md: "Front panel: OLED + encoder + RGB status LED on the rear-top panel strip" | judges+level |
ZAD-FUN-08 | częściowo | częściowo | 1.0 | design/02-concept/architecture.md: "2 × M8 hand knobs, tilt ±30°, safety-cable eyelet" | judges+value |
ZAD-UX-01 | częściowo | spełnione | 1.0 | design/02-concept/calc/noise_budget.results.json: "boiling/sputter noise of the exchanger not modelled: measured in the test plan" | judges+value |
ZAD-UX-02 | spełnione | spełnione | 1.0 | design/02-concept/calc/noise_budget.results.json: "no fan, pump stopped, heater switched by triac at zero crossing: no source above background" | judges+value |
ZAD-UX-03 | spełnione | spełnione | 1.0 | design/02-concept/hazards.md: "cap in the cold zone over the tank only, splash lip, drain path to the outside bottom" | judges+value |
ZAD-SAF-01 | częściowo | spełnione | 0.625 | design/02-concept/hazards.md: "Block temperature in any single-fault condition (incl. cl. 19.11.3 with the comparator failed) stays < 351 °C" | judges+level |
ZAD-SAF-02 | częściowo | częściowo | 1.0 | design/02-concept/estimates.md: "Enclosure temperature rise: average / top hot spot ... 11.0 K / 19.9 K (±50 %)" | judges+value |
ZAD-SAF-03 | częściowo | częściowo | 0.25 | design/REPORT.md: "Guard-sleeve inner surfaces > 70 °C (plume +79 K mean at 90 mm, estimate)" | judges+level |
ZAD-SAF-04 | spełnione | spełnione | 1.0 | design/02-concept/architecture.md: "tip angle ≥ 37.7° (full) / 42.0° (empty)" | judges+value |
ZAD-SAF-05 | częściowo | częściowo | 0.75 | design/02-concept/hazards.md: "tank in the cold zone separated by a baffle from electronics; vented cap with umbrella valve" | judges+level |
ZAD-SAF-06 | częściowo | częściowo | 0.96 | design/02-concept/estimates.md: "Earth leakage budget (hot) ... 0.27 mA (ASSUMPTION parts)" | judges+value |
ZAD-SAF-07 | spełnione | spełnione | 1.0 | design/02-concept/architecture.md: "address set by encoder (no DIP switches), output stops ≤ 1 s after DMX loss" | judges+value |
ZAD-CRT-01 | spełnione | spełnione | 1.0 | design/01-requirements/conformity-plan.md: "Draft EU Declaration of Conformity (RED Annex VI layout, from memory; check against the RED text)" | judges+level |
ZAD-CRT-02 | częściowo | spełnione | 0.833 | design/01-requirements/conformity-plan.md: "The applicability of these standards is UNCONFIRMED until an NRTL scope opinion." | judges+level |
ZAD-CRT-04 | spełnione | spełnione | 1.0 | design/02-concept/spec-sheet.md: "Declared values are rounded down from the calculation to leave a test margin." | judges+level |
ZAD-CST-01 | niespełnione | niespełnione | 0.0 | unit cost at 1000 pcs from cost.json unit_cost.q1000: 134.74 EUR vs target 60 / threshold 85 EUR | auto |
ZAD-CST-05 | częściowo | częściowo | 0.857 | retail price from manifest key_figures.retail_price: 249.00 EUR vs target 229 / threshold 299 EUR | auto |
ZAD-REL-01 | częściowo | częściowo | 0.5 | design/REPORT.md: "Peristaltic tube life ~1,000 h (maker data for BPT)" | judges+value |
ZAD-REL-03 | częściowo | częściowo | 0.5 | design/02-concept/hazards.md: "pick-up filter, cleaning mode, stall/pressure inference from temperature response" | judges |
Kontrole automatyczne (14)
| Kontrola | Wynik | Dowód |
|---|---|---|
cost.rough | PASS | unit cost at 1/100/1000: 645.28 / 214.32 / 134.74 EUR |
cost.vs_requirements | PARTIAL | ZAD-CST-01: not_met — unit cost at 1000 pcs from cost.json unit_cost.q1000: 134.74 EUR vs target 60 / threshold 85 EUR; ZAD-CST-05: partly — retail price from manifest key_figures.retail_price: 249.00 EUR vs target 229 / threshold 299 EUR |
deliverables.blocked | NOT APPLICABLE | {'what': 'All physical tests (warm-up, 30-min output, droplet sheet, heating test, abnormal operation, leakage, range, noise, endurance)', 'why': 'digital concept run: no prototype exists; tests are p; {'what': 'Quotes for custom parts (heat exchanger, enclosure, tank, panels, pump head, STB) and to |
deliverables.manifest | PASS | manifest consistent |
deliverables.present | PASS | all present |
deliverables.report | PASS | 2207 words |
deliverables.size | NOT APPLICABLE | 53 files, 36219 words of prose |
product.zadymiarka.standards | PASS | radio built in: yes (keyword search); 19/19 expected standard ids found |
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: 962 W (compliance.csv); heater 950 W; heater + pump + fan + electronics = 956 W = 0.99 x rated (allowed 0.90-1.05, CALCULATION); ZAD-PWR-02: 962 W (compliance.csv); heater 950 W; heater + pump + fan + electronics = 956 W = 0.99 x rated (allowed 0.90-1.05, CALCULATION) |
product.zadymiarka.A7 | PASS | ZAD-PRF-02: 27.6 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: 27.6 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 | PASS | ZAD-PRF-01: 2.73 min (compliance.csv); heater 950 W; Σm·c 627.1 J/K (stated); T 215 °C; minimum possible warm-up 1.72 min = 0.8 x Σm·c x (T - 20) / P (CALCULATION); ZAD-PRF-01: 2.73 min (compliance.csv); heater 950 W |
product.zadymiarka.A9 | PASS | ZAD-PRF-04: 23.7 ml (compliance.csv); heater 950 W; Σm·c 627.1 J/K (stated); bound 52.1 ml in 30 s = (Σm·c x 100 K + P x 30 s) / 1750 J/ml (CALCULATION); ZAD-PRF-04: 23.7 ml (compliance.csv); heater 950 W |
Uwagi oceny dla ewolucji
Evaluation feedback — r20261030-0408-v001-zadymiarka-concept-2
Status SCORED · total 82.6 / 100 (tier concept, product zadymiarka).
| component | score |
|---|---|
| auto | 92.59 |
| requirements | 84.24 |
| judges | 77.08 |
| hidden | 88.93 |
| honesty penalty | −0.91 |
| 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: not_met — unit cost at 1000 pcs from cost.json unit_cost.q1000: 134.74 EUR vs target 60 / threshold 85 EUR; ZAD-CST-05: partly — retail price from manifest key_figures.retail_price: 249.00 EUR vs target 229 / threshold 299 EUR
Requirements
| id | verdict | claimed | overclaim | reason |
|---|---|---|---|---|
| ZAD-PRF-01 | met | met | 0.0 | 627 J/K x 237 K / ~934 W net = 2.69 min by hand, 2.73 min simulated; 3.36 min at 207 V; above the A8 lower bound (2.1 min). |
| ZAD-PRF-02 | met | met | 0.0 | (950 - 31 W) / 2,005 J/ml from a CoolProp/thermo energy balance; 25.1 ml/min even for a 60 % water fluid; under the A7 bound of 30.9 ml/min. |
| ZAD-PRF-03 | met | met | 0.0 | Governor caps pump rate at the available heat; simulated 30-min run derates 55 -> 27.6 ml/min (22.2 at 207 V) and never stops. |
| ZAD-PRF-04 | partly | partly | 0.0 | Governor simulation 23.7 ml (upper bound 26.2) lies between the 12 ml threshold and 25 ml target; the prototype 40 ml/min cap limits it to ~20 ml. |
| ZAD-PRF-05 | met | met | 0.0 | Stepper peristaltic metering (0.20 ml/rev, EOL-calibrated) gives 2 ml/min at 10 rpm with roller pulses every 1.5 s. |
| ZAD-PRF-07 | partly | partly | 0.0 | Seven anti-spit measures (temperature floor, hardware pump window, occluding pump, purge, hot nozzle, guard drain); burst film-boiling risk open, no droplet est |
| ZAD-PRF-08 | met | met | 0.0 | Three fluid settings with setpoint/floor windows, SDS compositions of several brands and wetted materials (316, PharMed/Norprene, PP, EPDM/FKM); windows are ASS |
| ZAD-PRF-09 | met | met | 0.0 | 1.60 L gross - 0.15 L below the sensor - air gap = 1.40 L; the pump shares the strip so a ~230 mm tank (~1.25 L) is likelier, still >= 1.2 L. |
| ZAD-SIZ-01 | met | met | 0.0 | Concept envelope incl. feet and handle = 9.71 L, about 19 % under the 12 L target. |
| ZAD-SIZ-02 | met | met | 0.0 | Concept envelope; the length stack (rear bay, 100 mm block with 20 mm rear insulation, 90 mm guard from the block face) closes within 295 mm. |
| ZAD-WGT-01 | partly | met | 0.0 | Budget 2.77 kg (+~0.1 kg C1.1 parts per estimates.md) assumes half the 1 mm steel enclosure is holes; realistic venting puts it above 3 kg but below 4 kg. |
| ZAD-PWR-01 | met | partly | 0.0 | BOM has US lines for heater, T12.5 A fuse, 15 A inlet, MOV and cord; electrical budget done for 230 V and 120 V; drawings not required at concept tier. |
| ZAD-PWR-02 | met | met | 0.0 | 950 W heater (55.7 ohm hot) + 8 W LV + 3.6 W triac = 962 W at 230 V; US variant 966 W, 9.2 A max <= 12 A. |
| ZAD-PWR-03 | met | met | 0.0 | Insulation and bridge loss model gives 33 W + 3 W electronics at 25 C (standard); +30 % losses (47 W) still under 80 W. |
| ZAD-FUN-01 | met | met | 0.0 | 3-pin and 5-pin XLR in/thru (BOM EL-18..21), isolated RS-485 (SP3485 + isolator + B0505S), 2 channels, encoder addressing. |
| ZAD-FUN-03 | met | met | 0.0 | Link budget from nRF52840 data (+8 dBm, -103 dBm coded PHY) with listed losses and a 15 dB fade margin; 32-bit pairing + AES-CCM; all four functions on keys. |
| ZAD-FUN-04 | met | met | 0.0 | Two-way 2.4 GHz link with per-target status LEDs; up to 8 machines in 4 groups. |
| ZAD-FUN-05 | partly | met | 0.208 | Target ranges settable on the unit (OLED + encoder), but the LED-only 6-key remote has just a TIMER key; setting interval/duration on the remote is not describe |
| ZAD-FUN-06 | met | met | 0.0 | Capacitive sump sensor 10 mm above the floor (~0.15 L reserve) stops the self-priming occluding pump before air enters; shown on display, remote LED and RDM. |
| ZAD-FUN-07 | partly | partly | 0.25 | OLED + encoder show warm-up, READY, codes E01-E12, low fluid, address, level and timer without the remote; retention of settings after power-off is not stated. |
| ZAD-FUN-08 | partly | partly | 0.0 | Bracket with eyelet and ±30 deg tilt is defined, but pick-up submergence and dripping at tilt are not analysed, so 30 deg is not evidenced. |
| ZAD-UX-01 | partly | met | 0.0 | 42.4 dB(A) = Lighthill jet 31.6 dB + pump 42 dB(A) from a search-summary maker figure; the usually dominant boiling noise is not modelled. |
| ZAD-UX-02 | met | met | 0.0 | Passive cooling, pump off and zero-cross triac in READY: no noise source; the design reports 0 dB(A), i.e. at background. |
| ZAD-UX-03 | met | met | 0.0 | 50 mm neck in the cold zone and a lit translucent tank visible from side and rear; 25 s (15 s pour + 10 s cap) is an ASSUMPTION estimate. |
| ZAD-SAF-01 | partly | met | 0.375 | Strong FMEA, single-fault table and cl. 19 test list, but the 371 C AIT basis excludes DPG (310 C in research/fluids.md) and a runaway pump is only stopped at 2 |
| ZAD-SAF-02 | partly | partly | 0.0 | 19.9 K hot spot from a 42.5 W internal-heat estimate sits at the 20 K target with ±50 % uncertainty; 60 K threshold clearly met. |
| ZAD-SAF-03 | partly | partly | 0.25 | Nozzle 90 mm behind a 48 mm opening (beyond probe B), handle at the rear, hot-surface mark; but the probe-reachable guard sleeve is estimated above 70 C. |
| ZAD-SAF-04 | met | met | 0.0 | Centre of mass from a positioned mass budget vs feet inset 15 mm gives 37.7 deg (full tank, worst side), far above 20 deg. |
| ZAD-SAF-05 | partly | partly | 0.0 | Baffle, one-way umbrella vent, occluding pump and drain path address the threshold; no layout check or analysis yet for side-lying or 45 deg tilt. |
| ZAD-SAF-06 | partly | partly | 0.0 | Class I with dedicated PE bond and reinforced SMPS barrier; leakage budget of 0.27 mA from typical part values lies between 0.25 target and 0.5 threshold. |
| ZAD-SAF-07 | met | met | 0.0 | 1 s DMX-loss timeout (hold mode optional), remote continuous auto-off 10 min, hardware AND blocks pumping outside READY/FOGGING. |
| ZAD-CRT-01 | met | met | 0.0 | RED module A route over 16 acts with standards and editions, design measure, pre-compliance and lab test and cost per act, draft DoC, technical-file outline and |
| ZAD-CRT-02 | partly | met | 0.167 | FCC 15B SDoC + modular 15.247 grant, ICES-003/RSS-247, cost and timeline given; NRTL standard (UL 499 + E1.29 / CSA 88) only a working basis and E1.29 tests unk |
| ZAD-CRT-04 | met | met | 0.0 | Each performance figure cites a calc script and a T-test, declared values sit below the calculated ones, output only in ml/min, no volume figures. |
| ZAD-CST-01 | not_met | not_met | 0.0 | unit cost at 1000 pcs from cost.json unit_cost.q1000: 134.74 EUR vs target 60 / threshold 85 EUR |
| ZAD-CST-05 | partly | partly | 0.0 | retail price from manifest key_figures.retail_price: 249.00 EUR vs target 229 / threshold 299 EUR |
| ZAD-REL-01 | partly | partly | 0.0 | Pump tube life ~1,000 h (BPT figure from another Kamoer pump) sets the value; heater and pump-motor life are not quantified; T-20 only planned. |
| ZAD-REL-03 | partly | partly | 0.0 | Filter, temperature cap, purge and cleaning mode named and T-21 planned, but no cleaning interval is estimated. |
Rubric sections (mean of judges, 1–5)
- C8 Honesty and clarity: 3.83 (judges: [4, 3, 4, 4, 4, 4])
- C3 Technical soundness: 4.0 (judges: [4, 4, 4, 4, 4, 4])
- C7 Risks and open issues: 4.0 (judges: [4, 4, 4, 4, 4, 4])
- C6 Manufacturability and cost realism: 4.0 (judges: [4, 4, 4, 4, 4, 4])
- C5 Safety and compliance: 4.0 (judges: [4, 4, 4, 4, 4, 4])
- C2 Alternatives and decision: 4.0 (judges: [4, 4, 4, 4, 4, 4])
- C4 Architecture and completeness: 4.17 (judges: [4, 4, 5, 4, 4, 4])
- C1 Requirements analysis: 4.67 (judges: [4, 5, 5, 5, 4, 5])
Kluczowe parametry (deklaracja projektu)
- Wymiary
- 295 × 178 × 185 mm
- Masa
- 2,77 kg
- Moc
- 962 W
- Koszt jednostkowy
- 1 szt.: 645,28 EUR · 100 szt.: 214,32 EUR · 1000 szt.: 134,74 EUR
- Cena detaliczna
- 249 EUR
Co wymaga człowieka
- All physical tests (warm-up, 30-min output, droplet sheet, heating test, abnormal operation, leakage, range, noise, endurance) — digital concept run: no prototype exists; tests are planned in 01-requirements/requirements.md section 6
- Quotes for custom parts (heat exchanger, enclosure, tank, panels, pump head, STB) and tooling — requesting quotes and uploading CAD to suppliers is not allowed in this run; prices are ASSUMPTION ranges
- Legal opinion on Machinery Regulation (EU) 2023/1230 applicability (pump = moving part) and final standard list — needs a notified body / legal opinion
- Accredited-lab and NRTL quotations and certification tests (CE/RED, FCC, UL/CSA) — contacting labs and spending money are not allowed in this run
- Carbonyl (aldehyde) formation thresholds for heated glycol/glycerol fluids — literature searches were refused by the search tool's safeguard filter during research; measurement planned as T-09
- Detailed design (CAD, drawings, KiCad, firmware) — not part of the concept tier
Koszt przy 1, 100 i 1000 sztuk (EUR)
| Pozycja | 1 szt. | 100 szt. | 1000 szt. |
|---|---|---|---|
| części (BOM) | 505,08 | 197,66 | 124,27 |
| assembly_and_EOL_test_labour | 0,00 | 8,75 | 5,50 |
| inbound_logistics_and_duty_4pct | 20,20 | 7,91 | 4,97 |
| prototype_outside_services | 120 | 0,00 | 0,00 |
| koszt jednostkowy razem | 645,28 | 214,32 | 134,74 |
Obliczenia
Wyniki skryptów obliczeniowych (213)
| Skrypt | Wielkość | Wartość | Jednostka |
|---|---|---|---|
| decision_matrix | scores_0_100 | {'C1 heat-matched block + metering pump': 80.95, 'C5 ultrasonic atomiser (no heat)': 73.65, 'C4 induction-heated coil vaporiser': 66.35, 'C3 low-mass flash vaporiser (thick film)': 66.35, 'C2 classic thermostat block + vibratory pump': 64.76} | points |
| decision_matrix | winner | C1 heat-matched block + metering pump | - |
| decision_matrix | margin_to_second | 7,300 | points |
| decision_matrix | oat_pm20pct_flips | 0,000 | count |
| decision_matrix | monte_carlo_win_share | {'C1 heat-matched block + metering pump': 1.0, 'C2 classic thermostat block + vibratory pump': 0.0, 'C3 low-mass flash vaporiser (thick film)': 0.0, 'C4 induction-heated coil vaporiser': 0.0, 'C5 ultrasonic atomiser (no heat)': 0.0} | 1 |
| electrical_budget | EU_heater_R_hot | 55,684 | ohm |
| electrical_budget | EU_heater_current_nom | 4,130 | A |
| electrical_budget | EU_input_current_nom | 4,165 | A |
| electrical_budget | EU_rated_input | 961,586 | W |
| electrical_budget | EU_max_input_at_+10pct_and_+5pct_heater | 1 214,975 | W |
| electrical_budget | EU_max_current | 4,802 | A |
| electrical_budget | EU_cold_start_current | 4,296 | A |
| electrical_budget | EU_triac_dissipation | 3,586 | W |
| electrical_budget | EU_fuse_rating | 6,300 | A |
| electrical_budget | EU_fuse_margin | 1,312 | 1 |
| electrical_budget | EU_triac_dissipation_max | 4,210 | W |
| electrical_budget | EU_triac_Tj_at_40C_ambient_max_current | 86,471 | degC |
| electrical_budget | US_heater_R_hot | 15,158 | ohm |
| electrical_budget | US_heater_current_nom | 7,917 | A |
| electrical_budget | US_input_current_nom | 7,983 | A |
| electrical_budget | US_rated_input | 965,623 | W |
| electrical_budget | US_max_input_at_+10pct_and_+5pct_heater | 1 214,975 | W |
| electrical_budget | US_max_current | 9,204 | A |
| electrical_budget | US_cold_start_current | 8,233 | A |
| electrical_budget | US_triac_dissipation | 7,623 | W |
| electrical_budget | US_fuse_rating | 12,500 | A |
| electrical_budget | US_fuse_margin | 1,358 | 1 |
| electrical_budget | US_triac_dissipation_max | 9,065 | W |
| electrical_budget | US_triac_Tj_at_40C_ambient_max_current | 111,233 | degC |
| electrical_budget | US_rated_input_le_1440W | 1 | bool |
| electrical_budget | US_current_le_12A | 1 | bool |
| electrical_budget | flicker_d_per_heater_step | 0,718 | % |
| electrical_budget | flicker_Pst_burst_period_2s | 0,932 | 1 |
| electrical_budget | flicker_Pst_burst_period_6s | 0,661 | 1 |
| electrical_budget | flicker_Pst_burst_period_10s | 0,564 | 1 |
| electrical_budget | flicker_Pst_burst_period_20s | 0,454 | 1 |
| electrical_budget | flicker_min_burst_period_for_Plt_0.65 | 6,334 | s |
| electrical_budget | leakage_heater_MgO_hot_sealed_ends | 0,150 | mA |
| electrical_budget | leakage_SMPS_module_(Y-cap_inside) | 0,100 | mA |
| electrical_budget | leakage_X2_filter_no_Y_caps | 0,000 | mA |
| electrical_budget | leakage_triac_snubber_and_sense_parasitics | 0,020 | mA |
| electrical_budget | leakage_total_estimate | 0,270 | mA |
| electrical_budget | standby_lv_nRF52840_RX_continuous_3V_4.6mA | 0,014 | W |
| electrical_budget | standby_lv_DMX_isolated_DCDC_no_load | 0,050 | W |
| electrical_budget | standby_lv_DMX_isolator_and_transceiver_idle | 0,010 | W |
| electrical_budget | standby_lv_buck_24V_to_3V3_quiescent | 0,012 | W |
| electrical_budget | standby_lv_status_LED_dimmed | 0,003 | W |
| electrical_budget | standby_input_power | 0,258 | W |
| electrical_budget | off_mode_power | 0,000 | W |
| electrical_budget | x2_discharge_time_constant | 0,150 | s |
| fluid_energy | water_dh_coolprop_Texit_standard | 2,851 | MJ/kg |
| fluid_energy | water_dh_hand_Texit_standard | 2,851 | MJ/kg |
| fluid_energy | quick_dh | 2,186 | MJ/kg |
| fluid_energy | quick_density | 1 012,984 | kg/m3 |
| fluid_energy | quick_energy_per_ml | 2 214,310 | J/ml |
| fluid_energy | standard_dh | 1,948 | MJ/kg |
| fluid_energy | standard_density | 1 028,816 | kg/m3 |
| fluid_energy | standard_energy_per_ml | 2 004,554 | J/ml |
| fluid_energy | dense_dh | 1,953 | MJ/kg |
| fluid_energy | dense_density | 1 057,724 | kg/m3 |
| fluid_energy | dense_energy_per_ml | 2 066,137 | J/ml |
| fluid_energy | standard_energy_per_ml_Texit-40K | 1 924,993 | J/ml |
| fluid_energy | standard_energy_per_ml_Texit+40K | 2 086,725 | J/ml |
| link_budget | loss_remote_pcb_antenna_gain | −2 | dB |
| link_budget | loss_hand_and_body | −5 | dB |
| link_budget | loss_machine_antenna_in_plastic_window | 0,000 | dB |
| link_budget | loss_machine_enclosure_metal_shadowing | −4 | dB |
| link_budget | loss_indoor_excess_loss | −5 | dB |
| link_budget | loss_cable_and_matching | −1 | dB |
| link_budget | fade_margin_required | 15 | dB |
| link_budget | margin_coded_125k_30m | 9,270 | dB |
| link_budget | margin_coded_125k_50m | 4,830 | dB |
| link_budget | margin_coded_125k_100m | −1,190 | dB |
| link_budget | range_max_coded_125k | 87,200 | m |
| link_budget | margin_1M_30m | 1,270 | dB |
| link_budget | margin_1M_50m | −3,170 | dB |
| link_budget | margin_1M_100m | −9,190 | dB |
| link_budget | range_max_1M | 34,700 | m |
| noise_budget | jet_velocity_d1.6mm | 298,100 | m/s |
| noise_budget | jet_Lp_1m_d1.6mm | 79,200 | dB |
| noise_budget | jet_velocity_d2.5mm | 122,100 | m/s |
| noise_budget | jet_Lp_1m_d2.5mm | 52 | dB |
| noise_budget | jet_velocity_d3.5mm | 62,300 | m/s |
| noise_budget | jet_Lp_1m_d3.5mm | 31,600 | dB |
| noise_budget | jet_velocity_d4.5mm | 37,700 | m/s |
| noise_budget | jet_Lp_1m_d4.5mm | 16,300 | dB |
| noise_budget | pump_Lp_1m_in_enclosure | 42 | dB(A) |
| noise_budget | combined_Lp_1m_fogging | 42,400 | dB(A) |
| noise_budget | ready_Lp_1m | 0,000 | dB(A) |
| packaging_budget | bbox_L | 295 | mm |
| packaging_budget | bbox_W | 178 | mm |
| packaging_budget | bbox_H | 185 | mm |
| packaging_budget | bbox_volume | 9,714 | L |
| packaging_budget | longest_side | 295 | mm |
| packaging_budget | dry_mass | 2,770 | kg |
| packaging_budget | mass_heat_exchanger_block_heater_tube | 0,640 | kg |
| packaging_budget | mass_insulation_and_shroud | 0,160 | kg |
| packaging_budget | mass_guard_sleeve_and_nozzle | 0,060 | kg |
| packaging_budget | mass_enclosure_steel_1mm_base_and_cover | 0,950 | kg |
| packaging_budget | mass_front_and_rear_panels_PC/ABS | 0,120 | kg |
| packaging_budget | mass_tank_empty_with_cap_and_pickup | 0,140 | kg |
| packaging_budget | mass_pump_stepper_peristaltic | 0,230 | kg |
| packaging_budget | mass_main_pcb_display_encoder | 0,090 | kg |
| packaging_budget | mass_smps_module_relay_triac_heatsink | 0,100 | kg |
| packaging_budget | mass_iec_inlet_xlr_x4_wiring | 0,160 | kg |
| packaging_budget | mass_feet_handle_fasteners | 0,120 | kg |
| packaging_budget | com_empty | [129.3, 84.2, 76.9] | mm |
| packaging_budget | tip_angle_min_empty | 42 | deg |
| packaging_budget | com_full | [136.6, 105.5, 74.5] | mm |
| packaging_budget | tip_angle_min_full | 37,700 | deg |
| packaging_budget | mass_full | 4,264 | kg |
| packaging_budget | tank_gross_volume | 1,595 | L |
| packaging_budget | tank_unusable_below_sensor | 0,145 | L |
| packaging_budget | tank_usable_volume | 1,400 | L |
| peak_sensitivity | peak_30s_baseline | 23,680 | ml |
| peak_sensitivity | warmup_baseline | 2,727 | min |
| peak_sensitivity | peak_30s_floor_minus_5K | 25 | ml |
| peak_sensitivity | warmup_floor_minus_5K | 2,727 | min |
| peak_sensitivity | peak_30s_mass_plus_10pct | 24,520 | ml |
| peak_sensitivity | warmup_mass_plus_10pct | 2,947 | min |
| peak_sensitivity | peak_30s_mass_plus_15pct | 24,900 | ml |
| peak_sensitivity | warmup_mass_plus_15pct | 3,057 | min |
| peak_sensitivity | peak_30s_mass_plus_10pct_and_floor_minus_5K | 25,810 | ml |
| peak_sensitivity | warmup_mass_plus_10pct_and_floor_minus_5K | 2,947 | min |
| runaway_overshoot | ramp_230V_nominal | 1,415 | K/s |
| runaway_overshoot | peak_block_hw_comparator_230V_nominal | 310,600 | degC |
| runaway_overshoot | peak_sheath_hw_comparator_230V_nominal | 376,200 | degC |
| runaway_overshoot | peak_block_stb_alone_230V_nominal | 327,200 | degC |
| runaway_overshoot | peak_sheath_stb_alone_230V_nominal | 393,100 | degC |
| runaway_overshoot | ramp_253V_heater+5pct | 1,812 | K/s |
| runaway_overshoot | peak_block_hw_comparator_253V_heater+5pct | 314,200 | degC |
| runaway_overshoot | peak_sheath_hw_comparator_253V_heater+5pct | 397 | degC |
| runaway_overshoot | peak_block_stb_alone_253V_heater+5pct | 332,400 | degC |
| runaway_overshoot | peak_sheath_stb_alone_253V_heater+5pct | 415,700 | degC |
| runaway_overshoot | nuisance_trip_margin | 9 | K |
| thermal_budget | loss_at_setpoint_quick_25C | 29,971 | W |
| thermal_budget | shroud_surface_temp_quick_25C | 66,568 | degC |
| thermal_budget | ready_hold_input_quick | 32,971 | W |
| thermal_budget | loss_at_setpoint_standard_25C | 33,019 | W |
| thermal_budget | shroud_surface_temp_standard_25C | 71,159 | degC |
| thermal_budget | ready_hold_input_standard | 36,019 | W |
| thermal_budget | loss_at_setpoint_dense_25C | 34,559 | W |
| thermal_budget | shroud_surface_temp_dense_25C | 73,500 | degC |
| thermal_budget | ready_hold_input_dense | 37,559 | W |
| thermal_budget | warmup_quick_EU_230V | 2,493 | min |
| thermal_budget | warmup_standard_EU_230V | 2,727 | min |
| thermal_budget | warmup_dense_EU_230V | 2,845 | min |
| thermal_budget | warmup_quick_EU_207V | 3,070 | min |
| thermal_budget | warmup_standard_EU_207V | 3,362 | min |
| thermal_budget | warmup_dense_EU_207V | 3,508 | min |
| thermal_budget | warmup_quick_EU_253V | 2,070 | min |
| thermal_budget | warmup_standard_EU_253V | 2,262 | min |
| thermal_budget | warmup_dense_EU_253V | 2,358 | min |
| thermal_budget | warmup_quick_EU_207V_heater-10pct | 3,410 | min |
| thermal_budget | warmup_standard_EU_207V_heater-10pct | 3,735 | min |
| thermal_budget | warmup_dense_EU_207V_heater-10pct | 3,898 | min |
| thermal_budget | warmup_quick_US_120V | 2,493 | min |
| thermal_budget | warmup_standard_US_120V | 2,727 | min |
| thermal_budget | warmup_dense_US_120V | 2,845 | min |
| thermal_budget | warmup_quick_US_108V | 3,070 | min |
| thermal_budget | warmup_standard_US_108V | 3,362 | min |
| thermal_budget | warmup_dense_US_108V | 3,508 | min |
| thermal_budget | continuous_rate_quick_EU_230V | 25,071 | ml/min |
| thermal_budget | continuous_rate_standard_EU_230V | 27,628 | ml/min |
| thermal_budget | continuous_rate_dense_EU_230V | 26,739 | ml/min |
| thermal_budget | continuous_rate_quick_EU_207V | 20,180 | ml/min |
| thermal_budget | continuous_rate_standard_EU_207V | 22,225 | ml/min |
| thermal_budget | continuous_rate_dense_EU_207V | 21,498 | ml/min |
| thermal_budget | continuous_rate_quick_EU_253V | 30,477 | ml/min |
| thermal_budget | continuous_rate_standard_EU_253V | 33,599 | ml/min |
| thermal_budget | continuous_rate_dense_EU_253V | 32,533 | ml/min |
| thermal_budget | continuous_rate_quick_EU_207V_heater-10pct | 18,095 | ml/min |
| thermal_budget | continuous_rate_standard_EU_207V_heater-10pct | 19,922 | ml/min |
| thermal_budget | continuous_rate_dense_EU_207V_heater-10pct | 19,263 | ml/min |
| thermal_budget | continuous_rate_quick_US_120V | 25,071 | ml/min |
| thermal_budget | continuous_rate_standard_US_120V | 27,628 | ml/min |
| thermal_budget | continuous_rate_dense_US_120V | 26,739 | ml/min |
| thermal_budget | continuous_rate_quick_US_108V | 20,180 | ml/min |
| thermal_budget | continuous_rate_standard_US_108V | 22,225 | ml/min |
| thermal_budget | continuous_rate_dense_US_108V | 21,498 | ml/min |
| thermal_budget | peak_30s_volume_quick_EU_230V | 20,236 | ml |
| thermal_budget | run30min_mean_rate_last20min_quick_EU_230V | 25,071 | ml/min |
| thermal_budget | run30min_min_rate_quick_EU_230V | 25,054 | ml/min |
| thermal_budget | run30min_min_block_temp_quick_EU_230V | 204,880 | degC |
| thermal_budget | run30min_total_volume_quick_EU_230V | 759,970 | ml |
| thermal_budget | peak_30s_volume_standard_EU_230V | 23,661 | ml |
| thermal_budget | run30min_mean_rate_last20min_standard_EU_230V | 27,628 | ml/min |
| thermal_budget | run30min_min_rate_standard_EU_230V | 27,608 | ml/min |
| thermal_budget | run30min_min_block_temp_standard_EU_230V | 219,869 | degC |
| thermal_budget | run30min_total_volume_standard_EU_230V | 839,145 | ml |
| thermal_budget | peak_30s_volume_dense_EU_230V | 21,634 | ml |
| thermal_budget | run30min_mean_rate_last20min_dense_EU_230V | 26,739 | ml/min |
| thermal_budget | run30min_min_rate_dense_EU_230V | 26,720 | ml/min |
| thermal_budget | run30min_min_block_temp_dense_EU_230V | 234,876 | degC |
| thermal_budget | run30min_total_volume_dense_EU_230V | 810,667 | ml |
| cost_rollup | bom_q1 | 505,080 | EUR |
| cost_rollup | bom_q100 | 197,660 | EUR |
| cost_rollup | bom_q1000 | 124,270 | EUR |
| cost_rollup | unit_cost_q1 | 645,280 | EUR |
| cost_rollup | unit_cost_q100 | 214,320 | EUR |
| cost_rollup | unit_cost_q1000 | 134,740 | EUR |
| cost_rollup | us_variant_delta_q1000 | −0,350 | EUR |
| cost_rollup | share_of_q1000_bom_value_with_SOURCE_price | 0,364 | 1 |
| cost_rollup | bom_lines | 56 | count |
| unit_economics | retail_229_baseline | {'net_of_VAT': 186.18, 'direct_margin': 2.76, 'direct_margin_pct_net': 0.015, 'dealer_price': 111.71, 'dealer_margin': -34.48, 'kickstarter_backer_price': 194.65, 'kickstarter_margin': -12.34} | EUR |
| unit_economics | retail_229_cost_down | {'net_of_VAT': 186.18, 'direct_margin': 44.5, 'direct_margin_pct_net': 0.239, 'dealer_price': 111.71, 'dealer_margin': 7.26, 'kickstarter_backer_price': 194.65, 'kickstarter_margin': 29.4} | EUR |
| unit_economics | retail_249_baseline | {'net_of_VAT': 202.44, 'direct_margin': 15.84, 'direct_margin_pct_net': 0.078, 'dealer_price': 121.46, 'dealer_margin': -25.37, 'kickstarter_backer_price': 211.65, 'kickstarter_margin': -0.6} | EUR |
| unit_economics | retail_249_cost_down | {'net_of_VAT': 202.44, 'direct_margin': 57.58, 'direct_margin_pct_net': 0.284, 'dealer_price': 121.46, 'dealer_margin': 16.37, 'kickstarter_backer_price': 211.65, 'kickstarter_margin': 41.14} | EUR |
| unit_economics | retail_279_baseline | {'net_of_VAT': 226.83, 'direct_margin': 35.46, 'direct_margin_pct_net': 0.156, 'dealer_price': 136.1, 'dealer_margin': -11.72, 'kickstarter_backer_price': 237.15, 'kickstarter_margin': 17.01} | EUR |
| unit_economics | retail_279_cost_down | {'net_of_VAT': 226.83, 'direct_margin': 77.2, 'direct_margin_pct_net': 0.34, 'dealer_price': 136.1, 'dealer_margin': 30.02, 'kickstarter_backer_price': 237.15, 'kickstarter_margin': 58.75} | EUR |
| unit_economics | retail_299_baseline | {'net_of_VAT': 243.09, 'direct_margin': 48.53, 'direct_margin_pct_net': 0.2, 'dealer_price': 145.85, 'dealer_margin': -2.61, 'kickstarter_backer_price': 254.15, 'kickstarter_margin': 28.75} | EUR |
| unit_economics | retail_299_cost_down | {'net_of_VAT': 243.09, 'direct_margin': 90.27, 'direct_margin_pct_net': 0.371, 'dealer_price': 145.85, 'dealer_margin': 39.13, 'kickstarter_backer_price': 254.15, 'kickstarter_margin': 70.49} | EUR |
| unit_economics | assumptions | {'payment_fee_of_gross': 0.029, 'payment_fee_fixed': 0.25, 'shipping_to_customer': 9.0, 'fulfilment': 3.0, 'marketing_of_net': 0.12, 'warranty_returns_of_net': 0.04, 'kickstarter_platform_of_gross': 0.09, 'dealer_margin_of_net': 0.4, 'freight_to_dealer': 4.0} | - |
BOM — lista części
Plik: 09-bom-cost/bom.csv · 56 pozycji
| item | qty | description | manufacturer | mpn | supplier | supplier_part | url | unit_price_1 | unit_price_100 | unit_price_1000 | currency | notes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| HX-01 | 1 | Heat exchanger: die-cast AlSi block 0.55 kg, cast-in 950 W/230 V tubular heater, AISI 316 coil 5x0.75 mm, 2 sensor wells, STB bulb well | custom (OEM fog-heater caster) | ZAD-HX-230 | Guangzhou stage-parts casters (Alibaba) | spec ZAD-HX | link | 70 | 18 | 9 | EUR | ASSUMPTION; q1 = machined block + bought heater; volume basis: 900 W fog heater blocks ~6.5-9.5 USD (search summary, research/sourcing-mechanical.csv); +custom wells; range q1000 7-13 EUR; single-source risk: second caster to qualify; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| HX-01-US | 0 | Heat exchanger, US variant: same block, 950 W/120 V heater (replaces HX-01) | custom (OEM fog-heater caster) | ZAD-HX-120 | Guangzhou stage-parts casters (Alibaba) | spec ZAD-HX | link | 70 | 18 | 9 | EUR | ASSUMPTION; US variant only; same basis as HX-01; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| HX-02 | 1 | Insulation: ceramic-fibre paper 3 mm x ~0.06 m2 wrapped + stainless shroud 0.3 mm | various | KT-1260 + ZAD-SHROUD | Made-in-China / local sheet-metal | - | link | 10 | 3 | 1.5 | EUR | ASSUMPTION; paper 4-10 USD/m2 (research/sourcing-mechanical.csv) + shroud blank; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| PMP-01 | 1 | Peristaltic metering pump, stepper 24 V, 4 rollers, 2.0 mm ID tube, 5-88 ml/min class | Kamoer | KAS-ST (24 V stepper) | Kamoer | - | link | 60 | 25 | 14 | EUR | ASSUMPTION; no price readable; 40-120 USD at 1 (sourcing note); volume 12-20 EUR; cost-down: own head on NEMA14 ~7 EUR; second source Jihpump/Boxer stepper heads; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| PMP-02 | 1 | Pump tube set 2.0 x 1.0 mm PharMed BPT / Norprene, food-grade, with fittings and tank pick-up filter | Saint-Gobain / generic | PharMed BPT 2.0x1.0 | Rengum.pl (silicone ref.) | 205028T | link | 8 | 2.5 | 1.5 | EUR | ASSUMPTION; silicone 3x5 tube 3-7 PLN/m (research); BPT premium x3; pick-up filter 0.3-1.5 USD; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| TNK-01 | 1 | Fluid tank 1.6 L translucent PP, wide neck 50 mm, vented cap with umbrella valve, sump | custom (blow-moulded) | ZAD-TANK | icekalinka.pl (prototype jar) | EAN 5904844513533 | link | 6 | 4 | 1.8 | EUR | ASSUMPTION; q1 = 1.5 L HDPE jar 4.50 PLN + cap/valve mods; q1000 blow-moulded PP 1.2-2.5 EUR (tooling in one-offs); prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| SEN-01 | 2 | Pt1000 thin-film RTD class B, >= 400 C, in stainless sleeve (control + independent protection channel) | Heraeus / IST | M222 / P1K0.232.6W class | TME (blocked) / distributor | - | link | 3 | 2 | 1.3 | EUR | ASSUMPTION; about 2 USD (research/sourcing-electronics.csv, not readable); sleeve + lead 0.5 EUR; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| SEN-02 | 1 | Capacitive non-contact liquid level sensor (tank sump) | XKC | XKC-Y25-T12V | AliExpress | - | link | 3 | 1.5 | 1.0 | EUR | ASSUMPTION; about 1 USD at volume (research); second source: discrete electrode on PCB + MCU capacitive sensing; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| SAF-01 | 1 | Safety temperature limiter (STB), capillary, 2-pole, manual reset, trip 300 C (0/+8 K), bulb tau <= 10 s, 16 A 250 V, EN 60730-2-9 | E.G.O. | 55.13583.010 class (2-pole version) | Grund Regeltechnik (DE) | 55.13253.010 (ref. price) | link | 33 | 18 | 10 | EUR | ASSUMPTION; E.G.O. 50-300 C capillary thermostat 36.85 EUR incl. VAT (SOURCE page) as reference; 2-pole STB price not readable; range q1000 6-14 EUR (rev C1.1, F1 review B1/B3); prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| FLD-01 | 1 | Stainless spring check valve at the coil inlet, 0.3 bar cracking, rated 300 C / 100 bar, with stainless inlet stub (blocked-outlet containment) | generic (316 instrument check valve) | 1/8 in or 4 mm, 316 | distributor | - | - | 12 | 4 | 2 | EUR | ASSUMPTION; rev C1.1 (F1 review B4); keeps steam and hot fluid out of the polymer line when the outlet is blocked; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-01 | 1 | MCU + 2.4 GHz radio module nRF52840, PCB antenna | Chengdu Ebyte | E73-2G4M08S1C | LCSC | C356849 | link | 6.9096 | 6.3858 | 6.3858 | EUR | SOURCE; lcsc DB 2026-10-29: 7.69/7.11/7.11 USD; second source Raytac MDBT50Q (FCC/CE certified); prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-02 | 1 | RS-485 transceiver 3.3 V (DMX512/RDM) | MaxLinear | SP3485EN-L/TR | LCSC | C8963 | link | 0.2374 | 0.1584 | 0.1289 | EUR | SOURCE; lcsc DB 2026-10-29; second source THVD1450; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-03 | 1 | Digital isolator for DMX TX/RX/DE (3-ch class; priced as 2-ch CA-IS3721 + 30 %) | Chipanalog | CA-IS3721HS (+1 ch) | LCSC | C428884 | link | 0.5375 | 0.2793 | 0.2276 | EUR | ASSUMPTION; 2-ch price SOURCE lcsc 0.46/0.24/0.19 USD; 3rd channel needed for RDM direction; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-04 | 1 | Isolated DC-DC 5 V/5 V 1 W for the DMX side | EVISUN | B0505S-1WR3 | LCSC | C7465178 | link | 0.6813 | 0.4326 | 0.359 | EUR | SOURCE; lcsc DB 2026-10-29; second source MORNSUN B0505S-1WR3; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-05 | 2 | TVS for RS-485 lines (in / thru) | hongjiacheng | SM712 | LCSC | C7420375 | link | 0.0652 | 0.0565 | 0.0521 | EUR | SOURCE; lcsc DB 2026-10-29; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-06 | 1 | Triac 16 A 800 V insulated TO-220AB (heater switch, clamped to chassis) | STMicroelectronics | BTA16-800BWRG | LCSC | C10065 | link | 0.9241 | 0.5577 | 0.4753 | EUR | SOURCE; lcsc DB 2026-10-29; second source WEIDA BTA16-800BW C2900946; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-29 | 1 | Finned aluminium heatsink for the triac, Rsa <= 2.5 K/W, earth-bonded, with insulating pad | Fischer Elektronik / Aavid class | SK 104 class | distributor | - | - | 3 | 1.5 | 0.9 | EUR | ASSUMPTION; rev C1.1 (F1 review B5): US triac Tj 111 C at max current (electrical_budget.py); prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-07 | 1 | Zero-cross optotriac 800 V (heater gate drive, reinforced isolation) | Lite-On | MOC3083S-TA1 | LCSC | C115474 | link | 0.2599 | 0.2067 | 0.1471 | EUR | SOURCE; lcsc DB 2026-10-29; second source MOC3063S-TA1 C77950; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-08 | 1 | AC-input optocoupler for zero-cross / mains timing (behind the heater relay) | Lite-On | LTV-814S-TA1 | LCSC | C125118 | link | 0.1425 | 0.1132 | 0.0876 | EUR | SOURCE; lcsc DB 2026-10-29; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-09 | 1 | Relay 16 A 250 VAC, 24 V coil: heater enable, opened by the independent hardware over-temperature trip | Hongfa | HF115F/024-2ZS4 | LCSC | C34915 | link | 2.3881 | 1.7495 | 1.6362 | EUR | SOURCE; lcsc DB 2026-10-29; second source Omron G5LE / HF32F (16 A rating to check); prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-10 | 1 | AC-DC module 24 V 15 W, 85-305 VAC, no-load < 0.1 W, leakage < 0.25 mA | Mean Well | IRM-15-24 | LCSC | C7211221 | link | 5.4456 | 5.4441 | 5.4441 | EUR | SOURCE; lcsc DB 2026-10-29; datasheet read by sourcing (no-load <0.1 W, leakage <0.25 mA/277 VAC); second source IRM-20-24 / MORNSUN LS15; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-11 | 1 | Buck 24 V -> 3.3 V | Texas Instruments | TPS54202DDCR | LCSC | C191884 | link | 0.1603 | 0.1268 | 0.0959 | EUR | SOURCE; lcsc DB 2026-10-29; second source MP2459GJ; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-12 | 1 | Silent stepper driver for the pump | Trinamic / ADI | TMC2209-LA-T | LCSC | C2150710 | link | 2.5396 | 1.5951 | 1.4714 | EUR | SOURCE; lcsc DB 2026-10-29; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-13 | 1 | Dual comparator (independent over-temperature + pump-enable channel) | onsemi | LM393DR2G | LCSC | C7955 | link | 0.0562 | 0.0456 | 0.0399 | EUR | SOURCE; lcsc DB 2026-10-29; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-14 | 1 | Shunt reference for the trip thresholds | Texas Instruments | TL431AIDBZR | LCSC | C23892 | link | 0.0691 | 0.0549 | 0.0417 | EUR | SOURCE; lcsc DB 2026-10-29; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-15 | 1 | External watchdog supervisor (drops heater relay and pump if firmware hangs) | Texas Instruments | TPS3823-33DBVR | LCSC | C7719 | link | 0.3988 | 0.2413 | 0.2252 | EUR | SOURCE; lcsc DB 2026-10-29; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-16 | 1 | OLED 1.3 in 128x64 SH1106 panel | HS | HS13L03W2C01 | LCSC | C7465997 | link | 4.3774 | 3.059 | 2.8177 | EUR | SOURCE; lcsc DB 2026-10-29; cost-down 0.96 in HS96L03W2C03 C5248080 (1.55 USD @100); prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-17 | 1 | Rotary encoder with push switch | Alpsalpine | EC11L1525G01 | LCSC | C2991196 | link | 1.1154 | 0.8373 | 0.6048 | EUR | SOURCE; lcsc DB 2026-10-29; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-18 | 1 | XLR 3-pin male (DMX in, DJ market) | Neutrik | NC3MAAH-0 | LCSC | C368531 | link | 1.4111 | 0.8284 | 0.8284 | EUR | SOURCE; lcsc DB 2026-10-29; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-19 | 1 | XLR 3-pin female (DMX thru) | Neutrik | NC3FAAH-0 | LCSC | C368506 | link | 1.4361 | 0.8844 | 0.8844 | EUR | SOURCE; lcsc DB 2026-10-29; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-20 | 1 | XLR 5-pin male (DMX in) | Neutrik | NC5MAV | LCSC | C368510 | link | 4.8026 | 2.75 | 2.75 | EUR | SOURCE; lcsc DB 2026-10-29 (stock low: 26-84); prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-21 | 1 | XLR 5-pin female (DMX thru) | Neutrik | NC5FAV | LCSC | C368512 | link | 5.4648 | 3.3004 | 3.3004 | EUR | SOURCE; lcsc DB 2026-10-29; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-22 | 1 | IEC C14 inlet with fuse holder and double-pole switch, 10 A | Schurter | KM00.1205.11 | LCSC | C17471559 | link | 13.0012 | 10.5483 | 10.5483 | EUR | SOURCE; lcsc DB 2026-10-29 (stock 50); cost-down: approved generic combo inlet 1-3 EUR (ASSUMPTION); prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-23 | 1 | Fuse 5x20 T6.3A 250 V (EU) | SETfuse | SCT520PT6.3A250V | LCSC | C22447832 | link | 0.1454 | 0.1144 | 0.0844 | EUR | SOURCE; lcsc DB 2026-10-29; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-23-US | 0 | Fuse 5x20 T12.5A 250 V, UL 248-14 (US variant, replaces EL-23) | Littelfuse / Schurter class | T12.5A 5x20 UL 248-14 | distributor | - | link | 0.2 | 0.16 | 0.12 | EUR | ASSUMPTION; US variant only; rev C1.1 (F1 review A1: T10A had 1.09 margin); price by analogy with SETfuse T10A C22447834 (0.17/0.14/0.10 USD, SOURCE lcsc); prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-22-US | 0 | IEC C14 inlet with fuse holder and 2-pole switch rated 15 A UL (US variant, replaces EL-22) | Schurter | KM01 class (15 A UL) | distributor | - | link | 13.0012 | 10.5483 | 10.5483 | EUR | ASSUMPTION; US variant only; F1 review A1; priced as KM00 (SOURCE lcsc C17471559); prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-24 | 1 | Varistor 300 VAC (EU) | hongjiacheng | 07D471K | LCSC | C49072860 | link | 0.0279 | 0.0249 | 0.0223 | EUR | SOURCE; lcsc DB 2026-10-29; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-24-US | 0 | Varistor 140 VAC class (US variant, replaces EL-24) | hongjiacheng | 10D221K | LCSC | C49072898 | link | 0.062 | 0.0493 | 0.0385 | EUR | SOURCE; US variant only; lcsc DB 2026-10-29; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-25 | 1 | X2 capacitor 100 nF 275 VAC + 1.5 Mohm bleeder | Kemet / Vishay | R46 class | distributor | - | link | 0.2 | 0.17 | 0.15 | EUR | ASSUMPTION; not found in lcsc DB; 0.15 USD typical; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-26 | 60 | Passives (R/C, representative 100 nF 0603) | Yageo | CC0603KRX7R9BB104 | LCSC | C14663 | link | 0.0092 | 0.0092 | 0.0071 | EUR | SOURCE; lcsc DB 2026-10-29; representative price for all ~60 passives; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-27 | 1 | Other board parts allowance: inductor, LEDs (RGB status + tank light), buttons x2, terminals, Faston tabs, connectors | various | - | LCSC | - | link | 6 | 3 | 2 | EUR | ASSUMPTION; allowance; replaced by the KiCad BOM in detailed design; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| EL-28 | 1 | Main PCB 2-layer FR4 ~120x80 mm, fabrication + SMT assembly | JLCPCB | - | JLCPCB | - | link | 40 | 3.6 | 2.2 | EUR | ASSUMPTION; q1 = share of a 5-board order 30-60 USD; 100/1000 per-board ranges in research/sourcing-electronics.md; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| RC-01 | 1 | Remote radio module nRF52840 (same as EL-01; cost-down nRF52820-class module) | Chengdu Ebyte | E73-2G4M08S1C | LCSC | C356849 | link | 6.9096 | 6.3858 | 6.3858 | EUR | SOURCE; lcsc DB 2026-10-29; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| RC-02 | 1 | Remote PCB 50x35 mm + SMT + 6 tactile buttons + 4 status LEDs | JLCPCB | - | JLCPCB | - | link | 20 | 3 | 1.8 | EUR | ASSUMPTION; q1 = share of a 5-board order 18-35 USD; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| RC-03 | 1 | Remote enclosure, handheld with battery door (q1/q100 Hammond 1553; q1000 custom moulded) | Hammond | 1553BBKBAT | SOS electronic | 1553BBKBAT | link | 13.1 | 9.17 | 1.2 | EUR | ASSUMPTION; 13.10 / 9.17 EUR from search summary; q1000 = custom 2-part moulding (tooling in one-offs); prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| RC-04 | 2 | AAA alkaline cell | Duracell | MN2400 | Battery Junction | duracell-aaa-mn2400-bulk | link | 0.4942 | 0.4672 | 0.3504 | EUR | ASSUMPTION; tier prices from search summary; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| ME-01 | 1 | Enclosure: 1.0 mm steel base + cover, laser cut, bent, powder-coated, vents | custom (PL sheet-metal shop) | ZAD-ENC | Fractory / local | - | link | 60 | 20 | 10 | EUR | ASSUMPTION; no public quote without CAD upload; ranges 40-120 / 12-30 / 7-15 EUR; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| ME-02 | 1 | Front and rear panels (PC/ABS, printed legend), display window, tank window | custom | ZAD-PNL | local 3D print / moulder | - | - | 25 | 6 | 2.5 | EUR | ASSUMPTION; q1 printed; q1000 moulded (tooling in one-offs); prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| ME-03 | 1 | Nozzle (AISI 316, 3.5 mm bore) and perforated stainless guard sleeve 90 mm | custom | ZAD-NOZ | local CNC / sheet | - | - | 20 | 4 | 2 | EUR | ASSUMPTION; turned nozzle + rolled perforated sheet; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| ME-04 | 1 | Handle, 4 rubber feet, captive thumb screws (service), standoffs, fasteners ISO 7380/7045 | various | - | distributor | - | - | 8 | 3 | 2 | EUR | ASSUMPTION; feet 0.03-0.15, thumb screw 0.15-0.60 EUR (research); prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| ME-05 | 1 | Hanging bracket, steel 2 mm, powder-coated, with safety-cable eyelet and 2 hand knobs | custom | ZAD-BRK | local sheet-metal | omega ref. | link | 15 | 5 | 3 | EUR | ASSUMPTION; omega clamp 2.8-4 USD as a reference; bracket is our part; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| ME-06 | 1 | Internal wiring harness: 1.0 mm2 high-temperature (silicone/PTFE) heater leads, PE bonding with ring lugs, Faston | various | - | local harness shop | - | - | 10 | 4 | 2.5 | EUR | ASSUMPTION; ; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| CB-01 | 1 | Mains cord EU 3 m, CEE 7/7 to C13, H05VV-F 3G1.0 | Qoltec | 54623 | TIM.pl | 0001-00021-62029 | link | 4.6657 | 3.0 | 2.2 | EUR | ASSUMPTION; q1 SOURCE 20.50 PLN (TIM.pl 2026-10-30); q100/q1000 OEM price not readable (ASSUMPTION); VDE-marked OEM cord required; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| CB-01-US | 0 | Mains cord US 3 m (10 ft), NEMA 5-15P to C13, SJT 3x16 AWG, UL (replaces CB-01) | World Cord Set | 51513-F-012 (10 ft) | Cables Plus USA | 51513-F-012 | link | 4.0 | 2.5 | 1.8 | EUR | ASSUMPTION; US variant only; page shows 1.67 USD for an unconfirmed length (18 AWG); 16 AWG 10 ft assumed 2-4 USD; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| DOC-01 | 1 | Rating plate + hot-surface and warning labels, quick-start card, manual (PL/EN/DE + US EN/ES/FR-CA) | local print | - | local | - | - | 5 | 1.0 | 0.6 | EUR | ASSUMPTION; ; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
| PKG-01 | 1 | Retail carton ~380x250x250 printed + moulded-pulp inserts | custom | - | custompacka.ing / Made-in-China | - | link | 6 | 3.5 | 1.6 | EUR | ASSUMPTION; printed RSC 3.33 USD @100, 1.31 USD @1000 (other size) + inserts 0.3-1.0; prices 2026-10-29/30, EUR net, FX ECB 2026-10-29 |
Koszt
Cost roll-up — concept C1.1 (rough, ±30 %), EU variant, EUR net, prices read 2026-10-29/30
Generated by cost_rollup.py (BOM lines → bom.csv, totals → cost.json) and unit_economics.py. FX: ECB
reference rates 2026-10-29, 1 EUR = 1.1130 USD = 4.3938 PLN (SOURCE https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml).
Each BOM line is labelled SOURCE (price read from the offline JLCPCB/LCSC catalogue of 2026-10-29 or from a shop page,
URL in the line) or ASSUMPTION (range and basis in its notes). 36 % of the q1000 BOM value carries a read price;
the rest — exchanger, pump, enclosure, tank, STB, panels, check valve, heatsink — are ASSUMPTION ranges because
Alibaba/AliExpress/Kamoer pages could not be read and custom parts need quotes from drawings (not possible at this
tier). Status: the BOM is a concept estimate, not a quotation. US variant: lines *-US (qty 0) replace their EU
line; delta at 1,000 units −0.35 EUR (CALCULATION). Revision C1.1 adds the parts required by the independent review
(2-pole STB, stainless check valve at the coil inlet, triac heatsink, US T12.5 A fuse and 15 A UL inlet).
1. Roll-up (unit cost = BOM + other)
| Block | q1 (prototype) | q100 | q1000 |
|---|---|---|---|
| Vaporiser and fluid path (HX, PMP, TNK, SEN, SAF, FLD lines) | 208.00 | 80.00 | 43.40 |
| Electronics: main board, DMX, XLR ×4, inlet, fuses, heatsink (EL lines) | 102.41 | 48.67 | 44.39 |
| Remote (RC lines) | 41.00 | 19.49 | 10.09 |
| Enclosure, bracket, harness, cord, documents, packaging (ME, CB, DOC, PKG) | 153.67 | 49.50 | 26.40 |
| BOM total | 505.08 | 197.66 | 124.27 |
| Assembly + end-of-line test labour (ASSUMPTION 15 EUR/h loaded, Poland; 35 min @100, 22 min @1000; q1 = engineering labour, excluded per ZAD-CST-03) | 0.00 | 8.75 | 5.50 |
| Inbound logistics and duty (ASSUMPTION 4 % of BOM) | 20.20 | 7.91 | 4.97 |
| Prototype outside services: block CNC, sheet-metal one-off, prints, shipping (ASSUMPTION) | 120.00 | — | — |
| Unit cost (EXW, excl. VAT, excl. one-offs) | 645.28 | 214.32 | 134.74 |
| Requirement | ZAD-CST-03 ≤ 400 target / ≤ 800 threshold → threshold met, target missed | ZAD-CST-02 ≤ 110 / ≤ 160 → not met | ZAD-CST-01 ≤ 60 / ≤ 85 → not met |
Accuracy: ±30 % applies to the whole; the read-price share (36 %) is ±5 %, the ASSUMPTION share ±40 %.
2. Biggest cost drivers at 1,000 units (CALCULATION from bom.csv)
| # | Line | EUR | Cheaper alternative (savings, label) |
|---|---|---|---|
| 1 | PMP-01 stepper peristaltic pump (Kamoer KAS-ST class) | 14.00 | own 4-roller head on a NEMA14 stepper with moulded housing: ~7 EUR (−7, ASSUMPTION) |
| 2 | EL-22 Schurter KM00 fused inlet with switch | 10.55 | approved generic C14 inlet with fuse drawer and switch: 1.5–3 EUR (−8, ASSUMPTION) |
| 3 | SAF-01 2-pole capillary STB | 10.00 | Chinese 2-pole capillary limiter with ENEC/UL approval ~5 EUR (−5, ASSUMPTION); a calibrated bimetal is no longer acceptable as the last layer after the overshoot analysis |
| 4 | ME-01 steel enclosure, laser/bend/powder | 10.00 | same part from an Asian sheet-metal supplier: ~6 EUR (−4, ASSUMPTION) |
| 5 | HX-01 heat exchanger | 9.00 | adopt a caster's existing block (sensors and STB bulb in drilled wells): ~7 EUR (−2, ASSUMPTION) |
| (6) | EL-20/21 Neutrik 5-pin XLR pair | 6.73 | Seetronic/Cliff 5-pin pair ~1.5 EUR (−5.2, ASSUMPTION) |
| (7) | RC-01 / EL-01 nRF52840 modules (2 × 6.39) | 12.78 | remote on an nRF52820-class module (bare chip 2.05 USD @1000, SOURCE lcsc C3015612) with own radio tests: −3 to −4 |
3. Cost-down path (ASSUMPTION, to be proven by quotes)
Items 1–7 above plus the 0.96" OLED (−1.7) total about −36 EUR → ~99 EUR; moving final assembly and sheet metal to an Asian contract manufacturer (−6 EUR labour/logistics) → ~93 EUR. The ZAD-CST-01 target of 60 EUR would additionally need an on-board flyback instead of the SMPS module (−3, own isolation approval), a bare-chip radio (own FCC/RED radio approvals, +20–30 kUSD one-off, conformity-plan.md §6b) and an ODM-built exchanger + enclosure (−8): ~80 EUR remains the realistic floor for this feature set at 1,000 units (ASSUMPTION). The target is not credible for this specification; the threshold (85 EUR) needs the full cost-down list plus ODM assembly.
4. One-off costs before the first 1,000 units ship (ZAD-CST-04) — ASSUMPTION ranges, EUR net
| Item | Low | High | Basis |
|---|---|---|---|
| Exchanger: modification of a caster's existing tool (sensor/STB wells) or own permanent-mould tool | 3,000 | 12,000 | ASSUMPTION; gravity/permanent-mould casting (high-pressure die-castings blister at 300 °C+, F1 review A9) |
| Tank blow mould (translucent PP) | 3,000 | 6,000 | ASSUMPTION |
| Front/rear panel injection moulds (2 small tools) | 8,000 | 14,000 | ASSUMPTION; alternative: printed/vacuum-formed panels (+2–3 EUR/unit, no tool) |
| Remote case moulds (2 parts + battery door) | 6,000 | 10,000 | ASSUMPTION; alternative: Hammond 1553 (+8 EUR/unit) |
| Sheet-metal: programs, bending tools, powder jigs | 500 | 1,500 | ASSUMPTION |
| Packaging cutting die and print plates | 500 | 1,500 | ASSUMPTION |
| End-of-line test station (hipot/earth/leakage tester, flow scale, pairing jig) | 5,000 | 9,000 | ASSUMPTION |
| Certification: EU labs, NRTL US+CA initial project, FCC 15B/ICES-003, standards, legal opinions, pre-compliance rental, EPR fees | 25,000 | 67,000 | ASSUMPTION ranges itemised in ../01-requirements/conformity-plan.md §6b (risk adder +20–30 kUSD if the radio module has no grants) |
| Transport test ISTA 2A | 1,000 | 2,000 | ASSUMPTION |
| Total | 52,000 | 123,000 | ZAD-CST-04 ≤ 30,000 target / ≤ 60,000 threshold → not met; with the no-tool alternatives (printed/vacuum-formed panels, bought remote case: +10–11 EUR/unit) 38–99 kEUR — threshold reachable only at the low end |
5. Unit economics (ZAD-CST-05) — CALCULATION unit_economics.py
ASSUMPTIONS: VAT 23 % (PL, worst main EU market), payment fee 2.9 % + 0.25 EUR, shipping 9 EUR, fulfilment 3 EUR, paid marketing 12 % of net (own shop), warranty/returns 4 % of net, dealer margin 40 % of net retail, freight to dealer 4 EUR, Kickstarter 5 % + payment 4 %, early-backer price −15 %.
| Retail incl. VAT | Unit cost | Direct shop margin / unit | Dealer: our price → margin | Kickstarter: backer price → margin |
|---|---|---|---|---|
| 229 EUR | 134.74 (baseline) | +2.8 | 111.7 → −34.5 | 194.7 → −12.3 |
| 229 EUR | 93 (cost-down) | +44.5 | 111.7 → +7.3 | 194.7 → +29.4 |
| 249 EUR | 93 (cost-down) | +57.6 | 121.5 → +16.4 | 211.7 → +41.1 |
| 249 EUR | 134.74 | +15.8 | 121.5 → −25.4 | 211.7 → −0.6 |
| 279 EUR | 134.74 | +35.5 | 136.1 → −11.7 | 237.2 → +17.0 |
| 299 EUR | 134.74 | +48.5 | 145.9 → −2.6 | 254.2 → +28.7 |
| 299 EUR | 93 | +90.3 | 145.9 → +39.1 | 254.2 → +70.5 |
Recommended retail price: EUR 249 incl. VAT, with the cost-down to ≤ ~93 EUR/unit as a launch condition — positive margins in all channels (direct +57.6, dealer +16.4, Kickstarter +41.1 EUR). With the baseline cost (134.74 EUR) the dealer channel is negative at every price up to the 299 EUR threshold (−2.6 EUR at 299; positive only with a dealer margin below about 38 %). ZAD-CST-05: partly — positive in both channels at 229–299 EUR only together with the cost-down; at baseline cost no price ≤ 299 EUR is positive in the dealer channel.
6. Price spot-check (receipt)
Re-read 2026-10-30 04:58 Warsaw with lcsc C356849 C7211221 C17471559 (catalogue build of 2026-10-29): E73-2G4M08S1C
7.6904/7.1074/7.1074 USD, IRM-15-24 6.061/6.0593/6.0593 USD, Schurter KM00.1205.11 14.4703/11.7403/11.7403 USD —
identical to the BOM lines EL-01, EL-10, EL-22 (PASS).
Raport z przebiegu
ZAD-1 — compact mains fog machine: concept design report (tier: concept, revision C1.1, 2026-10-30)
Streszczenie dla właściciela (PL)
Zaprojektowano koncepcję lekkiej (ok. 2,8 kg, 30 × 18 × 19 cm) wytwornicy mgły 960 W z pilotem dwukierunkowym i DMX/RDM. Według obliczeń rozgrzewa się w 2,7 min i daje ciągle ok. 27,6 ml/min płynu bez przerw na dogrzewanie, bo pompa dozująca nigdy nie podaje więcej płynu, niż grzałka zdąży odparować. Niezależny przegląd znalazł 5 poważnych usterek bezpieczeństwa (przegrzanie przy awarii, zwarcie czujnika, odwrócona wtyczka, zablokowana dysza, przegrzany triak w wersji US) — wszystkie poprawiono w tej wersji i sprawdzono obliczeniami. Wymagania wydajności, mocy, wymiarów, hałasu i bezpieczeństwa są spełnione analitycznie (testy fizyczne nie były możliwe); nie jest spełniony koszt: ok. 135 EUR na sztukę przy 1000 szt. wobec progu 85 EUR — opisano drogę obniżenia do ok. 93 EUR i zalecaną cenę 249 EUR pod warunkiem tej obniżki.
1. What the product is and does
ZAD-1 is a 960 W, 2.8 kg, 9.7 L floor/truss fog machine for ANSI E1.5 water-based glycol fluids. A cast aluminium heat exchanger (0.55 kg, cast-in 950 W heater, stainless coil) vaporises fluid delivered by a stepper-driven peristaltic metering pump. The pump rate is governed by the exchanger temperature: from READY it delivers a burst (up to 55 ml/min) from stored heat, then slides down to the continuous rate the heater can sustain — the output never stops for reheating and the block never falls below the temperature at which the fluid vaporises cleanly, which is the design's answer to spitting. Control: isolated DMX512-A in/thru on 3-pin and 5-pin XLR with RDM, an included two-way 2.4 GHz remote (status LEDs, up to 8 machines in 4 groups), OLED + encoder on the unit, built-in timer. Two mains variants (EU 220–240 V, US 120 V) differ only in heater, fuse, inlet rating, varistor, cord and labels. Heater safety does not depend on firmware: a latched hardware window comparator with its own sensor and a latched external watchdog open a 2-pole heater relay, and a 2-pole capillary safety limiter (300 °C, manual reset) backs both up; calculated worst-case block peaks are 314 °C and 332 °C, below the 351 °C limit (lowest glycol autoignition 371 °C − 20 K).
Block diagram: 02-concept/architecture.svg. Concept choice: 02-concept/concepts.md (5 principles, weighted
matrix, C1 wins with 80.9/100 vs 73.7; robust to ±20 % on every weight — 100 % of 20,000 Monte-Carlo draws).
2. Key parameters (labels: C = CALCULATION/SIMULATION, D = DESIGN, A = ASSUMPTION; evidence 02-concept/estimates.md)
| Parameter | Value | Label |
|---|---|---|
| Energy to vaporise 1 ml (standard / quick / dense fluid) | 2,005 / 2,214 / 2,066 J/ml | C calc/fluid_energy.py |
| Warm-up to READY at 230 V (120 V same) / at 207 V | 2.73 min / 3.36 min | C calc/thermal_budget.py |
| Continuous output, no pauses, 230 V (standard / quick fluid) | 27.6 / 25.1 ml/min | C |
| Continuous output at 207 V (standard) | 22.2 ml/min | C |
| Fluid vaporised in first 30 s from READY | 23.7 ml | C (simulation of the governor) |
| Lowest stable output | 2 ml/min | D |
| Rated input EU / US; max current US | 962 W / 966 W; 9.2 A | C calc/electrical_budget.py |
| Ready-hold / standby / off power | 36.0 W / 0.26 W (0.30–0.35 W incl. DMX parsing) / 0 W | C |
| Flicker per heater step, Pst at 10 s modulation | 0.72 %, 0.56 | C (EN 61000-3-3 analytical method) |
| Runaway peak block temperature: comparator / STB alone (253 V, +5 % heater) | 314 °C / 332 °C | C calc/runaway_overshoot.py |
| Triac junction at max current, 40 °C ambient (US / EU) | 111 °C / 86 °C | C |
| Remote range (coded PHY, 15 dB fade reserve) | ~87 m | C calc/link_budget.py |
| Size / dry mass / tip angle full | 295 × 178 × 185 mm (9.71 L) / 2.77 kg / 37.7° | C calc/packaging_budget.py |
| Tank usable | 1.40 L | C |
| Noise fogging / ready | 42.4 dB(A) / no source | C calc/noise_budget.py (pump figure A) |
| Enclosure hot-spot rise (heating test) | 19.9 K (±50 %) | C |
3. Cost (EUR net, EU variant, 09-bom-cost/cost.md)
| q1 (prototype) | q100 | q1000 | |
|---|---|---|---|
| BOM | 505.08 | 197.66 | 124.27 |
| Unit cost (BOM + labour + logistics [+ prototype services]) | 645.28 | 214.32 | 134.74 |
36 % of the q1000 BOM value has a read price (LCSC catalogue / shop pages, 2026-10-29/30); custom parts are
ASSUMPTION ranges (±40 %). Cost-down path (cheaper inlet, XLR, own pump head, cheaper STB, cheaper remote module,
Asian sheet metal and assembly) → ~93 EUR (ASSUMPTION), still ~8 EUR above the 85 EUR threshold. One-off costs
(tools, test station, certification): 52–123 kEUR (ASSUMPTION ranges; certification 25–67 kEUR itemised in
01-requirements/conformity-plan.md §6b). Recommended retail: EUR 249 incl. VAT, with the cost-down as a launch
condition (direct +57.6, dealer +16.4, Kickstarter +41.1 EUR per unit); with the baseline cost the dealer channel is
negative at every price up to EUR 299 — 09-bom-cost/unit_economics.py.
4. Status per requirement (56 ids; full table 01-requirements/requirements_status.md, compliance.csv)
34 met (PASS by analysis or design definition), 19 partly, 3 not met, 0 not addressed. No physical test was run (all tests NOT RUN — this is a digital concept).
| Group | Met | Partly (why) | Not met |
|---|---|---|---|
| Performance PRF-01…09 | 01, 02, 03, 05, 08, 09 | 04 (23.7 vs 25 ml), 06 (stability not quantified), 07 (only a test proves 0 droplets) | — |
| Size, weight SIZ, WGT | all 3 | — | — |
| Power PWR-01…04 | 02, 03, 04 | 01 (no drawings at this tier) | — |
| Functions FUN-01…08 | 01–06 | 07 (panel drawing pending), 08 (tilt not checked in CAD) | — |
| User experience UX-01…05 | all 5 | — | — |
| Safety SAF-01…08 | 01, 04, 07 | 02 (19.9 K ±50 %), 03 (guard-sleeve temperature, plume +79 K), 05 (no CAD), 06 (leakage 0.27 vs 0.25 mA), 08 (manual not written) | — |
| Certification CRT-01…04 | 01–04 (plans; NRTL standard is a working basis pending an NRTL opinion) | — | — |
| Cost CST-01…05 | — | 03 (645 vs 400 target; threshold met), 05 (EUR 249 only with the cost-down) | 01 (134.74 > 85), 02 (214 > 160), 04 (52–123 k > 60 k) |
| Manufacturing MFG-01…03 | 03 | 01 (custom-part prices ASSUMPTION), 02 (22.5 vs 20 min) | — |
| Reliability REL-01…04 | 02 | 01 (peristaltic tube ~1,000 h), 03 (no data), 04 (packaging not designed) | — |
| Service SRV-01…03 | 02, 03 | 01 (not checked in CAD) | — |
5. Independent review (F1) and what changed
A fresh-context reviewer re-ran the calculations (0 differences) and confirmed the headline numbers, then found five
blocking defects; all were fixed once in revision C1.1 (dispositions: 02-concept/review-F1.md):
B1 STB overshoot → windows −10 K, comparator 295 °C, 2-pole STB 300 °C with τ ≤ 10 s, transient calculated;
B2 shorted protection sensor → latched window comparator; B3 reversed-plug heater fault → 2-pole relay and STB;
B4 blocked-outlet steam pressure → stainless check valve, pump and drip tray in the cold zone; B5 US triac → finned
heatsink. Twelve further findings were fixed in text/models or moved to the list below. Model corrections from the
review changed several numbers: losses 30–35 W (were 22–26 W), jet noise lower (42.4 dB(A) combined), plume hotter
(+79 K at the guard exit).
6. Top risks and open hazards (after release / to be closed by the prototype)
| # | Risk | Effect | Mitigation / next step |
|---|---|---|---|
| R1 | Unit cost 134.7 EUR vs 85 EUR threshold | margin, dealer channel | execute the cost-down list (cost.md §3), quotes for exchanger, pump, enclosure, tank |
| R2 | Guard-sleeve inner surfaces > 70 °C (plume +79 K mean at 90 mm, estimate) | ZAD-SAF-03 | measure on prototype; co-flow air inlets, longer sleeve; CFD in detailed design |
| R3 | Burst spitting: coil wall flux ~26 W/cm² at 55 ml/min (film boiling) | ZAD-PRF-07, -04 | coil test rig before casting freeze; prototype burst capped at 40 ml/min (DR-20); T-07 |
| R4 | Peristaltic tube life ~1,000 h (maker data for BPT) | ZAD-REL-01 target 2,000 h | 3-min tube change, hours counter; longer-life tubing; own pump head |
| R5 | Pump noise figure is a maker number via search summary | ZAD-UX-01 | measure (T-16); soft mounts, lining |
| R6 | Heater MgO moisture after storage → leakage > 0.5 mA | ZAD-SAF-06 | sealed terminations in the heater spec, EOL hot-leakage test |
| R7 | Glycol/glycerol decomposition (carbonyls) — thresholds not retrieved | inhalation hazard HZ-07 | firmware cap ≤ 275 °C, aldehyde measurement T-09 |
| R8 | Radio module certification status not verified (Ebyte E73) | CE/FCC route; +20–30 kUSD own radio approvals if no grants | certified fallback Raytac MDBT50Q |
| R9 | NRTL standard only a working basis (UL 499 Ed. 14 + ANSI E1.29, CSA C22.2 No. 88) until an NRTL scope opinion; SMPS module certified to 62368-1, not 60335-1 | US/CA listing schedule and cost | NRTL scope opinion first (human action, conformity-plan.md §7); lab assessment of the module or a 60335/61558-covered SMPS |
| R10 | Machinery Regulation (EU) 2023/1230 borderline (pump = moving part) from 20 Jan 2027 | DoC content, risk-assessment depth | legal/notified-body opinion before DoC freeze |
| R11 | Temperature windows and floors are assumptions | burst, spitting, decomposition | set on the coil test; runaway margins recalculated if windows move |
| Open hazards (residual) | hot vapour at the outlet, fire-alarm triggering and visibility, slippery condensate, exposure in small unventilated rooms | information for use (E1.14 content), distances, timers |
7. Decisions taken for the owner (defaults) and alternatives
| Decision | Default | Alternative offered |
|---|---|---|
| Working principle | C1 heat-matched vaporiser | C2 classic block (cheaper, cannot meet ZAD-PRF-03) |
| Heater power | 950 W both variants (meets ZAD-PWR-02 target) | 1,150 W: +21 % output, rated 1,165 W (threshold only) |
| Pump | stepper peristaltic (quiet, metered, no drip) | AC vibratory pump (−8 EUR, loud, voltage-dependent, drips) |
| Radio | 2.4 GHz coded PHY, one SKU worldwide | sub-GHz 868/915 MHz (more range, two radio variants) |
| Price | EUR 249 with the cost-down as a launch condition | EUR 299 at baseline cost (dealer still −2.6 EUR) / EUR 229 (dealer +7.3 EUR after cost-down) |
| Assembly | Poland | Asian ODM (−4…−8 EUR/unit) |
| Remote | LEDs, 6 keys, 2 × AAA | OLED remote (+3–4 EUR) |
| Burst vs warm-up | 0.55 kg block, floors as assumed (23.7 ml, 2.73 min) | +10 % block and floor −5 K: 25.8 ml at 2.95 min, more spitting risk |
8. What a physical prototype still has to prove
Warm-up ≤ 3 min (T-01); ≥ 22 ml/min for 30 min with no gap (T-02/T-03); 30-s burst (T-04); zero droplets incl. after
switch-off (T-07); three fluid brands (T-08); aldehydes below OSH limits at 275 °C (T-09); heating test, guard and
enclosure temperatures (T-17); abnormal operation per EN 60335-1 cl. 19 incl. triac short with the comparator
disabled, reversed polarity with a heater-sheath fault and a blocked nozzle (T-22); hot leakage (E5); range ≥ 50 m
(T-13); noise (T-16); 1,000 h endurance (T-20/T-21). Test list and pass criteria: 01-requirements/requirements.md §6.
9. What remains open (not done at this tier)
Detailed design (CAD, drawings, KiCad schematic/PCB, firmware), quotes for custom parts, the carbonyl-threshold
literature, Machinery Regulation and NRTL scope opinions, lab quotations, all physical tests. See manifest.json →
blocked.
10. Method, tools and evidence
Toolchain dd-5c3ded5cb8cc (Python 3.12, CoolProp 8.0, thermo 0.6.1, pint 0.26, numpy/scipy). Positive controls
before product work — pint unit conversion, CoolProp water latent heat (2,256.5 vs 2,256.4 kJ/kg), thermo boiling
points of PG and glycerol (≤ 0.15 %), lumped ODE vs analytic (< 1e-6): all PASS (management/smoke_tests.results.json
in the run folder). Hand calculation beside every simulation: warm-up 2.69 vs 2.73 min, continuous rate 27.5 vs 27.6
ml/min, burst upper bound 26.2 vs 23.7 ml (difference = governor derating before the floor). Cross-check vs a
published continuous rate (Look Viper NT 1,300 W → 35 ml/min ≈ 2.23 kJ/ml, maker sheet re-read) agrees within 10 %.
Spot checks of research receipts (Look, Thomann, three LCSC prices) recorded in the research and cost files. CAD,
FEM, CFD, KiCad and PlatformIO routes: NOT RUN (not part of the concept tier). Research inputs (benchmark of 10
products, fluid SDS, prices, regulations) are in 02-concept/research/ with URLs and access dates.
11. Files
See manifest.json for the complete list with kinds and descriptions.
Dokumenty projektu
01-requirements/assumptions.md
Assumptions register (for the owner) — revision C1.1, 2026-10-30
Each assumption: value, one-line reason, sensitivity, the alternative rejected. Decisions the owner may want to change are marked [owner fork].
| Id | Assumption | Reason | Sensitivity / what changes if wrong | Rejected alternative |
|---|---|---|---|---|
| A-01 | Reference "standard" fluid = Antari FLL composition (42/53/5 wt-%, SOURCE SDS 2019) | only SDS with full composition among standard fluids | energy per ml 2,005 J/ml; a 60 % water fluid needs +10 % energy → 25.1 ml/min | Rosco/Look (no % on SDS) |
| A-02 | Fluid windows (rev C1.1): setpoint 240/260/270 °C, floor 200/215/230 °C, firmware cap 275 °C | Antari 250 °C average, Martin 290 °C nozzle max (SOURCE); −10 K after the review to keep trip margins | floor −5 K → burst 25.0 ml (peak_sensitivity.py); floors must be set on the coil test (spitting) |
one fixed temperature (no fluid setting) |
| A-03 | Exit vapour temperature = setpoint − 30 K | outlet section of the coil approaches block temperature | ±40 K → ±3–4 % energy per ml | — |
| A-04 | Insulation k = 0.035 + 7.5e-5·T W/mK, 20 mm, end effectiveness 0.6, bridges 0.07 W/K (rev C1.1) | typical 128 kg/m³ ceramic fibre | losses ±30 % → ready-hold 26–47 W (still ≤ 80 W); continuous rate ∓0.4 ml/min | aerogel blanket (−40 % loss, +3–5 EUR) |
| A-05 | Heater–block conductance 12 W/K, sheath 80 K above block | cast-in heater practice at 10 W/cm² | warm-up ±0.1 min | cartridge in drilled block (worse contact) |
| A-06 | Pump displacement 0.20 ml/rev, EOL calibrated | 4-roller head, 2.0 mm tube | none after calibration; tube wear −5…−10 % per 1,000 h compensated by model | — |
| A-07 | Pump noise 42 dB(A) at 1 m in the enclosure | maker ≤ 53 dB at 0.5 m (search summary) − 6 − 5 dB | ±3 dB → ZAD-UX-01 44–50 dB(A) | — |
| A-08 | Radio losses (hand −5, enclosure −4, indoor −5 dB), 15 dB fade reserve | indoor 2.4 GHz practice | −6 dB more loss → range 44 m (< 50 m target, > 30 m threshold) | sub-GHz radio [owner fork]: +range, but two regional radio variants |
| A-09 | Leakage parts: heater 0.15 mA hot, SMPS 0.10 mA | sealed heater ends; module datasheet < 0.25 mA | wet MgO after storage can exceed 0.5 mA → drying start + EOL test | — |
| A-10 | Labour 15 EUR/h loaded, Poland; 22.5 min/unit | Polish assembly wages + overhead | ±50 % → ±2.8 EUR/unit | Asian ODM assembly [owner fork] |
| A-11 | Custom-part prices (exchanger 9, enclosure 10, tank 1.8, 2-pole STB 10, pump 14, check valve 2 EUR @1000) | no readable quotes; ranges from research | ±40 % on 62 % of the BOM value → unit cost 100–160 EUR | — |
| A-12 | Retail channel parameters (dealer margin 40 %, marketing 12 %, warranty 4 %) | typical MI/stage retail | dealer 30 % instead of 40 % → +20 EUR/unit dealer margin | — |
| A-13 | Kickstarter backers get −15 % | common early-bird discount | — | — |
| A-14 | Rated power 950 W heater in both variants [owner fork] | meets ZAD-PWR-02 target with ZAD-PRF-02 margin | 1,150 W → +21 % continuous output, rated 1,165 W (threshold only) | US-only higher power |
| A-15 | Remote with LEDs, not a display [owner fork] | cost and battery life | OLED remote +3–4 EUR | — |
| A-16 | Recommended retail EUR 249 with the cost-down to ~93 EUR as a launch condition [owner fork] | only price band with positive margins in all channels (unit_economics.py) | with the baseline cost (134.7 EUR) the dealer channel is negative at every price ≤ 299 EUR | EUR 299 at baseline cost (dealer −2.6 EUR) |
| A-17 | Market: EU (Poland first) + US/Canada; first batch 1,000 | brief | — | — |
| A-18 | Plume/guard temperatures from a jet-entrainment estimate (+79 K mean at 90 mm, rev C1.1) | no CFD at concept tier (route NOT RUN) | if > 70 °C on touchable guard surfaces: longer sleeve or co-flow air inlets | CFD now (time vs value) |
01-requirements/conformity-plan.md
Conformity plan for ZAD-1 (compact fog machine), covering ZAD-CRT-01, ZAD-CRT-02 and ZAD-CRT-03
Run r20261030-0408-v001-zadymiarka-concept-2 | Author: compliance engineer | 2026-10-30 | Status: CONCEPT DRAFT. This is not legal advice; legal opinions are listed in §7.
Summary
- ZAD-CRT-01 (EU): a single CE route under RED 2014/53/EU (3.1a, 3.1b, 3.2) with module A, plus:
- RoHS, WEEE, Batteries Reg. (remote), GPSR, REACH/SCIP, PPWR and the PL BDO register;
- Ecodesign 2023/826 limits are designed in although scope is unconfirmed;
- the CRA applies from 11.12.2027, with reporting from launch;
- the Machinery Regulation is a borderline case that needs a legal opinion.
- ZAD-CRT-02 (US/CA):
- FCC 15B Class B SDoC + a modular-approved radio. The certified fallback is Raytac MDBT50Q, FCC ID SH6MDBT50Q / IC 8017A-MDBT50Q. The Ebyte E73 FCC/IC/CE status is NOT verified.
- ICES-003 Issue 7 / RSS-247 Issue 3.
- NRTL listing: working basis UL 499 Ed. 14 + ANSI E1.29-2009 (R2024) (US) and CSA C22.2 No. 88:19 (R2024) (CA). The applicability of these standards is UNCONFIRMED until an NRTL scope opinion.
- ZAD-CRT-03 (ESTA/ANSI): E1.11-2024, E1.20-2025, E1.37-5-2024, E1.5-2009 (R2024), E1.14-2018 (R2023), E1.23-2023 and E1.29-2009 (R2024).
- Timeline and cost: about 10-14 weeks to CE, 6-8 weeks to FCC/ISED and 16-22 weeks to NRTL listing from design freeze. One-off certification costs about €25k-67k (ASSUMPTION).
Labels used:
- SOURCE = public source. Shown as [S#], defined with URL and access date 2026-10-30 in
research/regulatory.md§8, or [P#] in §8 of this file. - CALCULATION = project calculation file.
- ASSUMPTION = no public source; a reason is given.
- UNCONFIRMED = could not be verified in this session.
Design facts used (from the coordinator, 2026-10-30):
- Power and heating: Class I; heater 950 W; variants ZAD-1-230 (EU, 230 V) and ZAD-1-120 (US, 120 V).
- Heater control: triac burst-fire with a modulation period ≥ 10 s. Three protection layers: a 2-pole capillary safety temperature limiter (STB, manual reset, 300 °C, rev C1.1), an independent hardware comparator relay trip, and firmware control.
- Power supply and mains entry: Mean Well IRM-15-24 SMPS; Schurter KM00 inlet with fuse and double-pole switch; 3 m detachable cord.
- Interfaces:
- radio module Ebyte E73-2G4M08S1C (nRF52840), with Raytac MDBT50Q as the certified fallback;
- DMX isolated (SP3485 + digital isolator + B0505S);
- 3-pin and 5-pin XLR in/thru, with RDM.
- Remote: 2x AAA cells, no coin cells.
- Power states: standby ~0.26 W, off 0 W.
1. ZAD-CRT-01: EU / CE conformity
| # | Act | Why it applies | Harmonised standard, current edition, OJ status | Design measure (ZAD-1) | Pre-compliance (in-house) | Accredited-lab test | Cost / lead time |
|---|---|---|---|---|---|---|---|
| 1 | RED 2014/53/EU, Art. 3.1(a): safety | An integrated 2.4 GHz transmitter makes the whole product radio equipment. LVD objectives apply with no voltage limit. LVD is not declared separately [S28, S27]. | EN IEC 60335-1:2023 + A11:2023 (IEC Ed. 6). It is not OJ-cited (the OJ still cites EN 60335-1:2012 … +A15:2021 under LVD) and no DOW is set [S11, S12]. Not RED-harmonised; applied under module A as a technical specification. No fitting Part 2: competitors cite Part 1 only [S1, S2]. | Heater safety chain:<br>- 2-pole STB capillary 300 °C manual reset (SREQ-06/25, EN 60730-2-9 component; rev C1.1);<br>- latched window comparator trip at 295 °C and on sensor short, opening the 2-pole relay (SREQ-05, rev C1.1);<br>- watchdog (SREQ-07);<br>- Class I PE bonding ≤0.1 Ω (SREQ-01).<br>Insulation and leakage:<br>- reinforced mains/SELV barrier (SREQ-02);<br>- IRM-15-24 leakage < 0.25 mA/277 Vac and I/P-O/P withstand 4.2 kVac [P5].<br>Mechanical and fluid: nozzle guard (SREQ-09); spill/tilt (SREQ-16); KM00 inlet with ENEC/UL-recognised parts. | Electrical: hipot 3 kVac on SELV/DMX; earth bond 25 A (cl. 27.5); leakage hot at 1.06 Un.<br>Thermal: thermocouple heating run at max duty.<br>Fault injection: triac shorted, comparator disabled → STB must trip; pump-stall test. | Full EN IEC 60335-1:<br>- marking and instructions: cl. 7;<br>- electrical and thermal: cl. 8-14, incl. cl. 11 heating and cl. 13 leakage/electric strength;<br>- fluid and humidity: cl. 15 spillage, cl. 16;<br>- abnormal operation, cl. 19: control short-circuited, electronic faults 19.11, pump blocked, dry run;<br>- mechanical and construction: cl. 20-28;<br>- creepage and clearance: cl. 29;<br>- heat and fire: cl. 30 glow-wire / ball pressure.<br>Plus a CB report to IEC 60335-1:2020. | €4k-10k, 3-6 weeks (ASSUMPTION: heater abnormal tests take several days at an EU lab; low-cost tier €0.5-1k [S51]; sources give 2-8 weeks [S53]) |
| 2 | RED 3.1(a): EMF / RF exposure | Heating appliance + 2.4 GHz radio | EN 62233:2008 (+AC:2008) [S1]; EN 62479:2010. Their RED OJ status is UNCONFIRMED [S26]. | Low-power radio; module power table locked in firmware | n/a | Assessment by calculation or report | Included in row 1 / row 5 |
| 3 | RED 3.1(b): EMC, host | EMC objectives of 2014/30/EU via RED | EN IEC 55014-1:2021, EN IEC 55014-2:2021: reported OJ-cited under EMCD [S29, S30].<br>EN IEC 61000-3-2:2019 + A1:2021 (Class A).<br>EN 61000-3-3:2013 + A1:2019 + A2:2021.<br>OJ status of the two 61000-3-x standards UNCONFIRMED [S30]. | Flicker: integral-cycle zero-cross burst-fire, period ≥ 10 s. With d = 0.72 %, Pst ≈ 0.56 (limit 1.0; Plt limit 0.65). CALCULATION deliverables/02-concept/calc/electrical_budget.py, re-checked here with the IEC analytical method tf = 2.3·d^3.2 [S46, S47]: 0.80 s/step, 120 steps per 10 min, Pst 0.56. Zref values are UNCONFIRMED until the standard is bought.<br>EMI and harmonics: no phase-angle control; X-cap + CM choke + triac RC snubber; ESD protection on XLR/OLED. |
Conducted: LISN pre-scan of conducted emissions.<br>Clicks: click-rate count (EN 55014-1 discontinuous disturbance).<br>Flicker: rented flickermeter on EVT.<br>Immunity: ESD gun on ports. | EN 55014-1: conducted, disturbance power or radiated, clicks.<br>EN 55014-2: ESD, RS, EFT, surge, CS, dips.<br>EN 61000-3-2 / -3-3. | €2k-6k, 2-4 weeks (ASSUMPTION between €0.5-1.2k [S51] and EU class-B €4-12k [S52]) |
| 4 | RED 3.1(b): EMC, radio | Radio part of the host + remote | ETSI EN 301 489-17 V3.3.1: OJ-cited by Impl. Dec. (EU) 2025/893 [S25]. ETSI EN 301 489-1 V2.2.3 is used as the common part; not cited on its own [S26, S27]. | Antenna keep-out per module datasheet; shielded radio area | Radio link test under ESD/EFT | EN 301 489-1/-17 immunity and emissions (host + remote) | Included in row 3 |
| 5 | RED 3.2: spectrum | 2.4 GHz wideband data transmission | ETSI EN 300 328 V2.2.2: OJ-cited (Impl. Dec. (EU) 2020/167, consolidated (EU) 2022/2191) [S24]. | Use the module's tested power table and adaptivity / LBT behaviour. E73 RED reports: NOT verified. MDBT50Q: Raytac claims "CE RED compliant" [P2]; the DoC and test reports must be obtained. | Conducted power check via module test firmware | Module report reuse + host spot checks (radiated spurious, power). If the module lacks reports: the full EN 300 328 suite. | Module route €1-3k (ASSUMPTION); without module reports €1-2k [S51] up to €10-20k for 3.1+3.2 [S52]; 1-3 weeks |
| 6 | RED 3.3(d)(e)(f), Delegated Reg. (EU) 2022/30 | Position: NOT applicable. Art. 1(1) covers equipment that can "communicate itself over the internet, directly or via any other equipment". ZAD-1 ↔ remote is a proprietary link with no IP, app or gateway. Not a toy, childcare or wearable product [S13, S14, S15]. | EN 18031-1/-2/-3:2024, cited with restrictions by Impl. Dec. (EU) 2025/138 [S16]. Used here as a design checklist only. | Paired 32-bit IDs + AES-CCM + frame counter (HZ-14); no BLE phone pairing. Re-assess if an app, Wi-Fi, Art-Net or sACN is added. | n/a | n/a | €0 (a scope memo in the technical file) |
| 7 | RoHS 2011/65/EU + (EU) 2015/863 | All EEE (open scope) | EN IEC 63000:2018 (OJ citation UNCONFIRMED) | Low-Pb Al die-cast and brass; supplier declarations. The Annex III 6(b)/6(c) exemption status is UNCONFIRMED. | Supplier declaration matrix in the BOM | XRF screening + phthalates on cable/tubing | €300-1,000, 1-2 weeks [S51] |
| 8 | WEEE 2012/19/EU | EEE placed on the EU market | EN 50419 (wheeled-bin mark; designation from memory, UNCONFIRMED) | Bin mark on the rating label; manual text | n/a | n/a | BDO / PRO fees (see row 16) |
| 9 | Batteries Reg. (EU) 2023/1542 | AAA cells supplied with the remote, so we are a "producer" (EPR from 18.8.2025). Art. 11 removability applies from 18.2.2027 [S20, S21]. | No harmonised standard needed for us (the cell maker covers the battery DoC). | Screw-secured battery door opened with a common screwdriver (SREQ-24); no coin cells; disposal information in the manual. | Battery change by a lay user without special tools | n/a | EPR fees (row 16) |
| 10 | Ecodesign standby (EU) 2023/826 | Scope UNCONFIRMED (household/office equipment list; fog machine not named) [S6]. Decision: meet the limits anyway. | Limits [S6-S9]:<br>- off ≤0.50 W, ≤0.30 W from 9.5.2027;<br>- standby ≤0.50 W;<br>- standby with display ≤0.80 W;<br>- power management ≤20 min.<br>Measurement: EN 50564:2011 (UNCONFIRMED designation). The standardisation request was adopted 23.4.2026 [S6]. | Double-pole switch gives off = 0 W. Standby ~0.26 W (design fact; CALCULATION file); OLED off in standby; auto-standby ≤20 min idle. | Power analyser at 230 V | Low-power measurement | €300-800, 1 week (ASSUMPTION) |
| 11 | GPSR (EU) 2023/988 | Consumer channel; covers residual aspects not covered by RED | n/a | Labelling and traceability: batch/serial on the label; manufacturer postal + electronic address.<br>Processes: accident process (Safety Business Gateway); Kickstarter/web listing information. | n/a | n/a | Internal process |
| 12 | REACH Art. 33 + SCIP | Articles with SVHC above 0.1 % w/w | n/a | SVHC declarations from suppliers; SCIP entry if needed; separate SDS/CLP for the fog fluid | n/a | Chemical tests only if declarations are missing | ASSUMPTION €0-1k |
| 13 | PPWR (EU) 2025/40 | Applies from 12.8.2026 [S31, S32] | n/a | Packaging DoC + Annex VII documentation; name/address on the box; ≤100 mg/kg heavy metals; minimised void | n/a | n/a | Internal |
| 14 | CRA (EU) 2024/2847 | Product with digital elements (radio + DMX/RDM data). Art. 14 reporting from 11.9.2026; full application from 11.12.2027 [S18, S19]. | Harmonised standards pending (UNCONFIRMED); default class, so module A (UNCONFIRMED). | Firmware security: signed firmware + secure boot; no default credentials; per-unit pairing keys.<br>Lifecycle: SBOM; vulnerability-disclosure policy and an ENISA reporting runbook from launch; support period stated in the manual; update path via RDM E1.37-4 or USB. | Firmware threat model; update test | Optional third-party pentest | ASSUMPTION €3k-10k (pentest), 2-4 weeks; needed by 11.12.2027 |
| 15 | Machinery Reg. (EU) 2023/1230 (from 20.1.2027) | BORDERLINE. The pump is a moving part. Art. 2(2)(p) excludes only household appliances for domestic use within LVD/RED scope [S22]. Competitor DoCs list no MD/MR [S1, S2]. | EN ISO 12100:2010 (risk-assessment method) | Risk assessment exists (deliverables/02-concept/hazards.md, EN ISO 12100 method). Peristaltic head enclosed; pump pressure self-limits at 1-2 bar (HZ-12). |
n/a | n/a | Legal opinion ASSUMPTION €1k-3k (§7) |
| 16 | PL BDO + EPR in other EU countries | Placing EEE (Dział IV), batteries (V) and packaging (VI) on the PL market [S33, S34] | n/a | BDO entries + PRO contracts. Authorised representatives in each other EU country shipped to. | n/a | n/a | ASSUMPTION €0.1k-1k/yr (fees vary by country) |
2. Draft EU Declaration of Conformity (RED Annex VI layout, from memory; check against the RED text)
EU DECLARATION OF CONFORMITY (No. ZAD-1-DoC-001, rev. DRAFT)
1. Radio equipment: Fog machine ZAD-1
Variants: ZAD-1-230 — 220-240 V~ 50/60 Hz, 950 W, Class I
ZAD-1-120 — 120 V~ 60 Hz, 950 W, Class I (only if made available in the EU; otherwise delete)
Serial number range: [from … to …] Firmware: [x.y.z]
2. Manufacturer: [COMPANY NAME], [street], [postcode] [city], Poland, [e-mail], [web]
3. This declaration of conformity is issued under the sole responsibility of the manufacturer.
4. Object of the declaration: theatrical fog generator with 2.4 GHz radio link (nRF52840 module
[Raytac MDBT50Q / Ebyte E73-2G4M08S1C]), isolated DMX512-A/RDM in/thru, OLED display; photo in annex.
5. The object of the declaration described above is in conformity with the relevant Union harmonisation legislation:
- Directive 2014/53/EU (radio equipment)
- Directive 2011/65/EU as amended by Commission Delegated Directive (EU) 2015/863 (RoHS)
- Commission Regulation (EU) 2023/826 (standby/off mode) [keep only if the in-scope decision is positive]
- Regulation (EU) 2024/2847 (Cyber Resilience Act) [from 11.12.2027]
- Regulation (EU) 2023/1230 (machinery) [only if the legal opinion says in scope]
6. References to harmonised standards / other technical specifications:
Art. 3.1(a): EN IEC 60335-1:2023 + A11:2023 (technical specification; not cited in the OJ under RED);
EN 62233:2008; EN 62479:2010
Art. 3.1(b): EN IEC 55014-1:2021; EN IEC 55014-2:2021; EN IEC 61000-3-2:2019 + A1:2021;
EN 61000-3-3:2013 + A1:2019 + A2:2021; ETSI EN 301 489-1 V2.2.3; ETSI EN 301 489-17 V3.3.1
Art. 3.2: ETSI EN 300 328 V2.2.2
RoHS: EN IEC 63000:2018
Standby: EN 50564:2011 (measurement) [if applicable]
Machinery: EN ISO 12100:2010 [if applicable]
7. Notified body: not involved (Annex II, module A; EN 300 328 applied in full).
8. Accessories, components and software: remote control ZAD-RC1 (separate DoC); firmware [x.y.z];
detachable cord set 3 m [certified type]; approved fluids per ANSI E1.5.
9. Signed for and on behalf of: [COMPANY] [place, date] [name, function] [signature]
Simplified DoC (RED Annex VII), for the manual:
"Hereby, [COMPANY] declares that the radio equipment type ZAD-1 is in compliance with Directive 2014/53/EU.
The full text of the EU declaration of conformity is available at the following internet address: [URL]"
Remote ZAD-RC1 DoC (short form):
- Directives: RED 2014/53/EU and RoHS (as above).
- Standards: EN 62368-1 (edition UNCONFIRMED) or EN 62479:2010; ETSI EN 301 489-1 V2.2.3 / -17 V3.3.1; ETSI EN 300 328 V2.2.2; EN IEC 63000:2018.
- Battery: 2x AAA (LR03).
Editions and OJ status: see §1 rows 1-7. Several OJ statuses are UNCONFIRMED; re-check them on EUR-Lex by hand before signing.
3. Technical-file outline (RED Annex V + other acts; kept 10 years)
| TF | Content | Source / owner |
|---|---|---|
| TF-01 | General description, variants, photos, rating plates, firmware versions affecting compliance | concept/architecture (deliverables/02-concept/architecture.md) |
| TF-02 | Drawings: schematics (mains, heater chain, SMPS, DMX isolation, radio), PCB layouts, creepage/clearance map, BOM with critical components (STB, relay, triac, KM00, IRM-15-24, cord set, module) and their certificates | electronics |
| TF-03 | Risk assessment, EN ISO 12100 method: deliverables/02-concept/hazards.md. It contains hazard log HZ-01…HZ-15, safety requirements SREQ-01…SREQ-24, DFMEA and the single-fault analysis for ZAD-SAF-01 (fault → protection → EN 60335-1 cl. 19 test). |
compliance + design |
| TF-04 | Standards list (§2 item 6) with applied/not-applied clauses. Includes EN 60335-1 cl. 7 marking and instruction checks and the Annex R position: protection does not rely on software, because the STB and comparator are hardware (SREQ-05/06/07). | compliance |
| TF-05 | Calculations: flicker / Pst (calc/electrical_budget.py), standby power, thermal, link budget (calc/link_budget.py) |
design |
| TF-06 | Test reports: safety (EN IEC 60335-1 + CB), EMC (55014-1/-2, 61000-3-2/-3), radio (300 328, 301 489-1/-17), EMF, RoHS, standby. Plus module reports and DoC (MDBT50Q or E73). | labs |
| TF-07 | Radio-cyber position: RED DA 2022/30 not applicable (no internet communication, directly or indirectly); scope memo; re-assessment trigger list. | compliance |
| TF-08 | CRA file (from 11.12.2027): security risk assessment, Annex I requirement mapping, SBOM, vulnerability-handling process, support period, update mechanism, Art. 14 reporting runbook (active from launch) | firmware + compliance |
| TF-09 | Machinery scope memo + legal opinion (MR Art. 2(2)(p)) | compliance + legal |
| TF-10 | RoHS/REACH: supplier declarations, XRF results, SVHC/SCIP records | purchasing |
| TF-11 | Manual (EN 60335-1 cl. 7.12, ANSI E1.14 checklist, RED Art. 10 radio information, battery/WEEE information), labels, packaging artwork | technical writing |
| TF-12 | Ecodesign in-scope decision + standby/off measurements | compliance |
| TF-13 | Production control: EOL tests (earth bond, hipot, function, STB presence), serial/batch traceability | manufacturing |
| TF-14 | EU DoCs (ZAD-1, ZAD-RC1), simplified DoC, PPWR packaging DoC | compliance |
| TF-15 | GPSR / post-market: complaint log, accident notification procedure, recall plan | QA |
4. ZAD-CRT-02: US and Canada
| Item | Requirement and our solution | Tests | Cost / lead time |
|---|---|---|---|
| FCC Part 15 Subpart B (host ZAD-1-120) | Class B: the product is marketed to consumers and homes; Class A would need commercial-only marketing. SDoC (47 CFR 2.906, 2.1071-2.1077) with a US-based responsible party (importer or agent; to be appointed). The 15.103(d) appliance exemption is not relied on. [S54; eCFR not machine-readable today, so medium] | Conducted 150 kHz-30 MHz at 120 V/60 Hz; radiated 30 MHz-1 GHz (and above, per the highest clock) | $800-2,000, 1-3 weeks [S50, S49] |
| Radio module grant | Preferred (certified): Raytac MDBT50Q, FCC ID SH6MDBT50Q (single modular, 2402-2480 MHz) [P1], IC 8017A-MDBT50Q [P1, P2].<br>Ebyte E73-2G4M08S1C: FCC/IC/CE status NOT verified (not searched; coordinator note). If it has no valid modular grant, our own certification costs $20k-30k and 4-8 weeks [S49].<br>Integration: within the grant conditions (antenna variant, power table, OEM instructions) per KDB 996369 [P1]. | Host spot check of radio emissions within the 15B session | Included above, if within the grant |
| Labelling texts (verify against eCFR/RSS-Gen before print; quoted from memory) | Rating label (US variant):<br>- "Contains FCC ID: SH6MDBT50Q";<br>- "Contains IC: 8017A-MDBT50Q";<br>- "CAN ICES-003(B)/NMB-003(B)" [S38].<br>15.19(a)(3) text (label or manual): "This device complies with part 15 of the FCC Rules. Operation is subject to the following two conditions: (1) This device may not cause harmful interference, and (2) this device must accept any interference received, including interference that may cause undesired operation."<br>15.21 (manual): "Changes or modifications not expressly approved by the party responsible for compliance could void the user's authority to operate the equipment."<br>15.105(b) (manual): the full Class B statement ("…tested and found to comply with the limits for a Class B digital device… reorient or relocate the receiving antenna…").<br>ISED licence-exempt statement: English + French (RSS-Gen).<br>SDoC compliance information statement (2.1077): product ID, the 15.19 text, US responsible party name/address/phone or web. | Inspection | n/a |
| Remote ZAD-RC1 | Same module and labels ("Contains FCC ID / IC"); 15B SDoC for its host digital part; ICES-003 | 15B radiated | ASSUMPTION $500-1,500 |
| NRTL listing, US | Working basis: UL 499 "Electric Heating Appliances", Edition 14 (2014; revisions through 31 May 2023 per a 2023 listing) [S45, P4], + ANSI E1.29-2009 (R2024) fog-generator safety tests. E1.29 says fog generators "often are evaluated as heating appliances" and is based on UL 998 [S4, S5].<br>Applicability UNCONFIRMED: no public listing of a fog machine names its standard. Rosco uses ETL/cETL [S41], Ultratec uses QPS "CSA/UL" [S42], and a Chauvet hazer is cULus [S44]. UL Product iQ needs a login and was not used. | Ratings and thermal: input / power; temperature (normal duty); abnormal: control shorted, pump stalled, empty tank, STB operation.<br>Electrical: dielectric withstand; leakage current; grounding continuity; strain relief / cord.<br>Enclosure: impact, mold-stress, flammability of polymers.<br>Components and markings: component review (listed SMPS, inlet, STB, relay); markings + "Important Safety Instructions".<br>Fog-specific: E1.29 tests (content UNCONFIRMED; standard not yet obtained). | ASSUMPTION $12k-30k, 8-14 weeks: a dual US/CA heating-appliance project with abnormal tests; no public price list found |
| NRTL listing, Canada | Working basis: CSA C22.2 No. 88:19 (R2024) "Industrial heating equipment". Its scope covers cord-connected industrial heating equipment incl. liquid-heaters; title changed and effective 2.11.2020 [P3]. A UL certificate pairs UL 499 Ed. 14 with CSA C22.2 No. 88 [P4]. Alternative for the consumer channel: CSA C22.2 No. 64 (edition UNCONFIRMED). The NRTL decides. | Tested together with the US project (one cETLus / cULus / cQPSus mark) | Included above |
| Factory follow-up | Initial production inspection before first shipment, then periodic unannounced inspections. Critical components are locked in the NRTL procedure (changes need re-review). | EOL dielectric + earth bond required in production (typical; confirm with NRTL) | ASSUMPTION $2k-5k/yr + listing fees |
| ISED | Standards: ICES-003 Issue 7 (mandatory since 15.10.2021) [S37, S38]; RSS-247 Issue 3 (Aug 2023) [S40] via module IC; RSS-Gen Issue 5 + A1 + A2 [S39] (Issue 6 under consultation).<br>Electrical safety: provincial requirements; certification required before sale (UNCONFIRMED). | Same data as 15B | ASSUMPTION $0-500 |
| OSHA | 29 CFR 1910.303(a) / 1910.399: workplace equipment must be NRTL-listed, so listing is required for the pro channel (medium) | n/a | n/a |
| Reese's Law (16 CFR 1263) | Not applicable: AAA cells are not button/coin cells [S35, S36] | n/a | n/a |
| Prop 65 / NFPA | UNCONFIRMED (not researched). Plan Pb/phthalate screening; manual warning about smoke detectors (HZ-08). | XRF / phthalates (with RoHS) | Included in EU RoHS |
FCC rule parts at a glance (added by the chief engineer from research/regulatory.md §3): 47 CFR Part 15
Subpart B — §15.107 (conducted limits, Class B) and §15.109 (radiated limits, Class B) for the host and the remote's
digital part, authorised by SDoC (§2.906, §2.1071–2.1077); Subpart C — §15.247 (2.4 GHz digital transmission system)
covered by the radio module's modular grant, integrated per KDB 996369; labelling and user information §15.19,
§15.21, §15.105(b); "Contains FCC ID" per §2.925. Canada: ICES-003 Issue 7, RSS-247 Issue 3, RSS-Gen.
Pre-certified module saving: it avoids own FCC/IC intentional-radiator certification, about $20k-30k and 4-8 weeks [S49]. The host-only route costs about $3k-10k all-in [S50].
5. ZAD-CRT-03: ESTA / ANSI standards
| Standard (current edition [S4]) | Design measure in ZAD-1 | Verification |
|---|---|---|
| ANSI E1.11-2024 (USITT DMX512-A) | EIA-485 port (SP3485); isolated (digital isolator + B0505S; functional isolation, not the safety barrier); in/thru with passive thru; 5-pin XLR as the E1.11 connector; 3-pin XLR in parallel as a convenience. Whether 3-pin XLR conforms to E1.11 is UNCONFIRMED (standard text not read). | DMX tester: timing (break/MAB), loss of data (SREQ-20) |
| ANSI E1.20-2025 (RDM) | Responder: discovery, mute/unmute, DEVICE_INFO, DMX_START_ADDRESS, SENSOR_VALUE (block temperature), status messages; ESTA manufacturer ID needed (human registration) | RDM conformance test with a controller/analyser |
| ANSI E1.37-5-2024 (general-purpose RDM messages); E1.37-4-2026 (firmware/file upload) | Optional PIDs; E1.37-4 is the firmware-update path (CRA) | RDM analyser |
| ANSI E1.37-1-2012 (R2022), E1.37-2-2015 (R2021), E1.37-7-2019 | Not used (dimmer, IP and gateway messages) | n/a |
| ANSI E1.5-2009 (R2024) (fog fluids, di/trihydric alcohols) | Fluid window and block temperature ≤275 °C (SREQ-18, rev C1.1); only E1.5-type fluids approved in the manual (SREQ-19); reference fluid DR-01 | Fluid tests (fluid_energy calc) |
| ANSI E1.14-2018 (R2023) (fog equipment manuals) | Manual content:<br>- safety and fluid: fluid types, ventilation, smoke detectors, slip, visibility/egress, hot outlet, minimum distances (SREQ-15/21), rigging (HZ-10);<br>- operation and support: maintenance, troubleshooting, DMX/RDM chart. | Manual review against E1.14 (text to be obtained from ESTA) |
| ANSI E1.23-2023 (design, execution and maintenance of atmospheric effects) | Referenced in the manual for venue users (detector management, planning) | Manual review |
| ANSI E1.29-2009 (R2024) (product safety for fog generators) | Basis for the NRTL fog-specific evaluation (with UL 499); design to its fog output and heating clauses once obtained | NRTL project (§4) |
| ANSI E1.27-1-2006 (R2021) / E1.27-2-2026 (control cables) | Manual cable recommendations; optional 5-pin cable accessory | n/a |
| ANSI E1.3-2001 (R2021) (0-10 V) | Not implemented | n/a |
6. Timeline and total one-off cost
6a. Weeks from design freeze (W0). Durations are ASSUMPTION based on the ranges in §1/§4 [S49-S53].
| Activity | W0-2 | W2-4 | W4-6 | W6-8 | W8-10 | W10-12 | W12-14 | W14-16 | W16-18 | W18-22 |
|---|---|---|---|---|---|---|---|---|---|---|
| Pre-compliance (flicker, EMI, heating, standby, hipot) | ███ | ███ | ||||||||
| Lab quotes and NRTL scope opinion (human) | ███ | |||||||||
| EU safety EN IEC 60335-1 + CB | ███ | ███ | ███ | (re-test) | ||||||
| EU EMC + radio (55014, 61000-3-x, 301 489, 300 328) | ███ | ███ | ||||||||
| RoHS / standby / remote | ███ | |||||||||
| CE technical file + DoC signed | ███ | ███ | ███ | |||||||
| FCC 15B + ICES-003 → SDoC | ███ | ███ | ||||||||
| NRTL evaluation (UL 499 / CSA 88 / E1.29) | ███ | ███ | ███ | ███ | ███ | ███ | ||||
| NRTL initial production inspection → listing | ███ | ███ | ███ |
Milestones (ASSUMPTION):
- FCC/ISED done ~W6-8.
- CE done ~W10-14, including one re-test.
- NRTL listing ~W16-22.
- CRA file must be complete before 11.12.2027 [S19].
- Machinery opinion needed before the DoC freeze.
6b. One-off certification cost (planning range)
| Block | Low | High | Basis |
|---|---|---|---|
| EU labs (safety + EMC + radio + RoHS + standby + remote) | €10k | €25k | ASSUMPTION built from [S51-S53] |
| NRTL US + CA initial project | $12k | $30k | ASSUMPTION |
| FCC 15B + ICES-003 | $0.8k | $2.5k | SOURCE [S50] + ASSUMPTION |
| Standards purchase (EN IEC 60335-1, 55014-1/-2, 61000-3-x, UL 499, CSA 88; ESTA free after registration) | €1.5k | €4k | ASSUMPTION (list prices not checked) |
| Legal opinions (Machinery, GPSR/Kickstarter, EPR) | €1k | €5k | ASSUMPTION |
| Pre-compliance equipment rental (LISN, flickermeter) | €1k | €3k | ASSUMPTION |
| EPR / BDO first-year fees | €0.1k | €1k | ASSUMPTION |
| Total (1 USD ≈ 0.90 EUR, ASSUMPTION) | ≈ €25k | ≈ €67k | Sum |
| Risk adder: E73 module without grants (own FCC/IC/RED radio) | +$20k | +$30k | SOURCE [S49] |
| Recurring: NRTL follow-up | $2k/yr | $5k/yr | ASSUMPTION |
7. Open items and legal opinions needed
- Machinery Regulation borderline (legal opinion): is ZAD-1 (pump = moving part) "machinery"? Can the Art. 2(2)(p) household exclusion be used for a dual-use product? Decide before the DoC freeze; shipments after 20.1.2027 fall under the MR [S22, S23].
- NRTL scope opinion: UL 499 Ed. 14 + E1.29 / CSA C22.2 No. 88:19 vs No. 64; category code; CB-to-NRTL reuse. ZAD-CRT-02 is "met" in
requirements_status.md, but the NRTL standard is only a working basis until this opinion is received. - Radio module: get the Ebyte E73-2G4M08S1C FCC ID, IC and RED reports. Otherwise switch to Raytac MDBT50Q and obtain its RED DoC and test reports. Raytac's claim is not a DoC.
- IRM-15-24 under EN 60335-1: it is certified to IEC/EN/UL 62368-1 only, with no EN 60335-1 or IEC 61558-2-16 listed [P5]. The lab must assess it inside the appliance (insulation, OVC, abnormal tests), or choose an SMPS with 60335/61558 coverage. Mean Well publishes a coverage list [P5].
- Ecodesign 2023/826 scope, and whether the DMX input counts as a "network port". We meet the limits anyway.
- EUR-Lex hand check of OJ references and of the OJ status of EN 61000-3-2/-3, EN 62479, EN 62368-1 and EN IEC 63000. Check whether Delegated Regulation (EU) 2026/339 repeals 2022/30 from 11.12.2027 (UNCONFIRMED).
- GPSR: is Kickstarter an "online marketplace"? Also arrange EPR authorised representatives for EU countries shipped to, and a US SDoC responsible party.
- E1.11 connector check (3-pin XLR) and the E1.14 / E1.29 texts: obtain the standards from ESTA (human registration).
- Prop 65 and NFPA 72 have not been researched.
- Flicker: confirm the Zref values with the purchased IEC 61000-3-3 and measure on EVT (CALCULATION Pst 0.56 at a 10 s period).
8. Sources added in this plan (accessed 2026-10-30). All [S#] are in research/regulatory.md §8.
- P1 FCC ID SH6MDBT50Q (single modular, 2402-2480 MHz; OEM label "Contains FCC ID: SH6MDBT50Q", "Contains IC ID: 8017A-MDBT50Q") (snippet): https://fcc.report/FCC-ID/SH6MDBT50Q
- P2 Raytac MDBT50Q product pages (certifications FCC/IC/CE…, "CE RED compliant") (snippet): https://www.raytac.com/product/ins.php?index_id=24 ; https://www.raytac.com/product/ins.php?index_id=141
- P3 CSA C22.2 No. 88:19 (R2024) "Industrial heating equipment" (snippet): https://www.csagroup.org/store/product/CSA%20C22.2%20NO.%2088:19/ ; Intertek SUN, scope and effective date (snippet): https://cdn.intertek.com/www-intertek-com/dms-legacy/CSA-C22-2-No-88-SUN-Rev-5-1-2019-ED-11-2-2020.pdf
- P4 UL Certificate of Compliance listing "UL 499 … Edition 14" with CSA C22.2 No. 88 (snippet): https://www.hotstart.com/assets/General-Info/HOTSTART-E-series-Element-Heater-Certificate-UL.pdf
- P5 Mean Well IRM-15 specification rev. 2025-11-21 (UL/EN/IEC 62368-1; leakage < 0.25 mA/277 Vac; I/P-O/P 4.2 kVac) (snippet): https://www.meanwell.com/Upload/PDF/IRM-15/IRM-15-SPEC.PDF
01-requirements/requirements.md
Requirements designed to — compact mains fog machine "ZAD-1" (revision C1, 2026-10-30)
1. Sources and how to read this folder
- Acceptance criteria: the 56 requirements of
INPUT/requirements.md(ids ZAD-…). Their design value, label, status, planned verification and evidence are inrequirements_status.md(human table) andcompliance.csv(machine table) — both generated bybuild_requirements.pyfrom one data list. - Status words:
met= PASS (analysis) — the design meets the target by calculation, simulation or design definition; every physical test is NOT RUN at this tier.partly= threshold met or design measure defined but the target is missed or not yet provable.not_met= misses the threshold. - Summary (CALCULATION
build_requirements.py): 33 met, 20 partly, 3 not met (ZAD-CST-01, ZAD-CST-02, ZAD-CST-04), 0 not addressed. - Derived requirements below (DR-…) refine the input where a design decision needs a number; safety requirements
SREQ-01…24 are derived in
../02-concept/hazards.md§2. Assumptions with alternatives:assumptions.md. Conformity plan (ZAD-CRT-01/02/03):conformity-plan.md.
2. Derived and refined requirements
| Id | Requirement | Value | Derived from | Verification |
|---|---|---|---|---|
| DR-01 | Continuous rate is stated for a named reference fluid | standard = Antari FLL composition (42 % water, 53 % PG, 5 % glycerol, SOURCE SDS) | ZAD-PRF-02, ZAD-CRT-04 | Analysis + T-02 |
| DR-02 | Heater rating, both variants, at nominal voltage and operating temperature | 950 W ± 5 % (tighter than the EN 60335-1 +5/−10 % so that warm-up stays ≈ 3 min at −5 %) | ZAD-PRF-02 vs ZAD-PWR-02, ZAD-PRF-01 | Test (power meter) |
| DR-03 | Exchanger heat capacity | 600–650 J/K (block AlSi 0.55 kg) | ZAD-PRF-01 vs ZAD-PRF-04 | Analysis, weighing |
| DR-04 | Pump rate range and metering | 2–55 ml/min, positive displacement, occluding at rest | ZAD-PRF-04/05/06/07 | Test |
| DR-05 | Pump governor: block temperature never below the fluid floor while fogging | T ≥ T_floor (200/215/230 °C) | ZAD-PRF-03/07 | Test (T-03 log) |
| DR-06 | Block temperature cap in normal operation | ≤ 275 °C (setpoints 240/260/270 °C) | E1.5 cl. 3.3, HZ-07, trip margins | Test |
| DR-07 | Heater modulation period (flicker) | ≥ 10 s integral cycles, Pst ≤ 0.6 | EN 61000-3-3 | Test (flicker meter) |
| DR-08 | Outlet bore | 3.5 mm (jet ≤ 90 m/s at the continuous rate) | ZAD-UX-01 | Analysis + T-16 |
| DR-09 | Nozzle recess behind the guard opening | ≥ 90 mm, opening ≤ 48 mm | ZAD-SAF-03 (probe B: 80 mm reach, Ø50 stop face) | Inspection |
| DR-10 | Low-fluid sensor height above sump floor | 10 mm | ZAD-FUN-06, ZAD-PRF-09 | Test T-14 |
| DR-11 | Radio link budget margin at 50 m with 15 dB fade reserve | ≥ 3 dB | ZAD-FUN-03 | Analysis + T-13 |
| DR-12 | Standby electronics load | ≤ 0.15 W at the 24 V rail | ZAD-PWR-04 | Test |
| DR-13 | Heater relay and pump enable are dropped by the external watchdog within 2 s of a firmware stop | ≤ 2 s | ZAD-SAF-01 | Test |
| DR-14 | Ready-hold losses of the insulated exchanger | ≤ 40 W at 25 °C (calculated 30–35 W, rev C1.1) | ZAD-PWR-03, ZAD-SAF-02 | Test T-10 |
| DR-15 | Heater surface load / sealed terminations / hot leakage per heater | ≤ 10 W/cm² / sealed / ≤ 0.2 mA | ZAD-REL-01, ZAD-SAF-06 | Supplier test report |
| DR-16 | Pump tube change interval and procedure | 900 h prompt, ≤ 3 min | ZAD-REL-01, ZAD-SRV-01 | Demonstration |
| DR-17 | Over-temperature layers: firmware cap 275 °C; latched window comparator 295 ± 3 °C + sensor-short trip; 2-pole STB 300 °C (0/+8 K, τ ≤ 10 s); both hardware layers open both poles | peak < 351 °C in any single fault (calculated 314 / 332 °C) | ZAD-SAF-01, F1 review B1–B3 | Analysis calc/runaway_overshoot.py + cl. 19 tests |
| DR-18 | Blocked-outlet containment: stainless check valve + inlet stub; pump, tube and drip tray in the cold zone | no polymer part > 2 bar / > 80 °C | ZAD-SAF-01, F1 review B4 | Test (blocked nozzle) |
| DR-19 | Triac on a finned heatsink Rsa ≤ 2.5 K/W | Tj ≤ 115 °C at max current, 40 °C ambient (US 111 °C) | ZAD-REL-02, F1 review B5 | Test |
| DR-20 | Burst pump rate in prototype firmware | 40 ml/min until the coil test and T-07 pass, then 55 ml/min | ZAD-PRF-07, F1 review A7 | Test |
3. Safety requirements
SREQ-01 … SREQ-24 with source hazard, independence from firmware and verification: ../02-concept/hazards.md §2.
4. Assembly sequence and time estimate (ZAD-MFG-02) — ASSUMPTION (MTM-style judgement, 1,000-unit batch, fixtures)
| Step | Operation | min |
|---|---|---|
| 1 | Exchanger module: wrap insulation, close shroud, insert 2 Pt1000 + STB bulb (could be supplier work) | 4.0 |
| 2 | Base: feet, 3 standoffs, place exchanger module (3 screws) | 2.0 |
| 3 | Main PCB (4 screws), triac to chassis with pad (1 screw) | 2.0 |
| 4 | Rear panel: inlet, 4 XLR, USB-C cap; front panel and guard sleeve | 2.5 |
| 5 | Pump (2 screws), tube (2 push-on fittings), tank, level sensor | 2.5 |
| 6 | Harness: heater Fastons ×2, STB ×2, PE bonds ×3, mains to inlet; dress and tie | 3.0 |
| 7 | Cover (4 captive thumb screws), rating plate and warning labels | 2.0 |
| Assembly subtotal | 18.0 | |
| 8 | EOL operator time (§5; automated steps run in parallel stations) | 4.5 |
| Total per unit | 22.5 (18.5 with a supplier-assembled exchanger module) |
5. End-of-line test (ZAD-MFG-03) — limits are DESIGN values, routine levels per EN 50106 to be confirmed with the lab
| # | Test | Limit | Time |
|---|---|---|---|
| E1 | Protective earth continuity, inlet PE to block, shroud, chassis (10 A) | ≤ 0.1 Ω | 5 s |
| E2 | Dielectric strength live parts to PE (routine level per EN 50106, ASSUMPTION 1,250 V a.c.) and mains to SELV/DMX (sample, 3,000 V a.c.) | no breakdown, trip 5 mA | 5 s |
| E3 | Firmware load, serial number, mains-variant parameter, self-test | pass | 30 s |
| E4 | Warm-up from ≤ 30 °C start at 230 V (120 V for US) | READY ≤ 3.2 min (production margin) | 3 min (parallel station) |
| E5 | Hot leakage current at 1.06 × rated voltage after READY | ≤ 0.5 mA (warn > 0.25 mA) | 10 s |
| E6 | Output calibration: 2 min at 20 ml/min, weighed; store factor | factor 0.85–1.15, residual ≤ 3 % | 2 min (parallel) |
| E7 | Fluid-path leak and spit check: 2 min at 100 % over an absorbent sheet | no leak, 0 droplets | in E6 run |
| E8 | DMX/RDM response (address 1, ch1 50 %), DMX-loss stop | stop ≤ 2 s | 20 s |
| E9 | Remote pairing and RSSI at 1 m | paired, RSSI ≥ −60 dBm | 20 s |
| E10 | Purge, cool-down check, pack | — | 1 min |
6. Verification plan (tests the prototype must pass; full procedures belong to the detailed-design test plan)
| Test | Requirement(s) | Method | Pass criterion |
|---|---|---|---|
| T-01 | ZAD-PRF-01 | timed cold start at 230 V and 207 V, 20 °C, each fluid setting | READY ≤ 3 min at 230 V; 207 V stated |
| T-02 | ZAD-PRF-02, DR-01 | 30-min run after READY, tank weighed | ≥ 22 ml/min, no pause |
| T-03 | ZAD-PRF-03, DR-05 | 30 min at 100 %, flow log (load cell) + video, block temperature log | gap 0 s; T ≥ floor |
| T-04 | ZAD-PRF-04 | 30-s burst from READY, weighed | ≥ 25 ml target / ≥ 12 ml threshold |
| T-05 | ZAD-PRF-05 | lowest setting, 10-min weighing + plume video | ≤ 2 ml/min, no gap > 2 s |
| T-06 | ZAD-PRF-06 | 30-min log at 207/230/253 V, three settings | 1-min means within ±5 % |
| T-07 | ZAD-PRF-07 | absorbent sheet 1 × 2 m, READY → 30 min 100 % → 10 min after off | 0 droplets |
| T-08 | ZAD-PRF-08 | T-02 + T-07 with three E1.5 fluid brands | pass with each |
| T-09 | DR-06, HZ-07 | aldehyde sampling (formaldehyde, acetaldehyde, acrolein) at 1 m, dense fluid at 275 °C | below OSH limits (E1.5 cl. 3.3) |
| T-10 | ZAD-PWR-03 | power meter, 30 min READY, 25 °C | ≤ 80 W |
| T-11 | ZAD-PWR-04 | EN 50564 standby/off measurement | ≤ 0.5 W / ≤ 0.5 W |
| T-12 | ZAD-FUN-01/02 | DMX/RDM conformance (timing, isolation, discovery) | E1.11/E1.20 compliant |
| T-13 | ZAD-FUN-03/04 | hall range test, 100 commands at 50 m; 4 machines grouping | ≥ 99 % success |
| T-14 | ZAD-FUN-06 | run tank empty, refill | pump stops before air enters; resumes without priming |
| T-15 | ZAD-FUN-08 | runs at ±30° tilt | no spitting/leak |
| T-16 | ZAD-UX-01/02 | LpA at 1 m, fogging at continuous rate and READY | ≤ 45 / ≤ 30 dB(A) |
| T-17 | ZAD-SAF-02/03 | EN 60335-1 cl. 11 heating test, 1.15 × rated input, thermocouples incl. guard sleeve | rise ≤ 20 K; guard ≤ 70 °C where probe-B accessible |
| T-18 | ZAD-SAF-05 | 45° tilt running; 10 min on each side, full closed tank | no fluid on live/hot parts |
| T-19 | ZAD-SAF-07 | DMX cable pulled while fogging; remote continuous auto-off | stop ≤ 2 s |
| T-20 | ZAD-REL-01 | accelerated endurance: 500 heat cycles + 1,000 h fog duty (pump, heater, STB untouched) | output loss ≤ 10 %, leakage ≤ 0.5 mA |
| T-21 | ZAD-REL-03 | output check every 10 h during T-20 | ≥ 100 h before 10 % loss |
| T-22 | ZAD-SAF-01, DR-17/18 | EN 60335-1 cl. 19 abnormal tests listed in hazards.md §4, incl. triac short with the comparator disabled (19.11.3), L/N reversed with a heater-sheath fault, blocked nozzle with pressure recording | block < 351 °C, no fire, no ejection, limits of cl. 19.13 |
| T-23 | ZAD-REL-04 | ISTA 2A on the packed unit; drained-unit leak check | no damage, no leak |
01-requirements/requirements_status.md
| Id | Title | Target | threshold | Design value | Label | Status | Verification (planned test, pass criterion) | Evidence |
|---|---|---|---|---|---|---|---|
| ZAD-PRF-01 | Warm-up time | ≤ 3 min | ≤ 5 min | 2.73 min | CALCULATION | met | T-01 timed cold start at 230 V and 207 V, 20 °C, per fluid setting; pass ≤ 3.0 / 5.0 min |
| ZAD-PRF-02 | Continuous output without pauses | ≥ 22 ml/min | ≥ 15 ml/min | 27.6 ml/min | CALCULATION | met | T-02 30-min run after READY, tank weighed before/after; pass ≥ 22 ml/min, no pause |
| ZAD-PRF-03 | Output never stops for reheating | ≤ 0 s | ≤ 10 s | 0.0 s | SIMULATION | met | T-03 30 min at 100 % with flow log and video; pass: longest gap ≤ 0 s (≤ 10 s threshold) |
| ZAD-PRF-04 | Peak output from READY | ≥ 25 ml | ≥ 12 ml | 23.7 ml | SIMULATION | partly | T-04 30-s burst at 100 % from READY, weighed; pass ≥ 25 ml (≥ 12 threshold), no droplets |
| ZAD-PRF-05 | Lowest stable output | ≤ 2 ml/min | ≤ 5 ml/min | 2.0 ml/min | DESIGN | met | T-05 weighed 10-min run at the lowest setting + plume video; pass ≤ 2 ml/min, no gap > 2 s |
| ZAD-PRF-06 | Output stability | ≤ 5 % | ≤ 15 % | — | ASSUMPTION | partly | T-06 30-min flow log (1-min averages) at 207/230/253 V and 3 settings; pass ≤ 5 % |
| ZAD-PRF-07 | No spitting or dripping | 0 droplets | ≤ 3 droplets | — | DESIGN | partly | T-07 absorbent sheet 1 × 2 m: from READY, 30 min at 100 %, 10 min after switch-off; pass 0 droplets |
| ZAD-PRF-08 | Works with standard fog fluids | yes + fluid-type setting | yes | 3 settings - | DESIGN | met | T-08 run T-02/T-07 with 3 brands (e.g. Antari FLL, Look Regular, Rosco Fog Fluid); pass all |
| ZAD-PRF-09 | Fluid tank capacity | ≥ 1.2 L | ≥ 1 L | 1.4 L | CALCULATION | met | Inspection of CAD + fill test; pass ≥ 1.2 L usable |
| ZAD-SIZ-01 | Overall volume | ≤ 12 L | ≤ 16 L | 9.71 L | CALCULATION | met | STEP bounding box in detailed design |
| ZAD-SIZ-02 | Longest side | ≤ 320 mm | ≤ 380 mm | 295 mm | CALCULATION | met | STEP bounding box |
| ZAD-WGT-01 | Dry mass | ≤ 3 kg | ≤ 4 kg | 2.77 kg | CALCULATION | met | Weighing the prototype; CAD vs BOM within 10 % |
| ZAD-PWR-01 | Mains variants | EU + US complete in BOM and drawings | same | EU+US - | DESIGN | partly | Inspection of BOM and drawings |
| ZAD-PWR-02 | Rated input power | ≤ 1000 W | ≤ 1200 W (US ≤ 1440 W) | 962 W | CALCULATION | met | Power meter at rated voltage, hot; pass ≤ 1000 W (+5 % tolerance per EN 60335-1 cl. 10) |
| ZAD-PWR-03 | Ready-hold power | ≤ 80 W | ≤ 150 W | 36.0 W | CALCULATION | met | T-10 power meter, 30 min READY at 25 °C; pass ≤ 80 W |
| ZAD-PWR-04 | Standby and off power | ≤ 0.5 W | ≤ 2 W (off ≤ 0.5 W) | 0.26 W | CALCULATION | met | T-11 standby/off power per EN 50564; pass ≤ 0.5 W |
| ZAD-FUN-01 | DMX512 control | 5- and 3-pin in+thru, isolated, ≥ 2 ch, display addressing | 2 ch - | DESIGN | met | T-12 DMX conformance (E1.11 timing, isolation 1.5 kV, termination switch) | 02-concept/architecture.md (S7, IF-S3); 02-concept/INTERFACES.json; 09-bom-cost/bom.csv (EL-02..05, EL-18..21) |
| ZAD-FUN-02 | RDM | yes | no | yes - | DESIGN | met | T-12 RDM discovery and GET/SET with a RDM controller |
| ZAD-FUN-03 | Wireless remote, range and pairing | ≥ 50 m | ≥ 30 m | 87 m | CALCULATION | met | T-13 range test in a hall, 100 presses at 50 m; pass ≥ 99 % with ≤ 1 retry |
| ZAD-FUN-04 | Remote status and multiple machines | 2-way, ≥ 4 machines in groups | 1-way, ≥ 2 | 8 machines / 4 groups, 2-way - | DESIGN | met | Demonstration with 4 machines |
| ZAD-FUN-05 | Built-in timer | interval 1–600 s, duration 1–120 s, 1–100 %, unit+remote | as target - | DESIGN | met | Demonstration | 02-concept/architecture.md (timer) |
| ZAD-FUN-06 | Low-fluid protection | pump stops before air enters; auto recovery | capacitive sump sensor - | DESIGN | met | T-14 empty-tank test; pass: no air in line, fog resumes after refill without priming | 02-concept/architecture.md (states LOW_FLUID); 02-concept/hazards.md (DFMEA level sensor) |
| ZAD-FUN-07 | Controls and display on the unit | yes | yes | OLED + encoder + RGB LED - | DESIGN | partly | Inspection of panel drawing + menu |
| ZAD-FUN-08 | Mounting and operating angle | ≥ 30° | ≥ 15° | 30 deg | DESIGN | partly | T-15 tilted runs ±30°, droplet sheet |
| ZAD-UX-01 | Noise while fogging | ≤ 45 dB(A) | ≤ 55 dB(A) | 42.4 dB(A) | CALCULATION | met | T-16 LpA at 1 m, continuous rate |
| ZAD-UX-02 | Noise when ready | ≤ 30 dB(A) | ≤ 40 dB(A) | no fan, pump off - | DESIGN | met | T-16 LpA at 1 m in READY |
| ZAD-UX-03 | Refilling | ≤ 30 s | ≤ 60 s | 25 s | ASSUMPTION | met | Demonstration with stopwatch, hot machine |
| ZAD-UX-04 | Mains connection | ≥ 3 m | ≥ 1.8 m | 3.0 m | DESIGN | met | Inspection |
| ZAD-UX-05 | First use without an app | ≤ 2 min | ≤ 3 min | 1.5 min | ASSUMPTION | met | Usability check with 3 first-time users |
| ZAD-SAF-01 | Single-fault safety | FMEA + fault-test list | yes | FMEA - | DESIGN | met | EN 60335-1 cl. 19 abnormal tests listed in hazards.md §4 |
| ZAD-SAF-02 | Enclosure temperature | ≤ 20 K | ≤ 60 K | 19.9 K | CALCULATION | partly | T-17 EN 60335-1 cl. 11 heating test at 1.15 × rated input with thermocouples |
| ZAD-SAF-03 | Hot outlet protection | yes | yes | 90 mm recess - | DESIGN | partly | Probe B access check on CAD + guard temperature in T-17 |
| ZAD-SAF-04 | Stability | ≥ 20° | ≥ 15° | 37.7 deg | CALCULATION | met | Tilt-table test full and empty |
| ZAD-SAF-05 | Spill and transport leakage | no fluid leaves | none on live/hot parts | design measures - | DESIGN | partly | T-18 45° tilt running + 10 min on each side with a full closed tank |
| ZAD-SAF-06 | Electrical safety and leakage current | ≤ 0.25 mA | ≤ 0.5 mA | 0.27 mA | ASSUMPTION | partly | Earth bond, hipot, hot leakage at 1.06 × U |
| ZAD-SAF-07 | Stop on loss of control | ≤ 2 s | ≤ 5 s | 1.0 s | DESIGN | met | T-19 pull DMX cable during fogging; pass stop ≤ 2 s |
| ZAD-SAF-08 | Safety information | yes | yes | content list - | DESIGN | partly | Inspection of manual and labels |
| ZAD-CRT-01 | EU conformity (CE) | complete plan with costs | directives + standards + measures | plan - | SOURCE | met | Review by a notified lab |
| ZAD-CRT-02 | US and Canada conformity | complete plan incl. NRTL standard | FCC + NRTL identified | plan - | SOURCE | met | Review by an NRTL |
| ZAD-CRT-03 | Entertainment-industry standards | yes | E1.11 + E1.5 | plan - | SOURCE | met | Review |
| ZAD-CRT-04 | Truthful specification sheet | every claim traced | same | spec sheet - | DESIGN | met | Cross-check of each number vs calc and test plan |
| ZAD-CST-01 | Unit cost at 1,000 units | ≤ 60 EUR | ≤ 85 EUR | 134.74 EUR | CALCULATION | not_met | Quotes for the custom parts |
| ZAD-CST-02 | Unit cost at 100 units | ≤ 110 EUR | ≤ 160 EUR | 214.32 EUR | CALCULATION | not_met | Quotes |
| ZAD-CST-03 | Prototype cost | ≤ 400 EUR | ≤ 800 EUR | 645.28 EUR | CALCULATION | partly | Actual prototype spend |
| ZAD-CST-04 | One-off costs | ≤ 30,000 EUR | ≤ 60,000 EUR | 52000 EUR | ASSUMPTION | not_met | Quotes for tools and labs |
| ZAD-CST-05 | Retail price and unit economics | ≤ 229 EUR | ≤ 299 EUR | 249 EUR | CALCULATION | partly | — |
| ZAD-MFG-01 | Real, purchasable parts | 100 % | ≥ 95 % | 36 % of q1000 value with read price | CALCULATION | partly | Line-by-line check |
| ZAD-MFG-02 | Assembly and test time | ≤ 20 min | ≤ 35 min | 22.5 min | ASSUMPTION | partly | Time study on the pilot batch |
| ZAD-MFG-03 | End-of-line test | yes | yes | defined - | DESIGN | met | Pilot batch |
| ZAD-REL-01 | Service life of heater and pump | ≥ 2000 h | ≥ 1000 h | 1000 h | ASSUMPTION | partly | T-20 accelerated endurance (cycling) test |
| ZAD-REL-02 | Ambient temperature | ≥ 40 °C | ≥ 35 °C | 40 °C | CALCULATION | met | Climatic chamber run at 40 °C |
| ZAD-REL-03 | Cleaning interval | ≥ 100 h | ≥ 30 h | — | ASSUMPTION | partly | T-21 endurance with output check every 10 h |
| ZAD-REL-04 | Shipping and storage | yes | yes | procedure - | DESIGN | partly | ISTA 2A test |
| ZAD-SRV-01 | Replacing wear parts | ≤ 15 min | ≤ 30 min | 15 min | ASSUMPTION | partly | Timed service trial |
| ZAD-SRV-02 | Cleaning procedure | yes | yes | CLEAN mode - | DESIGN | met | Inspection |
| ZAD-SRV-03 | Diagnostics and firmware updates | yes | codes + update port | codes, logs, USB-C, RDM - | DESIGN | met | Inspection |
02-concept/architecture.md
Architecture of concept C1 — heat-matched vaporiser (revision C1.1, 2026-10-30)
Revision C1.1 implements the blocking findings of the independent review (2-pole heater cut-off, window comparator, lower temperature windows with a calculated overshoot check, blocked-outlet containment, triac heatsink, pump in the cold zone).
Block diagram: architecture.svg / architecture.png (generated by architecture_diagram.py).
Interfaces: INTERFACES.json. Numbers carry labels; the evidence is in calc/*.results.json.
B2.1 Flows
- Energy: mains → IEC C14 inlet (fuse T6.3 A EU / T12.5 A US, double-pole switch) → (a) SMPS module 24 V 15 W → 3.3 V buck → logic, pump driver, radio; (b) heater path: 2-pole heater relay (16 A, opens L and N) → 2-pole capillary safety limiter STB (300 °C, 0/+8 K, manual reset) → triac (zero-cross optotriac, finned heatsink) → 950 W heater cast in the exchanger (disconnected on both poles even with a reversed Schuko plug). Class I: exchanger, shroud, chassis bonded to PE (≤ 0.1 Ω, ZAD-SAF-06).
- Material: tank (1.4 L usable) → sump pick-up with tool-free filter → peristaltic pump (2–55 ml/min, cold zone) → stainless check valve and inlet stub → 316 coil in the block (flash vaporisation at 240–270 °C) → nozzle 3.5 mm → guard sleeve → fog. The stopped peristaltic pump occludes the line (anti-siphon, anti-drip, any orientation); the check valve keeps a blocked outlet's steam pressure (40–55 bar) inside the steel coil, away from the polymer tube.
- Signal: 2 × Pt1000 (control channel to MCU, protection channel to the independent comparator), capacitive level sensor, DMX512-A/RDM (isolated), 2.4 GHz remote, front panel (OLED, encoder, RGB status LED), zero-cross timing (behind the relay), watchdog.
B2.2 Subsystems, make-or-buy
| # | Subsystem | Key content | Make / buy | Variant-specific |
|---|---|---|---|---|
| S1 | Mains entry | Schurter KM00 inlet with fuse + 2-pole switch, MOV, X2 + bleeder, 3 m cord | buy (certified parts) | fuse, MOV, cord, rating label |
| S2 | Low-voltage power | Mean Well IRM-15-24 (reinforced isolation, no-load < 0.1 W, SOURCE datasheet via research), TPS54202 buck | buy (certified module) | — |
| S3 | Heater power & protection | 2-pole relay HF115F 16 A (both poles used), 2-pole STB capillary limiter 300 °C, BTA16-800BW triac on a finned Al heatsink (Rsa ≤ 2.5 K/W), MOC3083, latched window comparator, latched watchdog | buy parts, make PCB | — |
| S4 | Vaporiser | AlSi gravity/permanent-mould cast block 0.55 kg (high-pressure die-castings blister at 300 °C+), cast-in 950 W tubular heater, 316 coil 5 × 0.75 mm ~0.65 m, 2 sensor wells + STB well, ceramic-fibre insulation 20 mm, stainless shroud, 3 standoffs | make (spec) — buy from an OEM fog-heater caster | heater 230 V / 120 V |
| S5 | Fluid path | tank (blow-moulded translucent PP, vented cap with umbrella valve), sump + filter, capacitive level sensor, stepper peristaltic pump and drip tray in the cold zone, PharMed/Norprene tube, stainless check valve + inlet stub at the coil | tank: make (tool); pump, valve: buy | — |
| S6 | Outlet | 316 nozzle 3.5 mm, perforated stainless guard sleeve Ø40→48 mm × 90 mm with air inlets | make | — |
| S7 | Control electronics | nRF52840 module (MCU+radio), TMC2209, Pt1000 front-end, comparator trip, TPS3823 watchdog, isolated DMX (SP3485 + isolator + B0505S), XLR 3/5-pin in+thru, OLED, encoder | make PCB, buy modules | — |
| S8 | Enclosure | 1.0 mm steel base + cover (vents, chassis heatsink for triac), PC/ABS panels, handle, feet, bracket with safety eyelet | make | labels |
| S9 | Remote | nRF52 module, 6 keys, 4 LEDs (heat/ready/low fluid/fault per selected machine), 2 × AAA, screw-secured battery door | make PCB + case | — |
| S10 | Firmware | state machine, PI heater control, pump governor, DMX/RDM, radio protocol, logs, update via USB-C service port (SWD/UART bootloader) or RDM | make | mains-variant parameter |
B2.3 Layout (concept envelope; detailed CAD not started at this tier)
top view (x = forward) 295 mm
┌───────────────────────────────────────────────────────────────┐
│ REAR PANEL │ electronics bay │ exchanger (Ø94 insulated) │guard│ ← left 110 mm: hot zone
│ IEC, XLRx4 │ PCB, SMPS, │ ███████ block ███████ │ 90 │◄ nozzle recessed 90 mm
│ USB-C svc │ triac+heatsink │ │ mm │
│────────────┼─────────────────┴─────────────────────────────┴─────│ baffle (insulating)
│ pump+tray │ tank 250 × 58 × 110 mm, translucent, lit, cap at top-rear │ ← right 60 mm: cold zone (pump, drip tray)
└───────────────────────────────────────────────────────────────┘ 178 mm
height 185 mm incl. 10 mm feet and 25 mm handle (handle at the rear, ≥ 150 mm from the outlet: ZAD-SAF-03)
Envelope 295 × 178 × 185 mm = 9.71 L, dry mass 2.77 kg, full 4.26 kg, tip angle ≥ 37.7° (full) / 42.0° (empty)
(CALCULATION calc/packaging_budget.py). Front panel: OLED + encoder + RGB status LED on the rear-top panel strip
(away from the outlet); the tank window and level light face the side and the rear.
B2.4 Interfaces (summary of INTERFACES.json)
| Id | Between | Type | Values |
|---|---|---|---|
| IF-E1 | inlet → SMPS / heater path | mains | 220–240 V 50/60 Hz (EU) or 120 V 60 Hz (US); heater 4.2 A / 7.9 A nominal |
| IF-E2 | triac → heater | mains switched | integral cycles, modulation period ≥ 10 s (flicker), zero-cross |
| IF-E3 | SMPS → board | SELV 24 V | 0.63 A max; pump ≤ 0.3 A; relay coil ~0.4 W |
| IF-T1 | heater → block | thermal | 950 W, surface load 10 W/cm²; sheath ~350 °C at full power nominal, ≤ 416 °C in the STB-alone fault (CALCULATION) → heater specified for ≥ 470 °C sheath |
| IF-T2 | block → shroud → enclosure | thermal | loss 30–35 W at setpoint (CALCULATION, rev C1.1); 3 stainless standoffs to chassis, separate PE bonding lead |
| IF-F1 | tank → pump → check valve → coil | fluid | 2–55 ml/min, ≤ 1 bar back-pressure in normal use (ASSUMPTION, peristaltic limit 1–2 bar); check valve 0.3 bar cracking, 300 °C/100 bar |
| IF-F2 | coil → nozzle → guard | vapour | 3.5 mm bore, ~63 m/s at 27.6 ml/min (vapour 0.76 kg/m³, CALCULATION) |
| IF-S1 | Pt1000 #1 → MCU ADC | analog | ratiometric, 0–400 °C, open/short detection |
| IF-S2 | Pt1000 #2 → window comparator | analog | trip at 295 °C ± 3 K and on under-range (short), latched; fixed pump-enable window ≥ 200 °C; trip and watchdog gate the pump driver EN in hardware |
| IF-S3 | DMX in/thru | RS-485, isolated | ANSI E1.11, 3-pin + 5-pin XLR, 2 channels (level, mode/timer), RDM E1.20 |
| IF-S4 | remote ↔ machine | 2.4 GHz | coded PHY 125 kbit/s, +8 dBm, AES-CCM, 32-bit pair IDs, ≤ 8 machines in 4 groups |
| IF-S5 | service port | USB-C (UART bootloader), SELV, behind a rubber cap on the rear panel | firmware update, log read-out, calibration |
| IF-M1 | bracket ↔ body | mechanical | 2 × M8 hand knobs, tilt ±30°, safety-cable eyelet |
B2.5 Control strategy (ZAD-PRF-03, -05, -06, -07, ZAD-SAF-07)
States (firmware; safe default = heater relay open, pump disabled):
OFF ──power──► SELFTEST ──ok──► HEATING ──T ≥ Tset−3K──► READY ◄──────► FOGGING (DMX / remote / timer / button)
│fail │timeout 8 min / no ΔT │ idle auto-off (user-set 5–240 min, default 20 min: Ecodesign (EU) 2023/826 power management) │
▼ ▼ ▼ ▼
FAULT ◄───────── any channel: sensor open/short, Pt1000 #1 vs #2 > 15 K, over-temp, ZC lost,
(codes E01..E12, relay open, pump off, logged) watchdog reset, pump stall, DMX framing (info)
READY/FOGGING ──low fluid──► LOW_FLUID (pump stopped before air reaches the pick-up; resumes when refilled)
any ──purge request / switch-off from menu──► PURGE (pump off, block held 60 s to boil the coil dry) ──► STANDBY
STANDBY: heater off, radio + DMX listening (0.26 W CALCULATION), wakes on DMX level > 0, remote or button
Pump governor (the "no reheat pause" mechanism): pump rate q = min(q_demand, q_cap) with
q_cap = q_ff + Kp·(T − T_ref) + Ki·∫(T − T_ref)dt, q_ff = (P_heater,est − Q_loss(T))/e_ml, T_ref = T_floor + 5 K,
Kp = 3 ml/min/K, Ki = 0.03 ml/min/(K·s) with anti-windup (DESIGN). While fogging the heater runs at
min(100 %, fluid-load feed-forward + P on the setpoint), so it never drives the block above the setpoint if the pump
stops delivering; heater on/off times are ≥ 1 s and the modulation period ≥ 10 s (flicker method validity). From READY at 100 % the pump runs at 55 ml/min
while the block has stored heat, then slides down to the continuous rate and stays there — it never stops
(SIMULATION of this law in calc/thermal_budget.py: minimum rate during 30 min at 100 % = 27.6 ml/min at 230 V and
22.2 ml/min at 207 V, block never below its floor; plot calc/thermal_run30min.png). Burst risk (review A7): at 55 ml/min
the inner-wall flux is ~26 W/cm² (film-boiling regime); peak rate is capped at 40 ml/min until the coil test and the
droplet test T-07 confirm 55 ml/min. The heater runs at 100 % while
fogging; the mains voltage need not be measured because the integral term absorbs the heater-power error.
Metering: stepper at 1/16 microsteps (TMC2209 interpolates to 1/256), 0.20 ml/rev (ASSUMPTION, calibrated at end-of-line per unit and stored) → 2 ml/min = 10 rpm = 0.67 roller passes per second (no gaps > 2 s, ZAD-PRF-05); rate independent of mains voltage (ZAD-PRF-06); tube wear compensated by the EOL calibration factor and the operating-hours model (re-calibration prompt at tube change).
Anti-spit / anti-drip measures (ZAD-PRF-07): (1) pump enabled only in READY/FOGGING and by the independent comparator window (no pumping into a cold block, also with hung firmware); (2) governor keeps T ≥ T_floor; (3) the peristaltic pump occludes → no siphon or post-run drip; (4) PURGE after fogging and at menu switch-off boils the coil dry; (5) nozzle is part of the hot block (no cold condensing nozzle); (6) guard sleeve drains to an absorbent pad in the sleeve's lowest point (replaceable); (7) per-fluid temperature windows (§B2.6).
DMX/RDM: 2 channels (CH1 output 0–100 %, CH2 mode: 0–9 off, 10–99 continuous, 100–199 timer A, 200–255 timer B or purge with hold), address set by encoder (no DIP switches), output stops ≤ 1 s after DMX loss unless "hold last level" is chosen (ZAD-SAF-07 target ≤ 2 s). RDM PIDs: DEVICE_INFO, DMX_START_ADDRESS, IDENTIFY_DEVICE, SENSOR_DEFINITION/VALUE (block temperature, fluid level), STATUS_MESSAGES (fault codes), DEVICE_HOURS, LAMP_HOURS-equivalent → manufacturer PID "fog hours", SOFTWARE_VERSION_LABEL, RESET_DEVICE.
Remote: keys: [1–4 machine/group] [ALL], [FOG momentary], [CONT on/off], [−][+] output level (10 % steps), [TIMER]; LEDs per selected target: heating (amber blink), ready (green), low fluid (blue), fault (red). Continuous mode auto-off after 10 min (user-settable 1–60 min; ZAD-SAF-07). Pairing: hold [ALL]+[1] on the remote and press the encoder on the machine; the machine stores the remote's 32-bit ID; frames are AES-CCM-authenticated with a counter (neighbouring machines and replays are ignored, ZAD-FUN-03). Timer (ZAD-FUN-05): interval 1–600 s, duration 1–120 s, level 1–100 %, on unit, remote and DMX CH2.
B2.6 Fluid-type temperature windows (ZAD-PRF-08)
| Setting | Fluids (examples, SOURCE SDS in research/fluids.md) |
Setpoint (READY) | Floor (governor) | Basis |
|---|---|---|---|---|
| Quick / light | water-rich glycol fluids (e.g. ≤ 40 % glycol, Chauvet FFDJ5 type) | 240 °C | 200 °C | ASSUMPTION; Antari states 250 °C average operating temperature |
| Standard | Antari FLL type (42 % water, 53 % PG, 5 % glycerol) | 260 °C | 215 °C | ASSUMPTION |
| Dense / long-hang | Antari FLP type (40 % water, 40 % PG, 20 % glycerol), TEG fluids | 270 °C | 230 °C | ASSUMPTION; firmware cap 275 °C, comparator 295 °C, STB 300 °C (rev C1.1) |
All windows stay ≤ 275 °C (firmware cap) to limit thermal decomposition (carbonyl formation thresholds could not be retrieved — open item O-3; E1.5 cl. 3.3 requires decomposition products below OSH limits → aldehyde measurement in the test plan). Wetted materials: 316 stainless, PharMed BPT/Norprene, PP, EPDM/FKM seals — compatible with glycols and glycerol (ASSUMPTION, supplier charts to be attached in detailed design).
B2.7 Service (ZAD-SRV-01..03)
Cover held by 4 captive thumb screws; pump head clips off (tube change < 3 min, ASSUMPTION); exchanger module on 3 standoffs + 2 Faston pairs + 1 tube fitting (≤ 15 min, ASSUMPTION); STB reset button reachable through the base (tool required); inlet filter on the pick-up reachable through the tank neck without tools. Fault codes and hour/fault log on the display, remote (LED code) and RDM; firmware update over the USB-C service port or RDM.
02-concept/concepts.md
Concept study — compact mains fog machine "ZAD-1" (revision C1, 2026-10-30)
Labels: SOURCE (URL/document), CALCULATION (script in calc/), ASSUMPTION (reason), DESIGN (a value this concept
chooses). Status words: PASS / PARTIAL / FAIL / BLOCKED / NOT RUN; "PASS (analysis)" means the calculation passes and
the physical test is NOT RUN. Requirement ids are those of INPUT/requirements.md (copied in
../01-requirements/requirements.md).
1. Restated task (A0)
A 1 kW-class, ~2.8 kg, 9.7 L fog machine for water-based glycol fluids (ANSI E1.5) that a mobile DJ, a small venue, a school or a haunted attraction can put on the floor or hang on truss, run for 1–8 h close to people, microphones and smoke detectors, and control from a DMX desk or from the included two-way wireless remote. It must reach full output in ≤ 3 min, never stop to reheat, never spit, and be sold legally in the EU (CE) and the US/Canada (FCC + NRTL listing) at about EUR 229 retail incl. VAT; first batch 1,000 units after a Kickstarter. Duty: event duty 1–8 h, life target ≥ 2,000 fog hours (ZAD-REL-01), ambient 5–40 °C (ZAD-REL-02). Budget (derived, ZAD-CST-01/05): ≤ EUR 60–85 manufacturing cost at 1,000 units.
2. What the market does and why it fails (A1 summary)
Full benchmark with sources: research/benchmark.md (10 products, 3 tiers, read 2026-10-30).
| Finding | Evidence (SOURCE) |
|---|---|
| Mid-market ≥ 900 W machines take 5–10 min to warm up and weigh 6.6–10.8 kg | Antari Z-1000 II 5.5–8 min, 6.6 kg; Z-1200X MK3 ~10 min, 10.8 kg; Hurricane 1800 Flex 5 min, 8.9 kg (benchmark rows B2–B5) |
| Reheat pauses are documented by makers | Antari manual: "recycling period after long bursts … no fog can be produced"; Chauvet Hurricane 700 manual: "intermittently to allow for fluid reheating" |
| Published "max output" rates exceed what the heater can vaporise continuously | Z-1000X MK3 925 W / 60 ml/min = 0.93 kJ/ml, ZR35 1500 W / 140 ml/min = 0.64 kJ/ml, while 2.0–2.2 kJ/ml is needed (CALCULATION calc/fluid_energy.py) → the block's stored heat is drained, then the machine pauses |
| Only one maker states a continuous rate: Look Viper NT 1300 W → 35 ml/min at < 50 % setting | 1300 W / 35 ml/min = 2.23 kJ/ml — agrees with our 2.03–2.23 kJ/ml energy model within 10 % (independent cross-check of the physics) |
| Typical vaporiser temperatures | Antari "average operating temperature 250 °C", Martin JEM ZR35 "max nozzle temperature 290 °C" |
| Failure pattern | clogged exchanger → vibratory pump burns out; cold solder joints on remote connectors; weak remotes (benchmark §3) |
Design consequence: "no reheat pauses" is an energy-balance problem, not a heater-size problem. A machine with heater power P can sustain only q = (P − losses)/e_ml. The concept must (1) state and deliver its continuous rate, (2) use stored heat only for a burst on top of it and (3) meter the pump so that it can never pump faster than the available heat — then output derates smoothly instead of stopping.
3. Physics map (A2)
| Domain | Rating | Why | Analyses / roles it triggers |
|---|---|---|---|
| Thermal (exchanger, insulation, enclosure) | CRITICAL | warm-up, continuous rate, burst, ready-hold, touch temperatures, fire safety | calc/thermal_budget.py (2-node model + governor), enclosure estimate; analysis-engineer |
| Fluids / two-phase flow, vaporisation | CRITICAL | spitting, dripping, energy per ml, back-pressure, nozzle noise | calc/fluid_energy.py, calc/noise_budget.py; nozzle/guard estimate |
| Electrical power & safety (mains) | CRITICAL | 950 W heater on 230/120 V, Class I, single-fault safety, flicker, leakage | calc/electrical_budget.py, hazards.md; electrical-engineer |
| Electronics & control | CRITICAL | heater control, pump governor, independent protection, DMX/RDM, radio | architecture.md, control strategy §B2.5; firmware-engineer |
| Firmware | RELEVANT | state machine, safe defaults, watchdog; safety does not depend on it | hazards.md SREQ split HW/FW |
| Materials & chemistry | RELEVANT | glycol/glycerol decomposition limits the block temperature; wetted materials | fluid temperature windows (§ architecture B2.6) |
| Human factors | RELEVANT | non-specialist users, remote UX, refilling hot, fault codes | UI concept, spec sheet |
| Acoustics | RELEVANT | ZAD-UX-01/02: pump + vapour-jet noise | calc/noise_budget.py → nozzle bore 3.5 mm |
| Radio | RELEVANT | ≥ 30–50 m two-way remote | calc/link_budget.py |
| Structure | MINOR | light box, bracket loads (2.8 kg × safety factor) — no FEM needed at concept | bracket sized in detailed design (≥ 10× static, EN 60598-2-17 practice) |
| Mechanisms / kinematics | MINOR | only the pump rotor | bought module |
| Optics | MINOR | lit tank level, status LED | — |
| Environment | RELEVANT | condensation residue (slip), smoke detectors, transport | hazards.md, manual items |
CFD and FEM are not run at concept depth: the 1-D/lumped models answer the concept questions (CFD route NOT RUN, substitute = analytical jet-entrainment and lumped thermal models; to be revisited for the guard sleeve in detailed design).
4. Working principles considered (B1)
| Id | Principle | How it makes fog | Strength | Fatal or major weakness |
|---|---|---|---|---|
| C1 | Heat-matched medium-mass vaporiser: die-cast Al block (C ≈ 630 J/K) with cast-in 950 W heater; stepper peristaltic metering pump; PI governor ties pump rate to block temperature; electronic heater control + independent HW trip + capillary limiter | fluid metered into a 316 coil cast in the block, flash-vaporised at 250–280 °C, vapour condenses to fog outside | continuous output ≥ 25 ml/min with no pauses; 2.8 min warm-up; 23.6 ml burst; 2–55 ml/min metering; peristaltic pump occludes → no drip | peristaltic tube is a wear part (~1000 h); pump costlier than a vibratory pump |
| C2 | Classic large-mass thermostat block + AC vibratory pump (budget-machine principle, scaled up) | same vaporisation, pump on/off by switch, block on/off by bimetal | cheapest, proven, big burst from ~1 kg block | reheat pauses by principle (on/off pump cannot follow the heat), 4–6 min warm-up, buzzing pump, spitting at low block temperature, voltage-dependent pump |
| C3 | Low-mass once-through flash vaporiser (thick-film heater on a thin stainless tube, C ≈ 100 J/K) | fluid boils on a 20–40 W/cm² wall | warm-up < 1 min, compact | no stored heat → burst = continuous rate (30 s ≈ 13 ml, barely above the 12 ml threshold); high wall flux → coking of glycerol fluids, spitting on flow transients; fast runaway needs very fast cut-off |
| C4 | Induction-heated coil vaporiser (20–40 kHz half-bridge, ferritic coil) | induction heats the fluid coil directly | fast response, no heater cartridge | inverter + EMC filtering cost (+15–25 EUR), radio-frequency emissions to certify, development risk |
| C5 | Ultrasonic atomiser bank (piezo, 1.7 MHz) + fan | mechanical atomisation, no heat | 30–60 W, no hot parts, instant on | E1.5 glycol fluids are 10–30× more viscous than water → poor atomisation, wet "low fog" not stage fog; transducer wear; fails the "pro-grade output" intent and ZAD-PRF-08 |
5. Decision matrix (B1) — CALCULATION calc/decision_matrix.py → calc/decision_matrix.csv
Weights = priorities of the requirements behind each criterion (sum 63). Scores 1–5 are engineering judgement (ASSUMPTION), justified below.
| Criterion (weight) | C1 | C2 | C3 | C4 | C5 | Justification of the decisive scores |
|---|---|---|---|---|---|---|
| Continuous output, no pauses (10) | 5 | 2 | 5 | 5 | 4 | C2 on/off pump drains the block → pauses (benchmark); C5 continuous but weak |
| No spitting/dripping (5) | 4 | 2 | 2 | 3 | 3 | C1: metered pump never exceeds heat, occluding pump stops drip; C3 no thermal buffer |
| Warm-up (4) | 4 | 2 | 5 | 5 | 5 | C1 2.8 min (CALCULATION); C2 ~1 kg block 4–6 min |
| Peak burst (3) | 4 | 5 | 1 | 2 | 2 | C1 23.7 ml / 30 s (CALCULATION, rev C1.1); C3 ≈ 13 ml |
| Output range & stability (5) | 5 | 2 | 3 | 4 | 4 | stepper metering 2–55 ml/min, independent of mains voltage |
| Fluid compatibility (3) | 4 | 3 | 2 | 3 | 1 | C1 per-fluid temperature window; C3 coking; C5 viscosity |
| Safety & compliance risk (9) | 4 | 4 | 3 | 3 | 5 | C5 has no hot parts; C1 layered protection, moderate wall flux |
| Unit cost (5) | 3 | 5 | 3 | 1 | 3 | C1 pump +7–10 EUR vs vibratory |
| Power limits (4) | 4 | 4 | 4 | 4 | 5 | |
| Size & mass (3) | 4 | 3 | 5 | 4 | 4 | |
| Noise (3) | 4 | 2 | 4 | 4 | 4 | vibratory pump buzz |
| Development risk (4) | 3 | 5 | 2 | 1 | 3 | |
| Sourcing PL/EU (2) | 4 | 4 | 3 | 2 | 3 | |
| Service life & service (3) | 3 | 4 | 2 | 3 | 2 | C1 tube wear part; C2 pump burn-out on clogging |
| Total (0–100) | 80.95 | 64.76 | 66.35 | 66.35 | 73.65 | CALCULATION |
Robustness: one-at-a-time ±20 % on every weight: 0 rank flips; 20,000 Monte-Carlo draws with all weights
perturbed by ±20 %: C1 wins 100 % (CALCULATION, calc/decision_matrix.results.json). Margin to the runner-up (C5):
7.3 points. Decision: C1. C5 is not a fallback for the stated product (fails ZAD-PRF-08); C2 is the cost fallback
only if the owner accepts pauses (it cannot meet ZAD-PRF-03).
6. Sub-decisions inside C1
| Decision | Chosen | Rejected alternatives and why |
|---|---|---|
| Pump | 24 V stepper peristaltic, 4 rollers, 2.0 mm tube (Kamoer KAS-ST class: 5–88 ml/min, ≤ 53 dB at 0.5 m, SOURCE research/sourcing-mechanical.csv) | AC vibratory (Ulka EX5 48 W/15 bar, 40DCB 18 W): loud, stroke volume varies with mains voltage and back-pressure (ZAD-PRF-06), needs a check valve that weeps (ZAD-PRF-07), differs per variant; DC diaphragm: not occlusive, valves clog; micro gear pump: 20–40 EUR, leaks through when stopped; brushed Kamoer NKP: motor life 800 h < ZAD-REL-01 threshold |
| Heater control | triac, zero-cross optotriac, integral-cycle burst modulation with period ≥ 10 s | phase-angle control: harmonics (EN 61000-3-2) and EMI; relay-only: contact wear at 10 s cycling (~2.9 M cycles per 8,000 h) |
| Over-temperature protection | three layers (rev C1.1): firmware PI capped at 275 °C → independent latched window comparator (295 °C and sensor short) + 2nd Pt1000 + latched external watchdog opening the 2-pole heater relay → 2-pole capillary STB 300 °C manual reset; peaks 314 °C / 332 °C calculated (calc/runaway_overshoot.py) |
thermal fuse on the block: highest available rating 240 °C (SOURCE: Univen TH-TF240C, research) is below the 250–280 °C operating range; bimetal KSD301 ceramic ≤ 250 °C (SOURCE: Calco datasheet via research) — usable only on a calibrated thermal divider (cost-down option after validation) |
| Temperature sensors | 2 × Pt1000 thin-film ≥ 400 °C in stainless sleeves | K thermocouple + amplifier (more cost, cold-junction errors); glass NTC (≤ 300 °C class, drift) |
| Radio | 2.4 GHz nRF52840 module, BLE-coded-PHY 125 kbit/s proprietary link, AES-CCM, pairing by unique 32-bit IDs | sub-GHz 868/915 MHz (better range but two regional radio variants and duty-cycle rules); 433 MHz OOK one-way (the "weak remotes" of the brief); Wi-Fi/ESP-NOW (RX current ~80 mA breaks ZAD-PWR-04) |
| MCU | the radio module's nRF52840 runs everything (DMX UART at 250 kbit/s, RDM timing, ADC, step timer) | second MCU: more cost, inter-processor protocol |
| Outlet | 3.5 mm bore, recessed 90 mm in a flared perforated guard sleeve | 1.6 mm (88 dB jet noise, CALCULATION) ; 4.5 mm (quieter but weaker throw and hotter plume at the guard) |
| Power architecture | universal 24 V SMPS module; only heater, fuse, MOV, cord, labels differ between EU/US | 230 V/120 V pump variants (avoidable); on-board flyback (cheaper at volume, but own isolation certification) |
| Mains variants rating | 950 W heater in both variants (EU 4.2 A, US 7.9 A) | US 1,150–1,400 W (faster, but a second thermal design and 11–12 A on the 15 A circuit) |
| Enclosure | 1.0 mm powder-coated steel U-base + U-cover, PC/ABS front and rear panels | aluminium extrusion (cost); fully moulded plastic (tooling 40–80 kEUR, hot-zone creep) |
7. Variants offered back to the owner (decisions taken by default)
| Fork | Default taken | Variant | Effect |
|---|---|---|---|
| Output vs rated power | 950 W heater → 27.6 ml/min continuous (standard fluid), rated input 962 W | 1,150 W heater | +21 % continuous output; rated input 1,165 W (ZAD-PWR-02 threshold only) |
| Price vs cost | recommended retail EUR 299 with the baseline BOM (positive dealer margin) — EUR 249 once the cost-down list (cost.md §4) is proven | EUR 229 | needs unit cost ≤ ~EUR 90 (unit_economics.py) |
| Remote display | 4 status LEDs + 6 keys, 2-way | remote with 0.96" OLED | +3–4 EUR, nicer timer setting |
| Assembly location | Poland (labour 15 EUR/h ASSUMPTION) | Asian ODM | −4–8 EUR/unit, longer supply chain, less control of safety-critical assembly |
02-concept/estimates.md
Key estimates (B4 budgets) — concept C1, revision C1.1 (after the independent review)
Every value is produced by a script in calc/ (run ddpy <script> from that folder; order: fluid_energy.py,
thermal_budget.py, then any other; each writes <stem>.results.json). Hand estimates are printed next to the model
(rule of evidence 5). Inputs and their labels: calc/params.py. Positive controls of the routes (CoolProp latent
heat, thermo boiling points, lumped ODE vs analytic): ../../management/smoke_tests.results.json — all PASS.
Revision C1.1 changes (independent review F1): temperature windows −10 K, end-loss formula corrected and bridges
+0.02 W/K (losses +6–9 W), vapour density from the fluid composition (jet slower, plume hotter), heater capped at the
setpoint while fogging, new runaway-overshoot analysis, triac heatsink, US fuse T12.5 A.
1. Energy per ml of fluid (CALCULATION calc/fluid_energy.py)
| Reference fluid (composition source) | Water / PG / glycerol wt-% | Exit temp. | Energy per ml |
|---|---|---|---|
| Quick (ASSUMPTION, energy-worst case, Chauvet FFDJ5-type ≤ 40 % glycol) | 60 / 40 / 0 | 210 °C | 2,214 J/ml |
| Standard (SOURCE Antari FLL SDS 2019) | 42 / 53 / 5 | 230 °C | 2,005 J/ml |
| Dense (SOURCE Antari FLP SDS 2017) | 40 / 40 / 20 | 240 °C | 2,066 J/ml |
Hand check: water 4.18·80 + 2257 + 2.0·130 = 2,851 kJ/kg vs CoolProp 2,851 kJ/kg (PASS). Sensitivity: exit temperature ±40 K → ±3–4 %. Cross-check against a maker figure: Look Viper NT 1,300 W / 35 ml/min continuous = 2.23 kJ/ml incl. losses (SOURCE maker sheet, re-read 2026-10-30) — consistent within 10 %.
2. Thermal budget (CALCULATION/SIMULATION calc/thermal_budget.py, lumped 2-node model + pump governor)
| Quantity | Value | Requirement | Hand estimate |
|---|---|---|---|
| Heat capacity of exchanger (block 0.55 kg AlSi + heater + coil + insulation share) | 627 J/K | — | 0.55·0.94 + 0.1·0.65 + 0.06·0.5 = 0.61 kJ/K |
| Warm-up 20 °C → READY, 230 V, standard / quick / dense | 2.73 / 2.49 / 2.85 min | ZAD-PRF-01 ≤ 3 min | 2.69 min (C·ΔT / (P − ½ loss)); model/hand +1.4 % |
| Warm-up at 207 V (standard; dense) | 3.36 min; 3.51 min | stated value (threshold ≤ 5 min) | — |
| Warm-up at 207 V and heater at −10 % tolerance (standard) | 3.74 min | worst case | — |
| Warm-up at 230 V with the heater at −5 % / −10 % (review A12) | ~2.9 / ~3.0 min (scaled) | heater tolerance tightened to ±5 % (DR-02) | — |
| Continuous rate, 230 V: standard / quick / dense | 27.6 / 25.1 / 26.7 ml/min | ZAD-PRF-02 ≥ 22 | (950 − 31 W)/2,005 J/ml = 27.5 ml/min |
| Continuous rate, 207 V: standard / quick | 22.2 / 20.2 ml/min | ≥ 15 threshold | — |
| Continuous rate, 207 V and heater −10 %: standard / quick | 19.9 / 18.1 ml/min | ≥ 15 threshold | — |
| 30-min run at 100 % from READY: minimum pump rate (230 V / 207 V, standard) | 27.6 / 22.2 ml/min (never 0) | ZAD-PRF-03 gap 0 s | governor law; plot calc/thermal_run30min.png |
| Lowest block temperature in that run (standard; floor 215 °C) | 219.9 °C | ZAD-PRF-07 support | — |
| Fluid vaporised in first 30 s at 100 % (standard / quick / dense, 230 V) | 23.7 / 20.2 / 21.6 ml | ZAD-PRF-04 ≥ 25 target, ≥ 12 threshold | upper bound 26.2 ml (all stored heat above T_ref) |
Sensitivity of the 30-s peak (calc/peak_sensitivity.py): floor −5 K / block +10 % / both |
25.0 / 24.5 / 25.8 ml, warm-up 2.73 / 2.95 / 2.95 min | ZAD-PRF-04 vs ZAD-PRF-01 trade-off; floors are ASSUMPTIONS to be set on the coil test | — |
| Inner-wall heat flux of the coil at 27.6 / 55 ml/min (review A7) | ~13 / ~26 W/cm² | spitting risk at bursts (film boiling) | prototype firmware starts at a 40 ml/min peak |
| Heat loss at setpoint, 25 °C ambient (quick / standard / dense) | 30.0 / 33.0 / 34.6 W | — | radial ~19 W + ends ~6 W + bridges 0.07 W/K·235 K ≈ 16 W (minus film) |
| Ready-hold input power (loss + 3 W electronics) | 33.0–37.6 W | ZAD-PWR-03 ≤ 80 W | — |
| Heater surface load / sheath temperature at full power (nominal) | 10 W/cm² / 349 °C | ZAD-REL-01 support; heater rated ≥ 470 °C sheath | — |
| Internal heat in the EN 60335-1 heating test (1.15 × rated input, continuous output) | 42.5 W | — | — |
| Enclosure temperature rise: average / top hot spot | 11.0 K / 19.9 K (±50 %) | ZAD-SAF-02 ≤ 20 K target | — |
| Electronics air at 40 °C ambient | 58 °C | ZAD-REL-02 (parts rated ≥ 70 °C) | — |
| Vapour of the standard fluid: molar mass / density at exit | 32.5 g/mol / 0.79 kg/m³ | — | ideal gas |
| Plume mean excess temperature at the guard exit (90 mm) | +79 K (mean; centreline higher) | ZAD-SAF-03 risk | Ricou–Spalding entrainment |
3. Runaway transient — triac shorted at READY, pump off (CALCULATION calc/runaway_overshoot.py)
| Case | Trip point (incl. tolerance) / sensor lag | Peak block | Peak sheath | Criterion |
|---|---|---|---|---|
| Hardware window comparator, 230 V | 298 °C / 5 s | 310.6 °C | 376 °C | < 351 °C (AIT 371 °C − 20 K): PASS (analysis) |
| Hardware window comparator, 253 V, heater +5 % | 298 °C / 5 s | 314.2 °C | 397 °C | PASS (analysis) |
| 2-pole STB alone (comparator failed, EN 60335-1 cl. 19.11.3), 230 V | 308 °C / 10 s | 327.2 °C | 393 °C | PASS (analysis) |
| 2-pole STB alone, 253 V, heater +5 % | 308 °C / 10 s | 332.4 °C | 416 °C | PASS (analysis) |
| Nuisance-trip margin (lowest trip vs 270 °C setpoint + 3 K overshoot + 10 K gradient) | — | 9 K | — | ≥ 5 K (DESIGN) |
Heating ramp with the triac shorted: 1.4 K/s (230 V), 1.8 K/s (253 V, +5 %). Physical confirmation: EN 60335-1 cl. 19.4 / 19.11.3 tests (T-22).
4. Electrical budget (CALCULATION calc/electrical_budget.py)
| Quantity | EU 230 V | US 120 V | Requirement |
|---|---|---|---|
| Heater resistance (hot) | 55.7 Ω | 15.2 Ω | — |
| Rated input (heater + LV loads + triac loss) | 962 W | 966 W | ZAD-PWR-02 ≤ 1,000 W (EU); US ≤ 1,440 W |
| Maximum input at +10 % voltage and +5 % heater tolerance | 1,215 W | 1,215 W | US ≤ 1,440 W ✓ |
| Maximum current | 4.8 A | 9.2 A | US ≤ 12 A ✓ |
| Fuse (time-lag 5×20) / margin | T6.3 A / 1.31 | T12.5 A UL 248-14 / 1.36 (15 A UL inlet) | ≥ 1.3 |
| Triac dissipation at max current / junction at 40 °C ambient (finned heatsink Rsa ≤ 2.5 K/W, bay air 65 °C) | 4.2 W / 86 °C | 9.1 W / 111 °C | ≤ 125 °C (BTA16) |
| Flicker: d per heater step; Pst at 10 s modulation period | 0.72 % ; 0.56 | n/a | EN 61000-3-3 dmax 4 %, Pst 1.0, Plt 0.65 |
| Minimum burst period for Plt ≤ 0.65 | 6.3 s (design ≥ 10 s, on/off ≥ 1 s) | — | — |
| Earth leakage budget (hot) | 0.27 mA (ASSUMPTION parts) | — | ZAD-SAF-06 ≤ 0.25 target / ≤ 0.5 threshold |
| Standby (radio + DMX listening) / off | 0.26 W / 0 W (review A12: 0.30–0.35 W with the MCU parsing DMX) | same | ZAD-PWR-04 ≤ 0.5 W |
5. Radio link (CALCULATION calc/link_budget.py; TX +8 dBm, sensitivity −103 dBm coded PHY — SOURCE Nordic nRF52840 PS)
| Case | Margin over a 15 dB fade reserve | Requirement |
|---|---|---|
| Coded PHY 125 kbit/s at 30 / 50 / 100 m | +9.3 / +4.8 / −1.2 dB → max ~87 m | ZAD-FUN-03 ≥ 50 m target ✓ (analysis) |
| 1 Mbit/s PHY at 30 / 50 m | +1.3 / −3.2 dB → max ~35 m | fallback only |
Losses assumed: remote antenna −2 dBi, hand/body −5 dB, enclosure shadowing −4 dB, indoor excess −5 dB, matching −1 dB (ASSUMPTION; range test in the test plan).
6. Packaging, mass, stability, tank (CALCULATION calc/packaging_budget.py)
| Quantity | Value | Requirement |
|---|---|---|
| Bounding box L × W × H | 295 × 178 × 185 mm = 9.71 L | ZAD-SIZ-01 ≤ 12 L; ZAD-SIZ-02 ≤ 320 mm |
| Dry mass (component budget, ±15 %) | 2.77 kg (+~0.1 kg heatsink/valve in C1.1, within the band) | ZAD-WGT-01 ≤ 3 kg |
| Mass with full tank | 4.26 kg | — |
| Minimum tip angle, empty / full | 42.0° / 37.7° | ZAD-SAF-04 ≥ 20° |
| Tank gross / unusable below sensor / usable | 1.60 / 0.15 / 1.40 L | ZAD-PRF-09 ≥ 1.2 L |
7. Noise (CALCULATION calc/noise_budget.py)
| Source | Lp at 1 m |
|---|---|
| Vapour jet, 3.5 mm bore at 27.6 ml/min (62 m/s with the corrected vapour density) | 31.6 dB (1.6 mm bore: 79 dB, near-sonic jet) |
| Stepper peristaltic pump in the enclosure (≤ 53 dB at 0.5 m maker figure −6 dB −5 dB) | 42 dB(A) (ASSUMPTION) |
| Combined while fogging / READY | 42.4 dB(A) / no source (pump off, no fan) — ZAD-UX-01 ≤ 45 met by analysis (pump figure ASSUMPTION); ZAD-UX-02 met by design |
8. Cost (CALCULATION ../09-bom-cost/cost_rollup.py, unit_economics.py)
| Quantity | Value | Requirement |
|---|---|---|
| Unit cost EU variant, q1 (prototype incl. outside services) / q100 / q1000 | 645.3 / 214.3 / 134.7 EUR | ZAD-CST-03 ≤ 800 ✓; ZAD-CST-02 ≤ 160 ✗; ZAD-CST-01 ≤ 85 ✗ |
| Cost-down estimate after the measures in cost.md §3 | ~93 EUR (ASSUMPTION) | ZAD-CST-01 threshold still missed by ~8 EUR |
| Share of q1000 BOM value backed by a read price | 36 % | ±30 % accuracy claim holds only for that share |
02-concept/hazards.md
Hazard analysis (EN ISO 12100 method), safety requirements and DFMEA — concept C1, revision C1.1
Revision C1.1 (2026-10-30) closes the five blocking findings of the independent review (F1, ../../management/handoffs/reviewer/): B1 runaway overshoot (now calculated, calc/runaway_overshoot.py), B2 protection-sensor short, B3 heater fault with reversed L/N, B4 blocked-outlet pressure, B5 US triac temperature.
Method: identify hazard → hazardous situation → harm; estimate risk before measures (S severity 1–4, P probability 1–5, R = S × P; R ≥ 8 not acceptable, 4–6 reduce further if practicable, ≤ 3 acceptable); reduce in the order inherently safe design → safeguards/protective devices → information for use; estimate residual risk. Scale: S4 death/fire, S3 serious injury (2nd/3rd degree burn, fracture), S2 minor injury, S1 discomfort; P5 frequent … P1 remote. Scores are engineering judgement (ASSUMPTION) to be reviewed with test data. Abnormal-operation references: EN 60335-1 clause 19 (test list in §4).
1. Hazard log
| Id | Hazard | Situation | Harm | S | P | R | Reduction (design → safeguard → information) | Residual |
|---|---|---|---|---|---|---|---|---|
| HZ-01 | Mains voltage; heater insulation fault to the earthed sheath | contact with live parts; MgO breakdown to the sheath while L/N are reversed (non-polarised Schuko plug) powers part of the element from L to PE past a single-pole switch | electric shock; uncontrolled heating / fire | 4 | 3 | 12 | heater relay 2-pole and STB 2-pole so the element is disconnected on both poles (SREQ-25); Class I, PE bonding of block, shroud, chassis ≤ 0.1 Ω at 25 A with a dedicated high-temperature bonding lead; heater sheath earthed; high-temperature (PTFE/silicone) leads, fixed routing away from the block; reinforced isolation mains↔SELV (SMPS module, optotriac, ZC opto); X2 discharge; double-pole switch; IP20 enclosure, no openings to live parts (probe B) → SREQ-01..04 | 2×2 = 4, acceptable with EOL hipot/earth tests |
| HZ-02 | Heat — heater runaway | triac short / firmware fault keeps heater on | fire, molten plastics, toxic decomposition | 4 | 3 | 12 | three independent layers: (1) firmware PI capped at 275 °C, (2) independent latched window comparator on Pt1000 #2 (trip 295 °C and on sensor short) + latched external watchdog open the 2-pole heater relay, (3) 2-pole capillary STB 300 °C (0/+8 K, bulb τ ≤ 10 s) manual reset in series — layers 2 and 3 are hardware. Transient peaks (CALCULATION calc/runaway_overshoot.py, 253 V and +5 % heater): 314 °C via the comparator, 332 °C with the STB alone (EN 60335-1 cl. 19.11.3 case) — both below 351 °C = lowest glycol autoignition 371 °C (SOURCE ICSC/NOAA via research/fluids.md) − 20 K → SREQ-05..08, SREQ-25 |
4×1 = 4 |
| HZ-03 | Heat — hot surfaces | touching nozzle (≥ 250 °C), guard sleeve, enclosure top | burns | 3 | 4 | 12 | nozzle recessed 90 mm in a guard sleeve (probe-B inaccessible, ZAD-SAF-03), insulation + shroud + vented steel cover (rise ≤ 16 K hot spot, CALCULATION), handle at the rear ≥ 150 mm from the outlet; hot-surface symbol IEC 60417-5041 at the outlet → SREQ-09..11 | 2×2 = 4 (guard-sleeve temperature to be measured) |
| HZ-04 | Hot liquid ejection ("spitting") | pump runs into a cold or overloaded block; residual fluid after stop | scalds to face/eyes, slip | 3 | 4 | 12 | metered pump governed by block temperature; hardware pump-enable window (independent comparator) blocks pumping below T_floor − 10 K even with hung firmware; occluding pump; PURGE; nozzle at block temperature → SREQ-12..14 | 2×2 = 4 |
| HZ-05 | Hot vapour jet | face close to the outlet during fogging | burns | 3 | 3 | 9 | plume mixes to ~+79 K mean at the guard exit (CALCULATION, rev C1.1); manual: minimum distance 1 m to people / 0.5 m to objects (ASSUMPTION, confirm by plume test), never aim at people; label → SREQ-15 | 2×2 = 4 |
| HZ-06 | Fluid leakage onto live/hot parts | tilted or dropped machine, overfilled tank, tube burst | short circuit, smoke | 3 | 3 | 9 | tank in the cold zone separated by a baffle from electronics; vented cap with umbrella valve; drain path away from the PCB; tube burst pressure ≫ 1 bar; electronics above the fluid level in normal orientation; ZAD-SAF-05 side-lying test → SREQ-16..17 | 2×2 = 4 |
| HZ-07 | Inhalation of fog / decomposition products | overheated fluid, non-E1.5 fluid, small unventilated room | respiratory irritation (aldehydes) | 3 | 3 | 9 | block temperature capped ≤ 285 °C per fluid window; plausibility check of two sensors; manual: E1.5 fluids only, exposure guidance (E1.5 10 mg/m³ TWA, 40 mg/m³ peak), ventilation → SREQ-18..19 | 2×2 = 4; carbonyl emission measurement OPEN (test plan) |
| HZ-08 | Reduced visibility, fire-alarm activation | fogging in occupied venues, smoke detectors | panic, falls, evacuation | 3 | 3 | 9 | information for use: detector isolation by the venue's responsible person, keep exit signs visible, timer/auto-off; DMX loss stop ≤ 1 s; remote continuous auto-off 10 min → SREQ-20 | 3×1 = 3 |
| HZ-09 | Slippery residue | glycol condensate on floor/stage | slip, fall | 2 | 4 | 8 | no-drip design (HZ-04); manual: placement, aim, cleaning; absorbent pad in the guard → SREQ-21 | 2×2 = 4 |
| HZ-10 | Falling machine | hung on truss, bracket fails or knob loosens | head injury | 4 | 2 | 8 | bracket ≥ 10× static load, safety-cable eyelet included, two M8 knobs; manual: rigging by competent person, secondary safety → SREQ-22 | 4×1 = 4 |
| HZ-11 | Overturning on floor | knocked over while hot / full | burns, leak | 3 | 2 | 6 | tip angle ≥ 37.7° full (CALCULATION, ZAD-SAF-04 ≥ 20°); low CoM; no fluid release (HZ-06) | 3×1 = 3 |
| HZ-12 | Blocked outlet: trapped fluid boils in the 250–270 °C coil (water vapour pressure 40–55 bar) and pushes steam/hot fluid back towards the polymer line | scaling or a tampered/blocked nozzle | scalds, hot fluid on electronics | 4 | 2 | 8 | stainless spring check valve (0.3 bar, 300 °C/100 bar) with a stainless inlet stub at the coil inlet: the coil, valve and nozzle (316, burst ≫ 100 bar) contain the pressure; no polymer part sees > 2 bar or > 80 °C; pump stall and missing fluid load → FAULT E09, heater to standby; pump, tube and drip tray in the cold zone behind the baffle → SREQ-23, SREQ-26, SREQ-27 | 4×1 = 4 |
| HZ-13 | Battery hazards (remote) | swallowing, leakage, reverse insertion | injury, chemical burn | 3 | 2 | 6 | 2 × AAA (no coin cells → US Reese's Law not triggered, to be confirmed in conformity plan), screw-secured battery door, polarity keyed → SREQ-24 | 3×1 = 3 |
| HZ-14 | Unintended operation | neighbouring remote or replay triggers fog | startle, visibility | 2 | 3 | 6 | paired 32-bit IDs, AES-CCM, frame counter; output only while READY | 2×1 = 2 |
| HZ-16 | Glycol condensate drawn in through vents | fogging in a closed room for hours | tracking on the mains PCB section, corrosion | 3 | 3 | 9 | creepage/clearance sized for pollution degree 3 on the mains section, conformal coating, vents away from the outlet → SREQ-29 | 3×1 = 3 |
| HZ-17 | Refilling while running | spill at the cap | fluid on electronics or the hot zone | 3 | 3 | 9 | cap in the cold zone over the tank only, splash lip, drain path to the outside bottom; EN 60335-1 cl. 15.2 spillage test → SREQ-16/17 | 2×2 = 4 |
| HZ-18 | Overheated heater connections | Faston/leads next to the 270 °C block | burnt terminals, arcing | 3 | 3 | 9 | nickel/stainless terminals and 250 °C-class leads at the exchanger, cold-end length ≥ 25 mm out of the casting, thermocouples on them in the heating test → SREQ-30 | 3×1 = 3 |
| HZ-15 | EMC interference | flicker/harmonics on the venue network, radio interference to wireless mics | disturbance | 1 | 3 | 3 | integral-cycle control period ≥ 10 s (Pst 0.56), zero-cross switching; 2.4 GHz not in the UHF mic band | acceptable |
2. Safety requirements derived (SREQ)
| Id | Requirement | From | Independent of firmware? | Verification |
|---|---|---|---|---|
| SREQ-01 | All accessible metal and the exchanger bonded to PE through a dedicated high-temperature lead (not the standoffs), resistance ≤ 0.1 Ω at 25 A (EN 60335-1 cl. 27.5) | HZ-01, ZAD-SAF-06 | yes | Test (EOL earth bond) |
| SREQ-02 | Reinforced insulation (≥ 3 kV a.c. test, creepage per EN 60335-1 Table 17/18) between mains and all SELV/DMX/radio circuits | HZ-01 | yes | Inspection + hipot |
| SREQ-03 | DMX port galvanically isolated from SELV ground (≥ 1.5 kV) | HZ-01, ZAD-FUN-01 | yes | Test |
| SREQ-04 | Earth leakage ≤ 0.5 mA (target 0.25 mA) at 1.06 × rated voltage, hot | HZ-01, ZAD-SAF-06 | yes | Test |
| SREQ-05 | An independent hardware window comparator on Pt1000 #2 trips at 295 °C ± 3 K and on under-range (R < 900 Ω, sensor short), latched until power cycle; the trip opens the 2-pole heater relay and forces the pump driver disabled (open sensor reads hot → trip) | HZ-02 | yes | Test (fault injection: open, short, over-temperature) |
| SREQ-06 | A non-self-resetting 2-pole capillary STB (EN 60730-2-9, trip 300 °C, tolerance 0/+8 K, bulb time constant ≤ 10 s in a well next to the heater) interrupts the heater in series with the relay and triac | HZ-02 | yes | Test (EN 60335-1 cl. 19.4 and 19.11.3 with the comparator disabled) |
| SREQ-07 | An external watchdog (1.6 s, kicked only from the main loop) drops the heater relay and pump enable and latches until power cycle or SELFTEST re-arm; SELFTEST proves the relay opens (zero-cross sense behind the relay) | HZ-02, HZ-04 | yes | Test (firmware halt, timer-ISR-alive case) |
| SREQ-08 | Block temperature in any single-fault condition (incl. cl. 19.11.3 with the comparator failed) stays < 351 °C (≥ 20 K below the lowest glycol autoignition temperature 371 °C); calculated 314 / 332 °C | HZ-02 | yes | Analysis calc/runaway_overshoot.py + test |
| SREQ-09 | Nozzle and surfaces > 70 °C not touchable with IEC 61032 probe B | HZ-03, ZAD-SAF-03 | yes | Inspection |
| SREQ-10 | Accessible enclosure temperature rise ≤ 60 K (target 20 K) in the EN 60335-1 heating test | HZ-03, ZAD-SAF-02 | yes | Test |
| SREQ-11 | Hot-surface marking at the outlet; handle ≥ 150 mm from the outlet | HZ-03 | — | Inspection |
| SREQ-12 | Pump driver EN = hardware AND of: firmware READY/FOGGING, fixed hardware window Pt1000 #2 ≥ 200 °C, watchdog OK, no trip latch (the step generator cannot run the pump on its own) | HZ-04, ZAD-SAF-07 | yes (hardware AND) | Test |
| SREQ-13 | Pump rate never exceeds the heat available: governor keeps T ≥ T_floor | HZ-04, ZAD-PRF-03/07 | no (firmware) — backed by SREQ-12 | Test (30-min run, droplet sheet) |
| SREQ-14 | No liquid leaves the outlet after switch-off (occluding pump, PURGE) | HZ-04, ZAD-PRF-07 | yes (occlusion) | Test |
| SREQ-15 | Manual and label state minimum distances to people and objects | HZ-05 | — | Inspection |
| SREQ-16 | No fluid reaches live or hot parts at 45° tilt running or 10 min lying on any side (closed tank) | HZ-06, ZAD-SAF-05 | yes | Test |
| SREQ-17 | Tank vent with umbrella valve; overflow/drain path away from electronics | HZ-06 | yes | Inspection |
| SREQ-18 | Block temperature ≤ 275 °C in normal operation for every fluid setting; while fogging the heater is capped by the setpoint controller | HZ-07 | no (firmware) — backed by SREQ-05 | Test |
| SREQ-19 | Manual lists approved E1.5 fluids and exposure guidance | HZ-07, ZAD-SAF-08 | — | Inspection |
| SREQ-20 | Output stops ≤ 1 s after DMX loss (unless hold mode) and remote continuous mode auto-off ≤ 60 min (default 10) | HZ-08, ZAD-SAF-07 | no | Test |
| SREQ-21 | Manual: placement, condensate, cleaning, slip warning | HZ-09 | — | Inspection |
| SREQ-22 | Bracket and fixings withstand 10× the machine's full weight; safety-cable eyelet ≥ 10× | HZ-10 | yes | Test/analysis |
| SREQ-23 | Pump stall / blocked outlet detected → FAULT within 10 s | HZ-12 | no | Test |
| SREQ-24 | Remote battery door screw-secured, AAA cells only | HZ-13 | yes | Inspection |
| SREQ-25 | Heater disconnected on both poles by the relay and by the STB | HZ-01, HZ-02 | yes | Inspection + cl. 19 test with L/N reversed and a sheath fault |
| SREQ-26 | Blocked outlet contained in steel: stainless check valve at the coil inlet; no polymer fluid part sees > 2 bar or > 80 °C | HZ-12 | yes | Test (blocked nozzle, record pressures) |
| SREQ-27 | Pump, tube and drip tray in the cold zone behind the baffle; no fluid path above the electronics | HZ-06, HZ-12 | yes | Inspection |
| SREQ-28 | Triac on a finned heatsink (Rsa ≤ 2.5 K/W): Tj ≤ 115 °C at maximum current and 40 °C ambient (calculated 111 °C US, 86 °C EU) | HZ-02 | yes | Test (thermocouple on the tab) |
| SREQ-29 | Mains section creepage/clearance for pollution degree 3, conformal coating | HZ-16 | yes | Inspection |
| SREQ-30 | Heater terminals nickel/stainless, leads ≥ 250 °C class, measured in the heating test | HZ-18 | yes | Test |
3. DFMEA — critical subsystems (S severity, O occurrence, D detection 1–10; RPN = S·O·D; action if S ≥ 9 or RPN ≥ 100)
| Item / function | Failure mode | Effect | S | Cause | O | Prevention / detection | D | RPN | Action |
|---|---|---|---|---|---|---|---|---|---|
| Triac (heater switch) | short (stuck on) | heater 100 % → over-temperature | 9 | overvoltage, overheating | 4 | HW window comparator opens the 2-pole relay at 295 °C (peak 314 °C); 2-pole STB 300 °C (peak 332 °C if it acts alone); detection: firmware sees rise while gate off → FAULT E05 | 2 | 72 | done by design; EOL fault-injection test |
| Triac | open | no heating | 4 | thermal fatigue | 3 | warm-up timeout 8 min → FAULT E03 | 2 | 24 | — |
| Heater relay (2-pole) | contacts welded | heater path cannot be opened by HW trip | 9 | inrush, end of life | 2 | triac still controls; 2-pole STB backs up; relay switched only at zero current (triac off first); proof test at every SELFTEST via the zero-cross sense behind the relay | 2 | 36 | done by design |
| Pt1000 #1 (control) | open / short / drift | wrong control temperature | 8 | lead break, vibration | 3 | range check, plausibility vs #2 (>15 K) → FAULT E01/E02/E07; HW channel independent | 2 | 48 | — |
| Pt1000 #2 (protection) | open / short | protection blind | 8 | same | 3 | window comparator: open reads hot → trip; short reads under-range → trip (latched, rev C1.1); MCU plausibility as a third check | 1 | 24 | done by design |
| STB capillary | leak / rupture | contact opens (fail-safe) | 3 | mechanical damage | 2 | inherent fail-safe | 1 | 6 | — |
| Firmware | hang | heater/pump state frozen | 9 | software fault, EMI | 3 | external watchdog drops relay + pump enable (SREQ-07); EMC immunity tests | 2 | 54 | — |
| Pump | stops (motor/driver) | no fog; block holds temperature | 3 | wear, driver fault | 3 | StallGuard / no temperature drop at commanded rate → E09 | 3 | 27 | — |
| Pump tube | wear-through / leak | fluid inside the enclosure | 7 | tube life (BPT ~1000 h, SOURCE Kamoer via research) | 4 | tube hours counter, change prompt at 900 h; pump and drip tray in the cold zone behind the baffle, drain to the outside bottom (SREQ-27) | 3 | 84 | define tube-change interval; endurance test |
| Heater element | insulation breakdown to the sheath (MgO) | earth fault; with L/N reversed part of the element heats past the triac | 9 | moisture, ageing | 3 | 2-pole relay opened by the comparator, 2-pole STB; RCD in the installation (not relied on); sealed terminations | 3 | 81 | cl. 19 test with L/N reversed + simulated sheath fault |
| Triac heatsink | inadequate cooling (US 9 A) | triac overheats and fails short | 8 | thin steel chassis as heatsink (rev C1) | 3 | finned Al heatsink Rsa ≤ 2.5 K/W (SREQ-28), Tj 111 °C calculated | 2 | 48 | done by design |
| Pump tube | over-delivery after wear? (no: under-delivery) | output below setting | 3 | tube fatigue | 5 | EOL calibration factor, hours model | 5 | 75 | — |
| Exchanger coil | partial clog (residue) | higher back-pressure, lower output, spitting | 6 | non-E1.5 fluids, no cleaning | 4 | pick-up filter, cleaning mode, stall/pressure inference from temperature response | 4 | 96 | cleaning interval test (ZAD-REL-03) |
| Exchanger | heater MgO moisture after storage | high leakage current at first heat-up | 7 | hygroscopic MgO, unsealed ends | 4 | sealed heater terminations (silicone/glass), low-power drying start (first 30 s at 30 %) | 4 | 112 | action: specify sealed ends + leakage limit in the heater spec; EOL hot-leakage test |
| Level sensor | false "full" | pump draws air → sputter, no damage | 3 | fouled tank wall | 3 | pump current/temperature signature of dry pumping → LOW_FLUID | 4 | 36 | — |
| Radio link | loss during continuous fog | fog continues | 4 | interference | 4 | remote continuous mode auto-off; machine status shown on the unit; DMX has priority | 3 | 48 | — |
| DMX input | signal loss | fog continues | 4 | cable pulled | 4 | stop within 1 s (SREQ-20) unless hold mode chosen | 2 | 32 | — |
| SMPS module | output fails | logic off → relay drops (fail-safe), pump off | 3 | end of life | 2 | relay coil powered from 24 V → de-energises | 1 | 6 | — |
4. Single-fault analysis for ZAD-SAF-01 (fault → protective measure → planned abnormal test, EN 60335-1 cl. 19)
| Single fault (requirement list) | Protective measure | Outcome (analysis) | Test (prototype plan) |
|---|---|---|---|
| Control sensor open | range check → FAULT; HW channel independent | heater off, no hazard | 19.11.2 fault simulation |
| Control sensor short | range check → FAULT | heater off | same |
| Protection sensor open/short | window comparator trips on over-range (open) and under-range (short), latched; MCU plausibility | heater off, pump disabled | same |
| Heater switch (triac) stuck on | HW comparator → 2-pole relay opens at 295 °C (peak 314 °C calculated); STB 300 °C (0/+8 K) alone if the comparator also fails (peak 332 °C) | block < 351 °C (SREQ-08), calc/runaway_overshoot.py |
19.4 with control short-circuited; 19.11.3 with the comparator disabled; measure block, sheath, enclosure, cord |
| Control firmware hung | external watchdog → relay + pump enable off | heater off, pump off | firmware halt by debugger |
| Pump failure (stopped / running away) | stopped: no hazard; running away: governor + HW pump window; block cannot be flooded below T_floor − 10 K | no liquid ejection above threshold (droplet sheet) | 19.7-style locked/forced pump |
| Empty tank | level sensor → LOW_FLUID; dry running harmless for a peristaltic pump | no hazard | empty-tank test |
| Blocked outlet | stainless check valve at the coil inlet; steam pressure (40–55 bar) contained in the 316 coil/valve/nozzle; pump stall + missing load → FAULT E09 | no polymer part pressurised; no hot fluid escapes | blocked-nozzle test with pressure and temperature recording |
| Heater insulation fault to sheath with L/N reversed | 2-pole relay (comparator) and 2-pole STB disconnect both poles | heater dead after trip | cl. 19 test with reversed polarity and a simulated sheath fault |
Residual risks the design cannot remove (stated to the owner): hot vapour at the outlet (managed by distance and guard), fog-triggered fire alarms and reduced visibility (venue procedures), slippery condensate on floors if aimed at the floor, inhalation exposure in small unventilated rooms (fluid and dose guidance only).
02-concept/research/benchmark.md
Benchmark - compact DMX fog machines (concept phase)
Access date for every SOURCE below: 2026-10-30. Read-only public web only. Conventions: "AS STATED" = maker/shop text copied, not verified. "ASSUMPTION" = my estimate, with reason. "not retrieved" / "unreadable" = I did not find it; no guess made. "search snippet" = value came from a web-search result summary of that page, because the page itself returned HTTP 403 to my fetcher (Full Compass, several shops). Re-verify before quoting externally. Note: "Eurolite N-10" was not found at Thomann (only N-19, N-130, NH-10, Dynamic Fog 1200); it is not in the table.
1. Benchmark table
Tier A - budget / entry (EUR 40-150 class, plus the two cheap US-style items)
| # | Maker / model | Heater (W), mains | Warm-up | Output AS STATED; fluid use | Continuous vs reheat | Tank | Control | Dim. mm / mass | Street price | Weak points (source) |
|---|---|---|---|---|---|---|---|---|---|---|
| A1 | Stairville (Thomann own brand) AF-150 DMX | 800 W "electronic vaporiser"; 230 V | "short" in spec; editorial text says 8 min | ~110 m3/min; 33 ml/min (spec list) - but the same page's editorial text says 95 ml/min = internal contradiction | not stated; editorial: "fog is used in accents, not continuous"; no reheat figure | 1.2 L | DMX512 1 ch, 3-pin XLR in/out; wired multi-function remote (timer, interval, volume) included; wireless remote = separate article (number not retrieved); no RDM | 450x290x265 / 5.5 kg | EUR 119 (Thomann.de, 2026-10-30) | Fixed (non-detachable) mains cable; cleaner needed every ~30 h; page rating 4.7/5 from 512 reviews. Thomann text itself says "Aufheizzeit 8 min" while teaser says "geringe Aufheizzeit". Forum fault patterns for cheap units: see section 3 (pump death after storage, clogged block). SOURCE: https://www.thomann.de/de/stairville_af_150_dmx_fog_machine.htm |
| A2 | Chauvet DJ Hurricane 700 | 471 W (both 120 V and 230 V versions) | 2.5 min | 1,500 cfm AS STATED (= ~42 m3/min by unit conversion); 7.5 ml/min | Manual: "may start producing fog intermittently to allow for fluid reheating". Reviewers: ~26 s of fog (Sweetwater), ~1 min fog then ~1 min reheat (eBay) | 0.6 L | Wired remote 4 m (13 ft) included; DMX not confirmed in the manual text I read | 215x180x124 / 1.8 kg | not retrieved | Walmart 3.7/5 (15 ratings): "poor workmanship", shut down; no on/off switch. Manual troubleshooting: "No output / spitting fluid" = wrong fluid or blocked pipes; clean with FCQ every 40 h and at least every 90 days. SOURCE manual: https://www.chauvetdj.com/wp-content/uploads/2015/12/Hurricane_700_UM_Rev10_WO.pdf ; reviews (via search): https://www.sweetwater.com/store/detail/Hurricane700--chauvet-dj-hurricane-700-fog-machine-1500-cfm/reviews , https://www.walmart.com/reviews/product/17292522 |
Tier B - mid-market with DMX (EUR 200-500)
| # | Maker / model | Heater (W), mains | Warm-up | Output AS STATED; fluid use | Continuous vs reheat | Tank | Control | Dim. mm / mass | Street price | Weak points (source) |
|---|---|---|---|---|---|---|---|---|---|---|
| B1 | ADJ Fog Fury Jett (vertical jet + 12 LED) | 700 W heater, 730 W draw; 120 V 10 A / 230 V 5 A | 9 min | 20,000 cfm (ADJ EU page: 566 m3/min); 120 ml/min | not stated | 3 L external | DMX 1/2/3/5/7-ch modes; wireless remote FFJWR included | 397x302x191 / 7.1 kg | USD 389.99-469.99 (6 US shops, search snippet; one shop shows USD 169.99 - implausible, ignore) | not retrieved (no review found). SOURCE: https://www.adj.eu/fog-fury-jett , https://www.stagespot.com/adj-fog-fury-jett.html , https://tsstage.com/products/american-dj-fog-fury-jett-fog-machine |
| B2 | Antari Z-1000 II (discontinued; still sold) | 1000 W at 120 V / 1050 W at 230 V | 5.5 min (Full Compass, Planet DJ); ~6 min (most); ~8 min (DJDeals) | 10,000 cfm retail; 12,000 cfm (340 m3/min) in one manual copy; 56 ml/min | Antari manual (Z-1200II): "recycling period after long bursts... machine shuts itself down... no fog can be produced"; maintains max output "30 seconds or more", constant output at 30% setting | 1.7 L (DJDeals says 1.5 L) | DMX 1 ch, 3-pin XLR; wired Z-10 on/off remote included; Z-40 timer and Z-50 wireless are optional extras; no RDM | 433x198x214 / 6.6 kg | USD 419 (Planet DJ "clearance", DJDeals; search snippet) | Heater clog + pump burn-out is the standard failure pattern (see section 3). SOURCE: https://www.planetdj.com/antari-z1000ii , https://www.fullcompass.com/prod/211614-antari-z-1000-ii-1000w-water-based-fog-machine-with-dmx-control-10-000-cfm-output (403, via snippet) |
| B3 | Antari Z-1000X MK3 (current) | 925 W (Thomann "Leistung" field shows 900 W) | ~6 min | output "not given" in m3/min (field shows 0); +10% vs predecessor; ~60 ml/min | not stated | 1.7 L, removable, level indicator | DMX + RDM, 3-pin XLR in/out; timer and wireless remote included | 433x198x214 / 7.75 kg | EUR 346 (Thomann.de, 2026-10-30; 9-12 weeks delivery) | 1 review (5/5): "very good fog volume; foot switch cheaply built; missed a wireless remote" (reviewer comment, 2026-08-27). SOURCE: https://www.thomann.de/de/antari_z_1000x_mk3.htm |
| B4 | Antari Z-1200X MK3 (current) | 1200 W | ~10 min | not given in m3/min; ~85 ml/min | not stated | 2.5 L, removable | DMX + RDM, 5-pin XLR; timer remote included, wireless optional | 460x240x250 / 10.8 kg | EUR 466 (Thomann.de, 2026-10-30) | no review found. SOURCE: https://www.thomann.de/de/antari_z_1200x_mk3.htm |
| B5 | Chauvet DJ Hurricane 1800 Flex | 1,190 W (5 A @ 230 V; 10 A @ 120 V); older 120 V-only version listed as 1,560 W | 5 min official; older version 3 min | 25,000 cfm official (Full Compass: 29,600); 30 ml/min official (older version 80 ml/min) | "Always Ready"; reviewers: "even with an 11 A heater it couldn't produce fog continuously" (zZounds), shorter fog duration than ADJ Fog Storm 1700HD (Halloween Forum) | 3.8 L (1 gal) | DMX 1 ch, 3-pin XLR; wired FC-T timer remote included; wireless FC-W optional; 180 deg adjustable angle | 518x302x274 / 8.9 kg | USD 399.99 (Full Compass, search snippet) | Clogs after storage - pump "just buzzed" (ControlBooth); DMX board dead after 3 weeks and replacement near-clogged (Audiofanzine); low-fluid sensor part failed; fluid container not removable; red light stuck + thermal fuse (HauntForum). SOURCE: https://www.chauvetdj.com/products/hurricane-1800-flex/ ; https://www.controlbooth.com/threads/repairing-clogged-chauvet-1800-flex-fog-machine.41782/ ; https://www.zzounds.com/productreview--CHVH1800FLEX ; https://en.audiofanzine.com/smoke-machine/chauvet/hurricane-1800-flex/ ; https://www.hauntforum.com/threads/troubleshooting-help-chauvet-dj-hurricane-1800-flex.48271/ |
Tier C - pro "no reheat" / continuous
| # | Maker / model | Heater (W), mains | Warm-up | Output AS STATED; fluid use | Continuous vs reheat | Tank | Control | Dim. mm / mass | Street price | Weak points / technical notes (source) |
|---|---|---|---|---|---|---|---|---|---|---|
| C1 | Look Solutions Viper NT (made in Germany) | 1300 W; 230 V/50 Hz or 120 V/60 Hz | ~7 min | output adjustable 1-99%; projection max 15 m; 120 ml/min at max, 35 ml/min at continuous output | Maker: 100% output = ~30 s fog; "<50% output = continuous output". Above 50% = timed blast then recovery | 5 L | DMX512 5-pin XLR (start address saved), 0-10 V analog 3-pin, stand-alone, internal timer; radio remote optional (not included) | 470x230x240 / 8.6 kg without canister | not retrieved: Full Compass 403. Related: Look Viper 2.6 = USD 1,050 on Thomann US (2026-10-30), different model | Maker spec shows protection: heater block thermostat + pump with temperature switch; microprocessor temperature control. SOURCE: https://www.looksolutions.com/uploads/pdf/en_fr/info_viper.nt_e.pdf ; manual https://looksolutionsusa.com/wp-content/uploads/2015/08/manual_viper_nt.pdf (text layer partly readable; warns "very hot droplets may escape", use only Look fluids or warranty void) |
| C2 | Martin Professional JEM ZR35 | 1500 W heat exchanger "thermally protected"; EU 220-240 V 6.8 A; US 100-130 V 12.1 A | "Ready time 9 min" (spec sheet says 8-9) | 800 m3/min (28,252 cfm); "50 ml in 30 s peak" (=100 ml/min); 140 ml/min max | Spec sheet: "uninterrupted performance"; "continuous effect output", variable 0-100% | 4 L drop-in (accepts 5 L bottle) | DMX 1 ch, 5-pin XLR, RDM; wired digital remote (3 m, 3-pin XLR) included; analog remote optional; link mode; no wireless | 590x395x264 (333 with bracket) / 15.1 kg dry, 19.1 kg filled | USD 1,079 (Thomann US, 230 V only, 2026-10-30) | Only 1 review (5/5). Technical: fluid pump = "oscillating piston, high pressure"; max nozzle temperature 290 C; surface steady state 30 C; fluid-out sensing. SOURCE: https://www.martin.com/km/site_elements/jem-zr35-spec-sheet-english-fa3a900c-6634-44c5-b0d9-2526f0009ae1 (read via https://shop.bmisupply.com/Resources/en/ItemDocuments/192215350/BMI.Martin.JEM.ZR35.Datasheet.pdf ), https://www.thomannmusic.com/martin_jem_zr35.htm |
Also seen, not tabulated (insufficient data): Antari Z-1200II (old manual: 1250 W, ~500 m3/min, 2.5 L, 10.9 kg, 458x243x177, wired Z-8 remote 10 m, DMX 1 ch; https://images.thomann.de/pics/prod/195470.pdf); Antari Z-800 MK3 (745 W, "about 2 min" warm-up, Thomann blurb only; https://www.thomann.de/de/antari_z_800_mk3.htm); Cameo Instant Fog 1700 T Pro (1700 W touring, Thomann blurb only; "1200 Pro" not found); Eurolite N-130 (1300 W, DMX, Thomann blurb only). Two Thomann product pages answered HTTP 429 when I fetched 8 pages in a row - I did not retry.
2. Pump / heat-exchanger facts published
| Fact | Value | Source |
|---|---|---|
| Martin JEM ZR35 pump | oscillating piston, high pressure | Martin spec sheet (URL in C2) |
| Martin JEM ZR35 max nozzle temp | 290 C (554 F) | same |
| Antari (all onboard-DMX models) average operating temperature | 250 C ("Average Operating temperature = 250 C"); nozzle "very hot (300 C)" | https://images.thomann.de/pics/prod/195470.pdf (Z-1200II manual) |
| Antari Z-1000 UNICORE | heater core can be drawn out for cleaning; TCO low-fluid detector | https://www.planetdj.com/antari-z1000ii (via snippet) |
| Look Viper NT protection | heater block thermostat; pump with temperature switch | Look info sheet (URL in C1) |
| Pump type for budget machines | not published by makers; forum posts call them vibratory/solenoid-piston type ("pump just buzzed", plunger and springs) | https://www.controlbooth.com/threads/repairing-clogged-chauvet-1800-flex-fog-machine.41782/ |
3. User-reported weak points (cross-cutting, with URLs)
- Reheat pauses are normal and documented by makers: Antari manual ("recycling period after long bursts ... no fog can be produced"), Chauvet Hurricane 700 manual ("intermittently to allow for fluid reheating"). Sources: https://images.thomann.de/pics/prod/195470.pdf , https://www.chauvetdj.com/wp-content/uploads/2015/12/Hurricane_700_UM_Rev10_WO.pdf
- Spitting / "coughing": PA-Forum explanation - after the pump stops, pressure in the heater drops below pump back-pressure and leftover fluid runs out; small puffs after switch-off are normal; raw cold fluid at power-on on one cheap unit. Source (via snippet): https://paforum.de/forum/thread/26445-nebelmaschine-defekt/ and https://www.gutefrage.net/frage/nebelmaschine-spuckt-nach-und-waehrend-des-betriebs
- Pump death / clogged block: Antari Z-1200 owners: pump seized/burnt out "not an uncommon fault", block clog makes pump burn in seconds (https://www.blue-room.org.uk/topic/25237-antari-smoke-machine-problem/); Sound House repair of Z-1200II: clogged heater + pump fault (https://www.soundhouse.co.jp/en/contents/staff-blog/index?post=1920); Hurricane 1800 Flex pump buzzing after summer storage (ControlBooth URL above).
- Wrong fluid / additives clog: Chauvet and Antari manuals; haunt blog https://hauntharvester.com/how-to-clean-and-unclog-a-fog-machine/
- Controller/remote connector faults: Antari Z-1000 cold solder joints on remote DIN (https://www.controlbooth.com/threads/fogger-issues.10190/); AF-150 and Z-1000X reviewers dislike remote/foot switch quality (Thomann pages above).
- Wireless remote range: no published figure found for any product - open item.
4. Open-source / DIY prior art
| Project | What it does | URL |
|---|---|---|
| cpyarger/ESP32-Fog-Machine | ESP32 controller with web UI and Art-Net; drives heater and pump directly with thermistor; 2 channels (duration, delay); shuts heater and pump off outside temperature limits (300 F upper limit per README summary) | https://github.com/cpyarger/ESP32-Fog-Machine |
| LuigiMasini/Fog-Machine-controller | Arduino Nano, dual relay, NTC thermistor, target-temperature and pump commands over serial; no DMX | https://github.com/LuigiMasini/Fog-Machine-controller |
| fkressmann/DMXfog | Arduino Nano + RS485, DMX 2 ch (cycle, duty), auto-off on signal loss, triggers the machine's 12 V remote input | https://github.com/fkressmann/DMXfog |
| realdeadbeef/artfog | Art-Net to relay; fail-safes: 15 s timeout, off after 3 s without packets | https://github.com/realdeadbeef/artfog |
| mistermodcreator/FogDMX | DMX interface / manual remote with variable output; README lists DMX detection bug | https://github.com/mistermodcreator/FogDMX |
| Takeaway: public prior art is only DMX/timing front-ends or crude thermistor on/off control; none implements closed-loop energy-per-ml dosing with heat-exchanger temperature feedback. All via search snippets of the repos on 2026-10-30; I did not read the code. |
5. Derived cross-check (my calculation, not a published value)
Energy needed to boil the water part of a typical fluid (ASSUMPTION: Antari FLL SDS 42% water / 53% propylene glycol / 5% glycerol by weight; ASSUMPTION: density ~1.05 g/ml): water 0.42 g/g x (4.19 J/gK x 80 K + 2257 J/g) ~ 1.09 kJ per g fluid; heating the 0.58 g glycol part from 20 to ~250 C at ~2.4 J/gK ~ 0.32 kJ -> total ~1.4 kJ/g ~ 1.5 kJ/ml (see fluids.md section 5 for property sources; the water 2257 J/g is an unsourced textbook value). Heater power per ml of the published rates: Antari Z-1000X MK3 925 W / 60 ml/min = 0.93 kJ/ml; Antari Z-1000 II 1000 W / 56 ml/min = 1.07 kJ/ml; Hurricane 1800 Flex 1190 W / 30 ml/min = 2.4 kJ/ml (80 ml/min older version: 1.2 kJ/ml); Look Viper NT 1300 W / 35 ml/min (continuous) = 2.2 kJ/ml but 1300 W / 120 ml/min (max) = 0.65 kJ/ml; ZR35 1500 W / 140 ml/min = 0.64 kJ/ml. Reading: "max output" rates are below the ~1.5 kJ/ml needed, so the heat-exchanger thermal mass is being drained (hence 30 s bursts + reheat); the maker-stated "continuous" rate sits near 2 kJ/ml, i.e. heater power / 1.5 kJ/ml x efficiency (~70%). A 1000 W heater can therefore sustain only ~30-40 ml/min indefinitely (ASSUMPTION: 70% transfer efficiency). This is the physical basis of the "no reheat pause" requirement and should drive the concept (more heater power per ml, or lower ml/min with finer droplets).
6. Market gap - 5 bullets
- No DMX + wireless-remote-included machine is published with both a continuous (no reheat) claim and a price under ~EUR 340: the cheapest with included wireless + RDM is Antari Z-1000X MK3 at EUR 346 (and it still has reheat rules in the Antari manual), the pro "continuous" units are 8.6 kg (Viper NT, without canister) to 15.1 kg (ZR35, USD 1,079; Look Viper 2.6 sells at USD 1,050; Viper NT price not retrieved).
- Budget DMX units (AF-150 EUR 119, 5.5 kg) ship a wired remote only, publish a contradictory fluid rate (33 vs 95 ml/min) and show no continuous-duty figure; wireless is a separate article.
- Only one tabulated product publishes a sustained-output rate (Look Viper NT: 35 ml/min continuous, < 50% setting); others only give peak rates. Buyers cannot compare "no reheat" claims - a published continuous ml/min and minutes-at-100% figure would be a differentiator.
- Warm-up of every DMX machine >= 900 W in the table is 5-10 min; the only 2-2.5 min units are low-power (Hurricane 700 at 471 W, Z-800 MK3 at 745 W) with short bursts.
- Service life: every mid-market failure thread (Antari Z-1000/Z-1200, Hurricane 1800 Flex) ends in clogged heat exchanger -> pump burn-out or connector/solder faults; no maker publishes a flush/self-clean cycle, pump type or heat-exchanger temperature on the retail page (Martin is the exception: nozzle 290 C, oscillating-piston pump).
7. Best published values (with source row)
| Metric | Best published value | Product / source row | Caveat |
|---|---|---|---|
| Warm-up (>= 900 W, DMX) | 5 min | B5 Hurricane 1800 Flex (maker); 5.5 min B2 Z-1000 II | Older 1800 Flex version listed 3 min at 1,560 W; Z-800 MK3 "about 2 min" at 745 W (Thomann blurb) |
| Output | 800 m3/min (28,252 cfm) | C2 Martin JEM ZR35 (maker) | Hurricane 1800 Flex 25,000 cfm = ~708 m3/min (my unit conversion, 1 cfm = 0.0283 m3/min); Full Compass 29,600 cfm unverified |
| Sustained (continuous) fluid rate | 35 ml/min at < 50% setting | C1 Look Viper NT (maker) | only maker that states one |
| Mass (DMX unit) | 5.5 kg | A1 Stairville AF-150 | 800 W, wired remote only; lightest >= 900 W: 6.6 kg Z-1000 II |
| Size (volume) | 18.3 L (433x198x214 mm) | B2/B3 Antari Z-1000 II / Z-1000X MK3 | AF-150 = 34.6 L; ZR35 = 61.5 L (590x395x264); volumes computed by me |
| Price (DMX) | EUR 119 | A1 Stairville AF-150 | wired remote only; cheapest with wireless remote included + RDM: EUR 346 (B3) |
| Price (pro continuous) | USD 1,079 | C2 Martin JEM ZR35 (Thomann US) | Viper NT price not retrieved |
Spot-check receipts by the chief engineer (2026-10-30, about 1 in 5 key claims re-read)
| Claim | Check | Result |
|---|---|---|
| Look Viper NT: 1300 W, ~7 min, 120 ml/min max, 35 ml/min continuous, ~30 s at 100 %, continuous below 50 % | re-read https://www.looksolutions.com/uploads/pdf/en_fr/info_viper.nt_e.pdf (text layer) | CONFIRMED (all values as stated) |
| Antari Z-1000X MK3 (row B3): EUR 346, ~6 min, ~60 ml/min, 1.7 L, 7.75 kg, DMX+RDM, wireless remote included | re-read https://www.thomann.de/de/antari_z_1000x_mk3.htm | CONFIRMED, with one correction: the page lists a wireless remote and an on/off remote as included but no timer remote (the machine has a built-in timer); spec table shows 900 W, feature list 925 W total load |
02-concept/research/fluids.md
Fog fluid data - concept phase
Access date for every SOURCE: 2026-10-30. "not stated" = the document says so or is silent. ASSUMPTION = my estimate, reason given. Where a section is incomplete it says so (see section 3: two web searches on carbonyl formation were refused by the search tool's safeguard, so that part is open).
1. ANSI E1.5 - scope and allowed compounds
- Standard: ANSI E1.5-2009 (R2014), "Entertainment Technology - Theatrical Fog Made With Aqueous Solutions of Di- and Trihydric Alcohols", ESTA Fog & Smoke Working Group. Original 2003; 2009 edition; reaffirmed 2014 (read here) and, per ESTA/USITT secondary sources, 2018; one secondary source cites "R2024" - NOT confirmed on ESTA's site. SOURCE: https://tsp.esta.org/tsp/documents/docs/ESTA_E1-5_2009_R2014.pdf (full text read); status/reaffirmation: https://tsp.esta.org/tsp/StandardsWatch/Swatch01a2019.pdf and https://www.usitt.org/news/estas-technical-standard-program-announces-ten-draft-standards-now-public-review-six-plus (via search snippet). OPEN: confirm current reaffirmation year with ESTA.
- Scope (section 1, quoted in substance): composition of fogs/mists "not likely to be harmful to otherwise healthy performers, technicians or audience members of normal working age, 18 to 64 inclusive"; limited to fogs made from water and one or more dihydric or trihydric alcohols; for theatres, arenas and places of entertainment or public assembly; no inference for other populations. Oil-based fluids are outside the standard.
- Allowed components (section 3.1; only these alcohols with deionised water; anything else, incl. colours, scents, bactericides, "do not meet the requirements"):
Compound CAS triethylene glycol 112-27-6 monopropylene glycol (1,2-propanediol) 57-55-6 diethylene glycol 111-46-6 dipropylene glycol 25265-71-8, 106-62-7, 110-98-5, 108-61-2 1,2-butylene glycol 584-03-2 1,3-butylene glycol 107-88-0 glycerin (glycerol) 56-81-5 - Concentrations (3.2): total alcohol <= 10 mg/m3 TWA (8 h); peak never above 40 mg/m3; glycerin alone: peak never above 50 mg/m3.
- Decomposition products (3.3): formaldehyde, acrolein, acetaldehyde and other thermal-degradation products must stay below the lowest permissible level set by the governing OSH authority (OSHA, UK HSE). Contaminants (3.4) such as acetone and ethylene glycol likewise.
- Related: ANSI E1.29-2009 (R2018) "Product Safety Standard for Theatrical Fog Generators" (name seen only in a search snippet; not read) - relevant for our machine design: https://standards.globalspec.com/std/13126227/ansi-esta-e1-5 and ESTA TSP list.
- Design note: E1.5 allows diethylene glycol, but the Chauvet EU fluid FFDJ5 is classified Acute Tox. 4 (H302) because of it (see table) - in the EU, DEG-containing fluid carries a hazard label; Look and Antari advertise "no DEG".
2. Safety data sheets - one row per fluid
Type labels: "quick-dissipating / standard / long-hang" are the makers' own wording only where stated (Look). For Antari FLP/FLL the SDS does not state the hang time; I do not label them (ASSUMPTION avoided).
| Brand / fluid | Maker's type | Composition (wt-%) as on SDS | Density / SG | Flash point | Machine/heater temperature statement | SOURCE (SDS URL) |
|---|---|---|---|---|---|---|
| Antari FLP (FLP-05/1/4/5/20/200) | not stated in SDS | propylene glycol 40; water 40; glycerol 20 (Section 3, issue 28-Mar-2017; sums to 100) | not determined | 160 C closed cup listed against glycerol CAS 56-81-5 (mixture value not given) | none; "thermal decomposition can lead to release of irritating and toxic gases and vapors" | https://prostage.no/media/multicase/documents/pdf%20antari/antari%20v%C3%A6ske_sikkerhetssertifikat_en.pdf |
| Antari FLL (FLL-1 ... FLL-20) | not stated in SDS | water 42; propylene glycol 53; glycerol 5 (issue 10-May-2019) | not determined | 99 C closed cup listed against propylene glycol; 160 C against glycerol | same decomposition sentence | https://asepo.org/resources/Documents/FogSDS/Antari_FLL_Fog%20SDS.pdf |
| Antari FLG / FLR | FLG "heavy", FLR "light" (retailer wording for Z-1000 II fluids) | FLG-5 SDS (rev 1.1, 03-Aug-2015) not readable by my tools (HTTP 404 on the PDF copy); 2003 MSDS lists "pure grade propylene glycol, de-ionized water" with no percentages (via snippet) | not retrieved | not retrieved | not retrieved | https://www.woodbrass.com/images/woodbrass/ANTARI+FLG+5.PDF (unreadable); https://nizer.com/pdfs/MSDS_Fog_liquid.pdf (snippet only) - OPEN: find current FLR/FLG SDS at antari.com |
| Antari FLC (older SDS, for contrast) | - | ethylene glycol 33; glycerin 2; water 65 (as printed; ethylene glycol is NOT on the E1.5 list - listed in E1.5 3.4 as a contaminant to be limited) | - | - | - | https://www.fullcompass.com/common/files/20538-AntariFLCFogFluidMSDS.pdf (via snippet; page not opened by me) |
| Look Solutions Quick-Fog / Regular-Fog / Slow-Fog (EU) | Quick: "thick, quick disappearing"; Regular: "thick, long lasting"; Slow: "thick, extremely long lasting" (Look Viper NT info sheet) | "Mixture of higher alcohols and water", no dangerous ingredients; no % | 1.04-1.10 g/cm3 | not appointed; self-ignition "no" | none in SDS; Viper NT manual: use only Look fluids | https://www.looksolutions.com/uploads/pdf/en_fr/safety_qrs_e.pdf (27.01.2023) |
| Look Solutions (US SDS, 01-May-2020; covers Tiny, Quick, Regular, Slow, Cryo, Unique) | as above | each fluid contains one or more of: triethylene glycol 112-27-6, monopropylene glycol 57-55-6, dipropylene glycol 110-98-5, demineralised water; no % | >1.0 g/cm3; boiling point >100 C | not given; (older 2005 sheet via snippet: flash >177 C, ignition >370 C) | "Thermal decomposition: no known dangerous products" (maker claim) | https://looksolutionsusa.com/wp-content/uploads/2020/05/MSDS-SDS-fluid-2020.pdf |
| Rosco Fog Fluid (US SDS 2022) | standard Rosco fog fluid | triethylene glycol, 1,3-butylene glycol, propylene glycol, deionised water - percentages "N/Av" | SG 1.055-1.075 | not given in text read | none | https://us.rosco.com/sites/default/files/content/resource/2023-08/Rosco_Fog_Fluid_SDS_063022_V1.pdf |
| Rosco F-1 Fog Fluid (EU SDS, 2023) | - | deionised water, triethylene glycol, propylene glycol - % "N/Av" | SG 1.06-1.069 | not given in text read | none | https://au.rosco.com/sites/default/files/content/resource/2023-08/Rosco_F-1_Fog_Fluid_EU_SDS_031023_V1.pdf |
| Rosco Stage & Studio fluid (older MSDS ROS007) | - | propylene glycol + deionised water (via snippet; % not read) | - | - | - | https://www.rosco.com/sites/default/files/content/resource/2016-08/s_sfluid.pdf |
| Chauvet DJ FJU "Fog Juice" (US SDS, 2014) | standard | composition withheld as IP: "filtered blend of polyfunctional alcohol", main component water; no CAS/% | SG 1.04 | not given | decomposition products listed: "Carbon monoxide, Carbon dioxide and water" | https://www.chauvetdj.com/wp-content/uploads/2015/12/Chauvet-Fog-Fluid-FJU_MSDS_V2_2014.pdf |
| Chauvet "Fog Fluid DJ" FFDJ5 (EU SDS, 13-Mar-2025) | standard EU | 2,2'-oxybisethanol (diethylene glycol) 111-46-6 <= 40 %, Acute Tox. 4 oral H302; rest not itemised (water presumably - ASSUMPTION: single listed hazardous ingredient) | not given | no data | no data | https://www.chauvetdj.com/wp-content/uploads/2024/11/SDS-FOG-FLUID-CHAUVET-FFDJ5-EN.pdf |
Not found: Eurolite, Showtec, Safex, Le Maitre, JEM/Martin Pro-Smoke SDS (not searched within the time box) - OPEN. Martin lists "JEM Pro fog fluids" and Rush fog fluid as compatible; no SDS read. Exposure columns in the Antari SDS (secondary): glycerol Germany TWA 50 mg/m3 (peak 100), France/Austria-type 10 mg/m3; propylene glycol Latvia 7 mg/m3, Norway 25 ppm / 79 mg/m3 - as printed in the SDS table, not checked at the national sources.
3. Heat-exchanger temperatures and decomposition thresholds
Published machine temperatures (see benchmark.md section 2):
| Value | Meaning | Source |
|---|---|---|
| 250 C | "Average operating temperature" of Antari fog machines with onboard DMX | https://images.thomann.de/pics/prod/195470.pdf |
| 300 C | Antari output nozzle surface "very hot (300 C)" | same |
| 290 C | Martin JEM ZR35 "max. nozzle temperature" | https://www.martin.com/km/site_elements/jem-zr35-spec-sheet-english-fa3a900c-6634-44c5-b0d9-2526f0009ae1 |
| 100 mm clearance, ambient max 40 C | JEM ZR35 and Hurricane 700 installation limits | same / Chauvet manual |
| 300 F (~149 C) | thermistor shut-off limit in the DIY project ESP32-Fog-Machine (README summary; what it measures is not clear to me) | https://github.com/cpyarger/ESP32-Fog-Machine |
Thermal decomposition / carbonyl thresholds (propylene glycol, triethylene glycol, glycerin):
- NOT RETRIEVED. My two literature searches (heated-aerosol carbonyl formation; fog-machine thermal-degradation papers) were rejected by the search tool's safeguard filter and I did not try to work around that. No threshold value is given here and none must be assumed.
- What IS sourced: (a) E1.5 clause 3.3 requires formaldehyde/acrolein/acetaldehyde in the fog to be below the lowest OSH-authority limit (section 1); (b) Look US SDS claims "no known dangerous products" on decomposition, Chauvet FJU SDS lists CO, CO2, water; Antari SDS: "thermal decomposition can lead to release of irritating and toxic gases and vapors"; (c) Antari states 250 C average, Martin 290 C nozzle - the design baseline to beat is therefore "<= ~250-290 C in the heat exchanger".
- OPEN (hand to a follow-up run): find (1) papers/agency reports on carbonyl formation vs temperature for PG, TEG and glycerol in fog/heated-aerosol conditions (e.g. via PubMed, NIOSH, Health Canada, the ENVIRON/ESTA fog test papers), (2) any measured aldehyde output of commercial fog machines.
4. Exposure guidance - one line each
- ENVIRON (Moline & Golden, Mount Sinai / ENVIRON International), "Health Effects Evaluation of Theatrical Smoke, Haze, and Pyrotechnics", 2000, for the Equity-League Pension and Health Trust Funds: recommends peak/ceiling not above 40 mg/m3 for glycols and 25 mg/m3 for mineral oil; symptoms (respiratory, throat, nasal, vocal cord) associated with peak glycol exposure; the study covered 439 actors on 16 Broadway musicals (figure from a secondary page). https://actorsequity.org/docs/librariesprovider2/resource-documents/safe-sanitary/finalreport.pdf?sfvrsn=163c3c97_1 (found via search; I did not open the PDF)
- Glycerol 50 mg/m3 peak: follow-up ENVIRON 2001 study (via secondary summary). Equipment-based guidelines and calibration factors: https://lort.org/assets/documents/Equipment-Based_Guidelines_for_the_Use_of_Theatrical_Smoke_and_Haze.pdf (not opened).
- Actors' Equity rules page (current limits glycol 40, mineral oil 25, glycerol 50 mg/m3 per search summary): https://actorsequity.org/resources/producers/safe-and-sanitary/smoke-and-haze
- ESTA/ANSI E1.5: 10 mg/m3 TWA, 40 mg/m3 peak (glycerin alone 50) - read directly, section 1 above.
- AIHA WEEL for propylene glycol: 10 mg/m3 (aerosol), 50 ppm total - as printed on Rosco SDS: https://www.rosco.com/sites/default/files/content/resource/2016-08/s_sfluid.pdf (via snippet), and in Rosco Fog Fluid SDS (10 mg/m3 column).
- ACGIH TLV for propylene glycol: none (the Antari SDS ACGIH column is blank; Rosco note says its ACGIH column carries an AIHA WEEL).
- Germany: TRGS 900 (version 5.6.2026) https://www.baua.de/DE/Angebote/Rechtstexte-und-Technische-Regeln/Regelwerk/TRGS/pdf/TRGS-900.pdf?__blob=publicationFile and GESTIS record 1,2-Propandiol https://gestis.dguv.de/data?name=013620 - AGW value for propylene glycol/glycerol NOT confirmed by me; OPEN. (The Antari SDS shows Germany glycerol TWA 50 mg/m3 - unverified.)
- EU: no EU-wide IOELV for propylene glycol found (Antari SDS shows "-" for EU).
5. Physical properties for energy-per-ml cross-check
Molar mass (my arithmetic from formulas, ASSUMPTION - standard atomic weights): water 18.02; PG 76.09; DPG 134.17; TEG 150.17; glycerin 92.09 g/mol.
| Substance | Normal boiling point | Enthalpy of vaporisation (value at temperature) | Liquid heat capacity Cp,liq | Density | Autoignition |
|---|---|---|---|---|---|
| Water | 373.17 +/- 0.04 K (100.0 C) | not on the NIST WebBook phase-change page I read; textbook 40.65 kJ/mol = 2257 kJ/kg at 373.15 K - ASSUMPTION (unsourced here, widely known) | 4.2161 J/gK at 373.5 K; 4.2199 J/gK at 273.16 K (NIST fluid page) | 958.1 kg/m3 at 373.5 K; 999.79 kg/m3 at 273.16 K | n/a |
| 1,2-propylene glycol | 460 +/- 2 K (187 C) | 60.0 kJ/mol at 380 K; 56.2 at 420 K; 52.0 at 460 K; 47.5 at 500 K (Steele et al. 2002) | 189.9 J/molK at 298 K (= 2.50 J/gK); 177.0 at 303 K | 1.036 g/cm3 (Wikipedia; ~20 C) | 420 C (ICSC 0321); 371 C (700 F, NOAA CHRIS) - sources disagree |
| Dipropylene glycol (CAS 25265-71-8 mixture/isomers) | 230.5 C (Wikipedia; NIST page for the CAS gave no Tboil) | 61.2 kJ/mol at 438 K (Stephenson & Malanowski 1987) | NIST page has none for this CAS - not retrieved | 1.0206 g/cm3 at 20 C | 310 C (Wikipedia) |
| Triethylene glycol | 540 +/- 90 K (NIST average; large scatter; Wikipedia 285 C = 558 K) | 72.2 kJ/mol at 440 K; 68.5 at 480 K; 64.6 at 520 K; 60.8 at 560 K (Steele et al. 2002) | 333.7 J/molK at 298 K (= 2.22 J/gK); 327.6 | 1.1255 g/mL (Wikipedia) | 371 C (ICSC 1160) |
| Glycerin | 550 +/- 40 K (NIST); Wikipedia 290 C = 563 K | 78.5 kJ/mol at 484 K (S&M 1987); 91.7 kJ/mol at 298 K standard-state value | 218.9 J/molK at 298.15 K (= 2.38 J/gK); 221.9 at 298.15 (other lab) | 1.261 g/cm3 (Wikipedia) | not verified (ICSC 0624 not retrieved; ~370-400 C is memory only - do not use) |
Per-gram conversions are my division of NIST molar values by molar mass. Cp values as J/gK: PG 2.50, TEG 2.22, glycerin 2.38. SOURCES (NIST WebBook, SRD 69, fetched 2026-10-30): water https://webbook.nist.gov/cgi/cbook.cgi?ID=C7732185&Units=SI&Mask=4 and fluid table https://webbook.nist.gov/cgi/fluid.cgi?Action=Load&ID=C7732185&Type=SatP ; PG https://webbook.nist.gov/cgi/cbook.cgi?ID=C57556&Units=SI&Mask=4 and Mask=2 ; DPG https://webbook.nist.gov/cgi/cbook.cgi?ID=C25265718&Units=SI&Mask=4 ; TEG https://webbook.nist.gov/cgi/cbook.cgi?ID=C112276&Units=SI&Mask=4 and Mask=2 ; glycerin https://webbook.nist.gov/cgi/cbook.cgi?ID=C56815&Units=SI&Mask=4 and Mask=2. Densities and DPG boiling point: https://en.wikipedia.org/wiki/Propylene_glycol , /Dipropylene_glycol , /Triethylene_glycol , /Glycerol (secondary - replace with NIST/GESTIS before the design freeze). Autoignition: https://chemicalsafety.ilo.org/dyn/icsc/showcard.display?p_lang=en&p_version=2&p_card_id=0321 (PG), https://www.inchem.org/documents/icsc/icsc/eics1160.htm (TEG), https://cameochemicals.noaa.gov/chris/PPG.pdf (PG, 700 F), https://en.wikipedia.org/wiki/Dipropylene_glycol (DPG) - all via search snippets, cards not opened by me. Isomer note: 1,2-propanediol Cp and Hvap data have multi-point scatter (e.g. Hvap 67 +/- 8 kJ/mol standard-state average vs 52 at 460 K); use the value at the working temperature.
Cross-check sketch is in benchmark.md section 5 (about 1.4-1.5 kJ per g/ml of fluid to boil the water part of a 42%-water fluid and heat the glycol part to ~250 C; derived, not published).
02-concept/research/regulatory.md
Regulatory scan: compact fog machine ("zadymiarka"), concept phase
Run: r20261030-0408-v001-zadymiarka-concept-2 | Role: compliance engineer | Date: 2026-10-30 | Status: DRAFT for concept review. This is not legal advice. Product basis: Class I, 975 W heater, triac burst-fire control, die-cast Al heat exchanger at ~250-290 °C, 24 V peristaltic pump, universal 24 V SMPS module, nRF52840 2.4 GHz proprietary 2-way link (no internet), isolated DMX512-A/RDM (3-pin and 5-pin XLR), OLED display, C14 inlet with fuse and switch. Battery remote with an nRF52 module and 2x AAA cells. Variants: EU 220-240 V and US 120 V. Sold B2B and B2C in the EU (Poland first), US and CA. Kickstarter launch ~2027.
Summary
- EU: there is one CE route, under RED 2014/53/EU: 3.1(a) safety via EN 60335-1, 3.1(b) EMC via EN 55014-x, 61000-3-x and 301 489-17, and 3.2 radio via EN 300 328. LVD and EMCD are not declared separately. On top of that come RoHS, WEEE, the Batteries Regulation (remote), GPSR, REACH/SCIP, PPWR and the Polish BDO register. The RED cyber act 2022/30 is very likely out of scope (no internet path). The CRA does apply: reporting from launch, full obligations from 11.12.2027. The Machinery Regulation (from 20.1.2027) is a borderline case we should document. The real fog-machine DoCs found declare LVD (+EMC) with EN 60335-1 only.
- US/CA: the host needs an FCC 15B Class B SDoC plus a modular-approved nRF module (15.247 / RSS-247), with "Contains FCC ID / IC" labels and ICES-003. The NRTL safety standard that fog machines are listed to is UNCONFIRMED from public data. The working assumption is UL 499 (+ ANSI E1.29-2009 (R2024)), with a CSA counterpart still open. Reese's Law does not apply because the remote uses AAA cells.
- Main design drivers:
- a thermal cut-out that does not reset itself and works independently of the triac and firmware;
- EN 61000-3-3 flicker from burst-fire (slow burst period, or measure early);
- a reinforced mains/SELV barrier, including DMX;
- standby ≤0.5 W and off ≤0.3 W from 2027, if in scope;
- marking and manual per EN 60335-1 cl. 7 and ANSI E1.14;
- CRA-ready firmware (signed updates, vulnerability handling).
Conventions:
- Access date: all sources accessed 2026-10-30. Each [S#] maps to a full URL in §8.
- Confidence levels:
- high = primary or official text read today;
- medium = concordant secondary sources, or a primary reference known but not readable today;
- low = single or weak source.
- UNCONFIRMED: could not be verified in this session; the entry says what was tried.
- ASSUMPTION: a cost or time figure with no public source; the entry gives a one-line reason.
- EUR-Lex: it returned HTTP 202 with an empty body to every automated fetch today (2023/826, 2014/53, 2023/988, 2026/339 tried). EU OJ page references marked "medium (EUR-Lex unreadable)" come from prior knowledge or search snippets and must be checked by hand before the DoC is frozen.
1. EU legal acts
| Act | OJ reference | Application dates | Applies? Why | Conf. | Src |
|---|---|---|---|---|---|
| RED 2014/53/EU | OJ L 153, 22.5.2014, p. 62 (medium, EUR-Lex unreadable) | Applies since 13.6.2016 (medium) | YES. Product with an intentional radiator, so the whole fog machine is "radio equipment". Art. 3.1(a): health and safety, incl. LVD objectives with no voltage limit. Art. 3.1(b): EMC to the 2014/30/EU objectives. Art. 3.2: efficient use of spectrum. Module A (self-declaration) is always allowed for 3.1(a)/(b), even without RED-harmonised standards. Module A for 3.2 only if a harmonised standard (EN 300 328) is applied in full; otherwise NB route. The remote is separate radio equipment and needs its own RED DoC. | high (scope), medium (OJ ref) | S62, S28, S27 |
| LVD 2014/35/EU / EMCD 2014/30/EU | n/a | n/a | NOT separately. Radio equipment is excluded from LVD and EMCD; RED 3.1(a)/(b) import their objectives. The updated Commission RED Guide (reported Oct 2026) restates this. DoC cites RED, not LVD/EMC. Fog-machine DoCs found cite LVD, but they are non-radio models. | medium (summary of the Guide, Guide text not read) | S28, S27 |
| RED Delegated Reg. (EU) 2022/30 (Art. 3(3)(d)(e)(f)) | OJ L 7, 12.1.2022, p. 6 (medium, EUR-Lex unreadable) | Applies from 1.8.2025 (high); postponed from 2024 by (EU) 2023/2444 (medium) | Very probably NOT. Art. 1(1) covers radio equipment that "can communicate itself over the internet, directly or via any other equipment". (e)/(f) cover internet-connected equipment, plus childcare/toy/wearable equipment for (e). Our proprietary link (machine ↔ remote) has no IP, no phone app and no gateway, so it is out of scope. The fog machine is not a toy. Re-assess if a BLE phone app, a Wi-Fi/Art-Net/sACN bridge or a cloud link is added. Orgalim warns that Bluetooth may or may not be in scope depending on the protocol. Record the scope decision in the technical file. If it ever applied: EN 18031-1/-2/-3:2024 are cited with restrictions by Impl. Dec. (EU) 2025/138 (OJ 30.1.2025). Repeal of 2022/30 by Del. Reg. (EU) 2026/339 effective 11.12.2027: UNCONFIRMED. One secondary page in the search results mentioned it; the EUR-Lex fetch was empty. | high (Art. 1 text), medium (conclusion) | S13, S14, S15, S16, S17, S58, S59, S71 |
| RoHS 2011/65/EU + Del. Dir. (EU) 2015/863 | OJ L 174, 1.7.2011, p. 88; OJ L 137, 4.6.2015, p. 10 (medium, EUR-Lex unreadable) | All EEE incl. open-scope cat. 11 since 22.7.2019 (medium) | YES. 10 restricted substances, technical documentation per EN IEC 63000, and listed in the DoC. Watch: lead in the die-cast Al heat exchanger, and brass fittings or pump parts. The current status of the alloy exemptions (Annex III 6(b)/6(c)) is UNCONFIRMED. Ask suppliers for low-Pb alloys and test reports. | medium | S64 |
| WEEE 2012/19/EU | OJ L 197, 24.7.2012, p. 38 (medium, EUR-Lex unreadable) | Open scope since 15.8.2018 (medium) | YES. Crossed-out wheeled-bin mark (EN 50419). Producer registration and financing in every Member State where we sell to end users. For direct Kickstarter shipping into another Member State we need an authorised representative there (Art. 17; medium). Poland: BDO, see below. | medium | S65, S33 |
| Batteries Reg. (EU) 2023/1542 | OJ L 191, 28.7.2023, p. 1 (publication date high per S20; page medium) | Dates:<br>- applies since 18.2.2024<br>- EPR, producer registration and collection symbol: 18.8.2025<br>- Art. 13 labelling: 18.8.2026, or 18 months after the implementing act, whichever is later<br>- Art. 11 removability and replaceability: 18.2.2027 | YES (remote + 2x AAA supplied). We are the "producer" of portable batteries supplied with an appliance, so we need EPR registration (PL: BDO Dział V) and take-back. From 18.2.2027 the remote's cells must be removable and replaceable by the end user, with no tools or commonly available tools. Battery information goes in the instructions. Buy labelled, compliant cells. | medium-high | S20, S21, S67 |
| GPSR (EU) 2023/988 | OJ L 135, 23.5.2023, p. 1 (medium, EUR-Lex unreadable) | Applies from 13.12.2024 (medium) | YES for the consumer channel. For products under harmonisation law it applies only to aspects not covered there: distance-sales information on the listing, accident notification (Safety Business Gateway), traceability (type/batch/serial), and recalls. Open: is Kickstarter an "online marketplace" under GPSR? | medium | S63 |
| REACH (EC) 1907/2006 Art. 33 | OJ L 396, 30.12.2006, p. 1 (medium) | In force. SCIP notification (WFD 2008/98/EC Art. 9(1)(i)) since 5.1.2021 (medium) | YES. For any SVHC above 0.1 % w/w per article (e.g. lead in brass or Al alloy, phthalates in PVC cords): inform B2B customers, answer consumers within 45 days, and notify SCIP. Fog fluid is a mixture under REACH/CLP (SDS, labelling). It is outside this scan; flagged. | medium | S66 |
| Ecodesign standby (EU) 2023/826 (repeals 1275/2008) | OJ L 103, 19.4.2023: UNCONFIRMED (EUR-Lex unreadable; one secondary page gives publication "8 May 2023") | Applies 9.5.2025; second tier 9.5.2027 (medium) | SCOPE UNCONFIRMED. It covers "electrical and electronic household and office equipment" listed in an annex. EC examples: audio/video, microwaves, electric toys, motorised furniture and building elements. A fog machine is not named in any example found. Consumer "home Halloween" marketing makes the household domain arguable; pro-only use would argue out of scope. Decision: design to the limits anyway.<br>Limits:<br>- Off: ≤0.50 W, then ≤0.30 W from 9.5.2027<br>- Standby with reactivation: ≤0.50 W<br>- Standby with information/status display: ≤0.80 W<br>- Networked standby, HiNA: ≤8 W (≤7 W from 2027)<br>- Networked standby, other: ≤2 W<br>- Power management to low-power mode: default ≤20 min (TÜV SÜD)<br>The radio remote most likely counts as a "reactivation function", not a network. Whether the DMX input is a "network port" is UNCONFIRMED (definitions not readable). | medium (limits: EC page + UL + Nemko + TÜV SÜD agree); low (scope) | S6, S7, S8, S9, S10 |
| Machinery Dir. 2006/42/EC, then Machinery Reg. (EU) 2023/1230 | MD: OJ L 157, 9.6.2006, p. 24 (medium). MR: OJ L 165, 29.6.2023, p. 1 (date high, page medium) | MD until 19.1.2027. MR applies 20.1.2027 (high), i.e. most Kickstarter deliveries will fall under the MR | BORDERLINE. The peristaltic pump is a motor-driven moving part, so the literal "machinery" definition can be met. MR Art. 2(2)(p) excludes "household appliances intended for domestic use" (and AV, IT, office equipment) "insofar as they fall within the scope of Directive 2014/35/EU or of Directive 2014/53/EU". That covers the consumer use; pro use is not "domestic". Industry practice: the DoCs found (Antari 2016, JEM/Martin 2025) list LVD (+EMC) and EN 60335-1 only, with no MD and no EN ISO 12100 (see §1b). Recommendation:<br>- write a scope rationale: main function is heating and vaporising; pump hazards are enclosed and covered by EN 60335-1 cl. 20/22/24;<br>- keep an ISO 12100-style risk assessment in the technical file;<br>- get a lab opinion before freezing the DoC.<br>If treated as machinery: MR Annex III EHSRs with module A (not an Annex I category). | medium | S22, S23, S1, S2 |
| CRA (EU) 2024/2847 | OJ L, 2024/2847, 20.11.2024 (medium) | Dates (Art. 71, high):<br>- in force 10.12.2024<br>- Ch. IV (notified bodies) from 11.6.2026<br>- Art. 14 reporting from 11.9.2026<br>- full application 11.12.2027 | YES (very likely). It is a "product with digital elements" with data connections (radio link, DMX/RDM, possibly USB update). The scope wording of Art. 2/3 was not re-read today (medium). Default (non-Annex III/IV) class, so self-assessment module A (UNCONFIRMED today). Units placed on the market before 11.12.2027 fall under the CRA only if substantially modified later. Reporting of actively exploited vulnerabilities and severe incidents to the ENISA single platform (24 h / 72 h / 14 d) applies from launch. Kickstarter deliveries spanning Dec 2027 mean we must design for CRA now. Commission CRA guidance was published Jul 2026 (secondary). | high (dates), medium (scope) | S18, S19, S61, S68 |
| PPWR (EU) 2025/40 | OJ L, 2025/40, 22.1.2025 (publication date high) | Dates:<br>- in force 11.2.2025<br>- applies 12.8.2026<br>- harmonised sorting labels 12.8.2028 at the earliest (24 months after the implementing act)<br>- recyclability grades and 50 % empty-space limit 2030 | YES. Packaging DoC plus Annex VII documentation, manufacturer name and address on the packaging, heavy metals ≤100 mg/kg, minimisation. National labelling until 2028. EPR: PL BDO Dział VI. | medium-high | S31, S32, S69 |
| Poland, BDO register | Ustawa o odpadach, art. 50 ust. 1 (BDO entry required), art. 57 (fee) (medium) | Register live since 24.1.2018 | YES if our (PL) entity places EEE (Dział IV), batteries (Dział V) and packaging (Dział VI) on the PL market. Each section needs its own entry and fee. WEEE, battery and packaging recovery is usually done via a producer responsibility organisation; the article numbers of the 2015 WEEE act are UNCONFIRMED. A non-PL seller would need an authorised representative. | medium | S33, S34 |
1b. Real EU DoCs of fog machines (which directives and standards makers declare)
| Maker / product | Directives declared | Standards declared | Evidence (URL in §8) | Conf. |
|---|---|---|---|---|
| Antari Z-380 / Z-390 "FOG MACHINE": EC DoCs dated 2016-07-11 inside the ASP Technology Corp tech file (T.C.F. PN664B) | DoC 1: "LVD Directive: 2014/35/EU". DoC 2: "EMC Directive: 2014/30/EU", "LVD Directive: 2014/35/EU" | EN 60335-1:2012+A11:2014; EN 62233:2008/AC:2008; EN 55014-1:2006+A2:2011; EN 55014-2:2015; EN 61000-3-2:2014; EN 61000-3-3:2013 | S1 (PDF text read today) | high |
| JEM (Martin/Harman) ZR25 / ZR35 / ZR45 EU, "Fog machine", 1150/1500/2000 W, DMX | 2014/35/EU (snippet also mentions RoHS) | EN 60335-1:2012 +A11:2014 +A13:2017 +A1:2019 +A14:2019 +A2:2019 +A15:2021 | S2: HTTP 404 on direct fetch today; content seen only in the search-engine snippet | medium |
| EU product alert A12/1693/19, unbranded "LED 500" fog machine | Non-compliance judged against LVD | EN 60335-1 | S3 (snippet) | medium |
| Eurolite / Steinigke | UNCONFIRMED. The manual (NX-200) cites EN 60335-1:1996 for installation. The Thomann "ce_cert_00075934" Steinigke DoC turned out to be for a LED PAR, not a fog machine. Eurolite wireless remotes are 433.92 MHz. | n/a | S55, S56 | n/a |
| Chauvet, Cameo/Adam Hall, Showtec/Highlite, Look | UNCONFIRMED. Searched by brand + "declaration of conformity" + EN 60335. Chauvet DJ product pages list "Approvals: CE" only. Highlite says DoCs are on product pages (not reached in the time box). | n/a | S44, S57 | n/a |
Takeaways:
- No maker found cites an EN 60335-2-x part, the Machinery Directive or EN ISO 12100.
- None of the DoCs found covers an integrated 2.4 GHz radio. Competitors' wireless remotes are 433 MHz (EN 300 220 world).
- With our integrated nRF radio, our DoC must be RED-based, which is a deliberate difference from these DoCs.
2. Harmonised standards: current editions and OJ status
| Standard | Current edition / status | Role for us | Conf. | Src |
|---|---|---|---|---|
| EN 60335-1 | Cited and current editions:<br>- OJ (LVD) cites EN 60335-1:2012 +A11:2014 +A13:2017 +A1:2019 +A14:2019 +A2:2019 +A15:2021 (with a restriction).<br>- EN IEC 60335-1:2023 + A11:2023 (= IEC 60335-1 Ed. 6:2020; A11 approved 2023-11-22; DOP 2024-11-22) is reportedly NOT cited in the OJ (consolidated list of 30.4.2026).<br>Transition:<br>- No DOW set. The 2012 edition stays valid until all Parts 2 used with it are updated; Part 1's DOW will be fixed then.<br>- Latest LVD amending decision reported as (EU) 2025/1457 (18.7.2025): UNCONFIRMED.<br>Under RED: not RED-harmonised (UNCONFIRMED today), so it serves as state of the art under module A. | Primary 3.1(a) standard. Test to EN IEC 60335-1:2023+A11:2023, plus a CB report to IEC 60335-1:2020. Ask the lab to also state compliance with the 2012+A15 set where the deltas are trivial. | medium | S11, S12, S60 |
| EN 60335-2-x | No part fits a fog machine. Real DoCs cite Part 1 only (§1b). Candidate parts to use only for guidance: EN 60335-2-15 (appliances for heating liquids) and EN 60335-2-98 (humidifiers); titles from memory, UNCONFIRMED today. ANSI E1.29 itself is based on UL 998 (Humidifiers). EN 60598-2-17 (stage luminaires) and EN 62368-1 (AV/ICT) are not used by fog-machine DoCs found and do not suit a 975 W heater. | Part 1 alone + risk assessment | medium | S1, S2, S4, S5 |
| EN 62233:2008 (+AC:2008) | Used in the Antari DoC. OJ status under LVD UNCONFIRMED today. | EMF evaluation of the appliance part, 3.1(a) | medium | S1 |
| EN IEC 55014-1:2021 / EN IEC 55014-2:2021 | Reported cited in the OJ under EMCD (Nemko). Consolidated EMC list = Impl. Dec. (EU) 2019/1326 + amendments (latest 9.6.2022). The exact amending decision is UNCONFIRMED. | 3.1(b) for the host. Includes discontinuous disturbance (clicks), which matters for heater switching. | medium | S29, S30 |
| EN IEC 61000-3-2:2019 + A1:2021 | OJ citation UNCONFIRMED today; the edition is in common DoC use. Expect Class A. The "professional equipment >1 kW: no limits" exception (from memory, UNCONFIRMED) is not usable because we also sell to consumers. | Harmonics. Burst-fire = low harmonics; no phase-angle control. | medium-low | S30 |
| EN 61000-3-3:2013 + A1:2019 + A2:2021 | OJ status UNCONFIRMED today. Limits: Pst ≤1.0; Plt ≤0.65; dc ≤3.3 %; dmax ≤4 %. A d(t) >3.3 % for ≤500 ms limit and the 6 %/7 % dmax variants are from memory, UNCONFIRMED. Analytical method (IEC 61000-3-3:2013 cl. 4.2.4): tf = 2.3·(F·dmax)^3.2; Pst = (Σtf/Tp)^(1/3.2). | Flicker is the key EMC risk. See §6, item 6. | medium (Pst/Plt), low-medium (d limits) | S46, S47, S48 |
| EN 300 328 V2.2.2 | Cited under RED (Impl. Dec. (EU) 2020/167; now in consolidated (EU) 2022/2191). A newer ETSI version may exist: UNCONFIRMED. | 3.2 for the host and the remote. Reuse the module report; do host spot checks. | high | S24 |
| EN 301 489-1 / EN 301 489-17 | EN 301 489-17 V3.3.1 is cited by Impl. Dec. (EU) 2025/893. The cessation date of V3.2.4 is UNCONFIRMED. EN 301 489-1 (V2.2.3) is applied as the common part via -17, not cited on its own under RED. | 3.1(b), radio part (host + remote) | high (-17), medium (-1) | S25, S26, S27 |
| EN 62479 / EN 62311 / EN IEC 62311 | RED citation status of EN 62479:2010 and EN 62311:2008 is UNCONFIRMED today. EN IEC 62311:2020 is reported as not RED-harmonised (Spilma). | RF exposure. The low-power exclusion (EN 62479) should cover an nRF-class transmitter; the threshold was not verified today. | low-medium | S26 |
| EN 62368-1 (remote) | Edition cited under RED/LVD: UNCONFIRMED today. Widely used for battery radio products. | 3.1(a) for the 3 V AAA remote (ES1/PS1, so mostly materials and marking) | low-medium | S26 |
| EN IEC 63000:2018 | RoHS technical documentation standard. OJ citation UNCONFIRMED today. | RoHS technical file | medium | n/a |
| EN ISO 12100:2010 | Type-A standard harmonised under MD 2006/42/EC. UNCONFIRMED today. | Optional risk-assessment record (machinery borderline) | medium | n/a |
| EN 18031-1/-2/-3:2024 | Cited with restrictions by Impl. Dec. (EU) 2025/138 (OJ 30.1.2025). No presumption if the user can skip setting a password. | Only if 2022/30 applied (not expected). Useful as a CRA design checklist. | high | S16, S17 |
3. US and Canada
| Item | Requirement / finding | Conf. | Src |
|---|---|---|---|
| FCC Part 15 Subpart B | Class B. The product is marketed to the public and for home use; Class A would need exclusively commercial/industrial marketing.<br>Authorisation: SDoC (47 CFR 2.906, 2.1071-2.1077) with a US-located responsible party and a compliance information statement.<br>Labels and statements: 15.19(a)(3) label text, 15.105(b) Class B user information, 15.21 modification warning.<br>A possible exemption under 15.103(d) ("digital device utilized exclusively in an appliance") is not relied on: retail, Kickstarter and Amazon buyers expect a 15B report, and the radio host route needs it anyway. | medium (eCFR blocked automated fetch: redirect to unblock.federalregister.gov) | S54 |
| Part 15 Subpart C §15.247 + modular integration | Use an nRF52840 module with a full (not limited) modular grant (DTS, 2.4 GHz). Integrate within the grant conditions (antenna type and gain, max power table in firmware, no trace changes) per KDB 996369 D01-D04. Host label "Contains FCC ID: XXX-YYYY" (2.925, KDB 784748). Outside the grant conditions you need a Class II permissive change or a new FCC ID. Remote: same approach, with its own label and SDoC for its digital part. | medium | S54, S49, S50 |
| NRTL safety standard (US/CA) | UNCONFIRMED.<br>What I tried:<br>- 8 web searches on Antari, Chauvet, Rosco, Look, Ultratec, LeMaitre and Froggy's with "UL 499 / 998 / CSA C22.2 No. 64 / 88 / ETL / cETLus";<br>- UL Product iQ requires sign-in, so it was not used (no accounts);<br>- the Intertek and QPS directories were not reached in the time box.<br>What I found:<br>- Rosco Vapour: "ETL / cETL Listed" (no standard named);<br>- Ultratec fog and low-fog units: "certified to CSA/UL Standards by QPS Canada Inc." (no number);<br>- Chauvet DJ Hurricane Haze 4D: "cULus"; Hurricane foggers: "CE" only;<br>- ANSI E1.29 text: fog generators "often are evaluated as heating appliances"; E1.29 is a guide for test labs based on ANSI/UL 998-2006 Humidifiers, with fog-specific tests.<br>Working assumption:<br>- US: UL 499 Electric Heating Appliances (edition seen in a kiln listing: "UL 499:2014 Ed.14 + R:31May2023") + ANSI E1.29-2009 (R2024);<br>- Canada: counterpart UNCONFIRMED (candidates CSA C22.2 No. 88 Industrial heating equipment, or No. 64 Household cooking and liquid-heating appliances; editions UNCONFIRMED);<br>- UL category codes: UNCONFIRMED.<br>Next: a human asks 2-3 NRTLs for a scope opinion (not done here). | low (for the standard), medium (that NRTL listing is market practice) | S4, S5, S41, S42, S43, S44, S45 |
| OSHA NRTL rationale | 29 CFR 1910.303(a): electrical equipment used in workplaces must be "approved". 1910.399: "acceptable" = listed, labelled or certified by an NRTL. Bars, theatres, schools, churches and DJs' employers are workplaces, so listing is effectively mandatory for the pro channel; AHJs and venues ask for it too. | medium (not re-read today) | n/a (eCFR blocked) |
| ISED Canada | ICES-003 Issue 7 (released Oct 2020, mandatory since 15.10.2021), label "CAN ICES-003(B)/NMB-003(B)". ICES-Gen Issue 2 (in force 23.2.2024). RSS-247 Issue 3 (Aug 2023), via the module's IC certification. RSS-Gen Issue 5 + A1 (2019) + A2 (2021); Issue 6 under consultation since 2026-03. Host label "Contains IC: XXXXX-YYYY". Canadian electrical safety certification (provincial rules, CE Code Part I) before sale: UNCONFIRMED today. | medium-high | S37, S38, S39, S40 |
| Reese's Law, 16 CFR 1263 | Does NOT apply. A "button cell or coin battery" is a single cell with diameter greater than height (16 CFR 1263.2). CPSC states that cylindrical cells "such as AAA" do not pose the same hazard. Keep AAA; a CR2032 would bring the product into scope. | high | S35, S36 |
| California Prop 65 | UNCONFIRMED (not researched in the time box; OEHHA not fetched). It applies to businesses with ≥10 employees (from memory). Likely triggers: lead in brass, Al alloy or solder; DEHP/DINP in PVC cords. Plan XRF and phthalate screening and a compliant cord, or a warning. | low | n/a |
| NFPA 101 / NFPA 72 | UNCONFIRMED (not researched). Fog and haze can trigger photoelectric and beam smoke detectors; managing detectors is a venue/AHJ matter. ANSI E1.23-2023 covers the design, execution and maintenance of atmospheric effects. Put the detector warning in the manual. | low | S4 |
4. ESTA / ANSI standards (current editions per the ESTA TSP list, read today)
| Designation (current) | Title (short) | Relevance |
|---|---|---|
| ANSI E1.11-2024 | USITT DMX512-A | Mandatory design basis for DMX in/thru. E1.11 specifies the 5-pin XLR. Whether a 3-pin XLR is non-conforming is UNCONFIRMED (standard not read); keep 5-pin as primary. |
| ANSI E1.20-2025 | RDM over DMX512 | Design basis for RDM. The download bundles E1.37-1/-2. |
| ANSI E1.37-1-2012 (R2022) | RDM dimmer message sets | Not needed |
| ANSI E1.37-2-2015 (R2021) | RDM IPv4 and DNS messages | Not needed (no IP) |
| ANSI E1.37-4-2026 | RDM firmware/file upload (as listed) | Useful: a field-update path for CRA |
| ANSI E1.37-5-2024 | General-purpose RDM messages | Useful |
| ANSI E1.37-7-2019 | RDM gateway and splitter configuration | Not needed |
| ANSI E1.5-2009 (R2024) | Theatrical fog made with aqueous solutions of di- and trihydric alcohols | Fluid specification to name in the manual and on our fluid |
| ANSI E1.14-2018 (R2023) | Recommendations for fog equipment manuals | Manual content checklist (text not reviewed: free download needs ESTA registration, not done) |
| ANSI E1.23-2023 | Design, execution and maintenance of atmospheric effects | User-side practice; reference it in the manual |
| ANSI E1.29-2009 (R2024) | Product safety standard for theatrical fog generators (water, glycol/glycerin solutions, refined alkane mineral oil) | The ESTA product-safety standard. A guide for test labs, based on UL 998 with fog-specific tests. Expect NRTLs to use it with UL 499 (§3). |
| ANSI E1.27-1-2006 (R2021) | Portable control cables for DMX512 | Cables and accessories |
| ANSI E1.27-2-2026 | Permanently installed control cables | Installation info |
| ANSI E1.30-1-2010 (R2021), -3-2009 (R2019), -4-2010 (R2021), -11-2019 (R2024); -7 and -10 (ANS status withdrawn) | ACN EPIs | Not relevant (no network) |
| ANSI E1.31-2025 / E1.33-2019 | sACN / RDMnet | Only if a network port is added (that would also trigger the RED DA review) |
| ANSI E1.40-2016 (R2021) | Theatrical dust effects | Not relevant |
| ANSI E1.3-2001 (R2021) | 0-10 V analog control (lists fog machines) | Optional |
Source: S4 (high; designations as listed today). E1.29 scope and the UL 998 basis: S4/S5 (medium).
5. Test lab view: tests, cost, lead time
EU (RED route)
| Block | Tests a lab will run | Cost | Lead time | Basis |
|---|---|---|---|---|
| RED 3.1(a): EN IEC 60335-1:2023 (+EN 62233, EN 62479) | Construction and marking: marking and instructions (cl. 7); access to live parts (8).<br>Electrical and thermal: input and current (10); heating test: enclosure, inlet, cord and touchable surfaces at max fog duty (11); leakage current and electric strength hot (13); transient overvoltage (14).<br>Fluid and humidity: fluid spillage and overflow, humidity (15); leakage and electric strength after humidity (16).<br>Abnormal operation (19): triac and thermostat short-circuited, pump blocked, empty tank / dry heating, electronic fault conditions; Annex R if software is safety-relevant.<br>Mechanical: stability and moving parts (20); mechanical strength (21); construction and components (22-24).<br>Supply and materials: inlet and cords (25); earth continuity (27); creepage, clearance and DTI (29); ball pressure and glow-wire (30). | ASSUMPTION €4k-10k. A heater with multi-day abnormal tests at an EU-accredited lab. Low-cost tiers are lower: LVD €500-1,000 in Asia (ComplianceGate). | 3-6 weeks (ASSUMPTION; sources say 2-8 weeks for non-NB products) | S51, S52, S53 |
| RED 3.1(b): EMC | Host:<br>- EN IEC 55014-1: conducted 150 kHz-30 MHz, disturbance power or radiated, click analysis;<br>- EN IEC 55014-2: ESD, RF fields, EFT, surge, conducted RF, dips;<br>- EN IEC 61000-3-2 harmonics;<br>- EN 61000-3-3 flicker.<br>Radio side: EN 301 489-1/-17 (host and remote). | €2k-6k (ASSUMPTION, between ComplianceGate €0.5-1.2k and Spilma's EU class-B €4-12k) | 2-4 weeks | S51, S52 |
| RED 3.2: EN 300 328 V2.2.2 | With a pre-certified module: reuse the module report, plus host radiated-spurious and power spot checks. Without one: the full suite (power, PSD, occupied BW, adaptivity/medium utilisation, receiver blocking, spurious). | Module: ASSUMPTION €1-3k. No module: €1-2k (ComplianceGate) to €10-20k for 3.1+3.2 together (Spilma) | 1-3 weeks | S51, S52 |
| RoHS | XRF screening, phthalate test of cables, supplier declarations, EN IEC 63000 file | €300-1,000 | 1-2 weeks | S51 |
| Ecodesign standby | Low-power measurement (EN 50564; designation from memory, UNCONFIRMED) | ASSUMPTION €300-800 | 1 week | n/a |
| Remote | EN 62368-1 or EN 62479; EN 301 489-1/-17; EN 300 328 (module) | ASSUMPTION €2-5k | 2-3 weeks | n/a |
| EU total | ASSUMPTION €10k-25k, incl. one re-test | 6-10 weeks | Sum of the above |
US / Canada
| Block | Tests | Cost | Lead time | Basis |
|---|---|---|---|---|
| NRTL listing (US + CA) | Electrical tests: input, temperature (normal and abnormal / burnout), leakage, dielectric, strain relief, grounding.<br>Construction: enclosure (flammability, impact), component review (listed SMPS, inlet, TCO).<br>Fog-specific: E1.29 fog tests (likely).<br>Manual review.<br>Factory follow-up: initial factory inspection, then ~quarterly unannounced visits. | ASSUMPTION $12k-30k initial (dual US/CA heating-appliance project; no public price list found) + $2k-5k/yr follow-up and listing fees | 8-14 weeks | No public source found |
| FCC 15B (SDoC) | Class B conducted (120 V) and radiated emissions | $800-2,000 (MarkReady); "as low as $1,000" (Particle) | 1-3 weeks | S49, S50 |
| ISED ICES-003 | Usually the same data as 15B; Canadian label | ASSUMPTION +$0-500 | Parallel to 15B | S37 |
What a pre-certified module saves:
- US: it avoids our own intentional-radiator certification, estimated at $20k-30k and 4-8 weeks (Particle). The host path is 15B only, about $3k-10k all-in (MarkReady).
- EU: it avoids the full EN 300 328 suite and the NB route for 3.2 if conditions are kept. It also cuts IC/RSS-247 work.
- Conditions: we must stay inside the grant conditions (antenna, power, enclosure detuning); otherwise the savings are lost.
6. Design measures implied
- Independent over-temperature protection. Fit a non-self-resetting thermal cut-out or thermal fuse on the die-cast block, in series with the heater and independent of the triac and MCU. EN 60335-1 cl. 19 short-circuits the triac and thermostat. Do not rely on firmware unless it is designed to EN 60335-1 Annex R (software class B). Consider a series relay driven by a separate watchdog.
- Earthing. Bond the die-cast exchanger, metal enclosure and pump bracket to PE (cl. 27; earth-continuity test). Choose a heater element with low hot leakage current and moisture-sealed terminations (cl. 13/16; glycol + humidity).
- Mains/SELV barrier. Use a 24 V SMPS module certified with reinforced insulation (IEC 62368-1/61558 component, accepted under 60335-1). Put DMX, OLED, radio, pump and UI all on SELV. Isolate DMX from the internal SELV with E1.11-compatible isolated transceivers. Keep creepage and clearance for reinforced insulation at 250 V on the PCB.
- Fluid path. Place the tank and pump so that spillage or overfill cannot reach live parts (cl. 15). Use glycol-compatible tubing, a drip tray and a vent. Check the pinch hazard at the pump head; enclose it (cl. 20).
- Hot surfaces. Guard the nozzle and block. Respect the cl. 11 touch-temperature limits, fit the IEC 60417-5041 hot-surface symbol, and provide a cool-down time before transport.
- Flicker (EN 61000-3-3) from burst-fire.
- Voltage step: 975 W at 230 V gives 4.24 A. With the reference impedance (0.24+j0.15 Ω phase + 0.16+j0.10 Ω neutral; values from memory, UNCONFIRMED), d ≈ 0.74 %.
- Flicker time per step: tf = 2.3·0.74^3.2 ≈ 0.88 s.
- Short-term limit (Pst ≤ 1): ≤ ~680 steps per 10 min (~68 steps/min, ~34 on/off cycles/min).
- Long-term limit (Plt ≤ 0.65, continuous): ≤ ~170 steps per 10 min, i.e. a burst period ≥ ~7 s.
- Measures: zero-cross synchronised switching; a firmware-configurable control period (avoid ~1 s PWM); measure with a flickermeter in EVT. The analytical method is not valid for fast sub-second bursts; that rule is from memory.
- US variant: no flicker rule found (8.1 A at 120 V); use the same firmware.
- EMC. Fit an X-capacitor and common-mode choke at the inlet, and an RC snubber across the triac. Zero-cross switching keeps clicks (EN 55014-1 discontinuous disturbance) low. Add ESD protection on XLR, buttons and OLED. Use no phase-angle control, which keeps EN 61000-3-2 Class A easy.
- Standby and off. A double-pole switch in the C14 module gives true off (0 W). Standby with the radio listening must stay ≤0.50 W: duty-cycled nRF RX, OLED off, heater off, and a low no-load-loss SMPS. Standby with display ≤0.80 W. Auto-drop to standby after ≤20 min idle (if in scope).
- Marking (EN 60335-1 cl. 7) and RED/GPSR.
- Ratings and identity: rated voltage(s) and frequency per variant; rated power input; name/trademark + postal and electronic address; model/type; serial/batch.
- Symbols: fuse rating at the holder; IP code if above IPX0; hot-surface symbol; WEEE bin; CE.
- Radio, US/CA labels: RED Art. 10 band and max-power information in the manual; "Contains FCC ID / IC"; the FCC 15.19 text; CAN ICES-003(B); the NRTL mark on the US variant.
- Remote: the same set, scaled down.
- Manual (ANSI E1.14-2018 (R2023) checklist + EN 60335-1 cl. 7.12).
- Fluid and use: approved fluids (E1.5-compliant) and a "no flammable fluids" warning; ventilation and dosage; smoke-detector interaction; slippery residue, visibility and egress; hot outlet; refill only when unplugged.
- Consumer and maintenance: cleaning and maintenance; transport when cool; the children/persons-with-reduced-capabilities statement for consumer use.
- Technical data: DMX/RDM personality, plus radio data.
- Legal and support: FCC/ISED statements; WEEE and battery disposal; the CRA support period and security contact.
- CRA readiness.
- Code and keys: signed firmware with a secure bootloader; per-unit pairing keys between machine and remote; no default credentials.
- Documentation and process: an SBOM; a vulnerability-disclosure policy and an ENISA reporting process from launch; a declared support period.
- Update path: RDM (E1.37-4) or USB.
- Remote.
- Battery: a user-replaceable 2x AAA battery door with no tools or common tools (Batteries Reg. Art. 11 from 18.2.2027); no coin cells (Reese's Law); polarity marking.
- Compliance: its own RED DoC and FCC/ISED labels.
- Materials. Use low-Pb Al die-cast and brass (RoHS exemption status UNCONFIRMED), a non-DEHP/DINP mains cord (REACH/Prop 65), and keep SVHC declarations from all suppliers.
- Machinery borderline. Write the scope rationale and an ISO 12100-style risk assessment now, so either outcome is covered by 20.1.2027.
7. Open items (owner: compliance unless noted)
- EUR-Lex check by hand of the OJ page references and the exact text of 2023/826 (scope annex, definitions of network/reactivation) and 2022/30. Confirm or reject Del. Reg. (EU) 2026/339 (repeal of 2022/30).
- NRTL standard: get the scope opinion (UL 499 / E1.29 / CSA counterpart) from Intertek, QPS or UL. Needs human contact; not done here.
- Ecodesign 2023/826: decide whether we are in scope. Interim: design to the limits regardless.
- Machinery Regulation: lab opinion on fog machine = machinery? Decide before the DoC template is frozen (pre-20.1.2027 shipments vs later).
- Flicker: EVT measurement with the real heater and control period. Confirm the Zref and d-limit values from the purchased IEC 61000-3-3.
- Kickstarter as GPSR "online marketplace"; EPR registrations (WEEE, batteries, packaging) for each non-PL EU country shipped to; a US responsible party for the SDoC.
- Get EN IEC 60335-1:2023+A11 and the ANSI E1.14 / E1.29 texts. The E1.x documents are free from ESTA after registration, which a human must do.
- Prop 65 and NFPA 72 not researched in the time box.
- Choose the module vendor with a full FCC/ISED modular grant and RED test reports (EN 300 328 V2.2.2, EN 301 489-17 V3.3.1, EN 62368-1/62479).
8. Sources (all accessed 2026-10-30)
- S1 Antari Z-380/Z-390 tech file incl. EC DoCs (PDF text read): https://prostage.no/media/multicase/documents/pdf%20antari/z-390-an_ce%20lvd,%20asp_c1.pdf
- S2 JEM ZR Series EU DoC (HTTP 404 on fetch today; search snippet only): https://jemprofessional.com/wp-content/uploads/2025/10/JEM-ZR-Series_EU-DoC-EN.pdf
- S3 EU alert A12/1693/19 "LED 500" fog machine (snippet): https://www.bromley.gov.uk/leaflet/328565/22/680/d
- S4 ESTA TSP published documents (read): https://tsp.esta.org/tsp/documents/published_docs.php
- S5 ABTT on ESTA reaffirmations incl. E1.29/E1.5 (R2024) (snippet): https://www.abtt.org.uk/estas-technical-standard-program-announces-three-newly-published-standard-reaffirmations-and-seven-documents-now-in-public-review/
- S6 European Commission, standby/networked standby/off mode (read): https://energy-efficient-products.ec.europa.eu/product-list/standby-networked-standby-and-mode_en
- S7 UL on 2023/826 (snippet): https://www.ul.com/news/eu-regulation-2023826-new-energy-efficiency-requirements
- S8 TÜV SÜD on 2023/826 (snippet): https://www.tuvsud.com/en-gb/press-and-media/2023/may/regulation-concerning-ecodesign-requirements
- S9 Nemko on standby limits (snippet): https://www.nemko.com/blog/changing-eu-requirements-for-standby-mode
- S10 EUR-Lex 2023/826 (fetch returned empty): https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32023R0826
- S11 SIQ on EN IEC 60335-1:2023+A11:2023 (snippet): https://www.siq.si/en/news/new-european-standard-en-iec-60335-12023-a112023-issued/
- S12 IBF Solutions, LVD OJ lists (snippet): https://www.ibf-solutions.com/en/news-and-knowledge/official-journals/standards-for-the-low-voltage-directive
- S13 EUR-Lex 2022/30 (snippet of Art. 1): https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32022R0030
- S14 Orgalim, "internet-connected radio equipment" (snippet): https://orgalim.eu/resource/internal-market-common-understanding-of-the-term-internet-connected-radio-equipment/
- S15 In Compliance Magazine on EN 18031 (snippet): https://incompliancemag.com/reds-cybersecurity-requirements-update-en-18031-x2024/
- S16 Ezurio on Impl. Dec. (EU) 2025/138 (snippet): https://www.ezurio.com/resources/blog/understanding-eu-commission-implementation-of-decision-eu-2025-138-new-harmonized-standards-and-restrictions
- S17 Reproduction of 2025/138 (snippet): https://github.com/Platanor/hardware-compliance-handbook/blob/main/primary-sources/red-implementing-decision-eu-2025-138-en-18031.md
- S18 European Commission CRA page (snippet): https://digital-strategy.ec.europa.eu/en/policies/cyber-resilience-act
- S19 CRA text, Art. 71 (snippet): https://www.cyberresilienceact.eu/regulation.html
- S20 ComplianceGate, Batteries Regulation timeline (snippet): https://www.compliancegate.com/eu-batteries-regulation-timeline-and-dates/
- S21 CMS on the Batteries Regulation (snippet): https://cms.law/en/aut/legal-updates/eu-sustainable-batteries-regulation-where-are-we-now
- S22 EUR-Lex 2023/1230, Art. 2(2)(p) (snippet): https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX%3A32023R1230
- S23 TÜV Rheinland on the MR, 20.1.2027 (snippet): https://www.tuv.com/world/en/new-machinery-regulation-eu-2023-1230.html
- S24 EUR-Lex Impl. Dec. (EU) 2022/2191 (snippet): https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32022D2191
- S25 EUR-Lex Impl. Dec. (EU) 2025/893 (snippet): https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=OJ%3AL_202500893
- S26 Spilma, RED harmonised standards list 2026 (snippet): https://www.spilma.com/en/red/standards
- S27 IB-Lenhardt on RED (snippet): https://ib-lenhardt.com/kb/faq/radio-equipment-directive-red
- S28 C-PRAV on the updated Commission RED Guide (snippet): https://c-prav.com/2026/10/14/european-commission-publishes-updated-guide-to-the-radio-equipment-directive/
- S29 Nemko on EN 55014-1/-2:2021 in the OJ (snippet): https://www.nemko.com/blog/cispr-14-1-and-22020-to-be-published-and-updated-in-the-official-journal-in-2021
- S30 European Commission EMC harmonised standards page (snippet): https://single-market-economy.ec.europa.eu/single-market/goods/european-standards/harmonised-standards/electromagnetic-compatibility-emc_en
- S31 European Commission PPWR application news (snippet): https://environment.ec.europa.eu/news/new-eu-rules-packaging-enter-application-2026-08-11_en
- S32 PPWR explainer (snippet): https://packagingregulation.org/
- S33 BDO, entities required to register (snippet): https://bdo.mos.gov.pl/news/podmioty-zobowiazane-do-rejestracji-w-bdo/
- S34 BDO sections IV/V/VI (snippet): https://rejestracjabdo.pl/czy-sprzedawca-baterii-musi-rejestrowac-sie-jako-wprowadzajacy/
- S35 16 CFR 1263.2 (snippet): https://www.law.cornell.edu/cfr/text/16/1263.2
- S36 Federal Register 2023-20334, AAA statement (snippet): https://www.federalregister.gov/documents/2023/09/21/2023-20334/safety-standard-for-button-cell-or-coin-batteries-and-consumer-products-containing-such-batteries
- S37 IB-Lenhardt on ICES-003 Issue 7 (snippet): https://ib-lenhardt.com/news/ised-published-ices-003-issue7
- S38 Nemko on ICES-003 Issue 7 (snippet): https://www.nemko.com/blog/canada-publishes-updated-interference-causing-equipment-standard
- S39 ISED RSS-Gen Issue 5 A2 (search result): https://ised-isde.canada.ca/site/spectrum-management-telecommunications/sites/default/files/documents/RSS-Gen-i5-A2-2021-02EN.pdf
- S40 Compatible Electronics, RSS-247 Issue 3 (snippet): https://www.celectronics.com/Wireless-RF-Testing-WiFi-Bluetooth-Other/Industry-Canada-ISED-Testing
- S41 Rosco Vapour, ETL/cETL (snippet): https://us.rosco.com/en/product/vapour-fog-machine
- S42 Ultratec Power Fog Industrial, QPS CSA/UL (snippet): https://www.lighttheatrics.com/ultratec-power-fog-industrial/
- S43 Ultratec Eclipse LFG, QPS (snippet): https://ultratecfx.com/atmospherics/products-catalog/eclipse-lfg/
- S44 Chauvet DJ Hurricane Haze 4D, cULus (snippet): https://www.chauvetdj.com/products/hurricane-haze-4d/ ; Hurricane 700, CE only: https://www.chauvetdj.com/products/hurricane-700/
- S45 L&L Kilns, UL 499:2014 Ed.14 + R:31May2023 (snippet): https://hotkilns.com/kiln-features/ll-kilns-ul499-standard-etl-listing-safety
- S46 Flicker analytical method and limits review (snippet): https://github.com/jacho35/protectionpro/pull/405
- S47 IEC 61000-3-3:2013 preview (snippet): https://cdn.standards.iteh.ai/samples/19367/fbf1fcffc30b43e28407edc627d0d5c9/IEC-61000-3-3-2013.pdf
- S48 Compatible Electronics on EN/IEC 61000-3-3 (snippet): https://www.celectronics.com/learning-center/en-iec-61000-3-3
- S49 Particle, certification costs (snippet): https://docs.particle.io/hardware/certification/certification/
- S50 MarkReady, FCC costs 2026 (snippet): https://markready.io/learn/fcc-certification-cost
- S51 ComplianceGate, CE marking cost (snippet): https://www.compliancegate.com/ce-marking-cost/
- S52 Spilma, certification cost ranges (snippet): https://www.spilma.com/en/guides/certification-costs
- S53 EcoComply, CE marking costs (snippet): https://ecocomply.ai/blog/what-does-ce-marking-cost-for-your-product
- S54 eCFR 47 CFR Part 15 (automated fetch redirected to unblock.federalregister.gov; not read): https://www.ecfr.gov/current/title-47/chapter-I/subchapter-A/part-15
- S55 Eurolite NX-200 manual (snippet): https://www.steinigke.de/download/51701978-Anleitung-41061-1.000-eurolite-nx-200-nebelmaschine-de_en.pdf
- S56 Eurolite WRC-3 remote, 433.92 MHz (snippet): https://www.steinigke.com/mpn51702028-eurolite-wrc-3-wireless-remote-control.html
- S57 Highlite manual, "DoC on product page" (snippet): https://www.highlite.com/media/attachments/MANUAL/50706_MANUAL_GB_V1.pdf
- S58 GOV.UK factsheet on 2022/30, 1.8.2025 (snippet): https://www.gov.uk/government/publications/radio-equipment-regulations-2017/regulation-eu-202230-factsheet
- S59 UL Solutions RED cybersecurity FAQ (snippet): https://www.ul.com/resources/red-cybersecurity-requirements-faqs
- S60 iTeh catalogue, EN IEC 60335-1:2023/A11:2023: https://standards.iteh.ai/catalog/standards/clc/c84c19c2-cca6-4191-9cc4-89fd44c86e0f/en-iec-60335-1-2023-a11-2023
- S61 Teldat on CRA Art. 14 reporting from 11.9.2026 (snippet): https://www.teldat.com/glossary/cyber-resilience-act-new-requirements-reporting-obligations-2026-art-14-cra/
- S62 EUR-Lex RED 2014/53/EU (unreadable today): https://eur-lex.europa.eu/eli/dir/2014/53/oj/eng
- S63 EUR-Lex GPSR 2023/988 (unreadable today): https://eur-lex.europa.eu/eli/reg/2023/988/oj/eng
- S64 EUR-Lex RoHS 2011/65/EU: https://eur-lex.europa.eu/eli/dir/2011/65/oj/eng ; 2015/863: https://eur-lex.europa.eu/eli/dir_del/2015/863/oj/eng (not fetched)
- S65 EUR-Lex WEEE 2012/19/EU (not fetched): https://eur-lex.europa.eu/eli/dir/2012/19/oj/eng
- S66 EUR-Lex REACH 1907/2006 (not fetched): https://eur-lex.europa.eu/eli/reg/2006/1907/oj/eng
- S67 EUR-Lex Batteries 2023/1542 (not fetched): https://eur-lex.europa.eu/eli/reg/2023/1542/oj/eng
- S68 EUR-Lex CRA 2024/2847 (not fetched): https://eur-lex.europa.eu/eli/reg/2024/2847/oj/eng
- S69 EUR-Lex PPWR 2025/40 (not fetched): https://eur-lex.europa.eu/eli/reg/2025/40/oj/eng
- S70 EUR-Lex MD 2006/42/EC (not fetched): https://eur-lex.europa.eu/eli/dir/2006/42/oj/eng
- S71 EUR-Lex Del. Reg. (EU) 2026/339 (fetch empty; existence UNCONFIRMED): https://eur-lex.europa.eu/eli/reg_del/2026/339/oj/eng
02-concept/research/sourcing-electronics.md
Electronics sourcing notes (concept), 2026-10-30
- lcsc DB: build 4325c9c05dd3280c, newest row 2026-10-29T11:52Z, age 0.65 d (fresh). Prices are JLCPCB list USD at the 1/100/1000 breaks; where a part has no 1000 tier the highest tier is repeated.
lcsc live C10065confirmed stock 13552 on 2026-10-30. - FX (ECB 2026-10-29, https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml): 1 EUR = 1.1130 USD, 1 EUR = 4.3938 PLN (so 1 USD = 0.8985 EUR). NBP table A 2026-10-29 (https://api.nbp.pl/api/exchangerates/rates/a/eur/): EUR 4.3951 PLN, USD 3.9473 PLN. Today's (2026-10-30) fixing was not yet published.
- Mean Well IRM-15 spec PDF (read): no-load <0.1 W, leakage <0.25 mA/277 Vac, input 85-305 Vac. Other AC-DC modules (HLK-20M24, MORNSUN LS20) datasheets not read; LS20-23B24R3 not on LCSC.
Substitutions / deviations
- BTA16-600BW not found; BTA16-800BWRG (insulated) used. MOC3083 recommended over MOC3063 for 230 V.
- Neutrik NC3MD-L-1/NC3FD-L-1/NC5xD-L-1 panel types not on LCSC; PCB-mount NC3MAAH-0/NC3FAAH-0/NC5MAV/NC5FAV listed (need panel cutout design) or panel NC3MD-LX.
- Raytac MDBT50Q and XKC-Y25 not on LCSC. Pt1000 >=400 C not found on LCSC.
- Remote module: cheaper E73-2G4M08S1F is unverified silicon; the safe choice is the same nRF52840 module.
- IEC inlet: Schurter KM00.1205.11 is 14 USD; cheap path HCTL DB-14-F1 (10 A) + rocker.
- 1000 uses the highest listed tier when none exists.
Risks
- FCC/CE of Ebyte modules not verified; Ebyte parts are extended parts (setup fee per distinct extended part at JLCPCB).
- Almost everything is extended class (not basic); stock low on KM00 (50), NC5MAV (26), IRM-15-24 (363).
- Relay HF32F rating varies by variant; verify 16 A. MOV, X2, Pt1000, level sensor, PCB/SMT are ASSUMPTION ranges (no price read). JLCPCB page read: SMT setup $8 + $0.0016 per joint only.
- Isolator 3b (2-ch CA-IS3721) may not provide TX/RX/DE; design check needed.
- TMC2209, TPS54202 etc. are DB prices, not live-checked beyond C10065.
02-concept/research/sourcing-mechanical.md
Mechanical / thermal / fluid / cable sourcing (concept), 2026-10-30
Counts: 26 rows. SOURCE = 6 (diyPresso EX5, Goodman's/Univen fuse, Grund E.G.O., TIM.pl cord, 2 LCSC DB rows). Everything else is ASSUMPTION.
What was readable
- Readable by script: diyPresso, goodmans.net, grund-regeltechnik.de, tim.pl, cablesplususa, Calco PDF (via oc fetch), LCSC offline DB.
- Not readable (JS/403): Alibaba, AliExpress, eBay, Amazon, Kamoer datasheet on directindustry, Ampere. Prices from those appear only in search-engine summaries, so they are labelled ASSUMPTION with the seen value in the price column.
- Not researched in time: cartridge/tubular heaters (rows 2a/2b), PTFE tube, strainer, mica/aerogel, enclosure price, feet/screws/mesh. Their ranges are unverified judgement.
Key values read
- Heaters: 900 W / 220 V Al block, ~6.5 USD (Alibaba summary); 900 W 110-120 V Sharelife SM-H900 ~450 g, 12.8x6.5x4.5 cm, no sensor lead; AliExpress 900 W rod "200-250 C working". No 1000 W cast block found. No listing states 250-290 C duty.
- Kamoer NKP (manual read via search summary): brushed DC 24/12/6 V, 0.3 A at 24 V, 10-60 ml/min, <40 dB, silicone tube 200 h, BPT 1000 h, motor 800 h, no max pressure published (low pressure). NKP is NOT a stepper. Stepper alternative KAS-ST 5-88 ml/min, <=53 dB@50cm, ~225 g (pressure/tube life not found).
- Ulka EX5 230 V 48 W (not 18 W): 15 bar, 650 cc/min open flow, 2 min on/1 min off, brass outlet. A 24 V version (CEME 1.01.326.07/PA) is 24 V AC, not DC. Fog pump 40DCB 18 W ~210 ml/min.
- 24 V DC LP7 vibration pump: 3 bar, 50-200 ml/min (Alibaba summary); not rated for glycol fluid.
- Thermal fuse: highest rating found 240 C (Univen 10 A 250 V / 15 A 120 V; Ampere SWTC holding 210 C; generic RY 15 A 250 V claimed CCC). No UL/VDE/ENEC shown on any. Microtemp GXAM up to 25 A 250 V (old Farnell datasheet).
- KSD301 (Calco datasheet read): max OT resin 180 C, ceramic 220 C; max ambient ceramic 280 C continuous / 310 C <15 min; UL/CQC/TUV. Yusheng: ceramic 0-250 C, 10/16 A 250 V, 250+-10 C trips reset at 210+-15 C. LCSC has only 160 C max.
- E.G.O. 55.13253.010: 50-300 C, sensor to 330 C, 16 A, capillary 1130 mm, EUR 36.85 incl. VAT; reset type not stated. 55.13583.010 safety-reset (420 C max, 16 A 250 V) is the likely STB but no price.
Design flags
- A 240 C thermal fuse cannot be mounted on a 250-290 C block (it would open in normal use; holding temp 210 C). Needs a cooler location, a thermal path design, or a limiter with 300-350 C trip (E.G.O. 55.13xxx safety-reset or Jumo STB, EUR 40-300).
- Ceramic KSD301 reaches ~250 C trip but max ambient 280 C and uncertified in our hands: unsuitable as the sole safety device on a 290 C block.
- NKP DC brushed motor life 800 h vs tube life 200 h (silicone): consumables issue.
- Tank: HDPE jar is opaque white; clear PET jar exists but heat/fluid suitability unchecked.
Single-source risks
Heater block (all Chinese stage-parts sellers, no dimension/sensor data), E.G.O. safety limiters (single OEM), Kamoer NKP/KAS (only maker), US 120 V heater (Sharelife unavailable).
Cleanup note
I created a scratch dir /srv/tmp/oivo-task-outputs/2dfb9342-14ba-4130-a21e-ac51e0b43c49--agent-ace3ecd9c23928261/w (system-designated scratchpad, outside the run dir) with fetched HTML. I did not read anything else outside the allowed paths. WebFetch also auto-saved a Calco PDF in the session tool-results folder (not opened).
02-concept/review-F1.md
F1 independent review — findings and dispositions (2026-10-30, review finished 04:59 Warsaw)
Reviewer: fresh-context subagent that did not author the design. Scope: hazards.md, safety functions, mains and heat paths, plausibility of key numbers. It re-ran fluid_energy.py, electrical_budget.py and thermal_budget.py in a scratch copy (0 differences vs the delivered results) and confirmed the headline numbers (energy per ml, continuous rate, warm-up, burst, flicker, standby). Verdict: 5 BLOCKING findings. Per the gate rule, blocking findings reopened work once (revision C1.1); everything else is on the after-release list below.
| Id | Finding (short) | Disposition | Evidence after the fix |
|---|---|---|---|
| B1 | STB 320 °C could let the block overshoot to 345–382 °C (≥ autoignition 371 °C) | FIXED: windows −10 K (setpoints 240/260/270 °C, firmware cap 275 °C), comparator 295 °C, 2-pole STB 300 °C (0/+8 K, τ ≤ 10 s); transient now calculated | calc/runaway_overshoot.py: peaks 314 °C (comparator) / 332 °C (STB alone, cl. 19.11.3) at 253 V +5 % < 351 °C |
| B2 | Shorted protection Pt1000 reads cold → hardware channel blind | FIXED: window comparator trips on under-range (short) and over-range (open/over-temp), latched; trip disables the pump driver in hardware | hazards.md SREQ-05, DFMEA; INTERFACES.json IF-S2 |
| B3 | Heater sheath fault with reversed L/N (non-polarised Schuko) bypasses single-pole switches | FIXED: 2-pole heater relay and 2-pole STB; new cl. 19 test with reversed polarity | hazards.md HZ-01, SREQ-25; architecture.md B2.1; BOM SAF-01 |
| B4 | Blocked outlet: 40–64 bar steam pushes hot fluid back into the polymer line next to mains | FIXED: stainless check valve + inlet stub (contained in steel), pump and drip tray moved to the cold zone, HZ-12 re-rated S4 | hazards.md HZ-12, SREQ-26/27; BOM FLD-01; architecture.md B2.3 |
| B5 | US triac Tj 129–155 °C on the 1 mm steel chassis | FIXED: finned Al heatsink Rsa ≤ 2.5 K/W, evaluated at max current | calc/electrical_budget.py: US Tj 111 °C, EU 86 °C; BOM EL-29 |
| A1 | US fuse T10 A margin 1.09 | FIXED in calc and BOM: T12.5 A UL 248-14, 15 A UL inlet (US lines) | electrical_budget.results.json (margin 1.36) |
| A2 | Earth bond test at 25 A, dedicated bond lead | FIXED in SREQ-01 | hazards.md |
| A3 | Watchdog must latch, be kicked from the main loop, relay proof test | FIXED in SREQ-07 / DFMEA | hazards.md |
| A4 | Pump window must be a fixed HW threshold, EN gated in hardware | FIXED in SREQ-12, IF-S2 | hazards.md, INTERFACES.json |
| A5 | Heater not capped at the setpoint while fogging | FIXED in model and architecture (feed-forward + P on setpoint) | thermal_budget.py, architecture.md B2.5 |
| A6 | End-loss formula wrong, bridges missing | FIXED: losses now 30–35 W (were 22–26 W) | thermal_budget.results.json |
| A7 | Coil wall flux 13 / 26 W/cm² — film boiling, burst spitting risk | AFTER RELEASE (top technical risk): coil test rig before casting freeze; prototype burst capped at 40 ml/min (DR-20) | REPORT.md R3 |
| A8 | Flicker analytical method invalid for on-pulses < 1 s | FIXED as firmware rule (on/off ≥ 1 s), flickermeter check in EVT | architecture.md B2.5 |
| A9 | Sheath temperatures above 360 °C in faults; casting process | FIXED in IF-T1 (heater ≥ 470 °C sheath), gravity/permanent-mould casting | architecture.md, cost.md §4 |
| A10 | Vapour density 0.45 → 0.79 kg/m³: jet 63 m/s, plume +66–93 K at the guard | FIXED in models: jet noise 31.6 dB (combined 42.4 dB(A)), plume +79 K | noise_budget / thermal_budget results; ZAD-SAF-03 stays partly |
| A11 | Missing hazards: condensate ingress, refill spill, hot terminals, drying start | FIXED: HZ-16/17/18, SREQ-29/30 | hazards.md |
| A12 | Warm-up > 3 min at −10 % heater tolerance; standby 0.30–0.35 W with DMX parsing | FIXED: heater tolerance ±5 % (DR-02); standby note (still < 0.5 W) | requirements.md, estimates.md |
Re-review: the five blocking items were fixed by the author; no second review round was run (time box). The calculation receipts above are the evidence; the physical confirmation is the EN 60335-1 cl. 19 test set (T-22).
02-concept/spec-sheet.md
ZAD-1 compact fog machine — customer specification sheet (draft for ZAD-CRT-04)
Every number below is traced: C = calculation (script in calc/, value in estimates.md), T = planned
test (id in ../01-requirements/requirements.md §6), D = design definition. No number is a measurement yet:
the sheet becomes a release document only after the listed tests pass. Output is given as fluid vaporised per
minute (ml/min, by weighing); no cfm/m³ figures are claimed because no common test method exists.
| Feature | Value | Basis |
|---|---|---|
| Continuous fog output, no reheat pauses (standard E1.5 fluid*, 230 V / 120 V) | 25 ml/min (declared; calculated 27.6) | C thermal_budget.py; T-02, T-03 |
| Continuous output at −10 % mains voltage | 20 ml/min (calculated 22.2) | C; T-02 at 207 V |
| Burst: fluid vaporised in the first 30 s from READY | 20 ml (calculated 23.7) | C; T-04 |
| Lowest steady output | 2 ml/min | D metering; T-05 |
| Warm-up to full output | under 3 minutes (calculated 2.7) at 230 V/120 V; under 4 min at −10 % | C; T-01 |
| Fluid settings | Quick / Standard / Dense (adapts vaporiser temperature 240–270 °C) | D; T-08 |
| Compatible fluids | water-based glycol/glycerol fluids to ANSI E1.5 (e.g. Antari FLL/FLP types) | D; T-08 |
| Tank | 1.4 L usable, translucent, lit, refill without tools while hot | C packaging_budget.py; demonstration |
| Control | DMX512-A (2 ch) in/thru on 3-pin and 5-pin XLR, isolated; RDM; built-in timer (interval 1–600 s, duration 1–120 s, 1–100 %) | D; T-12 |
| Wireless remote (included) | two-way status, up to 8 machines in 4 groups; range ≥ 50 m line of sight indoors (calculated 87 m) | C link_budget.py; T-13 |
| Power | EU 220–240 V~ 50/60 Hz, 960 W rated; US 120 V~ 60 Hz, 965 W rated, 8 A | C electrical_budget.py; power meter |
| Ready (hot, not fogging) / standby / off | about 36 W / under 0.5 W / 0 W | C; T-10, T-11 |
| Noise at 1 m | about 45 dB(A) while fogging (calculated 42.4); silent when ready (no fan) | C noise_budget.py; T-16 |
| Size / weight | 295 × 178 × 185 mm / 2.8 kg (empty) | C packaging_budget.py (concept envelope); weighing |
| Mounting | floor feet; hanging bracket with safety-cable eyelet included; tilt ±30° | D; T-15 |
| Protection | over-temperature: firmware limit + 2 independent hardware cut-offs (2-pole); low-fluid pump stop; stop within 1 s on DMX loss | D (hazards.md, calc/runaway_overshoot.py); T-14, T-19, T-22 |
| Operating ambient | 5–40 °C | C; climatic test |
| Conformity (planned) | CE (RED, RoHS, WEEE), FCC Part 15, NRTL listing — see conformity plan | ../01-requirements/conformity-plan.md |
* Standard fluid = composition of Antari FLL (42 % water, 53 % propylene glycol, 5 % glycerol, SOURCE SDS). Declared values are rounded down from the calculation to leave a test margin.
Quick-start card (draft, ZAD-UX-05)
- Fill the tank with an ANSI E1.5 water-based fog fluid (cap at the rear; level light shows the fill).
- Connect the cord, switch on at the rear. The display counts down the warm-up (under 3 minutes).
- Press FOG on the remote (already paired) or on the machine — or patch DMX address 001 (2 channels).
- To finish: hold STOP for 2 s → the machine purges and cools; switch off. Safety on one line each: never aim at people closer than 1 m; hot outlet; isolate smoke detectors only with the venue's permission; keep exits visible; wipe condensate; use only E1.5 fluids.