

The ESP32-S3 GPIO Extension Board by Freenove is a versatile add-on designed to expand the GPIO capabilities of the ESP32-S3 microcontroller. This board provides additional GPIO pins, making it easier to interface with multiple sensors, actuators, and other peripherals simultaneously. It is ideal for projects requiring enhanced connectivity and functionality, such as IoT applications, robotics, and home automation systems.








The following table outlines the key technical details of the ESP32-S3 GPIO Extension Board:
| Specification | Details |
|---|---|
| Microcontroller | Compatible with ESP32-S3 |
| Operating Voltage | 3.3V |
| GPIO Pin Count | Up to 16 additional GPIO pins |
| Communication Protocol | I2C (for onboard GPIO expander) |
| Power Supply | 5V input via USB or external power source |
| Dimensions | 60mm x 40mm x 15mm |
| Connector Type | Pin headers and screw terminals |
The GPIO extension board uses an onboard GPIO expander IC (e.g., PCA9555 or similar) to provide additional GPIO pins. Below is the pin configuration:
| Pin Name | Description |
|---|---|
| GND | Ground connection |
| VCC | 3.3V power supply input |
| SDA | I2C data line (connect to ESP32-S3 SDA) |
| SCL | I2C clock line (connect to ESP32-S3 SCL) |
| GPIO0-GPIO15 | General-purpose input/output pins |
Adafruit_PCA9555 for PCA9555) in your development environment.0x20 but may vary).Below is an example code snippet to interface the ESP32-S3 GPIO Extension Board using the Adafruit_PCA9555 library:
#include <Wire.h>
#include <Adafruit_PCA9555.h>
// Create an instance of the PCA9555 class
Adafruit_PCA9555 gpioExpander;
void setup() {
Serial.begin(115200); // Initialize serial communication for debugging
Wire.begin(); // Initialize I2C communication
// Initialize the GPIO expander with its I2C address (default: 0x20)
if (!gpioExpander.begin(0x20)) {
Serial.println("Failed to initialize GPIO expander!");
while (1); // Halt execution if initialization fails
}
Serial.println("GPIO expander initialized successfully!");
// Set GPIO0 as an output pin
gpioExpander.pinMode(0, OUTPUT);
}
void loop() {
// Toggle GPIO0 on and off
gpioExpander.digitalWrite(0, HIGH); // Set GPIO0 to HIGH
delay(1000); // Wait for 1 second
gpioExpander.digitalWrite(0, LOW); // Set GPIO0 to LOW
delay(1000); // Wait for 1 second
}
I2C Communication Failure:
GPIO Pins Not Responding:
Overheating or Damage:
By following this documentation, users can effectively integrate the ESP32-S3 GPIO Extension Board into their projects, enhancing the functionality and connectivity of their designs.