

The ESP32-S3-ETH is a powerful microcontroller module manufactured by WAVESHARE (Part ID: ESP32-S3-POE-ETH). It features integrated Wi-Fi and Bluetooth capabilities, along with Ethernet support for reliable wired connectivity. This module is designed for high-performance IoT applications, offering robust communication options and advanced processing power.








| Parameter | Value |
|---|---|
| Microcontroller | ESP32-S3 (Xtensa® 32-bit LX7 dual-core processor) |
| Clock Speed | Up to 240 MHz |
| Flash Memory | 16 MB |
| SRAM | 512 KB |
| Wireless Connectivity | Wi-Fi 802.11 b/g/n, Bluetooth 5.0 (LE) |
| Ethernet Support | 10/100 Mbps Ethernet with PoE (Power over Ethernet) |
| Operating Voltage | 3.3V |
| GPIO Pins | 45 (including ADC, DAC, I2C, SPI, UART, PWM, and more) |
| Power Supply | PoE or external 5V via USB-C |
| Operating Temperature | -40°C to +85°C |
| Dimensions | 60 mm x 30 mm |
| Pin Name | Type | Description |
|---|---|---|
| VIN | Power Input | External 5V power input (used when not powered via PoE). |
| GND | Ground | Ground connection. |
| GPIO0 | Digital I/O | General-purpose I/O pin, often used for boot mode selection. |
| GPIO1-45 | Digital I/O | General-purpose I/O pins with multiple functions (PWM, ADC, etc.). |
| TXD0/RXD0 | UART | UART0 TX and RX pins for serial communication. |
| SCL/SDA | I2C | I2C clock and data lines for communication with peripherals. |
| MISO/MOSI | SPI | SPI data lines for high-speed communication. |
| ETH_TX+/ETH_TX- | Ethernet | Differential pair for Ethernet transmission. |
| ETH_RX+/ETH_RX- | Ethernet | Differential pair for Ethernet reception. |
| RESET | Input | Resets the microcontroller. |
Powering the Module:
Connecting to Ethernet:
Programming the Module:
Using GPIO Pins:
Wireless Communication:
Below is an example of how to use the ESP32-S3-ETH with the Arduino IDE to connect to an Ethernet network and send data to a server:
#include <ETH.h> // Include the Ethernet library for ESP32-S3
// Ethernet configuration
#define ETH_CLK_MODE ETH_CLOCK_GPIO17_OUT // Set clock mode
#define ETH_PHY_POWER 12 // GPIO pin for PHY power
// Network credentials
const char* server = "example.com"; // Server address
const int port = 80; // Server port
void setup() {
Serial.begin(115200); // Initialize serial communication
ETH.begin(ETH_PHY_POWER, ETH_CLK_MODE); // Initialize Ethernet
// Wait for Ethernet connection
while (!ETH.linkUp()) {
Serial.println("Connecting to Ethernet...");
delay(1000);
}
Serial.println("Ethernet connected!");
}
void loop() {
// Example: Send a GET request to the server
WiFiClient client;
if (client.connect(server, port)) {
client.println("GET / HTTP/1.1");
client.println("Host: example.com");
client.println("Connection: close");
client.println();
Serial.println("Request sent!");
} else {
Serial.println("Connection failed!");
}
delay(10000); // Wait 10 seconds before sending the next request
}
Ethernet Not Connecting:
Wi-Fi Not Connecting:
Module Not Detected by Computer:
GPIO Pins Not Working:
Q: Can I use both Ethernet and Wi-Fi simultaneously?
A: Yes, the ESP32-S3-ETH supports simultaneous Ethernet and Wi-Fi operation.
Q: How do I update the firmware?
A: Use the ESP-IDF or Arduino IDE to upload the latest firmware via the USB-C port.
Q: What is the maximum Ethernet cable length?
A: The maximum recommended length is 100 meters (328 feet) for standard Ethernet cables.
Q: Can I power the module with a battery?
A: Yes, you can use a 3.7V LiPo battery with a suitable voltage regulator to provide 3.3V.
This concludes the documentation for the ESP32-S3-ETH. For further assistance, refer to the official WAVESHARE datasheet or contact technical support.