The ESP-01 (and its updated sibling, the ESP-01S) is a compact breakout board for the ESP8266EX Wi-Fi System-on-Chip. It exposes exactly 8 pins. The direct answer for your wiring needs is that all 8 pins operate on a strict 3.3V logic standard, and the board requires specific pull-up/pull-down states on GPIO0 and GPIO2 just to boot into normal execution mode. Feeding it 5V logic or leaving the Chip Power-Down (CH_PD) pin floating will result in a bricked module or endless brownout resets.
The 8-Pin Reference Table & Boot States
Below is the definitive pinout for the ESP-01 and ESP-01S modules. Unlike regional AC wiring color codes that vary by country (NEC vs. IEC), embedded logic standards are universal but frequently misunderstood. The ESP8266 follows the 3.3V CMOS standard (Logic HIGH > 2.4V, Logic LOW < 0.8V), which conflicts directly with the 5V TTL standard used by legacy Arduino Uno boards.
| Pin Label | GPIO Number | Default State | Boot Requirement | Primary Function & Notes |
|---|---|---|---|---|
| VCC | - | 3.3V | 3.3V - 3.6V | Main power. Never exceed 3.6V. |
| GND | - | 0V | Common Ground | Ground reference for power and logic. |
| TX (TXD0) | GPIO1 | HIGH | Don't Care | UART Transmit. Outputs 3.3V logic. |
| RX (RXD0) | GPIO3 | HIGH | Don't Care | UART Receive. Not 5V tolerant. |
| CH_PD (EN) | - | HIGH | Must be HIGH | Chip Enable. Floats internally on ESP-01S, needs external pull-up on original ESP-01. |
| RST | - | HIGH | Active LOW | Reset pin. Pull LOW to reboot the chip. |
| GPIO0 | GPIO0 | HIGH | HIGH (Normal) / LOW (Flash) | Boot strapping pin. Pull LOW during power-on to enter UART bootloader. |
| GPIO2 | GPIO2 | HIGH | Must be HIGH | Boot strapping pin. Must be HIGH for normal execution. |
Rows People Get Wrong (And How They Brick Boards)
When troubleshooting a dead ESP-01 on the bench, 90% of failures trace back to misinterpreting three specific rows in the table above. Here is how to avoid them.
The ESP8266EX silicon has an absolute maximum voltage rating of 3.6V on any I/O pin. If you connect the RX pin directly to a 5V Arduino Uno TX pin without a logic level converter or a resistor voltage divider, you will permanently destroy the input protection diodes, eventually frying the chip. Always use a bidirectional logic level shifter (like the BSS138 MOSFET circuit) or a simple 1kΩ/2kΩ resistor divider when interfacing with 5V microcontrollers.
1. VCC vs. Adapter VCC
Many cheap 'ESP-01 USB Programmers' found on Amazon or AliExpress feature an AMS1117-3.3 voltage regulator. These adapters accept 5V from the USB port and output 3.3V to the ESP-01 VCC pin. However, if you are wiring the ESP-01 directly to a bench power supply or a breadboard, you must supply exactly 3.3V. Supplying 5V directly to the VCC pin will instantly destroy the internal 3.3V LDO and the RF front-end.
2. The CH_PD (EN) Floating Pin
On the original ESP-01 (identifiable by the blue LED connected to TXD0), the CH_PD pin has no internal pull-up resistor. If you leave it unconnected, ambient RF noise will cause the pin to flutter, resulting in random brownout resets. You must tie CH_PD to VCC (3.3V) directly, or use a 10kΩ pull-up resistor. The newer ESP-01S (blue LED on GPIO2) includes an onboard 10kΩ pull-up on EN, making it safer for breadboard prototyping, but best practice dictates driving it HIGH explicitly.
3. GPIO0 and GPIO2 Boot Strapping
The ESP8266 decides what to do at startup based on the voltage levels of GPIO0 and GPIO2.
- Normal Boot: GPIO0 = HIGH, GPIO2 = HIGH. The chip executes code from SPI flash.
- Flash Mode: GPIO0 = LOW, GPIO2 = HIGH. The chip halts normal execution and waits for UART data to write new firmware.
- SDIO Boot (Invalid for ESP-01): GPIO0 = HIGH, GPIO2 = LOW. The chip attempts to boot from an SDIO interface that doesn't exist on this breakout, resulting in a hang.
ESP-01 vs. ESP-01S: Hardware Differences
While the 8-pin footprint is identical, the internal component population changed significantly when Espressif and third-party manufacturers transitioned from the ESP-01 to the ESP-01S. According to the Espressif ESP8266EX Datasheet, the silicon remains the same, but the supporting passives differ.
| Feature | Original ESP-01 | Updated ESP-01S |
|---|---|---|
| Flash Memory | 512KB or 1MB (Winbond 25Q80) | 1MB, 2MB, or 4MB (usually 25Q32) |
| Onboard Pull-ups | None (Requires external 10kΩ on CH_PD, GPIO0, GPIO2) | Integrated 10kΩ pull-ups on EN, GPIO0, GPIO2, and RST |
| LED Indicator | Blue LED on TX (GPIO1) - Flashes during serial data | Blue LED on GPIO2 - Available for user control |
| Antenna Trace | Meandered inverted-F antenna | Optimized meandered trace with slightly better RF matching |
| Deep Sleep Current | ~20 µA (Limited by board leakage) | ~10 µA (Better power routing) |
When to choose which: Always buy the ESP-01S for new projects. The integrated pull-up resistors save you from wiring four external 10kΩ resistors just to get the board to boot reliably. Furthermore, having the LED on GPIO2 instead of the TX line means your serial debugging won't cause a strobe light effect on your desk. For comprehensive GPIO mapping and alternate functions, the Random Nerd Tutorials ESP8266 Pinout Guide provides excellent visual references for alternate SPI and I2C mappings.
Safe Interpretation When Markings Are Faded
The white silkscreen text on cheap ESP-01 clones is notoriously fragile. After a few rounds of plugging and unplugging from a tight USB programmer socket, the pin labels (VCC, GND, TX, etc.) can rub off entirely. If you inherit a board with faded markings, do not guess. Applying 5V to the wrong pin will destroy the module instantly.
Follow this bench procedure to safely identify the pins using a multimeter in continuity/diode mode:
- Identify GND: Turn the board over. The ESP8266EX chip has a large exposed thermal pad on its bottom. This pad is connected to ground. Place your multimeter's black probe on this thermal pad. Use the red probe to test the 8 header pins. The pin that beeps (reads < 1 Ω) is GND.
- Identify VCC: Look closely at the PCB traces near the header. The VCC pin trace is typically wider than the signal traces and routes directly into the large input capacitor (usually a 10µF or 100nF ceramic capacitor near the voltage regulator or chip). You can also verify this by checking continuity to the VCC pin of the onboard SPI flash chip (Pin 8 on the small 8-pin SOIC chip).
- Identify TX and RX: These route directly to the ESP8266EX. TX (GPIO1) and RX (GPIO3) are typically the two pins adjacent to GND and VCC on the bottom row. If you have a known-good 3.3V USB-to-Serial adapter, you can safely power the board via the identified VCC and GND, then use an oscilloscope or logic analyzer on the remaining pins. The pin outputting a brief burst of data at 74880 baud upon power-on is TX.
- Orient by the Chip Dimple: If all else fails, look at the ESP8266EX IC itself. Pin 1 of the IC is marked with a small laser-etched dimple or dot. By cross-referencing the Espressif ESP8266EX Datasheet pinout diagram with the visible PCB traces, you can map the header pins back to the silicon pins with 100% certainty.
By treating the ESP-01 not just as a black box, but as a specific implementation of the ESP8266EX with strict 3.3V logic and boot-strapping requirements, you eliminate the most common points of failure in Wi-Fi IoT prototyping. Always verify your logic levels, respect the boot-mode strapping pins, and default to the ESP-01S variant for a smoother bench experience.






