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
ESP-01 vs ESP-01S. Lets get one thing out of the way:
The ESP-01 is older while the ESP-01S is newer.
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.
Here is the ESP01/ESP01S pinout with the board oriented with antennae at top.
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.
Floating RST and CH_PD
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):
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):
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
PUN P5080H 88B44D
Chip Markings for 1Mbyte Serial Flash Chip
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.
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
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
On the ESP-01S three pull-ups have been added to the following signals:
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
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.
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
Written by John Main who has a degree in Electronic Engineering.
Note: Parts of this page were written using chatgpt
as a research assistant.