Wiznet makers

jakelee

Published August 18, 2026 ©

24 UCC

4 VAR

0 Contests

0 Followers

0 Following

Original Link

Espressif Adds Official W6100 Ethernet Driver Support to ESP-IDF

W5500/W6100 support in ESP-IDF opens the door for deeper WIZnet–Espressif collaboration, including Hardwired TCP/IP and W6300.

COMPONENTS Hardware components

WIZnet - W6100

x 1

Software Apps and online services

Espressif - ESP-IDF

x 1


PROJECT DESCRIPTION

Overview

Espressif has published the WIZnet W6100 Ethernet Driver v1.0.0 in the ESP Component Registry for use with ESP-IDF. The component supports the W6100 as an SPI Ethernet controller and requires ESP-IDF 5.3 or newer, while sharing common WIZnet driver code with Espressif's existing W5500 support.

W6100 Support in ESP-IDF

The espressif/w6100 component provides the MAC and PHY driver interfaces needed to use the W6100 through ESP-IDF's Ethernet framework.

W6100 is the successor to W5500 and adds IPv6 capability to its built-in hardwired TCP/IP stack. The device integrates a 10/100 Ethernet MAC and PHY and communicates with the host through SPI. However, Espressif explicitly notes that the W6100's hardwired TCP/IP stack is not used by this ESP driver.

The W6100 component has two declared dependencies:

ESP-IDF >= 5.3

espressif/wiznet_common ^1.0.0

The wiznet_common component contains common code shared between Espressif's W5500 and W6100 Ethernet drivers. Its v1.0.0 changelog records the addition of W6100 driver support in June 2026.

Espressif also maintains a separate official W5500 component. With the W5500 v2.0.0 release, common WIZnet functionality was moved into the shared wiznet_common layer.

Adding W6100 to an ESP-IDF Project

Espressif provides the exact Component Manager command required to add W6100 v1.0.0:

idf.py add-dependency "espressif/w6100^1.0.0"

The project then includes the W6100 MAC and PHY headers:

#include "esp_eth_phy_w6100.h"
#include "esp_eth_mac_w6100.h"

The driver is configured through ETH_W6100_DEFAULT_CONFIG, after which the application creates W6100 MAC and PHY instances using the ESP-IDF Ethernet driver interface.

SPI Configuration

The W6100 Registry documentation shows the SPI device configuration used by the driver:

spi_device_interface_config_t spi_devcfg = {
    .mode = 0,
    .clock_speed_hz = CONFIG_EXAMPLE_ETH_SPI_CLOCK_MHZ * 1000 * 1000,
    .queue_size = 16,
    .spics_io_num = CONFIG_EXAMPLE_ETH_SPI_CS_GPIO
};

eth_w6100_config_t w6100_config =
    ETH_W6100_DEFAULT_CONFIG(
        CONFIG_EXAMPLE_ETH_SPI_HOST,
        &spi_devcfg
    );

w6100_config.base.int_gpio_num =
    CONFIG_EXAMPLE_ETH_SPI_INT_GPIO;

The published configuration therefore exposes the SPI host, SPI clock, chip-select GPIO and interrupt GPIO through the example configuration. If the interrupt GPIO is set below zero, the driver can instead use a configurable polling period.

The documentation sets SPI mode to Mode 0 and shows a queue size of 16. It does not prescribe a single fixed SPI clock frequency in this example; the clock is supplied through the project's CONFIG_EXAMPLE_ETH_SPI_CLOCK_MHZ setting. A specific performance figure should therefore not be inferred from this configuration.

ESP-IDF Version and Target Support

The W6100 component requires ESP-IDF v5.3 or newer. Espressif also notes that multicast filter callbacks—add_mac_filter, rm_mac_filter, and set_all_multicast—are available when using ESP-IDF v5.5 or newer.

The ESP Component Registry marks the W6100 component as:

Supports all targets

The component page does not provide an explicit model-by-model list of ESP32 variants for W6100. Therefore, it is more accurate to describe compatibility using Espressif's published “all targets” designation rather than listing individual ESP32 chips that are not enumerated on the W6100 Registry page.

How ESP-IDF Uses W6100

This implementation differs from the way W6100 is often used in conventional embedded designs.

W6100 contains its own hardwired TCP/IP stack. In a traditional WIZnet implementation, an MCU can communicate with that stack through the chip's socket interface, allowing W6100 hardware to perform TCP/IP processing.

That is not the architecture used by Espressif's W6100 driver.

Espressif explicitly states that the W6100 hardwired TCP/IP stack is not used by the ESP driver. The same approach is documented for Espressif's W5500 integration. ESP-IDF describes its W5500 driver as operating the controller in MAC RAW mode, making the Ethernet device compatible with the software TCP/IP stack.

In practical terms, the two approaches can be represented as:

ESP-IDF MAC RAW Architecture

Application
    │
    ▼
ESP-IDF / lwIP
    │
 TCP/IP processing
    │
    ▼
ESP Ethernet Driver
    │
   SPI
    │
    ▼
W6100
MAC / PHY
    │
    ▼
 Ethernet

Here, the ESP32-side software networking stack processes TCP/IP, while W6100 provides the SPI-connected Ethernet interface.

W6100 Hardwired TCP/IP Architecture

Application
    │
    ▼
W6100 Socket Interface
    │
   SPI
    │
    ▼
W6100
Hardwired TCP/IP
MAC / PHY
    │
    ▼
 Ethernet

In this architecture, TCP/IP processing takes place inside W6100 rather than in the host's software TCP/IP stack.

The distinction is important when reading the ESP-IDF driver documentation. The presence of W6100 in an ESP-IDF design does not mean that the W6100 hardwired TCP/IP engine is being used. Under Espressif's driver architecture, networking remains integrated with ESP-IDF's software TCP/IP environment.

Creating the W6100 MAC and PHY

After configuring SPI, the application creates the Ethernet MAC using:

eth_mac_config_t mac_config = ETH_MAC_DEFAULT_CONFIG();

mac_config.rx_task_stack_size = 4096;

esp_eth_mac_t *mac =
    esp_eth_mac_new_w6100(&w6100_config, &mac_config);

Espressif's documentation states that W6100 has a factory-programmed MAC address, so manually configuring the MAC address is optional when using this driver.

The PHY is created separately:

eth_phy_config_t phy_config = ETH_PHY_DEFAULT_CONFIG();

esp_eth_phy_t *phy =
    esp_eth_phy_new_w6100(&phy_config);

This follows ESP-IDF's standard Ethernet MAC/PHY driver structure.

Available W6100 Examples

The ESP Component Registry currently lists four examples for W6100 v1.0.0:

iperf — network performance testing, including DHCP server functionality

simple-ethernet

tcp_client — basic TCP client communication

tcp_server — basic TCP server communication

These examples use Espressif's common Ethernet example structure and provide starting points for integrating W6100 into an ESP-IDF application.

What Is Not Available Yet?

As of W6100 component v1.0.0, Espressif provides the driver and four Ethernet examples, so an official example path is already available. What is not documented as an option is an ESP-IDF W6100 driver path that uses the chip's internal hardwired TCP/IP stack instead of MAC RAW operation with the ESP software TCP/IP stack. The Registry documentation also does not publish a model-by-model ESP32 compatibility list or prescribe a single SPI clock/performance value; for those points, developers should rely on the component's stated “all targets” support and the configurable SPI settings rather than assuming values not disclosed by Espressif.

Documents
Comments Write