Wiznet makers

Grace_Koo

Published March 06, 2026 ©

46 UCC

25 WCC

6 VAR

0 Contests

0 Followers

0 Following

Original Link

cloggo

https://github.com/wseaton/cloggo

COMPONENTS Hardware components

WIZnet - W5500-EVB-Pico

x 1


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
  • GitHub: cloggo

Comments Write

Similar projects you might like

This post introduces the newly added W55RP20 example in Embassy and shares a simple guide on how to use it.

[W55RP20] RUST Embassy Guide

Lihan__
  • 1584

  • 0

Introducing two solutions that fully support the WIZnet W6100 (IPv6) in the ESP32 environment.

The W6100 ESP-IDF Master Suite: C & Rust

Benjamin
  • 370

  • 0

Implements a Protocol Break Relay—a security pattern from the Cross Domain Solution (CDS) domain—using Rust on the W5500-EVB-Pico board.

How Does Rust Enable Protocol Break Security on W5500-EVB-Pico?

Benjamin
  • 263

  • 0

Async Rust (Embassy) GPS server on RP2040 + W5500. Delivers real-time GPS data via TCP API with full NMEA parsing and memory-safe concurrent task handling.

How to Build an Async GPS Server with Rust & W5500?

Benjamin
  • 280

  • 0

Dual-Stack Industrial Control: High-Performance Support for C++ and Rust: prodino-esp32-ethernet-v1

Dual-Stack Industrial Control: High-Performance Support for C++ and Rust: prodino-esp32-ethernet-v1

lawrence
  • 1427

  • 0

Embassy’s embassy-net-wiznet just gained an initial WIZnet W6300 chip driver in Rust, enabling Embassy applications to talk to the newest 10/100 TOE controller

How to Get W6300 Hardware TCP/IP Running in Rust Embassy?

viktor
  • 1190

  • 0

A bidirectional CAN bus to Ethernet/WiFi bridge implementation for the Raspberry Pi Pico W written in Rust using the Embassy async framework.

A bidirectional CAN bus to Ethernet/WiFi bridge implementation for the Raspberry Pi Pico W

viktor
  • 359

  • 0

Exploring esp-idf-svc: Building Type-Safe Rust Applications on ESP32

Exploring esp-idf-svc: Building Type-Safe Rust Applications on ESP32

lawrence
  • 1775

  • 0