---
title: "SparkFun_WebServer_ESP32_W5500"
url: "https://maker.wiznet.io/Benjamin/projects/sparkfun-webserver-esp32-w5500/"
markdown_url: "https://maker.wiznet.io/Benjamin/projects/sparkfun-webserver-esp32-w5500/md"
type: "UCC: User Created Content"
author: "SparkFun Electronics"
author_url: "https://github.com/sparkfun/SparkFun_WebServer_ESP32_W5500"
editor: "WIZnet"
editor_url: "https://maker.wiznet.io/"
original_author: "SparkFun Electronics"
original_url: "https://github.com/sparkfun/SparkFun_WebServer_ESP32_W5500"
license: "GNU General Public License, version 3 or later (GPL3+)"
published: "2024-08-13"
language: "en"
tags: ["C/C++"]
hardware: ["Espressif ESP32", "WIZnet W5500"]
likes: 0
views: 3090
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# SparkFun_WebServer_ESP32_W5500

> SparkFun_WebServer_ESP32_W5500

Original author: SparkFun Electronics (source: https://github.com/sparkfun/SparkFun_WebServer_ESP32_W5500)

## 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))
- Software: **Arduino IDE** ([docs](https://www.arduino.cc/en/software))

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

## SparkFun WebServer ESP32 W5500 Library

<https://github.com/sparkfun/SparkFun_WebServer_ESP32_W5500#sparkfun-webserver-esp32-w5500-library>

**Important Note: this library is not compatible with arduino-esp32 v3.0**

A remix of [Khoi Hoang's WebServer_ESP32_W5500](https://github.com/khoih-prog/WebServer_ESP32_W5500) (now archived).

Thank you Khoi.

This library adds the WIZnet W5500 as a physical Ethernet interface for the ESP32. The actual WebServer (HTTP(S)) methods are provided by WiFiServer and WiFiClient. Works great with me-no-dev's [ESPAsyncWebServer](https://github.com/me-no-dev/ESPAsyncWebServer).

**Note:**

This library uses the low-level TCP-IP, NETIF, SPI bus and interrupt service methods from the Espressif ESP-IDF. It can not co-exist with the SPI and interrupt methods from the Arduino core for ESP32. They fight each other... If - like us - you are using this library in Arduino code, you need to structure your code carefully so nothing else attempts to configure or access SPI or interrupts while the WebServer is in use.

The ESP32_W5500 WebServer class makes changes to the ESP32 memory which are not cleared by a standard `ESP.restart()`. Make sure you call the `.end()` method before restarting your code if you want to change over to Arduino Ethernet, SPI and interrupts. Please see [Example1](https://github.com/sparkfun/SparkFun_WebServer_ESP32_W5500/blob/main/examples/Example1_AsyncWebServer/Example1_AsyncWebServer.ino) for more details.

---

Source: https://maker.wiznet.io/Benjamin/projects/sparkfun-webserver-esp32-w5500/
