Advertisement

If you have spent any time creating custom firmware with either ESPHome or Tasmota, you will have undoubtedly come across one of the many Ai-Thinker modules featuring the ESP8266 microchip. At this point, Ai-Thinker’s ESP-XX modules are so ubiquitous with Espressif’s ESP8266 that many believe them to be a competitor. In reality, these ESP-XX modules all feature ESP8266 (or ESP8285) microchips and Ai-Thinker is everything but a competitor to Espressif: it is a customer.

Advertisement

The following analogy might help you understand how the ESP8266 and ESP-01S/ESP-07S/ESP-12S etc. relate to one another. Just as two computers might have the same Intel Core i5 CPU’s, the rest of the hardware can greatly vary. One computer might use a Mini-ITX motherboard, which makes it much smaller but restricts it to only two USB ports and is more difficult to work with. The other computer might have an ATX motherboard that has 4 USB ports and many more PCIe slots.

In this analogy the ESP8266 would be the CPU. It remains the same, whether it is on a Mini-ITX or ATX motherboard. Each system has its pros and cons. The ATX motherboard has more ports and slots, but is much larger than the Mini-ITX motherboard and thus needs a larger chassis. The same goes for these ESP-XX modules: The ESP-01S might be small but only has two usable GPIO pins. In contrast, the ESP-07S has a larger flash storage and more available GPIO pins, but the downside is that it is larger.

Advertisement

You will usually find these modules under the moniker ESP-XX, with XX representing two numbers. Revisions and variants will usually receive a suffix in the form of an S, F, E, or M. Currently, there are at least 22 modules, which come in various shapes and sizes, but with one thing in common: the ESP8266. Many of these modules have been discontinued, and you will also find variants going by the same name. For example, there is an ESP-01 with a blue PCB and a flash size of 512 KiB and another with a black PCB and double the flash storage. I am continually baffled by how Chinese manufacturers name their products.

The ESP-XX modules deserve their place in maker-history, as it was the thumb-sized ESP-01 which first made the ESP8266 popular in the West and not a board such as the LOLIN (previously WEMOS) D1 mini. Still today, the ESP-01 remains popular and is found at the heart of many projects, as are the ESP-07S and ESP-12F/S. In this article I will be explaining what exactly differentiates not just these three, but all of the ESP-XX models.

Table of Contents

About Ai-Thinker, the maker of ESP-XX modules

There is little to nothing about Ai-Thinker, the company that manufactures the ESP-XX modules with the ESP8266 from Espressif. They describe their corporate culture as: Building consensus, hold dreams, and move forward together!, and most of their website is badly translated Chinese, making them even more mysterious.

Advertisement

What I have been able to find out from the Ai-Thinker page on Alibaba is that it was established in 2012 and that it merged with Shenzhen B&T Technology Co., Ltd. in 2016. Their customers include Tuya, Yeelight, DeLonghi, and TCL. Ai-Thinker is based in Shenzhen, which is fitting, as it has been dubbed China’s Silicon Valley by the media.

While we enthusiasts might know Ai-Thinker just for their Wi-Fi products, they do also produce LoRa, GPS/GPRS, and 2.4G modules. Their main clients appear to be other manufacturers who use Ai-Thinker modules in their consumer products or for prototyping.

Why not use an ESP8266 board?

In my ESPHome beginner’s guide, I recommend that beginners start off their journey with an ESP8266 board, such as the popular LOLIN (previously WEMOS) D1 mini. This type of ESP8266 board is far easier to work with than any of the ESP-XX modules. The LOLIN D1 mini and other boards have the following features which you won’t be able to find on any module in this article:

  • The on-board USB-to-UART bridge allows you to connect the ESP8266 board directly to a computer without having to use any extra board.
  • The same bridge can be used to power the ESP8266 board using an old phone charger. ESP-XX modules do not have a micro-USB port for easy powering.
  • The on-board 3.3V regulator means you can power the ESP8266 board using 5V.

To be able to flash the ESP-XX modules, you will need to purchase an external USB-to-UART as there is no Micro-USB port to be found on any of them. You also won’t be able to power such a module using 5V as they have no voltage regulator meaning that you will either need to work with 3.3V or add a buck converter.

I’m fully aware that I might not be making a strong case for the ESP-XX modules, but believe me, there are perfectly good reasons to use them instead of an ESP8266 board, even for hobbyists! Everything I have just listed as missing on these modules does not have to be a negative point. Because those components aren’t on the same board, the module can be built with a much smaller footprint. As you might already have speculated, fewer components generally also means a lower price.

The many Ai-Thinker ESP-XX modules compared

Will there ever be a person who knows exactly how many variants of ESP-XX modules there are in circulation? I doubt it. But I’ve done my best to gather information on every module I could find. The task isn’t made easier by the fact that Ai-Thinker sometimes creates multiple revisions of the same board without amending the name. See the aforementioned ESP-01 as an example.

ModuleIO*Cert.**AntennaFlash sizeDimensions [mm]In production?Maker friendly?
ESP-0121PCB trace512 KiB (blue PCB) or 1 MiB (black PCB)14.3 × 24.8Replaced by ESP-01S2No (flash size)
ESP-01S21PCB trace1 MiB14.4 × 24.7YesYes
ESP-01M111PCB trace1 MiB18.0 × 18.0YesYes
ESP-01F9PossiblySpring antenna1 MiB11.0 × 10.0UnknownNo (non-standard antenna)
ESP-023U.FL socket512 KiB14.3 × 24.8No2No (flash size)
ESP-037Ceramic512 KiB17.3 × 12.1No2No (flash size)
ESP-047None512 KiB14.7 × 12.1No2No (flash size)
ESP-050U.FL socket512 KiB14.2 × 14.2No2No (flash size)
ESP-0673None512 KiB16.3 × 13.1No2No (flash size)
ESP-07913Ceramic + U.FL socket1 MiB21.2 × 16.0Replaced by ESP-07S2No (replaced)
ESP-07S91FCC, CE1,3U.FL socket4 MiB17.0 × 16.0YesYes
ESP-08***93None512 KiB16.0 × 17.0Replaced by ESP-08S2No (flash size)
ESP-08S9None1 MiB16.0 × 18.5YesYes
ESP-096None1 MiB10.0 × 10.0Possibly2No (rare)
ESP-100None512 KiB14.2 × 10.0Possibly2No (flash size)
ESP-112Ceramic512 KiB17.3 × 12.1Possibly2No (flash size)
ESP-129FCC, CE3PCB trace4 MiB24.0 × 16.0Replaced by ESP-12S2No (replaced)
ESP-12E9PCB trace4 MiB24.0 × 16.0Possibly2No (replaced)
ESP-12F91FCC, CE, IC, REACH, RoHS3PCB trace4 MiB24.0 × 16.0YesYes
ESP-12S91FCC3PCB trace4 MiB24.0 × 16.0YesYes
ESP-139PCB trace4 MiB20.0 × 19.9Possibly2No (rare)
ESP-141PCB trace1 MiB24.3 × 16.2No2No

* Available GPIO
** Certification
*** You will also find the ESP-08S named ‘ESP-08 new’

1 ESP-01/07/12 Series Modules User’s Manual
2 What is ESP8266 – The Modules
3 ESP8266 – Ai-Thinker modules

Size comparison of Ai-Thinker ESP-XX modules

The base grid in the following images in 20 mm high and 25 mm wide. Not every ESP-XX is perfectly represented, but these images should give you a broad idea of how large they are relating one another.

The ESP-01 module with an ESP8266 from Ai-Thinker
ESP-01*
The ESP-01M module with an ESP8266 from Ai-Thinker
ESP-01M
The ESP-01F module with an ESP8266 from Ai-Thinker
ESP-01F
The ESP-02 module with an ESP8266 from Ai-Thinker
ESP-02
The ESP-03 module with an ESP8266 from Ai-Thinker
ESP-03
The ESP-04 module with an ESP8266 from Ai-Thinker
ESP-04
The ESP-05 module with an ESP8266 from Ai-Thinker
ESP-05
The ESP-06 module with an ESP8266 from Ai-Thinker
ESP-06
The ESP-07 module with an ESP8266 from Ai-Thinker
ESP-07
The ESP-07S module with an ESP8266 from Ai-Thinker
ESP-07S
The ESP-08S module with an ESP8266 from Ai-Thinker
ESP-08S**
The ESP-09 module with an ESP8266 from Ai-Thinker
ESP-09
The ESP-10 module with an ESP8266 from Ai-Thinker
ESP-10
The ESP-11 module with an ESP8266 from Ai-Thinker
ESP-11
The ESP-12 module with an ESP8266 from Ai-Thinker
ESP-12
The ESP-12E module with an ESP8266 from Ai-Thinker
ESP-12E
The ESP-12F module with an ESP8266 from Ai-Thinker
ESP-12F
The ESP-12S module with an ESP8266 from Ai-Thinker
ESP-12S***
The ESP-13 module with an ESP8266 from Ai-Thinker
ESP-13
The ESP-14 module with an ESP8266 from Ai-Thinker
ESP-14

* The ESP-01S is very similar and only slightly bigger
** The ESP-08 is very similar

Shielded or unshielded?

Whether your ESP-XX module packs the ESP8266 and other chips under a shield shouldn’t lead to any noticeable performance differences. What the shielding does affect though is whether the module can be FCC and CE certified or not. You will notice that all certified modules are indeed shielded.

Speaking of the FCC certification, it isn’t the easiest task identifying whether the modules are indeed certified or not. The ESP8266 chipset itself is certified. That certification does not automatically cover all modules and Ai-Thinker does have a tendency to print the FCC logo on all of their shields, even if there isn’t any documentation to be found.

External, PCB, or ceramic antenna, which is best?

In the list above you will see that each board has one or more of four antenna types: PCB (printed circuit board) trace, U.FL, none, or ceramic. Those with no antenna or a U.FL connector fall under the same category: They require an external antenna. Hirose U.FL is a miniature RF connector for high-frequency signals and there are a number of antennas you can buy to fit in it: antennas as you would find on an access point, flexible circuit boards, and antennas you’d commonly find in laptops. The boards with no antenna or U.FL connector have to be manually soldered to an antenna, making them the most difficult to work with.

PCB antennas are what you will find on the ESP-01S and also ESP8266 boards such as the LOLIN D1 mini. Their shape makes them pretty distinguishable, and they are present on a number of devices using a number of protocols, such as Wi-Fi or Zigbee.

On ESP-XX nodes you will often find ceramic antennas from the manufacturer Rainsum, with their name printed on it. Ceramic antennas are taller than PCB antennas but take up less space on the board. The main reason PCB antennas are more frequently in place of ceramic antennas used is that they are cheaper.

What is the ESP8285?

Some microchips in these modules aren’t ESP8266s at all but ESP8285s. The ESP8285 isn’t a successor to the ESP8266 (that would be the ESP32) but is a version with 1 MiB of built-in flash. Why the name has to differ so greatly is a mystery that only Ai-Thinker can unravel.

ESP-01 and ESP-01S

As already mentioned, the ESP-01 is what set off the ESP8266 craze in the West and allowed makers to build IoT devices on the cheap. The ESP-01 and ESP-01S are both similar in size and layout. Both are meant to be through-hole soldered to a printed circuit board, to a perfboard, or inserted in to a socket header. I’ve also seen examples where a sensor is attached directly to the module. They feature two LEDs, one red and one blue. In terms of connectivity, both only have two GPIO pins you can use in your projects.

If you do decide to purchase an ESP-01, make sure yours has a black and not a blue PCB, as the blue one only has 512 KiB flash. However, the safest solution would be to ditch the ESP-01 and only use the ESP-01S. The ESP-01S is a mere 0.1 mm longer and 0.1 mm thinner than the ESP-01.

At a glance

ESP-01S

Price: ~US$1

Flash: 1 MiB

Size: 14.4 mm × 24.7 mm

The ESP-01 and ESP-01S are small and easier to work with than other ESP-XX modules, due to their accessible pins. Both feature an antenna on the PCB, and it is the only one you can use, as the ESP-01 nor the ESP-01S feature a U.FL socket.

Flashing the ESP-01 and ESP-01S

As one of the more popular modules, there are multiple ways of flashing the ESP-01, and now the ESP-01S, too. The easiest would be to purchase and use a ready-made USB to serial converter (these can also be found on AliExpress). Using it as easy as attaching the ESP-01/ESP-01S and plugging it into your computer. Alternatively, there are guides on how to flash either using a Raspberry Pi or Arduino.

ESP-01M and ESP-01F

The ESP-01M and ESP-01F are two very different beasts. For starters, they are built to be soldered as a surface mount device and thus look nothing like the ESP-01 or ESP-01S. The ESP-01F requires an external antenna though it is not what you might expect. It’s not you standard Wi-Fi antenna but a spring antenna. The ESP-01M uses a PCB antenna but because all pins are located on one side, it can be vertically mounted. The ESP-01F is FCC and EC approved, but the ESP-01M is not.

ESP-02, ESP-03, and ESP-04

The ESP-02 appears to be rather rare and, to the detriment of my research, Ai-Thinker doesn’t list it on its website. According to a listing on Tindie, it has three GPIO pins and is perfectly square with a length and width of 14.2 mm. The ESP-02 doesn’t have an integrated antenna and instead can be equipped with one using the U.FL connector.

As with the ESP-02, the ESP-03 appears to be quite uncommon, too. It uses a ceramic antenna and has no connector for an external option. The ESP-02, ESP-03, and ESP-04 are all meant to be surface mounted. The latter is one of the smaller ESP-XX modules available with a width of 12.1 mm and a length of 14.7 mm. Even if you were to be able to find any of them, the ESP-02, ESP-03, and ESP-04 should be avoided as they only have a flash size of 512 KiB.

ESP-05

The ESP-05 is, by all means, a very basic ESP8266-equipped module from AI-Thinker. The intended purpose for the ESP-05 is not to be at the heart of any project, but instead give Wi-Fi capabilities to other microcontrollers, such as the Arduino. Earlier models had four pins, but you can now also find ESP-05 modules with five pins, the fifth being a reset pin. The other four pins are there to power the module (3.3V and GND) and communicate with the microcontroller (RX and TX).

The reason you won’t see the ESP-05 used in many projects, and certainly not in any ESPHome projects, is because it is impossible to change its firmware. Unless you are prepared to do some rewiring, you are stuck with what you bought.

ESP-06

Even if you were to find a batch of ESP-06 modules for next to nothing, it is not advised that you use the ESP-06 for any of your projects. Not just because it only has a flash size of 512 KiB but also because there are at least three variants in circulation, one of which is faulty and the other two have different layouts.

The front of the Ai-Thinker ESP-06
The pads on the back of the Ai-Thinker ESP-06

The ESP-06 is immediately recognizable, as the whole PCB is tucked under the shielding. The pads for soldering the device are all located on the underside. Unfortunately, that also means that there is no on-board antenna or connector. Instead, the antenna has to be soldered to one of the pads.

ESP-07 and ESP-07S

The ESP-07S is the successor of the ESP-07 and is one of the few modules to be FCC and CE approved. While the ESP-07 generally isn’t recommended any more, the ESP-07S is the module to go for if you are looking to build your project as compact as possible.

At a glance

ESP-07S

ESP-08 and ESP-08S

Information on the ESP-08 and especially the ESP-08S seems to rather murky and difficult to find. Many sites don’t even list an ESP-08S, but the existence of this spec sheets leads me to believe there is, or was, such a device available. The main differentiator appears to be that the ESP-08S is slightly larger than the ESP-08 and has a flash size of 1 MiB instead of 512 KiB.

Both the ESP-08 and ESP-08S appear to be modules without any on-board antenna or U.FL socket. Instead, an antenna has to be soldered to one of the sockets. If looking to build a project, I would pick the ESP-07S over the ESP-08S any day of the week.

The ESP-08S does exist!

ESP-09

The ESP-09 has one thing going for it: It is tiny. From my research I feel confident in claiming that this is the smallest module with an ESP8266 out there. As an easy comparison, it’s about the size of a fingernail (10 mm * 10 mm). Unsurprisingly, the ESP-09 is designed to be surface mounted with its pins broken out to pads. Despite its size, it has an impressive six GPIO pins. The ESP-09 is only recommended if you absolutely need the smallest ESP8266 module as the smaller a component gets, the more frustrating it will be to work with.

The smallest ESP module from Ai-Thinker, the ESP-09

ESP-10 and ESP-11

Two further modules that should be avoided are the ESP-10 and ESP-11. Both have a flash size of only 512 KiB and are hard to come by. Not just the physical modules seem to have disappeared but also all information on them with the only proof of an ESP-10 ever existing being this Tindie listing.

ESP-12F, ESP-12E, ESP-12, and ESP-12S

The ESP-12F is the successor to the ESP-12E, with the former having a number of certifications (FCC, CE, IC, REACH, RoHS) its predecessor doesn’t have. Other than that, they are no obvious distinctions. When used for a project, the ESP-12F is reported to have a slightly better antenna performance.

The ESP-12 and its successor, the ESP-12S, have the same dimensions as the ESP-12F and ESP-12E, but do not have the row of GPIO pins at on the opposite side of the antenna. The two newer modules, the ESP-12F and ESP-12S are two of the most popular modules for enthusiats. So much so, that you can buy development boards for easier flashing.

ESP-13

As with many others, the ESP-13 isn’t easy to research as it has almost definitely been discontinued. It looked like a more compact version of the ESP-12.

ESP-14

At first glance, the ESP-14 is possibly the weirdest module of them all. Weird as in, you wouldn’t know where it fits in. As with the modules, the ESP-14 has a powerful ESP8266 chip. But that chip is buried underneath one of the cheapest microcontrollers around: the 8-bit STM8S003 “value line” chip. The shielding on the ESP-14 almost proudly proclaims “STM8S003 INSIDE”.

The ESP-14 module with an STM8S003 inside
The ESP-14

And that is where the ESP-14 starts making sense. You will find the STM8S series of microcontrollers in a wide range of commercial product. Especially Chinese designers are very familiar with these microcontrollers. As with all other ESP-XX modules, the ESP-14 isn’t intended for makers but for manufacturers building IoT devices. And the ESP-14 just happens to be intended to enable STM8S-experts to build IoT devices.

Which ESP-XX is the best for makers?

As always, evaluating which is the best option will depend on your requirements and preferences. Your project might need to be as small as possible, in which case you would go with the ESP-01S. Alternatively, FCC certification might be mission critical. If so, the ESP-01S would have to be replaced with an ESP-07S.

However, I do have a few suggestions. Three, to be more specific: Use either the ESP-01S, the ESP-07S, or the ESP-12F. Do not go with anything that has less than 1 MiB flash storage, even if it is cheap. If you’re planning multiple projects, a development board for these three boards can be purchased.

Wishiot ESP8266 Burning Fixture Development Board Support ESP-01S ESP-07 ESP-07S ESP-12E ESP-12F ESP-12S Easy Programer
  • You will get 1pcs ESP8266 Burning Fixture Development Board
  • Support ESP-01S ESP-07 ESP-07S ESP-12E ESP-12F ESP-12S
  • It is Micro USB interface
  • Very easy to program modules
  • How to email us? Please click “Wishiot”(you can find "Sold by Wishiot" under Buy Now button), in the new page, click “Ask a question” to email us

There are certain ESP-XX modules you should be avoiding for obvious reasons: The ESP-05 can’t easily be flashed, the ESP-14 was developed specifically for certain product designers, and others, such as the ESP-02 and ESP-03, are difficult to find.

Beware of flash sizes

You should not be using any ESP-XX modules or ESP8266 board in general that have a flash size of less than 1 MiB (or 1 MB, read through this article if you’re interested in why I use MiB). This can become confusing because often times resellers will capitalize all letters, and you might see something like: ESP-01 NEW WITH 4 MB FLASH! That ESP-01 will not have a flash size of 4 MB (megabyte). What it does have is a flash size of 4 Mb (megabit), and 4 Mb are 512 KiB.

Advertisement
Liam Alexander Colman, the author and maintainer of Home Assistant Guides.

About Liam Alexander Colman

Liam Alexander Colman has been using Home Assistant for various projects for quite some time. What started of with a Raspberry Pi quickly became three Raspberry Pis and eventually a full-blown server. I now use Unraid as my operating system and Home Assistant happily runs in a Docker container. My personal setup includes many Zigbee devices as well as integrations with existing products such as my Android TV box. Read on to find out more on how I got started with Home Assistant.

Leave a comment

Advertisement