In this post we are going to talk about the new ESP32-C3, the new Espressif processor called to replace the popular ESP8266 after several years of success and good service.
In 2020 Espressif announced its intention to send some development kits of its new SoC to a few testers. This DevKit is still preliminary, as it is an engineering sample to test the new ESP32-C3.
In particular, the manufacturer reports that the deep sleep power mode is superior, and that the USB Serial/JTAG functionality still does not work. These are functionalities, of course, that will be available in the final version.
However, apart from these two points, the DevKit is an operational and fully functional product. And those of you with whom we have had the pleasure of conversing on Twitter and other social networks, know that I was really looking forward to trying it out.
So after a wait that, more out of eagerness than length, has felt endless, it has finally arrived! And we can now start testing and tinkering with this new little gadget that will almost certainly become a regular component in the industry.
A little bit of history
In case you have really been disconnected from the world of microprocessors, and don’t know what the ESP8266 and ESP32 are, remember that both are SoCs that incorporate WiFi communication.
Until a few years ago, providing our project with WiFi connectivity was really expensive. The few existing solutions were around €50, just to have a Shield with which to connect, for example, an Arduino to a WiFi network.
This changed in 2014 with the appearance of the ESP8266, a SoC from the manufacturer Espressif that provided WiFi connectivity. As we mentioned, the ESP8266 is the natural predecessor of the ESP32-C3 that we are discussing today.
The first available module of the ESP8266 was the ESP-01 from the company AI-Thinker. At that time, it was used only as a WiFi module and its configuration was done through AT commands by Serial. However, a part of the community saw its potential as an independent processor, and not just as a module.
Since then, a lot has happened, and the ESP8266 has become very popular in both home projects and commercial products. Many of the IoT devices we know, such as the Sonoff product range for example, incorporate an ESP8266 or ESP8265 inside.
With the success obtained with the ESP8266, Espressif launched its big brother, the ESP32 in 2016. Its technical characteristics are much superior, as we saw in this post. Since then both projects have become very popular and their prices have decreased substantially.
Not much happened in ‘the scene’ until the end of 2020, where Espressif announced the replacement of the ESP8266 with a new low-cost ESP32 model, named ESP32-C3. In this way, it unifies its products under a single range.
Analyzing the ESP32-C3
Under the ESP32-C3 we find a SoC single-core based on Open Source RISC-V architecture (Risk-Five), capable of operating up to 160 Mhz.
This is an interesting change compared to Espressif’s usual products, which mounted Tensilica Xtens processors based on MIPS. Both MIPS and RISC-V are based on RISC (Reduced instruction set computing) but, in the case of RISC-V the instruction set is Open and Free.
The new processor of the ESP32-C3 has a performance 10-15% higher per cycle compared to its predecessor. This means a slight increase in speed compared to the ES8266 and the ESP32 at the same frequency.
Logically, if we put an ESP32 at its maximum frequency of 240Mhz and take advantage of the dual core, it stands out easily compared to the rest.
On the other hand, the ESP32-C3 mounts 384 KB ROM, 400 KB SRAM (16 KB for cache). This means more than triple the memory of the ESP8266, and a little less than an ESP32, which incorporates 512 kB SRAM.
However, keep in mind that not all of this memory is actually available, and you should expect a reduction in free SRAM for your programs. For example, in an ESP32 the available memory after loading the program is approximately 350KB.
The set is completed with WiFi and Bluetooth LE 5.0 connectivity. This is a welcome novelty compared to the ESP8266, which lacked Bluetooth, something that its big brother ESP32 of course does have.
Finally, in terms of peripherals, the EPS32-C3 has 22 GPIOs, 2 12-bit ADCs, temperature sensor, 3 SPI, 2 UART, an I2C, and an I2S.
These are intermediate characteristics compared to the ESP8266 (16 GPIO, 1 10-bit ADC, SPI, UART, I2C, I2S) and the all-powerful ESP32 (36 GPIO, 12-channel ADC, 2 DAC, 4 SPI, 3 UART, 2 I2S, 2 I2C, Bus Can, hall sensor, touch… etc etc etc).
However, take these data with caution, especially the number of GPIOs. It is known that, after discounting the pins used for memory and the “conflicting” ones that intervene in the boot process, the ESP8266 actually has 5 pins that are truly “available”, and the ESP32 has about 18.
In the case of the EPS32-C3, pending completion of the information, it is foreseeable that we will have about 8-10 GPIOs that are truly “available”. Which, on the other hand, is double that of an ESP8266, and eliminates a major limitation of the ESP8266 when it comes to carrying out projects.
In terms of price, it is said that in wholesale the ESP32-C3 will have a price below €1. This should allow for development boards in a range similar to existing ones for the ESP8266, let’s say around €2.
By comparison, we can find boards with the ESP32 for about €3.5-4. So, for home projects, it may not be so appealing, but in the industrial field where units are counted in thousands and every cent matters, it is easy for the EPS32-C3 to find its market share.
This will be helped by the fact that, according to Espressif, the pinout of the EPS32-C3 has been designed to be compatible with the ESP8266. A logical decision, as it aims to be a direct replacement for this.
As for software, the ESP-IDF environment has already been adapted for the EPS32-C3. You have the code for the ESP-IDF on its GitHub at this link https://github.com/espressif/esp-idf, including all the examples that have already been adapted for the ESP32-C3 https://github.com/espressif/esp-idf/tree/master/examples
Most of the code available for the ESP8266 should be directly compatible, as well as those programs of the ESP32 that do not make use of its specific hardware (like the dual core, for example).
In my opinion, Espressif has done it again. If they wanted a replacement for their popular ESP8266 and to unify their product range, the ESP32-C3 is a success. It’s a true ESP8266 killer.
Maintaining a similar price and very superior features, halfway between an ESP8266 and an ESP32, it is difficult to conceive the continuity of its predecessor.
A renovation, on the other hand, that was long overdue. The ESP8266 has been with us for over 7 years, and the requirements in IoT applications have increased considerably in this time.
There is still a long way to go for the ESP32-C3. The software is not fully adapted, and even Espressif warns in its test kit that the power consumption functions are not fully functional.
We have to wait for development boards and commercial products that mount this new SoC to be developed. But, basically, it’s time to say goodbye to the ESP266 because everything points to the ESP32-C3 has come to stay.