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.
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.
|Flash size||1 MByte||4 MByte
||Floating RST and CH_PD
||Serial RX, TX etc.
Both versions use the same ESP8266EX chip which has its own internal Flash memory.
Schematic diagram showing ESP-01 vs ESP-01S physical differences:
The ESP8266EX chip is a simpler version of IOT ESP8266 chips but the
most important point is that the chip lets you do standard IOT
Here's a list of its features:
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:
What is the real effect of these differences?
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 or you wish to program the board.
For the ESP-01S the pull-up resistors are attached in parallel when
you plug in 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
What is the effect of having an LED and its current limiting resistor attached to GPIO2:
The basic action is signal loading.
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.
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.
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.