

The ESP32-S3 Waveshare (MCN163R) is a development board designed by Waveshare, featuring the powerful ESP32-S3 microcontroller. This board integrates Wi-Fi and Bluetooth connectivity, making it an ideal choice for IoT applications, smart devices, and rapid prototyping. With its versatile GPIO pins and support for various peripherals, the ESP32-S3 Waveshare is suitable for both beginners and experienced developers.








The following table outlines the key technical details of the ESP32-S3 Waveshare development board:
| Specification | Details |
|---|---|
| Microcontroller | ESP32-S3 (Xtensa® 32-bit LX7 dual-core processor) |
| Clock Speed | Up to 240 MHz |
| Flash Memory | 16 MB |
| PSRAM | 8 MB |
| Wi-Fi | IEEE 802.11 b/g/n (2.4 GHz) |
| Bluetooth | Bluetooth 5.0 LE + Bluetooth Mesh |
| GPIO Pins | 36 GPIO pins (multiplexed with various functions) |
| Operating Voltage | 3.3V |
| Input Voltage Range | 5V (via USB-C) |
| Communication Interfaces | UART, SPI, I2C, I2S, CAN, PWM, ADC, DAC |
| ADC Resolution | 12-bit (up to 18 channels) |
| DAC Resolution | 8-bit (2 channels) |
| USB Interface | USB-C (supports USB OTG and programming) |
| Dimensions | 54 mm x 25 mm |
| Operating Temperature | -40°C to +85°C |
The ESP32-S3 Waveshare board features a variety of pins for different functionalities. Below is the pinout description:
| Pin Name | Type | Description |
|---|---|---|
| 3V3 | Power | 3.3V power output |
| GND | Power | Ground |
| GPIO0 | Digital I/O | General-purpose I/O, boot mode selection |
| GPIO1 | Digital I/O | General-purpose I/O, UART TX |
| GPIO2 | Digital I/O | General-purpose I/O, ADC, touch sensor |
| GPIO3 | Digital I/O | General-purpose I/O, UART RX |
| GPIO4-39 | Digital I/O | General-purpose I/O, multiplexed with ADC, PWM, I2C, SPI, etc. |
| EN | Input | Enable pin, active high |
| VIN | Power Input | Input voltage (5V via USB-C or external power source) |
Powering the Board:
Programming the Board:
Connecting Peripherals:
Uploading Code:
Below is an example of how to use the ESP32-S3 Waveshare to read data from a DHT11 temperature and humidity sensor:
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>
// Define the DHT sensor type and GPIO pin
#define DHTPIN 4 // GPIO pin connected to the DHT11 sensor
#define DHTTYPE DHT11 // DHT11 sensor type
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200); // Initialize serial communication
dht.begin(); // Initialize the DHT sensor
Serial.println("DHT11 Sensor Test");
}
void loop() {
delay(2000); // Wait 2 seconds between readings
// Read temperature and humidity values
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
// Check if the readings are valid
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// Print the readings to the Serial Monitor
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print("% Temperature: ");
Serial.print(temperature);
Serial.println("°C");
}
Board Not Detected by Computer:
Code Upload Fails:
Peripherals Not Working:
Wi-Fi or Bluetooth Connectivity Issues:
Q: Can I power the board using a battery?
A: Yes, you can power the board using a 3.7V LiPo battery connected to the VIN and GND pins, but ensure proper voltage regulation.
Q: Does the board support OTA (Over-The-Air) updates?
A: Yes, the ESP32-S3 supports OTA updates, which can be implemented using the Arduino IDE or ESP-IDF.
Q: Can I use the ESP32-S3 Waveshare for AI applications?
A: Yes, the ESP32-S3 includes hardware acceleration for AI tasks, making it suitable for lightweight AI and machine learning applications.
Q: Is the board compatible with MicroPython?
A: Yes, the ESP32-S3 Waveshare supports MicroPython, which can be flashed onto the board for Python-based development.