Skip to content

cloggo

https://github.com/wseaton/cloggo

Grace_Koo

Published March 06, 2026

Original author: wseatonOriginal source (new tab)

cloggo

Components

Hardware components

Project description

Rust-Powered IoT Device for Water Filter Clog Detection — W5500-EVB-Pico

Background: How Do You Monitor What You Can't See?

Water filters installed in hard-to-reach spaces — like crawlspaces or underground plumbing — give no indication of their condition until you physically inspect them. Missing a replacement window leads to pressure drops and water quality issues, while replacing filters too early is simply wasteful. For homes on private wells, where sediment levels are high and filter clogging is unpredictable, this problem is even more acute.

cloggo is an open-source IoT project built to automate this monitoring. The core setup is straightforward:

  • Two pressure transducers mounted on either side of the filter stack (inlet and outlet)
  • Real-time differential pressure measurement to detect clogging
  • Entire system runs on the W5500-EVB-Pico board, implemented in Embedded Rust

The Role of W5500: Why Wired Ethernet Over WiFi

The decision to use WIZnet's W5500-EVB-Pico — which integrates the W5500 Ethernet controller — was driven by clear technical reasoning.

ReasonDetails
Connection StabilityCrawlspaces have poor RF conditions. Wired Ethernet eliminates WiFi reliability concerns in enclosed environments.
PoE SupportA single LAN cable handles both data and power via a PoE splitter — no separate power outlet required.
Software Ecosystemembassy-rs, the async embedded Rust framework used in this project, has official support for the W5500 NIC.
Integrated DesignRP2040 MCU and W5500 on a single board — wired networking out of the box, no additional Ethernet module needed.

The W5500 features a hardwired TCP/IP stack over SPI, offloading network processing from the MCU entirely.


How It Works: From Pressure Sensor to Home Assistant

The data pipeline runs through five stages:

  • ① Analog Sensor Reading: Pressure transducers are fitted to the inlet and outlet of the filter housing. The analog voltage output is sampled via the RP2040's ADC.
  • ② Linear Regression Calibration: ADC readings are converted to real pressure values (PSI) using a linear regression model. Reference data points are collected using a physical pressure gauge, and the resulting slope and intercept are stored in flash memory — persisting across reboots.
  • ③ Circular Buffer Data Management: Calibration data points are held in a circular buffer structure, keeping memory usage bounded and efficient.
  • ④ Lightweight REST API Web Server: A picoserve-based HTTP server runs directly on the board, exposing pressure readings, system status, and regression coefficients over the local network.
  • ⑤ Home Assistant Integration: Data is polled every 20 seconds via the REST integration. This enables real-time pressure dashboards, filter replacement alerts, and pressure-based automations (e.g., preventing the washing machine from running while sprinklers are active).

The entire firmware is built on the embassy-rs async framework, allowing the web server, sensor acquisition, and flash I/O to run concurrently — without an RTOS.


Potential Applications: Beyond the Home

The architecture of cloggo translates well to a range of broader use cases.

Application AreaScenario
Industrial Filter MonitoringWater treatment plants, factory cooling systems, semiconductor-grade pure water lines — anywhere filter health is operationally critical
Multi-Node ExpansionMultiple W5500-EVB-Pico units deployed across filter stages, each acting as an independent monitoring node on the same network
MQTT IntegrationMQTT broker support is listed as a planned feature, enabling integration with industrial IoT gateways and cloud platforms
Wiring-Constrained DeploymentsPoE-based single-cable installations suit agricultural irrigation, building automation, and remote facility monitoring
  • Minimal BOM (board, pressure transducers, a few plumbing fittings) keeps unit cost low
  • Open-source firmware lowers the barrier for ODM/OEM productization or custom hardware ports

Tech Stack Summary

CategoryDetails
HardwareW5500-EVB-Pico (RP2040 + W5500)
WIZnet ComponentW5500 Hardwired TCP/IP Ethernet Controller
Firmware LanguageRust (Embedded Rust, no_std)
Async Frameworkembassy-rs
Web Server Librarypicoserve
Sensor InterfaceADC (Analog Pressure Transducer)
Data ProcessingLinear Regression, Circular Buffer
External IntegrationHome Assistant (REST API, IoT Polling)
PowerPoE Splitter Support
Application DomainSmart Home, Facility Automation, Industrial Filter Management

Project Link: https://github.com/wseaton/cloggo
Board: W5500-EVB-Pico Product Page


FAQ

Q. Why use the W5500-EVB-Pico instead of a WiFi-enabled board like the Pico W?
A. The target deployment is a crawlspace — an enclosed area where WiFi signals are often weak or unreliable. Wired Ethernet provides a stable connection regardless of RF conditions. PoE support also means a single LAN cable handles both power and data, a significant advantage in spaces with limited outlets.

Q. How is the pressure sensor calibrated?
A. Calibration is done manually at setup. You collect multiple data point pairs — raw ADC readings alongside actual pressure values from a physical gauge — and the firmware computes a linear regression (slope and intercept) from those points. The resulting coefficients are stored in flash memory and persist across reboots.

Q. Can a single W5500-EVB-Pico monitor multiple filters simultaneously?
A. The current implementation targets one board per monitoring point. Scaling to multiple filters is possible either by deploying additional boards on the same network, or — as noted in the project's TODO list — by exploring multi-sensor management on a single Pico.

Q. Is this project suitable for industrial or commercial deployment?
A. The current codebase is a functional open-source prototype. The architecture — wired Ethernet, REST API, flash-persistent calibration, async firmware — provides a solid foundation for industrial adaptation. Productization would additionally require enclosure design, hardened power input, and potentially MQTT or Modbus integration depending on the target environment.

Documents

Comments

Similar projects you might like

Comments