---
title: "ESPHome-W5500-Ethernet-on-ESP32-boards"
url: "https://maker.wiznet.io/Benjamin/projects/esphome-w5500-ethernet-on-esp32-boards-1/"
markdown_url: "https://maker.wiznet.io/Benjamin/projects/esphome-w5500-ethernet-on-esp32-boards-1/md"
type: "UCC: User Created Content"
author: "Bart Olaerts"
author_url: "https://github.com/BOlaerts/ESPHome-W5500-Ethernet-on-ESP32-boards"
editor: "WIZnet"
editor_url: "https://maker.wiznet.io/"
original_author: "Bart Olaerts"
original_url: "https://github.com/BOlaerts/ESPHome-W5500-Ethernet-on-ESP32-boards"
license: "MIT license (MIT)"
published: "2024-07-01"
language: "en"
hardware: ["Espressif ESP32", "WIZnet W5500"]
likes: 0
views: 5867
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# ESPHome-W5500-Ethernet-on-ESP32-boards

> Playing around with the ESPHOME and W5500 ethernet module on different ESP32 boards. Goal is to be able to use SPI for ethernet and I²C for other sensors or ext

Original author: Bart Olaerts (source: https://github.com/BOlaerts/ESPHome-W5500-Ethernet-on-ESP32-boards)

## Components

- **Espressif ESP32** x 1 ([docs](https://www.espressif.com/en/products/socs/esp32))
- **WIZnet W5500** x 1 ([docs](https://docs.wiznet.io/Product/Chip/Ethernet/W5500))

WIZnet parts: W5500 ([Datasheet](https://docs.wiznet.io/Product/Chip/Ethernet/W5500/datasheet?utm_source=maker&utm_medium=project&utm_campaign=w5500), [product hub](https://maker.wiznet.io/products/w5500/))

## Article

## Hardware wiring schema

<https://github.com/BOlaerts/ESPHome-W5500-Ethernet-on-ESP32-boards?tab=readme-ov-file#hardware-wiring-schema>

[![Wiring](https://github.com/BOlaerts/ESPHome-W5500-Ethernet-on-ESP32-boards/raw/main/pictures/esp32c3-super-mini-w5500-bmp280.png)](https://github.com/BOlaerts/ESPHome-W5500-Ethernet-on-ESP32-boards/blob/main/pictures/esp32c3-super-mini-w5500-bmp280.png)

And even with this small sized board, there is some room for extra connections!

Possible improvements to investigate:

- CLK wire for the W5500 SPI bus is set to GPIO08

- GPIO08 is also the linked to the status led of the ESP32 C3 super mini development board

- possible or better to use GPIO02 instead?

- update 18.01.2024: switching CLK to GPIO02 did not seem to work...

## ESPHome config

<https://github.com/BOlaerts/ESPHome-W5500-Ethernet-on-ESP32-boards?tab=readme-ov-file#esphome-config>

At first, I only got it to work with the arduino framework:

```
esphome:
  name: esp32c3-super-mini
  friendly_name: esp32c3-super-mini

esp32:
  board: esp32-c3-devkitm-1
  framework:
    type: arduino

# Enable logging
logger:
  level: DEBUG

# Enable Home Assistant API
api:

ota:

ethernet:
  type: W5500
  mosi_pin: GPIO10
  miso_pin: GPIO09
  clk_pin: GPIO08
  cs_pin: GPIO5
  reset_pin: GPIO04
  interrupt_pin: GPIO03
  clock_speed: 25MHz

i2c:
  scl: GPIO07
  sda: GPIO06
  scan: True
  id: bus_a

sensor:
  - platform: bmp280
    temperature:
      name: "Temperature"
      unit_of_measurement: °C
      accuracy_decimals: 1
    pressure:
      name: "Pressure"
      unit_of_measurement: hPa
      accuracy_decimals: 0
    i2c_id: bus_a
    address: 0x76
```

After some iterations, it also works with the esp-idf framework; some tweaking of the platformio options was necessary:

```
esphome:
  name: esp32c3-super-mini-idf
  friendly_name: esp32c3-super-mini-idf
  platformio_options:
    board_build.flash_mode: dio
    board_build.mcu: esp32c3
    board_build.f_cpu: 160000000L

esp32:
  board: esp32-c3-devkitm-1
  framework:
    type: esp-idf
```

So far, connection seems to be lightning fast and super stable.

In my experience, the easiest way of flashing the new ESP32C3 boards is by using the Adafruit ESPTool.

---

Source: https://maker.wiznet.io/Benjamin/projects/esphome-w5500-ethernet-on-esp32-boards-1/
