

The ESP32 GPIO Extension Board by Freenove is a versatile add-on designed to expand the General Purpose Input/Output (GPIO) capabilities of the ESP32 microcontroller. This board simplifies the process of connecting sensors, modules, and other electronic components to the ESP32, making it an essential tool for prototyping and development.
With its user-friendly design, the GPIO extension board provides easy access to the ESP32's pins, reducing the complexity of wiring and minimizing the risk of incorrect connections. It is ideal for hobbyists, students, and professionals working on IoT, robotics, and embedded systems projects.








The GPIO extension board mirrors the ESP32's pinout, providing easy access to all GPIO pins. Below is a table summarizing the pin configuration:
| Pin Name | Description | Notes |
|---|---|---|
| GND | Ground | Common ground for all connections |
| 3.3V | 3.3V Power Output | Power supply for external components |
| GPIO0-GPIO39 | General Purpose I/O Pins | Digital/Analog input/output |
| VIN | Input Voltage (5V from USB) | Used to power the ESP32 via USB |
| EN | Enable Pin | Used to reset or enable the ESP32 |
| TX/RX | UART Communication Pins | For serial communication |
| SDA | I2C Data Line | For I2C communication |
| SCL | I2C Clock Line | For I2C communication |
| SPI Pins | SPI Communication (MOSI, MISO, SCK, CS) | For SPI-based devices |
Connect the ESP32 to the GPIO Extension Board:
Connect External Components:
Power the System:
Program the ESP32:
Below is an example of how to use the GPIO extension board with an ESP32 to read a button press and control an LED:
// Define pin numbers for the button and LED
const int buttonPin = 4; // GPIO4 connected to the button
const int ledPin = 2; // GPIO2 connected to the LED
void setup() {
// Initialize the button pin as an input
pinMode(buttonPin, INPUT_PULLUP);
// Initialize the LED pin as an output
pinMode(ledPin, OUTPUT);
// Start the serial monitor for debugging
Serial.begin(115200);
Serial.println("ESP32 GPIO Extension Board Example");
}
void loop() {
// Read the state of the button
int buttonState = digitalRead(buttonPin);
// If the button is pressed, turn on the LED
if (buttonState == LOW) { // Button pressed (active low)
digitalWrite(ledPin, HIGH); // Turn on LED
Serial.println("Button Pressed: LED ON");
} else {
digitalWrite(ledPin, LOW); // Turn off LED
Serial.println("Button Released: LED OFF");
}
// Add a small delay to debounce the button
delay(50);
}
ESP32 Not Powering On:
Incorrect Pin Connections:
Unresponsive Sensors or Modules:
Overheating or Damage:
By following this documentation, you can effectively utilize the Freenove ESP32 GPIO Extension Board for your projects, ensuring reliable and efficient operation.