MakerLab
ESP32ESP32-DevKitC-VE

ESP32-DevKitC-VE: Your Gateway to Powerful IoT Projects

A versatile development board featuring the ESP32-WROOM-32 module, ideal for Wi-Fi and Bluetooth enabled embedded applications.

ESP32-DevKitC-VE

The ESP32-DevKitC-VE is a popular and affordable development board designed to easily prototype with Espressif's ESP32 System-on-Chip (SoC). It provides a convenient platform for makers, students, and engineers to leverage the ESP32's extensive capabilities without the need for complex circuit design. The board breaks out most of the ESP32's GPIO pins to standard 0.1-inch headers, making it simple to connect sensors, actuators, and other peripherals.

At its heart, the ESP32-DevKitC-VE utilizes the ESP32-WROOM-32 module, which integrates the powerful ESP32 chip. The ESP32 is a dual-core Tensilica Xtensa LX6 microprocessor running at up to 240MHz, equipped with built-in Wi-Fi (802.11 b/g/n) and Bluetooth (v4.2 BR/EDR and BLE) connectivity. This makes it an excellent choice for Internet of Things (IoT) projects requiring wireless communication.

Released around 2019, the ESP32-DevKitC-VE represents a mature iteration of Espressif's development boards, building upon earlier designs. It strikes a balance between extensive features and ease of use, making it suitable for a wide range of applications, from simple sensor data logging to complex smart home automation systems. Its widespread adoption means a vast community and abundant resources are available for support and inspiration.

This board is particularly well-suited for makers looking to explore IoT, wireless sensor networks, robotics, and embedded machine learning. Its integrated Wi-Fi and Bluetooth simplify connectivity, reducing the need for external modules. The availability of multiple development environments, including Arduino IDE, MicroPython, and Espressif's own ESP-IDF, caters to various skill levels and project requirements.

Watch

Related video, embedded from YouTube.

Specifications

Microcontroller / SoCESP32-WROOM-32 module (based on ESP32-D0WDQ6 chip)
ArchitectureDual-core Tensilica Xtensa LX6
Clock speedUp to 240 MHz
Flash / Storage4 MB (on ESP32-WROOM-32 module)
RAM / SRAM520 KB SRAM
Operating voltage3.3V
Digital I/O pins36 (some shared or not accessible on this board)
Analog / ADC12-bit, up to 18 channels
PWMUp to 16 channels
ConnectivityWi-Fi 802.11 b/g/n, Bluetooth v4.2 BR/EDR and BLE
USBMicro-USB for power and programming (CP2102 or CH340 USB-to-Serial converter)
Power input5V via Micro-USB or 5V/Vin pin, 3.3V via 3.3V pin
DimensionsApprox. 52mm x 26.5mm (PCB)

Pinout & pin functions

PinFunction
3V33.3V Power Output
GNDGround
ENEnable (Reset)
GPIO34Input only ADC1_CH6
GPIO35Input only ADC1_CH7
GPIO36Input only ADC1_CH0
GPIO39Input only ADC1_CH3
GPIO32ADC1_CH4
GPIO33ADC1_CH2
GPIO25DAC1 ADC2_CH8
GPIO26DAC2 ADC2_CH9
GPIO27ADC2_CH7
GPIO14ADC2_CH6
GPIO12ADC2_CH5
GPIO13ADC2_CH4
GPIO4GPIO4
GPIO2GPIO2
GPIO15ADC2_CH3 Input only
GPIO5GPIO5
GPIO18ADC1_CH5 SPI SCK
GPIO19ADC1_CH6 SPI MISO
GPIO21I2C SDA
GPIO22I2C SCL
GPIO23ADC1_CH9 SPI MOSI
GPIO17SPI CS0
GPIO16GPIO16
GPIO0Boot button input GPIO0
GPIO2Built-in LED GPIO2
GPIO1UART TXD0
GPIO3UART RXD0
VIN5V Power Input
GNDGround
5V5V Power Output
3.3V3.3V Power Output
RSTReset Button

Wiring & circuit basics

The ESP32-DevKitC-VE operates at a logic level of 3.3V. Connecting 5V devices directly to its GPIO pins can cause damage. If you need to interface with 5V components, use a logic level shifter. Powering the board can be done via the Micro-USB port (typically 5V from a computer or USB adapter) or the VIN pin, which should also receive a 5V supply. The onboard voltage regulator will step this down to 3.3V for the ESP32 chip and other components. Ensure your power source can supply at least 500mA, especially when using Wi-Fi or Bluetooth, to avoid brownouts.

For a simple LED project, connect an LED's anode (longer leg) to a digital GPIO pin (e.g., GPIO2, which also controls the onboard LED) through a current-limiting resistor (typically 220-330 ohms). Connect the LED's cathode (shorter leg) to a GND pin. When the GPIO pin is HIGH (3.3V), current flows, and the LED lights up. For an I2C sensor, connect its SDA pin to the board's SDA pin (GPIO21) and its SCL pin to the board's SCL pin (GPIO22). Also, connect the sensor's VCC to the board's 3.3V pin and its GND to a GND pin. Remember to enable the pull-up resistors on the SDA and SCL lines, either externally or via software configuration if the sensor doesn't have them built-in.

Always double-check pin assignments and voltage levels before connecting external components. Incorrect wiring can permanently damage the ESP32-DevKitC-VE or the connected peripherals. Refer to the specific datasheet of any sensor or module you intend to use for precise connection details and operating requirements.

Programming & getting started

The ESP32-DevKitC-VE is well-supported by several popular development environments. For beginners and those familiar with Arduino, the Arduino IDE is an excellent choice. Install the ESP32 board support package via the Board Manager. For a more Pythonic experience, MicroPython or CircuitPython can be flashed onto the device, offering a high-level programming environment. For advanced users and complex projects, Espressif's official ESP-IDF (Espressif IoT Development Framework) provides the most control and access to all hardware features. PlatformIO, an open-source ecosystem for IoT development, also offers robust support for the ESP32.

To upload your first program using the Arduino IDE: 1. Install the ESP32 board support. 2. Select the 'ESP32 Dev Module' from the Tools > Board menu. 3. Choose the correct COM port associated with your board (check Device Manager on Windows or `ls /dev/tty*` on Linux/macOS). 4. Write a simple sketch, like the 'Blink' example, modifying the pin number if necessary (e.g., use GPIO2 for the onboard LED). 5. Click the Upload button. The board will typically enter bootloader mode automatically, or you may need to press the BOOT button while pressing and releasing the RST button, then release BOOT.

Project ideas

Wi-Fi Connected Weather StationBuild a weather station that reads temperature and humidity from a sensor (e.g., DHT22 on GPIO4) and sends the data to an online service or displays it on a web server hosted by the ESP32. Uses GPIO, I2C/1-Wire (depending on sensor), and Wi-Fi.
Bluetooth Low Energy Heart Rate MonitorCreate a wearable device that reads heart rate from a sensor (e.g., MAX30102 on I2C) and broadcasts the data via BLE. Ideal for learning about BLE communication and sensor interfacing.
Smart Home Automation HubDevelop a central hub that controls smart lights, switches, or other appliances using Wi-Fi or Bluetooth. Can involve MQTT for communication with other devices and services. Utilizes GPIO, Wi-Fi/Bluetooth, and potentially I2C/SPI.
ESP32 Web Server with Touch ControlsHost a simple web page directly on the ESP32 that allows users to control GPIO pins (e.g., turn LEDs on/off) via a browser. Uses Wi-Fi and GPIO, demonstrating basic web server capabilities.
Real-time Data Logger to CloudLog sensor data (e.g., accelerometer, GPS) to an SD card (requires an SD card module connected via SPI) and periodically upload it to a cloud platform like ThingSpeak or AWS IoT. Teaches SPI, file system management, and cloud integration.
Voice Controlled Assistant NodeIntegrate a microphone module and use libraries to perform basic voice command recognition (e.g., 'turn on light') to control connected devices. Requires significant processing and potentially external libraries, showcasing advanced ESP32 capabilities.

Buying tips & gotchas

When purchasing an ESP32-DevKitC-VE, be aware of potential clones or variants that might use different USB-to-Serial chips (like CH340 instead of CP2102), which may require separate driver installations. Always check the product description carefully. Common pitfalls include accidentally connecting 5V logic to 3.3V pins, exceeding the current limits of the onboard 3.3V regulator (use an external 3.3V supply or power via USB/VIN for higher current draws), and issues with flash size or memory when using complex libraries. Ensure you have a reliable Micro-USB cable, as poor quality cables can cause upload failures or unstable power. Accessories like jumper wires, breadboards, and various sensors are essential for prototyping.