WX-Level
WX-Flow

WX-Level — Smart Well Level Meter

Submersible pressure transducer + solar-powered ESP32 controller for continuous groundwater level monitoring. Mounts on any monitoring or irrigation well. Transmits water level, temperature, and battery status every 15 minutes via LoRa or cellular to the WaterXchange cloud.

Specifications

Measurement
Water Level
Pressure-based, 0–100 ft (30 m) range
Accuracy
±0.1 ft
0.1% FS, temperature compensated
Temperature
-5 to 50°C
Built into pressure transducer
Barometric Comp
Onboard BME280
Atmospheric pressure + humidity
Connectivity
LoRa + Cellular
SX1276 (915 MHz) + SIM7000G fallback
Power
Solar + LiPo
6W panel, 3.7V 6000mAh battery
Battery Life
Indefinite (solar)
30+ days battery-only (no sun)
TX Interval
15 min default
Configurable 1 min – 24 hr
Enclosure
IP67 Wellhead Box
3D-printed PETG + gasket
MCU
ESP32-S3
Deep sleep: 10 µA
Probe Cable
Up to 100 ft
Vented 4-20mA shielded cable
Target BOM
~$85
At qty 100

Bill of Materials

ComponentPart / SpecSourceUnit Price
MicrocontrollerESP32-S3-WROOM-1 (N16R8)Espressif / LCSC$3.50
Pressure TransducerSubmersible 4-20mA, 0-10 PSI, 316SS, vented cableAlibaba / HVAC Quick (CFSensor)$18.00
Barometric SensorBME280 (pressure + temp + humidity)Bosch / LCSC$2.50
LoRa ModuleSX1276 915MHz (RFM95W or equivalent)HopeRF / Adafruit$5.00
Cellular ModuleSIM7000G (LTE Cat-M1 / NB-IoT)SIMCom / Amazon$12.00
Solar Panel6W 6V monocrystalline, 170×200mmAmazon / Alibaba$8.00
Battery3.7V 6000mAh LiPo (18650 × 2 or pouch)Amazon / LCSC$6.00
Charge ControllerCN3791 solar MPPT charge ICLCSC$0.80
Voltage RegulatorAP2112K-3.3 (LDO 3.3V 600mA)LCSC$0.30
4-20mA Receiver250Ω precision resistor + ADS1115 16-bit ADCTI / LCSC$2.00
Antenna (LoRa)915MHz SMA whip, 3dBiAmazon$2.00
Antenna (Cell)LTE/GSM SMA whipAmazon$3.00
ConnectorsM12 cable gland (IP68) × 2, SMA bulkhead × 2Amazon$4.00
PCBCustom 2-layer, 80×50mmJLCPCB$2.00
Enclosure3D-printed PETG + silicone gasketBambu Lab (you print)$3.00
MiscScrews, standoffs, desiccant pack, wire, heatshrink$3.00
Total BOM (qty 1)~$75

Enclosure Design — For Fusion 360

This is your part. Model these two pieces in Fusion 360, export as 3MF, and slice in Bambu Studio. Print in PETG for UV and moisture resistance.

Part A: Wellhead Controller Box

Mounts on the wellhead casing or a nearby post. Houses the PCB, battery, and charge controller. Solar panel mounts on lid exterior.

Outer Dimensions
160 × 110 × 55 mm
Wall Thickness
3 mm
Lid Style
Clamshell with 4× M3 screws
Gasket
2mm silicone O-ring groove in lid perimeter
Cable Glands
2× M12 holes on bottom face (probe cable + solar)
Antenna Holes
2× SMA bulkhead (6.5mm) on side wall
PCB Standoffs
4× M3 posts, 5mm tall, at 70×40mm spacing
Battery Bay
70 × 40 × 20 mm recess next to PCB
Mounting
2× slots on back for pipe clamp / zip tie
Solar Recess
Lid top: 170×100mm flat area with 4× screw holes for panel
Material
PETG (UV resistant)
Color
White or light gray (heat rejection)
CONTROLLER BOX — TOP VIEW SOLAR PANEL (170×100) on lid PCB 80 × 50 mm BATTERY 70 × 40 mm SMA SMA M12 M12 probe cable solar cable ↕ 110mm ← 160mm → SIDE VIEW (cross-section) SOLAR PANEL Lid (3mm walls) O-ring PCB BATTERY standoffs 55mm total M12 M12

Part B: Vent Tube Cap (for barometric compensation)

Small cap that goes on the top of the vented transducer cable to prevent moisture ingress while allowing atmospheric pressure equalization.

Outer Diameter
25 mm
Height
30 mm
Inner Diameter
Cable OD + 1mm clearance
Vent
Gore-Tex patch or 3× 1mm holes with desiccant chamber

System Diagram

WX-LEVEL SYSTEM ARCHITECTURE WELLHEAD CONTROLLER BOX ESP32-S3 SPI / I2C / UART GPIO / ADC ADS111516-bit ADC 250Ω4-20mA shunt SX1276LoRa 915MHz → antenna BME280baro + temp SIM7000GLTE Cat-M1 → antenna CN3791MPPT charger LiPo6000mAh SOLAR PANEL6W 6V SUBMERSIBLE PRESSURE SENSOR 4-20mA, 0-10 PSI ↓ lowered into well on vented cable

File Structure

hardware/wx-level/ ├── firmware/ │ ├── wx_level.ino FIRMWARE │ ├── config.h FIRMWARE │ └── platformio.ini FIRMWARE ├── kicad/ │ ├── wx_level.kicad_sch SCHEMATIC │ └── wx_level.kicad_pro SCHEMATIC ├── enclosure/ │ ├── controller_box.f3d YOU — FUSION 360 │ ├── controller_box.3mf YOU — BAMBU │ └── vent_cap.f3d YOU — FUSION 360 └── README.md

WX-Flow — Aquifer Flow + Quality Probe

Combined groundwater flow velocity/direction + water quality probe. Uses heat pulse technology (like AquaVector/iFLUX) with a 4-thermistor array to measure Darcy velocity and flow direction, plus conductivity/TDS and temperature sensors. Designed to fit inside a standard 2" or 4" monitoring well.

Reference designs: iFLUX (Belgium) — microfluid flow chip, 0.5–500 cm/day, ±7° direction. AquaVector (Netherlands) — heat pulse + thermistor array, up to 50m wells. Our approach uses the heat pulse method (simpler to manufacture than iFLUX's microfluidic chip) with off-the-shelf thermistors.

Specifications

Flow Velocity
0.5–200 cm/day
Heat pulse + 4-thermistor array
Flow Direction
360° ± 10°
4 thermistors at 90° spacing
Conductivity
0–100,000 µS/cm
4-electrode cell, ±2%
TDS
Derived from conductivity
Factor 0.5–0.7 configurable
Temperature
0–50°C ± 0.1°C
PT1000 RTD
Water Level
0–100 ft
Integrated pressure sensor
Probe Diameter
45 mm (1.77")
Fits 2" well casing
Probe Length
300 mm (12")
Sensor section only
Well Depth
Up to 100 ft (30 m)
Limited by cable length
MCU
ESP32-S3
Same as WX-Level for shared firmware
Connectivity
LoRa + Cellular
Surface controller box (shared design with WX-Level)
Target BOM
~$140
At qty 100

How the Heat Pulse Flow Sensor Works

1. A small heater element (nichrome wire, 2W) at the center of the probe heats the surrounding groundwater for 3–5 seconds.
2. Four thermistors (NTC 10kΩ) are arranged at 90° intervals around the heater, 15mm away from center.
3. As groundwater flows past, it carries the heat plume preferentially toward the downstream thermistor.
4. The thermistor that sees the fastest temperature rise indicates flow direction.
5. The time delay between the heat pulse and the peak temperature at the downstream thermistor gives flow velocity (shorter delay = faster flow).
6. Calibration curve maps delay time → Darcy velocity in cm/day.
7. Measurement cycle takes ~60 seconds. Repeated every 15 minutes.

Bill of Materials

ComponentPart / SpecSourceUnit Price
Surface Controller (shared with WX-Level)
MicrocontrollerESP32-S3-WROOM-1 (N16R8)LCSC$3.50
LoRa ModuleSX1276 915MHzHopeRF$5.00
Cellular ModuleSIM7000GSIMCom$12.00
Solar + Battery6W panel + 6000mAh LiPoAmazon$14.00
Charge ControllerCN3791 MPPTLCSC$0.80
ADCADS1115 16-bit, 4-channelTI / LCSC$2.00
ADC #2ADS1115 (second unit for thermistors)TI / LCSC$2.00
Submersible Probe
Thermistors × 4NTC 10kΩ glass-bead, waterproofAdafruit / LCSC$6.00
Heater ElementNichrome wire coil, 2W, potted in epoxyCustom wind$2.00
Heater DriverIRLZ44N N-MOSFET + flyback diodeLCSC$1.00
Conductivity Cell4-electrode platinum, K=1.0Atlas Scientific / DFRobot$15.00
Conductivity CircuitAtlas EZO-EC or DFRobot DFR0300Atlas Scientific$18.00
Temperature (RTD)PT1000 waterproof, 3-wireAdafruit / LCSC$5.00
Pressure TransducerSubmersible 4-20mA, 0-10 PSICFSensor$18.00
Probe Body3D-printed PETG tube, epoxy-potted endsBambu Lab (you print)$5.00
Cable12-conductor shielded, polyurethane jacket, 30mAlibaba$15.00
ConnectorsM12 8-pin waterproof × 2, cable glandsAmazon$8.00
MiscEpoxy potting compound, O-rings, desiccant, hardware$5.00
Total BOM (qty 1)~$138

Enclosure Design — For Fusion 360

This is your part. Two pieces to model: the submersible probe body (cylindrical) and the surface controller box (identical to WX-Level box — just add one more cable gland).

Part A: Submersible Probe Body

Cylindrical tube that goes down the well. Houses the heater, thermistors, conductivity cell, pressure sensor, and PT1000. Both ends are epoxy-potted after assembly.

Outer Diameter
45 mm (fits 2" well casing)
Total Length
300 mm
Wall Thickness
2.5 mm
Top Cap
Cable entry with M12 connector or epoxy pot
Bottom Cap
Pressure sensor face (open to water)
Flow Slots
8× vertical slots, 60mm long × 5mm wide, evenly spaced around mid-section
Slot Purpose
Allow groundwater to flow through probe for heat pulse measurement
Heater Mount
Central post, 10mm dia × 40mm tall, centered in flow chamber
Thermistor Mounts
4× radial posts at 90°, 15mm from center, 3mm dia holes
Conductivity Cell
Recess at bottom of flow chamber, 20mm dia × 30mm deep
Material
PETG (or POM/Delrin if available)
Sealing
Epoxy potting compound on both ends after wiring
PROBE — SIDE CROSS-SECTION cable to surface ↑ EPOXY POTTING PCB electronics FLOW CHAMBER slots H T T T T COND CELL EC sensor PT1000 temp RTD PRESSURE 4-20mA ↑ open to water ↑ ⌀ 45mm 300mm TOP-DOWN (flow chamber) H N E S W ⌀ 45mm outer wall 8 slots • 4 thermistors • 1 heater

Part B: Surface Controller Box

Identical to the WX-Level controller box but with one additional cable gland for the 12-conductor probe cable. Same PCB layout with an added second ADS1115 for thermistor channels.

Outer Dimensions
160 × 110 × 55 mm (same as WX-Level)
Cable Glands
3× M12 on bottom (probe + solar + aux)
Everything Else
Same as WX-Level controller box

System Diagram

WX-FLOW SYSTEM ARCHITECTURE SURFACE CONTROLLER BOX ESP32-S3 SPI I2C UART GPIO ADS1115 #1 pressure · conductivity · PT1000 Ch0 · Ch1 · Ch2 ADS1115 #2 therm N · E · S · W Ch0 · Ch1 · Ch2 · Ch3 MOSFET heater driver → heater SX1276 → LoRa SIM7000G → LTE CN3791 + LiPo 12-conductor cable (30m) SUBMERSIBLE PROBE FLOW CHAMBER H T T T T ← 8 wall slots CONDUCTIVITY PT1000 PRESSURE (4-20mA)

File Structure

hardware/wx-flow/ ├── firmware/ │ ├── wx_flow.ino FIRMWARE │ ├── config.h FIRMWARE │ ├── heat_pulse.h FIRMWARE │ └── platformio.ini FIRMWARE ├── kicad/ │ ├── wx_flow.kicad_sch SCHEMATIC │ └── wx_flow.kicad_pro SCHEMATIC ├── enclosure/ │ ├── probe_body.f3d YOU — FUSION 360 │ ├── probe_body.3mf YOU — BAMBU │ ├── controller_box.f3d YOU — FUSION 360 │ └── controller_box.3mf YOU — BAMBU ├── calibration/ │ └── flow_calibration.py SCRIPT └── README.md