ESP32 and W5500 Water Purification Controller
Industrial water controller with W5500 Ethernet, ESP32 control, isolated I/O, relays, and SD logging.
Industrial Water Treatment Controller with Wired Ethernet
The Industrial Water Purification Controller is a custom ESP32-based control board for automated water treatment equipment. In Manthan Kadam's silicon-to-system hardware portfolio, this project combines WIZnet W5500 wired Ethernet, isolated 24 V digital inputs, 4-20 mA analog process inputs, conductivity and TDS sensing, relay outputs, an HMI serial port, RTC, and microSD logging on one PCB. The technical interest is that the W5500 is not shown as a small standalone networking example. It is integrated into a much larger industrial controller where Ethernet is one part of a practical process-control board.
The repository is hardware-focused. It includes a project README and PCB renders in the latest branch, while the 11-sheet schematic PDF for this project exists in public git history but was deleted from current main. No ESP32 firmware, build files, Ethernet library configuration, or W5500 socket code is published. For that reason, this article treats the project as a hardware design reference and does not claim verified TOE firmware behavior.
Why Wired Ethernet Matters in a Water Controller
Water purification systems often sit in electrically noisy plant rooms, utility spaces, and field installations. They need to read level switches, flow pulses, pressure or water-quality transmitters, and local service inputs while also driving pumps, valves, alarms, and stage-control relays. A controller in that environment benefits from a wired network path for local dashboards, maintenance access, logging, and integration with supervisory systems.
The README describes the board as hosting a web server and HMI interface directly on the ESP32. The W5500 gives the hardware a dedicated Ethernet controller path next to the ESP32's native wireless capability. The public files do not show the firmware routing or network initialization, so the safe interpretation is hardware capability rather than a verified software implementation.
System Blocks Around the W5500
At board level, the design looks closer to a small PLC-style controller than to a microcontroller breakout. The README and archived schematic describe these main blocks:
- 12 optocoupler-isolated digital inputs for 24 V field signals such as level switches.
- 4 optocoupler-isolated pulse inputs for flow meters or pulse-output sensors.
- 8 process analog inputs using INA196 current-sense amplifiers and ADS7830 ADC channels for 4-20 mA loops.
- Two conductivity or TDS measurement paths using CD4060 oscillators, op-amp rectification, and ADC inputs.
- 13 relay outputs, split between AC SPST relays and dry-contact relays.
- DS3231 RTC and microSD storage for timestamped logging.
- RS232 HMI interface through a MAX3232 level shifter.
- AC mains input converted through a 24 V, 5 V, and 3.3 V power architecture
W5500 Ethernet Hardware in the Schematic
The archived schematic's Ethernet sheet identifies U21 as W5500. It shows the controller connected to the ESP32 through SPI nets labeled MOSI GPIO23, MISO GPIO19, SCLK GPIO18, and SCSn GPIO25. The same sheet includes a 25 MHz crystal, analog supply decoupling, AVDD and AGND separation, LINK/ACT LED outputs, and an HY951180A RJ45 connector with integrated magnetics.
Those details are useful because they show the W5500 was considered as a real Ethernet subsystem, not only named in the README. The W5500 section has the expected support circuitry around the PHY and RJ45 side, while the ESP32 keeps the main process-control workload. In a completed firmware design, this kind of split can allow the MCU to focus on I/O scanning, relay sequencing, HMI, and logging while the Ethernet controller handles the wired network interface.
The important limitation is firmware evidence. W5500 is a hardwired TCP/IP Ethernet controller, but this repository does not publish code that calls WIZnet socket APIs, Arduino Ethernet APIs, or register-level W5500 routines. TOE is therefore not marked as verified for this article.
Repository Structure and Evidence Level
The repository is a portfolio of multiple hardware projects. The water purification controller appears under:
projects/05-water-purification-controller/
The latest branch includes a README plus two PCB render images. The current README still references assets/schematic.pdf, but that file is missing from current main. Public git history shows it was uploaded in commit 7b90ccf and later deleted in commit 88a9b8f. The archived PDF was used only to verify hardware-level details such as W5500 wiring, RJ45 magnetics, and the ESP32 SPI connection.
No firmware directory, source file, PlatformIO configuration, Arduino sketch, CMake file, or dependency manifest is published. That is why the post avoids statements about actual web server routes, network stack behavior, DHCP support, control algorithms, calibration routines, or field performance.
Practical Reuse Value
Even without firmware, the project is still a useful reference for the physical scope of an industrial embedded controller. It shows how a W5500 Ethernet section can sit beside noisy field wiring, relay banks, analog measurement circuits, RTC, storage, and mains-derived power conversion on the same board. Makers and engineers working on pump controllers, water treatment panels, dosing systems, greenhouse controllers, or industrial monitoring nodes can study the block-level choices and connector layout.
The design also highlights a common engineering tradeoff. ESP32 provides wireless connectivity and enough compute for control and UI tasks, but industrial panels often still need wired Ethernet. Adding W5500 gives the PCB a dedicated wired interface while keeping the ESP32 module available for the application layer and optional Wi-Fi features. The public files stop at the hardware level, so anyone reusing the idea would still need to develop and validate firmware, network safety behavior, calibration, enclosure design, and mains-voltage compliance.
FAQ
What does this project use the W5500 for?
The W5500 is used as the board's wired Ethernet controller in hardware. The archived schematic shows W5500 U21 connected to the ESP32 over SPI and to an HY951180A RJ45 connector with magnetics.
Is WIZnet TOE usage verified?
No. W5500 hardware is verified in the README, PCB render, and archived schematic, but the repository does not publish firmware that calls WIZnet socket APIs or Ethernet library functions. TOE is therefore not marked as verified.
Is this a Hybrid Network project?
No. The hardware lists W5500 Ethernet and ESP32 native Wi-Fi, but there is no published firmware showing both networks initialized at the same time or assigned separate functional roles.
Can this design be reused for another industrial controller?
It can be used as a hardware reference for block-level planning: isolated inputs, analog process loops, relay outputs, RTC, SD logging, HMI, and Ethernet. Reuse would still require new firmware, sensor calibration, safety validation, and compliance review for the target installation.
What is missing from the public repository?
The main missing pieces are firmware source code, build configuration, CAD source files, and the schematic PDF in the latest branch. The schematic is available only through public git history, so the current repository should be treated as a portfolio snapshot rather than a complete open-source hardware release.



