Wiznet makers

TheoIm

Published May 22, 2026 ©

92 UCC

27 WCC

7 VAR

0 Contests

0 Followers

0 Following

Original Link

orisec-connect

Open-source ESP32 and WIZnet W5500 UPS network card prototype for Ethernet-based monitoring, telemetry, and smart infrastructure integration.

COMPONENTS Hardware components

WIZnet - W5500

x 1


PROJECT DESCRIPTION

What the Project Does

Eaton / MGE UPS is a power backup system used in server rooms and industrial environments to protect equipment during power outages and enable remote status monitoring.
open-network-ms is not an official product released by Eaton, but an open-source hardware project by an individual developer that aims to replace Eaton/MGE UPS Network-MS / Network-M2 cards.
The project was created because official network cards are expensive, and older firmware versions may have security and compatibility issues.
In the project roadmap, the Sushi stage plans to add wired Ethernet and SD card support.
For the Ethernet interface, the project specifically mentions the WIZnet W5500 as a candidate, highlighting the strong library support of the W5xxx series and its SPI interface, which reduces GPIO usage on the ESP32.

The current repository is not a finished replacement card. It contains reverse-engineering notes, hardware investigation material, third-party firmware research, and a NET+OS firmware header parsing tool. The intended direction is to evolve this research into an ESP32-based UPS monitoring card with WIZnet W5500 Ethernet.

 

The first realistic demo should avoid claiming full UPS compatibility. A better starting point is simulated UPS telemetry served over Ethernet, followed by real serial capture and gradual protocol implementation.

Where WIZnet Fits

The WIZnet product is the W5500. In the proposed architecture, it acts as the wired Ethernet interface between the ESP32-based UPS card and the local network.

This is a strong fit because a UPS network card is normally installed in a fixed location such as a server rack, homelab, equipment closet, or industrial cabinet. Wired Ethernet is more appropriate than Wi-Fi for this type of device because monitoring and alerting should remain stable over long operating periods.

The W5500 also reduces firmware complexity compared with implementing a full software TCP/IP stack on a constrained MCU. Its SPI interface is practical for ESP32 prototypes, and it supports common embedded network features such as HTTP status pages, JSON endpoints, MQTT publishing, and metrics output.

Implementation Notes

The current repository does not yet contain a complete ESP32 firmware implementation, W5500 driver integration, PlatformIO project, or finished W5500 PCB. Therefore, this curation should present the project as a prototype roadmap, not as a working product.

The repository currently includes research and preparation material such as:

  • README.md — project goals, hardware roadmap, and planned features
  • docs/reverse-engineering/reversing.md — UPS interface and Network-MS firmware notes
  • docs/spork/spork.md — Spork interposer board documentation
  • docs/3rd_party/network-ms-firmware/ — collected firmware binaries and release notes
  • docs/3rd_party/network-ms-firmware/processed/ — extracted payloads and logs
  • tools/netos_firmware_header_parser.linq — C# LINQPad tool for parsing NET+OS firmware headers

Because W5500 firmware code is not yet available, the correct implementation framing is architectural.

A practical first firmware milestone would be:

 
ESP32 boot
  -> initialize SPI
  -> initialize W5500 Ethernet
  -> obtain IP address by DHCP or static config
  -> start HTTP server
  -> publish simulated UPS telemetry
  -> expose /api/status and /metrics
 

Conceptual integration example based on WIZnet Ethernet use:

 
// Conceptual integration example based on WIZnet Ethernet use
// Not verified from the current repository

#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0x02, 0x08, 0xDC, 0x12, 0x34, 0x56 };
EthernetServer server(80);

void setup() {
  SPI.begin();
  Ethernet.begin(mac);
  server.begin();
}

void loop() {
  EthernetClient client = server.available();
  if (client) {
    client.println("HTTP/1.1 200 OK");
    client.println("Content-Type: application/json");
    client.println();
    client.println("{\"ups\":{\"status\":\"online\"},\"network\":{\"interface\":\"W5500\"}}");
    client.stop();
  }
}
 

This code is not copied from the repository. It only illustrates the kind of first W5500 bring-up demo that would make the project easier to validate before real UPS protocol support is complete.

Practical Tips / Pitfalls

  • Treat this as a prototype, not a drop-in Eaton/MGE Network-MS replacement.
  • Verify MiniSlot pinout and voltage levels before connecting an ESP32.
  • Use level shifting, buffering, and protection on all UPS-side signals.
  • Start with simulated UPS telemetry before attempting live UPS control.
  • Separate third-party firmware research files from original project source.
  • Use Ethernet first for HTTP JSON and Prometheus metrics; add MQTT later.
  • Document model-specific behavior because UPS generations may differ.

FAQ

Q: Why use the WIZnet W5500 for this UPS network card prototype?
A: The W5500 provides stable wired Ethernet through SPI and includes hardware TCP/IP offload. That makes it suitable for embedded UPS monitoring where long-running network reliability matters more than wireless convenience.

Q: How does the W5500 connect to the ESP32?
A: The proposed design connects the W5500 to the ESP32 over SPI. The ESP32 handles UPS protocol logic, while the W5500 provides the Ethernet interface for web pages, APIs, MQTT, and monitoring endpoints.

Q: What role does W5500 play in this project?
A: It is the network interface for the UPS monitoring card. It would carry HTTP status pages, JSON telemetry, Prometheus metrics, MQTT messages, and configuration traffic over wired LAN.

Q: Can beginners follow this project?
A: Not as a full UPS hardware project. Beginners can follow the ESP32 + W5500 web telemetry demo, but live UPS integration requires electrical safety knowledge, serial protocol analysis, and careful hardware validation.

Q: How does W5500 compare with Wi-Fi for UPS monitoring?
A: Wi-Fi is easier to install where cabling is unavailable, but a UPS monitoring card is usually installed in a fixed location. W5500 Ethernet is better suited for server racks, homelabs, and infrastructure monitoring because the link is wired and predictable.

Source

Original project link: not provided in the supplied material.
License: not confirmed. Third-party firmware and manuals should be treated as reference material unless redistribution rights are verified.
Reference material: provided WIZnet curation project guide.

Tags

WIZnet, W5500, ESP32, Ethernet, UPS, Eaton, MGE, Network-MS, MQTT, Prometheus, HTTP API, Embedded Monitoring

Documents
Comments Write