Wiznet makers

jakelee

Published September 12, 2026 ©

25 UCC

4 VAR

0 Contests

0 Followers

0 Following

Original Link

How to Build an ESP32-S3 Ethernet + PoE Camera with W5500 Using a Python PCB HDL

Polymorphic Blocks uses W5500 with ESP32-S3 and PoE to build a tested Ethernet-connected RGB and thermal camera for ESPHome

COMPONENTS Hardware components

Espressif - ESP32-S3

x 1

Software Apps and online services

Python - Python

x 1


PROJECT DESCRIPTION

What is Polymorphic Blocks?

Polymorphic Blocks is a Python-based hardware description language (HDL) for PCB design. Instead of designing a circuit entirely component-by-component, developers can define higher-level functional blocks and use reusable subcircuits for elements such as MCUs, sensors, power supplies, and interfaces.

The system can automatically handle parts of the PCB design process including component selection, basic electrical-rule checking, BOM generation, and creation of hierarchical KiCad netlists.

The author explains that the motivation is to automate repetitive PCB-design work—such as copying reference circuits, selecting standard components, performing routine calculations, and checking voltage/current limits—so the engineer can work more at the system architecture level.

Step 1: Ethernet + PoE Demonstrator

In August 2026, the author published a hardware test demonstrating several newly developed Polymorphic Blocks features, including Ethernet ports, Ethernet links, W5500 support, and PoE.

One of the more complex boards on the test panel is an Ethernet + PoE thermal/RGB camera.

The hardware includes:

  • ESP32-S3
  • WIZnet W5500
  • Ethernet
  • Non-isolated PoE interface
  • TPS2378 PoE device
  • RGB camera
  • FLIR Lepton thermal camera
  • ESPHome

The ESP32-S3 is mounted on the back of the camera board, while the W5500 provides its wired Ethernet interface.

Step 2: What Role Does W5500 Play?

The W5500 is introduced as one of the project's new reusable PCB blocks.

Conceptually, the camera architecture is:

 
             Ethernet + PoE
                   │
                   ▼
               RJ45 Port
                │      │
                │     PoE
                │      │
                ▼      ▼
              W5500  TPS2378
                │      │
               SPI    Power
                │      │
                └──┬───┘
                   ▼
               ESP32-S3
                /     \
               /       \
        RGB Camera   FLIR Lepton
 

The source specifically describes the new networking block as a “W5500 SPI MAC/PHY.” The firmware uses ESPHome for wired Ethernet operation.

This distinction is important: the post does not state that the project uses W5500's hardwired TCP/IP socket offload. Therefore, we should not claim that TCP/IP offload is being used here.

Instead, the verified role is:

ESP32-S3 → SPI → W5500 → Ethernet

with ESPHome providing the software integration.

Step 3: ESPHome + Home Assistant

According to the author, Ethernet bring-up was relatively straightforward because wired Ethernet could be configured through ESPHome.

The RGB camera was also successfully integrated into Home Assistant.

The FLIR Lepton thermal camera is physically part of the design, but the author notes that ESPHome currently does not provide the required Lepton support in this implementation. Therefore, the thermal camera portion should not be described as fully integrated into Home Assistant.

The demonstrated software path is essentially:

 
RGB Camera
    │
ESP32-S3
    │
 ESPHome
    │
 W5500
    │
Ethernet
    │
Home Assistant
 

This makes the project particularly interesting as an example of wired ESPHome hardware rather than another Wi-Fi-connected ESP32 camera.

Step 4: PoE Operation

The board also demonstrates Power over Ethernet.

The author reports that PoE operated once the firmware was loaded and that the ESPHome + camera workload drew enough power to keep the PoE source active.

However, the prototype revealed a thermal consideration.

The design converts approximately 48 V PoE to 5 V using a non-isolated buck converter. The author measured approximately 50°C at the buck IC and inductor during operation. This was not considered dangerous, but the author suggests that a heatsink could be useful for sustained operation.

An isolated topology such as a flyback converter was considered more complex than necessary for this particular test platform.

This is useful engineering information because the project documents not only successful operation but also a practical limitation discovered during hardware testing.

Step 5: W5500 Becomes a Reusable PCB Building Block

From a WIZnet perspective, this is probably the most interesting part of the project.

The goal wasn't simply to make one W5500 camera.

The author was testing W5500 as a reusable component inside the Polymorphic Blocks PCB HDL library.

After successful hardware testing, the author states that:

  • Ethernet ports
  • Ethernet links
  • W5500
  • TPS2378

were mainlined into Polymorphic Blocks and released in edg 0.5.2 on PyPI.

That means future Polymorphic Blocks designs can potentially treat W5500 as a higher-level reusable networking block rather than requiring the designer to recreate its supporting circuit each time.

Conceptually:

 
Python PCB Design

Camera()
 ├── Esp32S3()
 ├── W5500()
 ├── EthernetPort()
 ├── PoE()
 └── CameraSensor()

        ↓

Polymorphic Blocks

        ↓

Generated Circuit / Netlist

        ↓

KiCad PCB Layout
 

The actual source code and library interfaces should be referenced for exact syntax; the diagram above illustrates the design concept rather than project-specific code.

Why This Project Matters for WIZnet

This is a particularly interesting discovery because it demonstrates two levels of W5500 adoption.

The first is the immediate application:

ESP32-S3 + W5500 + PoE → wired ESPHome camera

But the second could be more significant:

W5500 → reusable Ethernet block inside a Python-based PCB generation framework

Polymorphic Blocks is designed to allow engineers to build circuits from reusable higher-level components. The W5500 has now been physically validated within that framework and incorporated into its library.

That potentially means W5500 can appear in future boards created using the HDL without each developer starting the Ethernet circuit design from scratch.

For our Design Win Hunter perspective, I would therefore rate this A-.

It's not a commercial product or a high-volume design win, and the Hackaday project itself currently has limited engagement. But technically, it is a very recent 2026 independent implementation, uses real tested hardware, combines W5500 with ESP32-S3/PoE/ESPHome, and—most importantly—turns W5500 into a reusable building block inside an EDA/design-automation ecosystem. The broader Polymorphic Blocks project reports more than 20 boards produced using the system.

FAQ

Q1: What MCU is paired with W5500?
The camera board uses an ESP32-S3, with W5500 providing Ethernet over SPI.

Q2: Does the camera work with Home Assistant?
The author reports successful RGB camera integration with Home Assistant through ESPHome. FLIR Lepton support was not available in the demonstrated ESPHome implementation.

Q3: What is special about this W5500 implementation?
Beyond the camera itself, the tested W5500 circuit has become a reusable block in the Polymorphic Blocks PCB HDL. This allows future designs using the framework to reuse the Ethernet block at a higher abstraction level.

Documents
Comments Write