

The ESP32-D, manufactured by HiLetgo, is a versatile and powerful microcontroller designed for Internet of Things (IoT) applications. It integrates Wi-Fi and Bluetooth capabilities, enabling seamless wireless communication. With its dual-core processor, extensive GPIO pins, and support for multiple communication protocols, the ESP32-D is ideal for smart devices, home automation, wearable electronics, and industrial IoT projects.








The ESP32-D offers robust performance and flexibility for a wide range of applications. Below are its key technical details:
| Parameter | Specification |
|---|---|
| Manufacturer | HiLetgo |
| Microcontroller | Tensilica Xtensa LX6 Dual-Core |
| Clock Speed | Up to 240 MHz |
| Flash Memory | 4 MB (varies by model) |
| SRAM | 520 KB |
| Wi-Fi | 802.11 b/g/n (2.4 GHz) |
| Bluetooth | v4.2 BR/EDR and BLE |
| Operating Voltage | 3.3V |
| Input Voltage Range | 5V (via USB) or 3.3V (via pins) |
| GPIO Pins | 34 |
| ADC Channels | 18 (12-bit resolution) |
| DAC Channels | 2 |
| Communication Protocols | UART, SPI, I2C, I2S, CAN, PWM |
| Power Consumption | Ultra-low power (varies by mode) |
| Operating Temperature | -40°C to +85°C |
The ESP32-D features a variety of pins for different functionalities. Below is a summary of the pin configuration:
| Pin Name | Functionality | Description |
|---|---|---|
| GPIO0 | Input/Output, Boot Mode Selection | Used for boot mode selection during startup. |
| GPIO1 | UART TX | Transmit pin for UART communication. |
| GPIO2 | Input/Output, ADC, PWM | General-purpose pin with ADC and PWM support. |
| GPIO3 | UART RX | Receive pin for UART communication. |
| GPIO4 | Input/Output, ADC, PWM | General-purpose pin with ADC and PWM support. |
| GPIO5 | Input/Output, ADC, PWM | General-purpose pin with ADC and PWM support. |
| GPIO12 | Input/Output, ADC, PWM, Boot Mode | Can be used for boot mode selection. |
| GPIO13 | Input/Output, ADC, PWM | General-purpose pin with ADC and PWM support. |
| GPIO14 | Input/Output, ADC, PWM | General-purpose pin with ADC and PWM support. |
| GPIO15 | Input/Output, ADC, PWM | General-purpose pin with ADC and PWM support. |
| GPIO16 | Input/Output | General-purpose pin. |
| GPIO17 | Input/Output | General-purpose pin. |
Note: Not all GPIO pins support ADC, PWM, or other advanced features. Refer to the ESP32-D datasheet for a complete pinout and functionality details.
The ESP32-D is easy to integrate into a variety of projects. Below are the steps and best practices for using the component effectively.
Powering the ESP32-D:
Connecting to GPIO Pins:
Programming the ESP32-D:
Uploading Code:
The following example demonstrates how to blink an LED connected to GPIO2 of the ESP32-D:
// Blink an LED connected to GPIO2 on the ESP32-D
// Ensure the LED's anode is connected to GPIO2 and cathode to GND.
#define LED_PIN 2 // Define the GPIO pin for the LED
void setup() {
pinMode(LED_PIN, OUTPUT); // Set GPIO2 as an output pin
}
void loop() {
digitalWrite(LED_PIN, HIGH); // Turn the LED on
delay(1000); // Wait for 1 second
digitalWrite(LED_PIN, LOW); // Turn the LED off
delay(1000); // Wait for 1 second
}
ESP32-D Not Detected by Computer:
Code Upload Fails:
Wi-Fi Connection Issues:
Random Resets or Instability:
Q: Can the ESP32-D operate on battery power?
A: Yes, the ESP32-D can be powered by a 3.7V LiPo battery with a suitable voltage regulator.
Q: How do I use Bluetooth on the ESP32-D?
A: Use the Arduino IDE or ESP-IDF to write Bluetooth code. The ESP32-D supports both Bluetooth Classic and BLE.
Q: What is the maximum range of the ESP32-D's Wi-Fi?
A: The range depends on environmental factors but typically extends up to 100 meters in open spaces.
Q: Can I use the ESP32-D with sensors and modules?
A: Yes, the ESP32-D supports I2C, SPI, UART, and other protocols, making it compatible with a wide range of sensors and modules.
By following this documentation, you can effectively utilize the ESP32-D in your IoT and automation projects.