---
title: "Espressif Adds Official W6100 Ethernet Driver Support to ESP-IDF"
url: "https://maker.wiznet.io/jakelee/projects/espressif-expands-official-wiznet-support-with-w6100/"
markdown_url: "https://maker.wiznet.io/jakelee/projects/espressif-expands-official-wiznet-support-with-w6100/md"
type: "UCC: User Created Content"
author: "Espressif"
author_url: "https://components.espressif.com/components/espressif/w6100/versions/1.0.0/readme?language=en"
editor: "WIZnet"
editor_url: "https://maker.wiznet.io/"
original_author: "Espressif"
original_url: "https://components.espressif.com/components/espressif/w6100/versions/1.0.0/readme?language=en"
published: "2026-08-18"
language: "en"
hardware: ["WIZnet W6100"]
likes: 0
views: 288
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# 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.

Original author: Espressif (source: https://components.espressif.com/components/espressif/w6100/versions/1.0.0/readme?language=en)

## Components

- **WIZnet W6100** x 1 ([docs](https://docs.wiznet.io/Product/iEthernet/W6100/))
- Software: **Espressif ESP-IDF**

## Article

## 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:

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

The project then includes the W6100 MAC and PHY headers:

```c
#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:

```c
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

```plaintext
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

```plaintext
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:

```c
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:

```c
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.

---

Source: https://maker.wiznet.io/jakelee/projects/espressif-expands-official-wiznet-support-with-w6100/
