ESP-01 vs ESP-01S: Confused about the two board variants? Which one is right for you? Find out the exact differences between the 01 and 01S here and choose the right one.

ESP-01 vs ESP-01S. Lets get one thing out of the way:

    The ESP-01 is older while the ESP-01S is newer.

arduino float to string - how to do it easily with code examples

It means that the older board is being phased  out, but as of Aug 2023 you can still buy the ESP-01.

Will you get away with using the older version?

    The short answer is yes.

This is due to the fact that the changes between the two boards are small, with the notable exception of the size of the on-board memory.

You can still use the ESP-01 programmer and the ESP-01S will function in the same way. The only functional difference is that on the ESP-10S there are no TX or Power LEDs. There is only one LED attached to GPI02.

ESP01 pinout

Here is the ESP01/ESP01S pinout with the board oriented with antennae at top.

ESP01/ESP01S antenna at top showing pinout

ESP-01 vs ESP-01S: So what's the difference?

The serial flash chip fitted to the ESP-01 is smaller than that fitted for the ESP-01S. You must check the fitted serial chip as either 1MByte or 4MByte can be fitted.

Feature ESP-01 ESP-01S
Flash size 1 MByte 4 MByte
Programmable LEDs
Floating RST and CH_PD
Programming interface
Serial RX, TX etc.

Both versions use the same ESP8266EX chip which has its own internal Flash memory.

How to Tell the Difference visually

How to easily tell the difference between an ESP01S and an ESP01(on the left is an ESP01S and on the right is an ESP01):

ESP01S svga partESP01 image

The image above shows a ESP01S (left) with a single white box to the right and below the antenna - this is the blue LED, and ESP01 (right) which has 4 components in the same location (2 LEDs and 2 resistors). This is how to identify the difference between an ESP01S and ESP01.

ESP01/ESP01S pinout/feature comparison

Schematic diagram showing ESP-01 vs ESP-01S physical differences (antennae at bottom - but not drawn):

Schematic wiring differences ESP-01 vs ESP-01S

ESP8266EX details

The ESP8266EX chip, fitted to both ESP-01 and ESP-01S, is a simpler version of IOT ESP8266 chips but the most important point is that the chip lets you do standard IOT operations - in the same way that all ESP chips are capable of doing.

Here's a list of its features:

  • 80MHz CPU clock speed.
  • 1MB of flash memory.
  • 160KB of RAM.
  • Integrated Wi-Fi transceiver.
  • Low power consumption.
  • Wide operating voltage range (2.2V to 3.6V).

Identifying the Flash Chip fitted

The Flash chip fitted to the board is an extra storage area providing either 32MBit (4 Mbyte), 8Mbit (1MByte). The following are some of the most common chip markings:

Chip Markings for 4MByte Serial Flash Chip

  • XMC PP950400
  • T25S80 XM20d2
  • PUN P5080H 88B44D
  • AM1433 25040BT

Chip Markings for 1Mbyte Serial Flash Chip

  • PN25F08 1708X8G

What does it mean?

What is the real effect of these differences?

ESP-01 vs ESP-01S: Programming

The programmer board has the two pull-up resistors for RST and CH_PD. So when you plug in the programmer board these pins are set to the correct voltages (for the ESP-01). This allows push buttons to pull down the signals to either indicate that you want to re-flash the whole board, to update the bootloader (or other code e.g. LUA), or you wish to program the board with your own program.

For the ESP-01S the pull-up resistors are attached in parallel to the programmer board (so they effectively give a stronger pull-up). This does not affect the operation of the programmer.

Therefore for programming:

There is no effective difference for the ESP-01 vs ESP-01S for programming in either boot or prog. mode.

The only other difference, that affects your program, is the different memory size of the fitted serial Flash memory. The ESP-01S is bigger.

LED changes

On the ESP-01, LEDs were attached to TX and Power signals, this is commonly done for Arduino boards but for the ESP-01S a single LED is attached to the GPIO2 line.

On the ESP-01 the LED is attached to the TX line (this is the LED_BUILTIN LED) that allowed you to make a simple blink program. However you could not really use that TX line for anything else as it is dedicated to programming the ESP8222 chip.

On the ESP-01S the LED_BUILTIN is on the GPIO2 line. It means that you can control the LED from your program in the same way as before but now the GPIO2 line has a status indicator.

What does it mean in terms of circuit operation?

When you pull the GPIO2 pin low the LED will light and current will be drawn. When high it's off and no current is drawn. This could be important for low power operation.

GPIO2 LED consequences

What is the effect of having an LED and its current limiting resistor attached to GPIO2:

The basic action is signal loading.

  • When GPIO2 is high there is no load.
  • When GPIO2 is low there is current sunk by the connected source (it is an active low circuit).

If GPIO2 pin is set set as an input, the the driver (your external circuit) must have a high enough low side current drive. Similarly as an output from the ESP8266 current will be sunk when the output is set low.


On the ESP-01S three pull-ups have been added to the following signals:

  • GPIO0
  • RST
  • CH_PD

What does this mean in practice?

Well you could say that any programmer that you attach does not need to have pull-ups for it to be able to program a chip. That is a silly idea as the programmers are already available and they work, and the pull-up is just stronger as the pull-up resistance is in parallel, so it has no real effect on programming operation.

The real reason for two of the pull-ups is enhanced reliability. The signals

  • RST
  • CH_PD

Are programming and reset (On the ESP8266 these specific pins do not have programmable pull-ups as they are control inputs). If these are left floating i.e. in most circuits out there, there is a chance that noise can get in and trigger an undesired action e.g. a reset.

Having pull-ups on these pins ensures that no random operation can occur.

  • GPIO0

As for the pull-up on the GPIO0 pin - it means you can attach a push button without you having to provide an additional pull-up resistor i.e. implementing a push button input is now simple.

For instance you can easily implement a relay control (GPIO2 - output) and push button override (GPIO0 - input) that you could use as a web controlled light switch with local manual control.

ESP-01 vs ESP-01S: Conclusions

The ESP-01S usually has a 4MByte serial flash fitted - 4x bigger than the ESP-01.

The ESP-01S is more reliable than the ESP-01, as pull-ups ensure that no random signals can get to RST or CH_PD.

The single pull-up on the GPIO0 pin allows easy push button operation.

The single LED (active low) on GPIO2 allows programmatic control of an LED which can also act as a status indicator (for instance indicating when a relay is on or off).

Ultimately when you do a comparison of ESP-01 vs ESP-01S they are fundamentally the same except for the Flash memory chip and the LED load on GPIO2.

Written by John Main who has a degree in Electronic Engineering.
Parts of this page were written using chatgpt as a research assistant.


Have your say about what you just read! Leave me a comment in the box below.

Don’t see the comments box? Log in to your Facebook account, give Facebook consent, then return to this page and refresh it.

Privacy Policy | Contact | About Me

Site Map | Terms of Use