Hardware Details
Soldered NULA Dual ESP32-C5 is built around the ESP32-C5-WROOM-1-N8R8 module, with a PCB antenna on the module. Its 19 GPIO (general-purpose input/output pins) come out on two 13-pin, 2.54 mm headers that fit a breadboard. This page lists what each header pin does, how the board is powered, and what its two solder jumpers are for.
Key specifications
| Specification | Value |
|---|---|
| MCU | |
| MCU | ESP32-C5-WROOM-1-N8R8 module, the board's MCU (microcontroller unit), with a 32-bit RISC-V (an open processor architecture) single core |
| Clock | Up to 240 MHz |
| SRAM | 384 KB HP (high-performance) SRAM (static RAM), 16 KB LP (low-power) SRAM |
| Flash | 8 MB (plus 8 MB PSRAM: pseudo-static RAM, extra working memory in the module) |
| Connectivity | |
| Wi-Fi | Wi-Fi 6 (802.11ax), 2.4 GHz and 5 GHz |
| Bluetooth | Bluetooth 5 (LE: Bluetooth Low Energy) |
| Wireless module | ESP32-C5-WROOM-1-N8R8, PCB antenna |
| Interface | |
| GPIO | 19, on two 13-pin 2.54 mm headers |
| Qwiic | Yes, SDA on IO4 and SCL on IO5 |
| Breadboard compatible | Yes |
| Power | |
| Battery connector | 2-pin JST (the plug style your battery's connector must match), single-cell Li-ion (lithium-ion) |
| Onboard battery charger | Yes, TP4056M, 400 mA to 4.2 V |
| Supply | USB-C 5 V, battery, or 3.7 V to 5.3 V on the VCC pin |
| Logic level | 3.3 V |
| Other | |
| Development environments | Arduino IDE, MicroPython, ESP-IDF |
| Dimensions | 26 × 63 mm |
| Mounting hole | 1 × 3.2 mm |
Pinout
The two headers carry these signals:
- First header: RX, TX, IO2, IO7, IO6, IO10, IO3, IO0, RESET, 3V3, GND, VCC and VBAT.
- Second header: IO4, IO5, IO25, IO24, IO23, IO13, IO14, IO9, IO28, IO1, IO8, 3V3 and GND.
All GPIO use 3.3 V logic.
Pin details
| Pin | GPIO | Description |
|---|---|---|
| RX | GPIO12 | UART0 (the first of the chip's UART serial ports) receive. Also wired to the CH340K USB-to-serial chip, so Serial and uploads use it. Arduino name RX. |
| TX | GPIO11 | UART0 transmit. Also wired to the CH340K. Arduino name TX. |
| IO2 | GPIO2 | Default SPI (a serial bus with clock, data-out, data-in and chip-select lines) MISO in Arduino (MISO). Analog input: ADC1 (the chip's analog-to-digital converter) channel 1. Strapping pin (see below). |
| IO7 | GPIO7 | Default SPI MOSI in Arduino (MOSI). Strapping pin: read at reset to select where the JTAG signals come from (JTAG is the interface for debugging the CPU). |
| IO6 | GPIO6 | Default SPI clock in Arduino (SCK). ADC1 channel 5. |
| IO10 | GPIO10 | Default SPI chip select in Arduino (SS). |
| IO3 | GPIO3 | General-purpose I/O. ADC1 channel 2. Strapping pin: read at reset, with IO25, to set the clock edge of SDIO (Secure Digital Input/Output, the interface a host processor can use to talk to the chip). |
| IO1 | GPIO1 | General-purpose I/O. ADC1 channel 0. |
| IO25 | GPIO25 | General-purpose I/O. Strapping pin: read at reset, with IO3, to set the SDIO clock edge. |
| IO0, IO9, IO23, IO24 | GPIO0, GPIO9, GPIO23, GPIO24 | General-purpose I/O. |
| IO4 | GPIO4 | I2C (a two-wire bus between chips, with the SDA data and SCL clock lines) SDA (SDA in Arduino), shared with the Qwiic connector. 10 kΩ pull-up to 3.3 V through JP1. ADC1 channel 3. |
| IO5 | GPIO5 | I2C SCL (SCL in Arduino), shared with the Qwiic connector. 10 kΩ pull-up to 3.3 V through JP1. ADC1 channel 4. |
| IO8 | GPIO8 | Data input of the onboard WS2812B RGB LED (one LED with red, green and blue channels; LED_BUILTIN in Arduino). |
| IO13 | GPIO13 | The chip's native USB D− pin. The USB-C connector does not use it on this board, so it is free as a GPIO. |
| IO14 | GPIO14 | The chip's native USB D+ pin. Free as a GPIO, like IO13. |
| IO28 | GPIO28 | Connected to the user button, which pulls it to GND, with a 10 kΩ pull-up to 3.3 V. It is also a boot pin: low at reset starts the download mode instead of your program, as long as GPIO27 is high, which a pull-up on the board holds. |
| RESET | EN | The module's enable line, also on the reset button. Low turns the chip off; high turns it on. |
| 3V3 | – | The 3.3 V rail from the onboard regulator. |
| VCC | – | The supply the board selected (USB or battery). You can also feed 3.7 V to 5.3 V in here. |
| VBAT | – | The battery's positive terminal: the + pin of the 2-pin JST battery connector is on this line. |
| GND | – | Ground. |
On the headers, IO2, IO3, IO7, IO25 and IO28 are strapping pins. The module's GPIO26 and GPIO27 are strapping pins too, but they do not come out on the headers. The chip reads their levels when it comes out of reset and keeps them until it powers down; after that they work as normal I/O. A pull-up or pull-down resistor you wire to one of them can change how the chip starts: IO28 picks the boot mode together with GPIO26 and GPIO27, IO3 and IO25 set the SDIO clock edge, and IO7 the JTAG signal source. IO28 low at reset starts the download mode while GPIO27 is high, which a 10 kΩ pull-up on the board holds.
Power supply
The board runs from one of three sources:
- USB-C: 5 V from the cable, through a 500 mA fuse.
- Battery: a single-cell Li-ion battery on the 2-pin JST connector. The onboard TP4056M charger charges it from USB at 400 mA, up to 4.2 V, and a red LED shows the charger's status.
- VCC pin: 3.7 V to 5.3 V from an external supply.
You do not need to switch anything. With USB plugged in, the board runs from USB; when you unplug the cable, it switches to the battery by itself. The selected supply is on the VCC pin. A TPS7A2633 regulator turns it into the 3.3 V rail, rated at 500 mA, which powers the module, the Qwiic connector and the 3V3 pins.
Espressif's datasheet for the module asks for an external supply that can deliver at least 0.6 A, which is more than this regulator's 500 mA rating. When it transmits over Wi-Fi, the module alone draws peaks of up to 313 mA on 2.4 GHz and up to 403 mA on 5 GHz. Keep that in mind before you power other parts from the 3V3 pins or the Qwiic connector.
In deep sleep, with the RTC (real-time clock) timer and LP (low-power) memory on, the module draws 12 µA typical. That is the module's own figure: the purple power LED also runs from the 3.3 V rail whenever the board is on, and JP2 lets you disconnect it.
Keep the VCC pin between 3.7 V and 5.3 V. The GPIO pins are 3.3 V only: the module runs from 3.0 V to 3.6 V, and a high input level may be at most 0.3 V above its supply, so connect 5 V signals through a level shifter.
Dimensions
- Board size: 26 × 63 mm
- Mounting holes: one, 3.2 mm in diameter
Jumpers
| Jumper | Default | Function |
|---|---|---|
| JP1 | Closed (two copper bridges) | Connects the 10 kΩ pull-ups on SDA (IO4) and SCL (IO5) to 3.3 V. These are the Qwiic connector's I2C lines. JP1 has three pads: the middle one is on 3.3 V, and each outer pad goes through its own 10 kΩ resistor, one to SDA and one to SCL, so the closed jumper never joins SDA to SCL. Each bridge connects one pull-up; cut both to disconnect both pull-ups. |
| JP2 | Closed (one copper bridge) | Powers the purple power LED from the 3.3 V rail. Cut the bridge to turn that LED off and save its current. |