Which Processor can kill the ESP32?

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
Over the years, the ESP32 became everybody’s darling because of its unique features, low price, and availability also in Corona times. It was introduced six years ago. So it is pretty old in electronic terms. Therefore the question: Do we have to change? And for which processor? Grüezi YouTubers. Here is the guy with the Swiss accent. With a new episode and fresh ideas around sensors and microcontrollers. Remember: If you subscribe, you will always sit in the first row. Let's start with the things we never liked when we used the ESP32: - It is pretty power hungry - We have to pay attention to the pins. Not all are “general purpose,” and quite a few of us lost time trying to use GPIOs above 32 as output pins, for example - Sometimes we wish to have more pins - It only supports Bluetooth 4.2 - Its deep sleep behavior is not as expected because it boots after deep sleep and does not continue where it went to sleep like the Arduino Uno, for example - The ADCs are of low quality What we liked is: - It’s Wi-Fi and Bluetooth - Its price - Its abundance of memory - It is used in many boards with additional components like displays, LoRa, batteries, etc. - And we get it as modules if we want to use it on a PCB So, what possibilities do we have to replace the “old” ESP32? After the success of the first ESP32, Espressif started to create new chips like the -C3, the -S2, and the -S3. The Raspberry Pi foundation came with the Pi Pico, which became interesting after they added Wi-Fi to their board. The Pi Pico has its advantages but still is not much supported by the Arduino community. Its primary focus is MicroPython. Maybe I will compare it in a later video. STM still does not have a valid Wi-Fi offer for Makers. So, today, I will focus on Espressif’s new chips to see if we find a replacement for our ESP32. The -C3 is a small chip with only a few pins designed to replace the ESP8266. So it is no competition to our old ESP32. I do not know why they made the -S2. The Maker community never accepted it because it only had one core and no Bluetooth. So it was more or less considered a downgraded ESP32. But what about the -S3? It has most of the features of the ESP32 and more. So if any, this is the successor of our darling. Let’s compare the two: The most important thing first: The Arduino IDE fully supports the -S3. Just upgrade to the newest version and select the ESP32S3 Dev Board. I tried a few examples, and they worked on both boards without changes. If you select the -S3 board, you also get new examples to check out new features. The -S3 has a newer processor. Its benchmark is slightly faster. Nothing to write home about. But it supports a new class of vector commands that, amongst others, accelerate audio applications by factors. Wi-Fi was upgraded. It seems that the sensitivity and stability of the connections are improved. But, still no 5.7GHz support. The only thing I expected from the new chip is that it could keep the Wi-Fi connection while sleeping to save energy. Unfortunately, there is no change to the old ESP32. It still loses the connection while sleeping. And it still reboots after deep sleep. No change here, too. We have to wait till Wi-Fi6 comes with the ESP32-C6 chip. BLE now supports version 5.0, which has a significant difference: The output power is 20dBm compared with the 9dBm of the old ESP. Keep in mind: 6dB more power doubles the range. So the -S3 should have four times the range if it connects to another BLE 5.0 station. Not bad! The internal memories are more or less the same. The -S3 can use double the Flash size and can use Octal SPI if you need it. The -S3 also has two 12-bit ADCs. And unfortunately, the same issue as the old ESP32: ADC2 is used for Wi-Fi and is not always available if Wi-Fi is on. Espressif claims that they improved the quality if you use a calibration compensation. So far, I did not test it. A significant difference is the number of pins: 33 compared with 24. And the 33 pins have fewer restrictions. Again, I made an Excel sheet where you find all the functions of the pins. Red means: Pay attention and only use these pins if you know what you are doing. Only three pins are red. One crucial difference: The I2S master clock of the old ESP was on GPIO0, sometimes creating issues. The -S3 allows any pin for that signal. If you have projects using LCDs, the -S3 offers an interface that improves speed. And because it has a lot of pins, you can connect them in parallel. Differences are also in the infrared, LED, and SDIO slave interface. But these functions are not commonly used. In one of my last projects, I used the Ethernet functionality of the ESP32, which is handy. The -S3 does not offer such an interface anymore. You have to use an external SPI controller. And what about power consumption? I compare the two chips in a typical situation when they use Wi-Fi and do not transmit. Here, both have very similar power consumption. And in deep sleep, the -S3 consumes 30% less. So, in scenarios with long sleep periods, the -S3 is better. The biggest difference, however, is the integrated USB interface. You just have to add a USB connector and some protection to get USB functionality. And it can act as a USB drive, a vital function if you use the chip with Micropython. This is definitively an upgrade for the Python guys. You can use this USB functionality with the Arduino IDE, too. Just adjust the settings like that. And you have to be aware that, in this mode, the COM port changes after the upload. After resetting the ESP, I regularly had to reconnect the USB connector. Not too convenient. This is probably why many development boards still offer a standard USB connector using a USB-to-Serial chip parallel to the native USB interface. If you plan to use OTA, the built-in functionality is perfect. And the price? Here is the comparison of development boards: The one with the old chip is two dollars cheaper. At LCSC, both modules for your projects have roughly the same price. LCSC, BTW, is the distributor of JLCPCB, where I get my parts because I stopped to assemble my PCBs. If you use their “basic” parts, this service is dirt cheap, and it is an excellent feeling if you get a professionally assembled PCB made from your design. You have to try it if you do not believe me. And what about boards with the -S3 chips? As seen before, we get development boards. And TTGO started to create -S3 boards, mainly with displays. I assume more will come over time, and the market will transfer more and more toward the -S3 chip. So what is my verdict? - Does the new -S3 chip remove some of the things we did not like? Yes, we get more pins with fewer restrictions, and it supports high-power BLE 5.0. The rest stayed the same - Do we lose something we liked? Not really. There are small things like Ethernet. But we still have the old ESP32 for those projects - Native USB for sure is a big plus - Maybe the new Wi-Fi sensitivity will help in one or the other project. The extended BLE range can be helpful, too. And we can play with the RISC-V ULP if we want - There is hardly a price difference between the old and the new modules if you buy it from LCSC So, what is my strategy? - I will still use my old ESP development boards and buy boards with the old chip if they are not yet available with the -S3. Typical examples are TTGO’s LoRa boards - But I will no more use the old ESP32 modules for new designs. In our current project, we have already changed to the new module. When we started with the old ESP32, we had to add a multiplexer chip to get enough pins. And a USB-to-serial chip. And I lost a few days till I understood why I2S did not work. GPIO0 was blocked by the usual flashing circuitry. With the -S3, we have a smaller chip count and need less space One last thing: Espressif still is very active announcing new chips: - The ESP32-H2 with Zigbee and Matter support - The ESP32-C6 with WiFi6 support. This chip should be able to keep the WiFi connection during sleep - The ESP32-P4 with lots of pins and lots of power All of them with RISC-V CPUs, BTW. Hopefully, they will also be supported by the Arduino IDE. This was all for today. As always, you find all the relevant links in the description. I hope this video was useful or at least interesting for you. If true, please consider supporting the channel to secure its future existence. Thank you! Bye
Info
Channel: Andreas Spiess
Views: 256,774
Rating: undefined out of 5
Keywords:
Id: _sgC7d1XvGE
Channel Id: undefined
Length: 11min 23sec (683 seconds)
Published: Sun Mar 19 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.