LEAK FINDER - REAL-PARTS REFERENCE PACKAGE
Revision R1 | 20 October 2026

START HERE
1. Open Leak_Finder_Reference_Model.html in a modern desktop browser with WebGL.
   Everything needed for the viewer is embedded; internet is not required.
2. Read Leak_Finder_Build_Guide.pdf. It contains the full electrical and plumbing
   schedules, ESP32 pin map, dimensions, assembly sequence and open fit checks.
3. For a 3D application, import Leak_Finder_Reference_Assembly.glb.
   glTF units are metres, Y is up. The wet board is 1.400 x 1.100 metres.

SHARING
Send this whole ZIP, or send just the HTML for the interactive reference.
The PDF and CSVs can be opened without the viewer. Files are not hosted publicly.

INSPECTING CONNECTIONS
The viewer contains 303 component/material instances, 135 external electrical
connection records and 201 plumbing connection records.
- Wire by wire: choose a circuit, then click an E ID to trace its endpoints.
- Pipe joints: click a J ID to inspect both ports and the joining method.
- 3D assembly: choose a part or connection in the inspector.
- Laptop view: USB-A/USB-C data adapter -> UH700 USB 3 Micro-B HOST; then
  three separate Type-A-to-Micro-USB cables -> ESP32 nodes A, B and C.
- Turn on Electrical harness to see wiring. Explode is an inspection aid.

IMPORTANT REFERENCE LIMITS
This is a chosen reference parts set, not confirmation of the parts you own.
The exact boards and variants are named in the BOM. Pin maps do not transfer
to arbitrary ESP32 clones, C3/S3 boards or alternate ADC/driver revisions.
Three bodies use manufacturer STEP-derived meshes: Adafruit 1085 ADC,
Adafruit 5648 driver, Tameson NLB-014 needle valve. Other bodies are reconstructed
or custom and identified in each inspector entry.

Thread interfaces are documented, but actual sealing-seat compatibility, seal
dimensions, torque, hose/clamp supplier codes and final pipe cuts remain open.
Do not cut pipe from the coordinate or layout-span fields. Dry-fit real parts.
The inlet hose barb, suction strainer and gauge configuration need supplier
item confirmation. No pressure qualification or final tolerance/collision release
is claimed. Verify the exact pump label and shutoff behavior.

CIRCUIT CHOICES IN THIS REVISION
- ESP32 USB powered; no external 5 V connection to its 5V header.
- ADXL355 and Adafruit ADS1115 VIN powered from ESP32 3V3.
- Analog pressure: 10k top / 15k bottom divider, ADC A0.
- Flow pulses: Adafruit 757 BSS138, LV 3.3 V / HV 5 V / common GND.
  Zone pulse B1 -> A1 -> GPIO34; node A F0 pulse B2 -> A2 -> GPIO32.
- Burkert valve cold coil: 9 W / 12 V = 0.75 A.
  Adafruit 5648 driver includes flyback protection and input pull-down.
- PE/earth is separate from DC 0 V and goes to the valve plug earth terminals.
- Upstream manual bypass is before F0 and is NOT a pressure relief valve.

WHAT IS NOT INCLUDED
No working ESP32 firmware, live telemetry, trained detection model or proof of
leak-detection performance is included. Start with one dry node and one water
branch. Validate measured flow, pressure, valve isolation and vibration features
before expanding to three zones.

EDITABLE FILES
reference_design.json is the canonical data. The CSVs are readable schedules.
editable_source contains viewer source, data/build scripts, baked CAD mesh data
and photo data. Rebuild the HTML with Python 3 using build_offline.py.
After any design change, recheck pin/port definitions and the electrical/water
schedules together. Open the rebuilt HTML and export a new GLB.
The GLB is mesh geometry, not an editable feature-based CAD assembly or a
released 3D-print file.

Sources and license notices are in source_links.md and LICENSES.txt.
