Asynchronous Web Server – ESP32-S3 – Ethernet – Wifi

Here after an implementation of an asynchronous web server on a board powered by the ESP32S3 processor. This server is designed to communicate not only over Wi-Fi—as is typical—but also via Ethernet through the RJ45 connector.

Board T-ETH-LITE ESP32-S3 in configuration N16R8 available at Aliexpress

Processor and Memory

The board is built around a dual-core ESP32S3 processor. It includes 512 KB of internal RAM and a generous 16 MB of flash memory for storing programs and data—four times the capacity of a standard ESP32. Additionally, it features 8 MB of external PSRAM, which is ideal for handling large datasets or complex data arrays.

CharacteristicTypical Figure
Processeur2 × Xtensa LX7 @ 240 MHz
RAM interne (SRAM)512 Ko
Flash externe (SPI)16 Mo
PSRAM8 Mo
Wi-Fi802.11 b/g/n (2,4 GHz)
BluetoothLE 5.0 (BLE + Bluetooth Mesh)
Ethernet100Mb Full Duplex (W5500)
PortsSPI, I²C, I²S, UART, PWM, ADC, DAC, USB, etc.
AI/ML AccelerationSupport pour instructions vectorielles SIMD et moteur AI
Stockage externeSlot pour carte MicroSD (TF card) pour stockage local de données

Communication Capabilities

The ESP32S3 supports Wi-Fi, Bluetooth, and Ethernet communication, offering flexibility for various applications. It also provides a wide range of free GPIOs for analog/digital inputs and outputs, as well as serial communication. A notable feature is its ability to process data in parallel using SIMD (Single Instruction, Multiple Data), and it supports microSD card storage for additional data handling.

Pinout and Power Features

T-ETH-LITE ESP32-S3

The board’s pinout reveals a wealth of accessible GPIOs. One standout feature is Power over Ethernet (PoE), allowing the board to be powered directly through the Ethernet cable.

Programming the ESP32S3

FTDI232

This board lacks a built-in USB connector, so programming requires an FTDI 232 board. This board connects to your PC on one end and communicates with the ESP32S3 via serial on the other. Important: Always set the FTDI 232 jumper to 3.3V to avoid damaging the ESP32S3 with 5V.

To power the system, an external 5V power supply is needed.

After compiling a program, to start the transfer from the PC to the ESP32 card, you must:

  • press boot
  • briefly press reset
  • release boot

Asynchronous Web Server Application

I’ve developed an asynchronous web server for this board, capable of communicating over Ethernet and/or Wi-Fi. The code is available on PlatformIO IDE but can also be adapted for the Arduino IDE.

The difficulty around this card was to find a library that provides an asynchronous web server compatible with the W5500 module and allowing the Wifi and/or Ethernet connection. The choice fell on: AsyncWebServer_ESP32_SC_W5500.h available on PlatformIO and Arduino IDE. The definition of the interface GPIOs with the W5500 is adapted to the launch of the program to the physical layout of the T-ETH-LITE ESP32-S3 card.

The 16 MB flash memory is partitioned into:

  • Two 6.5 MB application areas
  • A small area for Over-The-Air (OTA) updates
  • A dedicated area for storing files in SPIFFS format
# NameTypeSubTypeOffsetSizeFlags
nvsdatanvs0x90000x5000
otadatadataota0xe0000x2000
app0appota_00x100000x660000
app1appota_10x6700000x660000
spiffsdataspiffs0xCD00000x200000
corredumpdatacoredump64K

Resources and Support

For more information, visit:

⚠️Special Features

Ethernet (W5500) and the SD card cannot be used simultaneously if both require the same SPI bus, unless the SPIs are reassigned (use SPI2 for one, etc.).

The WiFi antenna is PCB-based (integrated).

Ethernet control is via SPI, which adds latency compared to an internal MAC/PHY interface. This remains very usable depending on the project.

F1ATB André

Ham Radio - Home automation - Photovoltaic

You may also like...