ESP32-C5: The RISC-V Powerhouse with Wi-Fi 6 and Bluetooth 5
Explore the capabilities of the ESP32-C5, Espressif's first RISC-V based MCU with Wi-Fi 6 and Bluetooth 5.2 support, designed for high-performance IoT applications.

The ESP32-C5 represents a significant evolution in Espressif's popular ESP32 family, marking their debut of a System-on-Chip (SoC) built around the RISC-V architecture. This shift from the Tensilica cores used in previous ESP32 generations brings a modern, open-source instruction set architecture to the forefront, promising enhanced performance and flexibility for embedded developers. It is designed to meet the growing demands for connectivity and processing power in the Internet of Things (IoT) landscape.
At the heart of the ESP32-C5 is a dual-core 32-bit RISC-V processor, capable of running at clock speeds up to 240 MHz. This powerful core is complemented by integrated Wi-Fi 6 (802.11ax) and Bluetooth 5.2 (LE) connectivity, enabling robust and high-throughput wireless communication. The inclusion of Wi-Fi 6 is particularly noteworthy, offering improved efficiency, reduced latency, and better performance in crowded wireless environments, making it ideal for next-generation smart home devices, industrial automation, and advanced sensor networks.
Positioned as a high-performance, cost-effective solution, the ESP32-C5 sits at the premium end of the ESP32 spectrum, targeting applications that require more processing power, faster wireless speeds, and advanced security features. Its RISC-V core offers a compelling alternative for developers looking to leverage the benefits of an open ISA, while the advanced wireless capabilities cater to the increasing need for reliable and fast data transfer in connected devices. This makes it suitable for makers, students, and embedded engineers working on sophisticated IoT projects.
The ESP32-C5's release around early 2024 signifies Espressif's commitment to innovation and adapting to industry trends. By embracing RISC-V and integrating cutting-edge wireless standards like Wi-Fi 6, they are providing a platform that is not only powerful but also future-proof. This chip is well-suited for projects that demand significant computational resources, seamless wireless integration, and the ability to handle complex data streams, such as real-time audio processing, advanced machine learning at the edge, or sophisticated control systems.
Watch
Related video, embedded from YouTube.
Specifications
| Microcontroller / SoC | ESP32-C5 (RISC-V based) |
| Architecture | Dual-core 32-bit RISC-V |
| Clock speed | Up to 240 MHz |
| Flash / Storage | Typically 4MB to 16MB external SPI flash |
| RAM / SRAM | 128KB SRAM (internal), 4MB PSRAM (optional external) |
| Operating voltage | 3.3V |
| Digital I/O pins | 34 (configurable as GPIO) |
| Analog / ADC | 12-bit ADC (up to 16 channels) |
| PWM | Yes (up to 16 channels) |
| Connectivity | Wi-Fi 6 (802.11ax) 2.4 GHz, Bluetooth 5.2 (LE) |
| USB | USB-to-UART bridge (e.g., CH340C or similar) for programming and serial communication |
| Power input | USB (5V) or external 5V/3.3V supply |
| Dimensions | Typically 25.5mm x 18mm (for common development boards) |
Pinout & pin functions
| Pin | Function |
|---|---|
| 3V3 | 3.3V Power Output |
| GND | Ground |
| EN | Enable Pin (High to enable) |
| GPIO0 | Boot Mode Select (Low during boot for download mode) |
| GPIO1 (TX0) | UART0 TX, GPIO |
| GPIO2 | GPIO, ADC1_CH2 |
| GPIO3 (RX0) | UART0 RX, GPIO |
| GPIO4 | GPIO, ADC1_CH4 |
| GPIO5 | GPIO, SPI/I2C/PWM |
| GPIO6 | SPI Host Clock (SCK) |
| GPIO7 | SPI Host Data Input (MISO) |
| GPIO8 | SPI Host Data Output (MOSI) |
| GPIO9 | SPI Host Chip Select (CS) |
| GPIO10 | GPIO, ADC1_CH10 |
| GPIO11 | GPIO, ADC1_CH11 |
| GPIO12 | GPIO, ADC1_CH12 |
| GPIO13 | GPIO, ADC1_CH13 |
| GPIO14 | GPIO, ADC1_CH14 |
| GPIO15 | GPIO, ADC1_CH15 |
| GPIO16 | GPIO, UART2 RX |
| GPIO17 | GPIO, UART2 TX |
| GPIO18 | GPIO, ADC2_CH0 |
| GPIO19 | GPIO, ADC2_CH1 |
| GPIO20 | GPIO, ADC2_CH2 |
| GPIO21 | GPIO, ADC2_CH3 |
| GPIO25 | GPIO, ADC1_CH18 |
| GPIO26 | GPIO, ADC1_CH19 |
| GPIO27 | GPIO, ADC1_CH20 |
| GPIO31 | GPIO, ADC1_CH21 |
| GPIO32 | GPIO, ADC1_CH22 |
| GPIO33 | GPIO, ADC1_CH23 |
| GPIO34 | GPIO, ADC1_CH24 |
| GPIO35 | GPIO, ADC1_CH25 |
| GPIO36 | GPIO, ADC1_CH26 |
| GPIO37 | GPIO, ADC1_CH27 |
| GPIO38 | GPIO, ADC1_CH28 |
| GPIO39 | GPIO, ADC1_CH29 |
| GPIO40 | GPIO, ADC2_CH4 |
| GPIO41 | GPIO, ADC2_CH5 |
| GPIO42 | GPIO, ADC2_CH6 |
| GPIO43 | GPIO, ADC2_CH7 |
| GPIO44 | GPIO, ADC2_CH8 |
| GPIO45 | GPIO, ADC2_CH9 |
| GPIO46 | GPIO, ADC2_CH10 |
| GPIO47 | GPIO, ADC2_CH11 |
| GPIO48 | GPIO |
| GPIO49 | GPIO |
| GPIO50 | GPIO |
| GPIO51 | GPIO |
| GPIO52 | GPIO |
| GPIO53 | GPIO |
Wiring & circuit basics
The ESP32-C5 operates at a logic level of 3.3V. Always use 3.3V compatible components or level shifters when interfacing with 5V devices. Powering the board can be done via its USB port (which provides 5V) or through the VIN pin, which should also receive a 5V supply. The onboard voltage regulator will step this down to the 3.3V required by the ESP32-C5. Ensure your power supply can provide sufficient current, typically at least 500mA for stable operation, especially when Wi-Fi or Bluetooth is active.
Connecting a simple LED is a common first step. Connect the anode (longer leg) of an LED to a digital GPIO pin (e.g., GPIO2) through a current-limiting resistor (typically 220-330 ohms for a standard LED). Connect the cathode (shorter leg) of the LED to a GND pin. This ensures the LED receives power when the GPIO pin is HIGH and protects it from excessive current.
For more complex sensors, like an I2C device (e.g., a BME280 environmental sensor), you'll typically connect its VCC to the board's 3V3 pin, GND to a GND pin, SDA to a designated I2C SDA pin (often GPIO21 on many ESP32 boards), and SCL to the corresponding I2C SCL pin (often GPIO22). Some I2C devices may require pull-up resistors on the SDA and SCL lines, though many development boards include these onboard. Always consult the sensor's datasheet and the ESP32-C5 pinout diagram for specific connections.
Programming & getting started
The ESP32-C5 is well-supported by the Arduino IDE, MicroPython, and CircuitPython, offering a familiar development environment for many makers. For the Arduino IDE, you'll need to install the ESP32 board support package via the Board Manager. For MicroPython/CircuitPython, you'll need to flash the appropriate firmware to the ESP32-C5's flash memory. Once the environment is set up, you can connect the ESP32-C5 via USB, select the correct board and COM port, and upload your code using the standard 'Upload' button.
To upload your first program (a 'Blink' sketch for an onboard LED or an external LED), ensure the ESP32-C5 is connected to your computer via USB. In the Arduino IDE, select the correct board (e.g., 'ESP32C5 Dev Module'), choose the COM port, and click 'Upload'. You may need to press the BOOT button on the development board during the initial upload process if the auto-reset doesn't work. For MicroPython/CircuitPython, after flashing the firmware, you can use tools like Thonny IDE to connect to the device's REPL and run Python scripts directly or upload them.