There is also ESP-IDF which is more convenient for making bigger projects and having better control over the chip's internals. However it seems official documentation is lacking, even in Chinese. That is a huge disadvantage compared to more mature controllers like STM32. However it's Arduino-based community is huge and many are moving towards using the official IDF plugin in VScode
Beautiful coverage. Thanks for mentioning the RISC-V versions of the ESP32 as well. There's more models coming for sure so thanks for covering those too such as the C6 and P4!
@@AndreasSpiess Guess the RISC-V move is great, they avoid sanctions + the RISC-V core designs are cheaper in the long run.. Easier ISA, less chip area and a lot cheaper or even free Core IP.
Another difference that might be worth pointing out: on the S3 you can use the whole 8MB of PSRAM for heap allocation, while on the ESP32 you were restricted to 4MB because of limitations in the MMU
Indeed, very useful for a hi-res frame buffer. Also, if you adapt the partition tables and board definition file you can access 16MB flash on S3 boards so equipped. I'm not sure if the original 32 can address that much PGM space. I think it's good to turn away from SPIFFS and embed resources as byte arrays instead. Perhaps a little bit of FAT exposed to USB Mass Storage for config files etc. I don't know why the Arduino IDE partition options are restricted to relatively low PGM space and high FS space given the number of boards now with extravagant flash. If you're using LVGL you might want it the other way round.
@@nikthefix8918 The original ESP32 supports a maximum of 4MB of .rodata in an application image (another limitation in the MMU), so that puts a hard limit to how much data you can embed in your firmware; the S3 MMU does not have the same limitation, so it should be possibile to embed objects up to the available flash size. I don't know about toolchain and bootloader support, though.
@@alyf80 Thanks for the great info regarding the original ESP32. I can confirm that the S3 has support in IDF and Arduino (with suitably modified definition files) for a specified 16MB of flash storage for the main application and have boards working in this configuration. I never looked into it with the S2 as 4MB was sufficient at the time of using it.
Although esp32 will remain my "darling", the biggest issue for me has always been battery powered projects where the Bluetooth always sucked battery at ludicrous levels. Recently I've been playing with the nrf52840, a bit pricier, but lovely long connected battery life
Agreed the nordic chips are great and the dev boards are way better than either the esp32 or rp2040. I do however find myself using rp2040s more than anything else at the moment
@dreamcat4 I've been messing around with the xiao nrf52840, it took me a bit of googling to get the right platformio.ini file. Andreas has put up a good video th-cam.com/video/vrcPGeYinVQ/w-d-xo.html
@Dreamcat 4 It may be worth having a look at the seeed studio xaio nrf52840 boards. There are quite a few boards in the range, and they have a surprising feature set for their size.
Watch out... once you do one, it gets addicting!!! "what can I build a solution for that I dont have a problem yet?!?" I started with the esp8266, and that was like a gateway drug... Loved it, but lacked... power... at times... It is still amazing little microprocessor and stupid cheap and can write using Arduino IDE... but when i found the ESP32, my world changed that day.... That was the day I opened my eyes! I havent been the same since... LOL
Don't write off the C3, I've been using them recently and they are really nice to work with. For something that doesn't need lots of pins and horsepower they work very nicely. Native USB for programming too so no need for a USB UART and you can make very minimal boards from them.
We just started using the ESP32-S3-DevKitC-1 boards for projects at work. We got the variant of the board with the most PSRAM and Flash and that has been useful in our projects to have more external RAM and Flash than the older ESP32 boards. The other thing that we liked about the S3 is that the USB port also supports JTAG so we are able to run VS code with Platform IO with full source code debugging without needing to have an external JTAG board. Also in the S3, besides more GPIOs, you don't have to worry about SPI bus sharing as the PSRAM and SPI flash are on their own busses separate from the two SPI busses for use to the actual pins. Thanks for publishing the spreadsheet, that is quite helpful.
I'm excited to see the introduction of more RISC-V based parts from Expressif. I've been playing around with implementing a RISC-V CPU in an FPGA and am learning quite a bit about the instruction set architecture. It looks very well thought out, with a degree of elegance that I can appreciate. Having Expressif wrap that up with their WiFi, Bluetooth and Zigbee/Thread radios and their other SoC peripherals is a welcome development!
I somewhat like the ESP32 family, but (like most tech companies) they should fire their marketing staff. Too many parts, with only fine separation between them, and no coherent numbering system. Part of the reason this video is needed, is to sort out the mess.
Thanks for explaining all the differences. I bought some color changing light bulbs with esp32 c3 in it thinking it was much better chip. The bulbs were only $5 each and I reflashed them to Tasmota so still a good deal.
When we used the esp8266 it had a different sdk and different libraries compared to the esp32, which was a major PITA. The esp32-C3 kind of fixes that, you can use the same toolchain and libraries for both small and bigger projects - which is great.
Ive made a video about the P4 a few months ago. The only announcement from Espressif I am really excited for. 400MHz dual core with lots of pins? Hell YEAH!!!
Thanks for the update! Zigbee could be a game changer. Until then I will remain using the 8266 which is in my opinion still suitable for 98% of all situations/projects.
I can't wait to play with the Zigbee!!! My projects I build I attach to Home Assistant and control through ESPHOM. It would be awesome to build smart home devices without having to design the PCB by adding a ZigBee chipset to it... Just the ESP32 and boom, done... well building out the code of course.
Like always, nice vlog. The three features that are game changer for S3, C3 and C2 are: 1. Direct connection with USB, no need for CP2102 or any other USB to UART Bridge. 2. Bluetooth 5.0 support 3. In built support for debugging, no need for external JTAG adapter and extra wiring / cable to connect JTAG to ESP32-C3/C2/S3 You missed to mention last feature in your vlog.
majority of my projects are on S2, is so much faster than than original! Yes, in few places I had to go to ESP32 due to the lack of memory on S2, but processor wise S2 is much faster than the original. Ok, original ESP32 is 4uA during hibernation while S2, C3, S3 are all around 20uA. ADC on S2 is also much better than ESP32. And all pins are configurable (unlike ESP32). And the most nice is: S2 does not need USB->UART Actually nothing today is as huge jump as between ESP8266 -> ESP32
I got started using the esp32 in the last two years. I use them to wifi enable sensors around the house and drive led strips. I did use a raspberry pi for some of those things but pi s got extensive and hard to come by (and it is overkill). I also have some pi picos and the w version of those but prefer the esp32 because it is easier to setup the webserver part. There is still a lot of mileage left for the esp32 for me. No need to switch yet.
I recently made a project with a ESP32-WROOM-32U on a custom PCB, it was super handy. I only had to make sure it had proper power, and then a little enable delay circuit, a pull up on gpio0, and then it was ready to go. :) Compared to the pi pico, the pico is a lot harder to put onto a custom pcb, and requires a lot more extra components.
S2 has native USB, so it’s a cheaper option for diy keyboards and such. The C6 looks really neat, not very available yet though. The RP2040 is seeing a lot of use in MCU communities other than the arduino and micro python ones. Like for using as the driver of a 3D printer mainboard. They have two cores that are always usable (not having one used up by wireless driving). It’s a conventional ARM architecture, so its a lot nicer to work with bare metal than an ESP, hence why it seems quite attractive for more advanced users. That said, the ESP32C series are RISC-V, which is also gaining traction among hobbyists for its open standard.
I dont understand why people still use the Arduino IDE as a standard. If you want to use all the 'special' functions and speed. ArduinoIDE is not the way to go. Just like the STM32. If you want to get the most out of it you have to use the STMCubeIDE, not the ArduinoIDE. ArduinoIDE is past history ...... just my 2 cts :)
@@dreamcat4 I think people confuse "IDE" with the toolkit and libraries used. For why people use the arduino libraries, rather than lower level ones: professionals mostly do, hobbyist do not want to, and are mostly not capable to, write their own custom drivers og libraries for everything they use. If they use NRF24, TFT display etc etc, they cannot just use the libraries people have made. They need to read 1000 page data sheet for each component, and understand it well enough to write the drivers. And most of these boards are more powerful than most hobbyist need, so writing more optimized code is not needed. Personally I prefer writing everything myself using low level API, but because I like to understand how it works. It means I spend 10 times more time on everything, digging through poor documentation and be frustrated. Regarding platformIO, that's just an IDE. For most chips you can both use the Arduino framework and libraries (if supported) and the native API. Moving to PlatformIO and using arduino libraries does not automatically make your code more optimized or use new features. It just gives you a nicer IDE to type in.
@@element4element4 very good point, you can indeed use pretty much any libraries system you like (under the sun) if you are on PlatformIO... so in that sense it's not just merely 'another IDE for the sake of user preferences'.... because you cannot do that with any other specific single IDE, to use any preferred or chosen libraries so well. It's just a non-starter, you tie yourself to that mast (be it either arduino, or CubeMX, or something else like RTOS or whatever other toolchains). And same goes for the Rust embedded libraries / toolchains. However the other distinguishing feature is hardware debugging. Which simply is also a non-starter for the Arduino IDE... you do get debugger on STM32CubeIDE. But then you are probably quite limited to compatible hardware platforms.... again this isn't the case whatsoever on PlatformIO + VSCode, you have a maximum of different hardware platforms fully compatible. At the drop of a hat. So no - it's not merely 'just a nicer IDE to type in'. The issues that exist around embedded programming all goes far deeper than that. Much deeper.
You are right. But we want to be open to choosing chips from different manufacturers and do not like to be locked in. I also could use the Espressif IDF for the ESP32, but I don't... If you do programming for a living, this is a different story, of course.
For high processing, Espressif have got an S3 to sell you. FPU and features galore. For low power, they have a C3. No CH340 / CP210X needed, saves that $1 bom cost, still has Wifi & bluetooth. Beats the pants off an arduino if you don't need 5V. Sometimes your project wants to do camera processing, sometimes it is just a bunch of glue logic that barely needs the power of any modern processor. So I think bifurcating for use cases makes a lot of sense here. I have to give it to their marketing strategy, they've done quite nicely in market segmentation for their designs IMHO.
I always try all the new modules, so far I go back to ESP32 a lot for things more than classic Arduino and less than Pi0, so thanks for review ! I am a C/C++ person, so that is important to me.
Great video.. I think this video misses a very crucial point. S3 has inbuild jtag, which uses only 2 pin without any external debug adapter for debugging. This is a big plus as we donot need any external adapter like esp-prog for esp32. One more thing, it has the hardware acceleration for crypto, much need for secure applications.
Holy shit! Günther! Is that you? Times are hard in HAAS F1 Team but damn... going from F1 to Electronics's a steep move eh? :D Great content! Grüetzi from another Swiss :)
It is always cool to see where things are headed. Other ideas could be looking at the form factors, and comparing what they delivered at the time and what would be possible today, or in the future. Kind of like this video but further down the pipeline
I usually wait till something is available. Otherwise it is not fun for the hobby., I think. This is different if you have to decide for a product that has to live a few years, of course.
@@AndreasSpiess that makes complete sense. How about this: esp devices are like $5-15ish: is there a same sized device, that if someone had a budget of $100 to $1000 and was building a custom pcb, what could be done? I think part of the appeal these things & youtube is just seeing so much capability in such a small package. 🤷♂ Just day dreaming :)
As usual I love all your videos. I've been working with the ESP32 the past couple of years and the past couple of months have worked with several ESP32-S3. However some companies put out boards but don't keep up their software. I've had issues with the LilyGo stuff. They want you moving, copying, replacing libraries, and downgrading ESP32 lib versions, etc. To the point it's not worth it. Not when I have other boards to consider. Also found out that all of ones with cameras get hot enough to literally burn you. For cameras and AI I found the AMB82 Mini the bomb. Aside from camera I will still use the ESP-32-S3 for non-camera projects. Keep up the great work. Speaking of AI. That sounds like something you would be interested in too. Object recognition, voice recognition, etc. Enjoy!
Great overview and interesting details. I know I keep repeating myself... but this is really wonderfull Sunday morning entertainment and an appetiser to spend the whole afternoon in my workshop.
You are the best TH-camr I have ever seen. I enjoy every video you post. Your channel is one of the few that I have subscribed. Thank you for your great work.
Thank you, I've come to the same conclusion. I am still quite satisfied with the old ESP32, mainly due to library support and price. When I do nee designs, I try to use the S3
I also wanted to mention that. Unfortunately, this means that you cannot use it as A2DP Bluetooth audio device (ESPuino for example). This is the only feature of the S3 I am really missing.
Thank you for an other great ESP video! However, I think it would have benefited from not dismissing and "red crossing" S2 with very little comments. S2 is a great module for low power applications not needing BT or dual core. It is for me the most direct upgrade from an ESP12 module (8266). Then the other ESP32 modules come with added features - at the cost of increased power consumption.
I finally settled on RPI Pico rp2040(and /w) in the Arduino 2.x environment due to cost despite the initial learning curve frustration. Works just fine with LoraWan ttn, Oled, GPS, SD cards, memory size, etc. ESP32's are back in my parts box and my hair is finally growing back. LOL. Thank you for the new video. Keep them coming.
You might want to look at the new Pine 0x64. It's very new, so little support. It's a hybrid MCU / CPU. It can boot into Linux or run RTOS. Looks promising.
@@AndreasSpiess haha, same here. In my younger days, I'd be all over it. I'm finding ChatGPT extremely useful, although it's not much help here with something so new. There is at least one TH-camr playing with it, so I'm following them.
There's a few setup guides online so it's not too bad. There's also the sipeed m1s which uses the same chip set as the ox64. It's 480mhz 64 bit risk V with 2 32 bit additional processors, and it does bt ble wifi and zigbee afaik. Apparently it also has an audio dsp which may be interesting for some projects. Also it has an NPU accelerator for ml tasks which can get better performance than cpu acceleration on some older laptop processors, so for cv applications it looks really interesting compared to an esp32 cam module Thinking about it some more it has the full feature set for an audio assistant.
@@AndreasSpiess I haven't checked if it's Arduino compatible or not, hence why I didn't mention it, they are compatible with freeRTOS which apparently you can compile for with the arduino ide, but I haven't tried it.
All ESP32 can keep Wi-Fi during light sleep. It halts processes between DTIM pings, every 100ms or so. Cuts usage to about 800uA and allows for rapid reconnection. Doesn’t reboot when waking.
I've never had any luck with this, and every commenter I've come across shared the same experience. Any examples? Does it need a 32khz rtc xtal to achieve this?
@@EdFrench_uk I can’t give an example because I use MicroPy which has no support for this. It’s probably only in the Espressif SDK and never ported anywhere.
I never tried the newer chips. My latest was the WROOM. The WROOM was a powerful chip. It is a wide chip, though, so it doesn't fit well on a breadboard. I was lukewarm on their SDK, although I guess it was good enough. Having to download a separate Xtensa compiler and some monkeying around with the install was tedious. My go-to chips have been the Pico RP2040 and the STM32F411. I think the RP2040 has the edge, although the development environment for the STMs is pretty good. I tend to flop-flop around a little but I mostly end up using the RP2040. The RP2040 is VERY popular with the Maker community, and when it comes to really cool projects, the RP2040 seems to outshine STMs. It doesn't help that STMs are difficult and absurdly expensive to get hold of right now.
I migrated to the Xiao esp32C3 for all my sensors. I don't need many pins and the battery management on board is ideal (and charges with a small solar panel). The deep sleep model the esp32 wake modes is ideal. My typical sensor has the resistor bridge on D0 for battery monitoring (one short coming not having it on board), day sensor on D1, D2 and D3 are available for interrupts and sda, scl for the i2c sensors. With a 18350 900ma lion battery I have several running in just window light for solar and haven't touched them in over a year. They use espnow for hourly idle updates and on-demand sensor updates, typically 10-12 per day. I tried the S2 and determined life is too short, what a pain! For my wearables I like the Xiao Nrf52480 sense. I've used the rp2040 both as the rpi board and Xiao form factors and I find them to be useless. I have a handful of these if anyone wants them LOL Thanks Andreas for your videos. You are always informative.
Excellent presentation, however the newer ESP32's at least so far are pretty underwhelming tweaks on the original. Hoping we get some additional vendors in the mix with competitive products. Last time I checked the ESP32 had an undocumented machine machine instruction set. That's a security as well as a support and engineering concern and showstopper for using ESP32 for any serious commercial or industrial projects for me. Has this changed?
The ESP32 killer is....an ESP32 😊 . We knew it. They are pretty unrivaled. I wish though expressif had given them numbers of their own rather than their C and S classification
I personally think the C-Series chips are way more interesting. I use a couple of C3s, but the C6s also seem very interesting. I personally love using Rust on ESPs and there Xtensa is just so much more painful to use.
For me, any device that is dependent on WiFi is a no go making most of the newer models just downgrades. If I'm making my own custom stuff it either needs Ethernet (ideally PoE) or to be able to work 100% via a non-WiFi wireless. LoRa is definitely getting interesting. Worst case I can always fall back to 433, but that's obviously not ideal for anything I want two way communication on and/or missing a heartbeat would cause major issues. Custom ZigBee and Zwave look to be a pita so I've not tried that yet. Ones supporting ZigBee natively will be a great improvement.
Just emulate Ethernet over usb and use a cdc_ncm or cdc_ecm adapter into your application? I really wish espressif would ship a dual or quad core processors with hardware 802.11, 802.15.4, and concurrent BLE. The silicon isn’t that expensive and you can really get a lot done bridging Thread / Matter to a wifi network
Excellent video friend. For me, the best development board is the ESP32-P4, which reaches 400 MHz, dual core, and 728Kb SRAM... the bad thing is that it will probably come out late. Because ESP32-P4 boards there are only few prototypes to test. Yes, without DACs!
Excellent overview, saves me trawling datasheets. Shame about the sleep behaviour, when will some manufacturers ever learn? Maintaining any RF-based connection is always going to be a killer, as far as average current in sleep mode is concerned.
Hello Andreas, thx for your thorough work very helpful, keep going ! One question though: Espressif is a Chinese company will they suffer from the US ban on chips that is coming up ? do you have info on this topic ?
I do not think so. First, their chips do not use small dimensions, second, they seem to be produced by TSMC (Taiwan), and third, Espressif is aware that this is a thread to them. They already have a team in Europe, for example.
Glad to hear someone raising the Esp32’s terrible ADCs in terms of linearity, offset and noise. Was hoping they’d fix it in the s3 but doesn’t look like it 😢
The S2 is good for one specific reason: USB HID. Examples of uses are keyboard and mouse, it's why it's power consumption isn't that much of a problem. Or you can use Bluetooth on other ones if you don't care about USB.
Two gripes I had. No input with a schmitt trigger caused variations with quickly timed interrupt tasks. Also if you had a time dependant task that was locked to the free arduino core and all other tasks locked to the core that handles wifi the free core still had interruptions/delays from things happening on the os/wifi core. I ended up having to use a second microchip to handle time sensitive tasks. I've also seen issues with static electricity lockup/reboot the esp. Not direct hits but a static discharge several feet away or someone with high static carpet walking near the device. Not sure if the antenna picks it up or what.
I started my journey into C++ programming on ESP32 dev boards a couple of years ago. I like using them, I’ve only had one die on me. It got ‘cooked’ in my greenhouse on a very, very hot day. Many of the plant in there died too 🙁 I have had a play with RPi Picos. My grandsons (10 & 12) made electronic dice for playing D&D. That was last summer, they’re still using them. I had a bit of a re-learn of Python and liked the boards as they’re more compact than the ESP32 and fit on a breadboard nicely. My main (on going) outside lighting project will continue to be based on ESP32 boards. My main criticism of the ESP32 is the analogue input, it’s too unstable to be of any practical use. It just about works with a soil moisture sensor. It gives me a ‘ball park’ value which stops my plants drying out. My lighting system is getting incrementally more reliable, as my programming skills improve. Any problem with my ESP32 boards regarding reliability is entirely dependant on my ability to ‘tell them what to do’ in C++! Apart from the cooked one, they’ve survived all my wrong connections and sloppy programming.
Thank you for sharing your experience! I recently changed many of my "bread and butter" projects to ESPhome or Tasmota because it is so easy and fast to create a new node and integrate it via MQTT.
@@AndreasSpiess I use NodeRed and a mosquito MQTT broker running on a Raspberry Pi Zero W. (I bought one, the day they were released. I want more!). Originally I used a Raspberry Pi 4, but it was a waste. That’s sitting in a box waiting for an interesting project to use it for).
Greutzi Andreas, thank you for this video. You helped me on my Reflections project x 100! The pin spreadsheet should come with the ESP32-S3's. Danke vilmal -Frank
We will see where things go. If we can use Zigbee (or Thread), maybe Wi-Fi will no more be needed for low power devices). Otherwise, I saw a WiFi6 demo of the -C6 and it was interesting!
Fyi, the 'reboot after deep sleep' thing is inevitable, up to a point. The ESP32 series have a fair amount of RAM, and keeping that RAM alive (which is needed for the chip to continue where it stopped after sleep)n would suck up a fair amount of power, meaning deep sleep would be somewhat inefficient.
Nice to see you here ;-) I thought that this is the reason. Thank you for confirming it. Still, it is more comfortable the other way round. So we must "die one death"...
@@AndreasSpiess Im not 100% sure but I think Arduino only gets support after esp-idf 5.1 gets released. Got my dev boards today maybe I will look into it.
Especially with an ESP32, it would be helpful to have "baseline" schematic for powering the chip. That's the sort of stuff one doesn't usually worry about when using a dev kit
@@AndreasSpiess fair enough 🙂 I did look around and was not convinced I found anyone who explained what power supplies to use. Power supplies are one of your specialties 😉 But maybe I just need to look harder..
Thanks for keeping us updated! I have to admit, that I stick to the 8266 for most of my projects. I am looking forward to the next generations including Zigbee, Matter etc.
I already asked Espressif for a Zigbee sensor example for their Zigbee chip. If we get that, Wi-Fi as the primary transport for the ESP32 will no longer be needed, I think. A whole new world.
What a coincidence, just yesterday my PCB arrived for a little esp-s3 board which I will solder today. Let's see if I made a good decision with going S3. War wohl die richtige Entscheidung. Danke fürs super Video :)
What do you mean by Ethernet functionality of the esp32 ? At 6:30 like does esp32 somehow have a native ethernet ? Or does it require an external chip like the W5100/5500 ??
Thanks, great to learn things even for we old farts! I very much enjoy your videos and the way you explain these new boards in a way that can be grasped by all, not just he engineers who subscribe. I have been playing with the newer Uno and Nano's as well as the new Xioa or what ever the hell that is board from Seeed, it makes for a cool camera that seems much more stable even with it's diminutive size then the esp32 cam board.
The deal breaker for me was always the fact that the esp32 had to reboot from standby/low power mode. In this respect it's often not usable for me in low power projects.
I don't take notes about the deep sleep. If one needs to keep the application context, they can use the light sleep. Deep sleep needs to consume less, hence it powers down the RAM among other peripherals. If you need to preserve some data from RAM during deep sleep, you can transfer it to and from the RTC memory.
@@AndreasSpiess Sure, but ESP32 too. In its light sleep. Well, if it consumes more than e.g. Atmel328 is by design, but one can use ESP32's deep sleep with some extra programming (if necessary). For example if I wanted to make a low power ESP32 app that would just periodically wake up for a short time, do some stuff and went to sleep, I would use a deep sleep with only RTC timer and RTC memory active and mark the variables to survive this deep sleep with RTC_DATA_ATTR attribute. Such a thing might consume ~10µA during the sleep period.
Now that the C6 is available I would love to hear your opinions on that. While not as big a jump as the C3 and H2, it still appears to be a great improvement.
Recently got an ESP32-C6, there are only Sample V0.0 chips currently, which don´t have their ADC calibrated.. Otherwise it´s quite nice! It has - 802.11ax WiFi (way less power consumption due to target wake time) - Bluetooth 5 (BLE as well) - up to 16MB of Flash - an integrated 802.15.4 radio for ZigBee and Thread -> They have nice libraries in ESP-IDF for both.. Thread is quite nice as you can do IP via it, in a very low power fashion. I already connected it to my network via 802.15.4 via my Nest Hubs integrated Thread Border Router.
@@AndreasSpiess ESP-IDF works as well, but yes, arduino is easier ;) Just implemented a ZigBee switch, which sets a ZigBee bulb to a random color on every button press lol.. Couldn´t think of a more usless application of the 802.15.4 radio :D
I like the S2. It's a great upgrade for a 8266. There is a board that is pin compatible with a D2-mini and so the S2-mini board can be used as a faster D1-mini. It's not a real competitor to an ESP-32, more one for a 8266. The greatest advantage is the additional USB plus 2 TTL.
Nice comparison, thanks. I could redo those projects that rely on longer deep sleep cycles, I guess. But is it worth it just for a few microAmps? I guess, not ...
Its crazy all this time later no one even tries to compete. I think the Texas Instrument Simplelink series is the closest, but costs like 5x as much, and is very hard to access with multiple layers of "contact us" and form signing required before you can access their closed source SDK with no transparency at all.
A downside to the S3 (and maybe the C6) is that they do not support bluetooth audio profiles. no LE audio and no A2DP. ESP32 has A2DP so this is a bit of a downgrade if you are looking to have a bluetooth audio source or sink.
I work with the Raspberry Pi Pico at work so at the moment it's my goto Microcontroller. But I already filled up all 264k of RAM with a mix of c/c++ without arduino but Pico-sdk.
stm32wba52ce is proabably one of the biggest competitors against esp in terms having built in 2.4ghz and uses an arm cortex m33 which seems to perform better than esp core at 240mhz, running at half that clock
I'll add to the "things we never liked" list: there are two pin muxes - one for normal operation and the other for light/deep sleep. If you don't configure the sleep pinmux correctly you'll get floating pins instead of outputs.
It also removed the built-in DACs and doesn't offer Bluetooth Classic which offers Bluetooth Serial functionality, which was neat when doing really quick and dirty bluetooths versions to the code (you could develop something using normal serial communication, and than replace the Serial with BTSerial) :( I think with it it also looses Bluetooth Audio Streaming capabilities, because A2DP was part of Bluetooth Classic (just as a point of reference everything after the normal ESP32 dropped Bluetooth Classic Support). For some reason BLE on the C3&S3 are kind of broken for me, I can't use them for BLE Keyboards library that worked without a problem on the ESP32 (old one) it just doesn't connect with either S3 and C3. Not mention that they still suck up way more power, calling it a low power mcu (especially when using wireless connectivity) is like calling AMS1117 an ultra low dropout voltageregulator! Each version sucks up more power or creates bigger power spikes it feels like. It feels like they designed the radio module in the mcu in 2016 or so and since then just updated everything around it. As a comparison for other Bluetooth or wireless mcus: NRF51 or so use like µA when staying connected via Bluetooth. Even other wireless point to point communication sucks up way less on it and other chips. NRF52 uses a bit less than the NRF51. The stark difference between these and the esp32 has nothing to do with the fabbing, the NRF51 is fabbed at a gigantic 155nm or so, the NRF52 is 55nm and the ESP32 uses 40nm tech. So it should consume way less on the esp32. The CYW43439 found in the Pico W also consumes less power than the esp32/s3/c3 wifi module, especially when staying connected and transmitting data.
I was not aware that it "lost" Standard Bluetooth. Thanks. And yes, the ESP32 never was a low-power device. Particularly not in BLE ( made a video about it). There you better go with other chips. The CYW43439 seems to have 15dBm output power on WiFi and the ESP32 20dBm which is nearly double. This explains a lot about power savings.
@@AndreasSpiess Sorry for the extremly late reply, youtube never notified me, lol. Yeah Bluetooth Classic is fully gone on the new ESPs only the OG has it. The new ones just support BLE 5.0 Hmm okay, I really hope they release a ultra low power chip, that can compete with the NRF24L01+ & and a attiny412 when transmitting stuff, and even less when receiving like the NRF52 chips. :/ the NRF stuff is just too expensive and cumbersome to use imo. I hope you make a video one day with a chip that is really good and super cheap if you find one :)
Great video! One question, you didn't come back to the quality of the ADC in the esp32-S3, can we expect the same (low) quality as in the esp32? Thanks!
I have to say at this point the toolchain is also a huge reason for ESP32.
Arduino compatile, FreeRTOS based with easy multitasking.
I agree!
There is also ESP-IDF which is more convenient for making bigger projects and having better control over the chip's internals. However it seems official documentation is lacking, even in Chinese. That is a huge disadvantage compared to more mature controllers like STM32. However it's Arduino-based community is huge and many are moving towards using the official IDF plugin in VScode
trash chinese toolchain. See ya in law court
Beautiful coverage. Thanks for mentioning the RISC-V versions of the ESP32 as well. There's more models coming for sure so thanks for covering those too such as the C6 and P4!
Indeed, it is interesting to see that Espressif changes to RISC-V. I assume that many will follow.
@@AndreasSpiess Guess the RISC-V move is great, they avoid sanctions + the RISC-V core designs are cheaper in the long run.. Easier ISA, less chip area and a lot cheaper or even free Core IP.
Another difference that might be worth pointing out: on the S3 you can use the whole 8MB of PSRAM for heap allocation, while on the ESP32 you were restricted to 4MB because of limitations in the MMU
I read somewhere you could access the top 4 MB with paging which is a pain in the backside.
Thank you for the information!
Indeed, very useful for a hi-res frame buffer. Also, if you adapt the partition tables and board definition file you can access 16MB flash on S3 boards so equipped. I'm not sure if the original 32 can address that much PGM space. I think it's good to turn away from SPIFFS and embed resources as byte arrays instead. Perhaps a little bit of FAT exposed to USB Mass Storage for config files etc. I don't know why the Arduino IDE partition options are restricted to relatively low PGM space and high FS space given the number of boards now with extravagant flash. If you're using LVGL you might want it the other way round.
@@nikthefix8918 The original ESP32 supports a maximum of 4MB of .rodata in an application image (another limitation in the MMU), so that puts a hard limit to how much data you can embed in your firmware; the S3 MMU does not have the same limitation, so it should be possibile to embed objects up to the available flash size. I don't know about toolchain and bootloader support, though.
@@alyf80 Thanks for the great info regarding the original ESP32. I can confirm that the S3 has support in IDF and Arduino (with suitably modified definition files) for a specified 16MB of flash storage for the main application and have boards working in this configuration. I never looked into it with the S2 as 4MB was sufficient at the time of using it.
Although esp32 will remain my "darling", the biggest issue for me has always been battery powered projects where the Bluetooth always sucked battery at ludicrous levels. Recently I've been playing with the nrf52840, a bit pricier, but lovely long connected battery life
i dont suppose you can recommend a decent but affordable dev board for the nrf5240 ? that can work on platformio? might be nice to play with
Absolutely. The ESP32 is not good for Bluetooth. Let's hope the newer versions will be less power hungry...
Agreed the nordic chips are great and the dev boards are way better than either the esp32 or rp2040. I do however find myself using rp2040s more than anything else at the moment
@dreamcat4 I've been messing around with the xiao nrf52840, it took me a bit of googling to get the right platformio.ini file. Andreas has put up a good video th-cam.com/video/vrcPGeYinVQ/w-d-xo.html
@Dreamcat 4 It may be worth having a look at the seeed studio xaio nrf52840 boards. There are quite a few boards in the range, and they have a surprising feature set for their size.
Thanks! You have been one of my main guides into the world of the ESP32!
Thank you for your support! And I am always glad to read that my 2 cents are useful ;-)
Watch out... once you do one, it gets addicting!!! "what can I build a solution for that I dont have a problem yet?!?"
I started with the esp8266, and that was like a gateway drug... Loved it, but lacked... power... at times... It is still amazing little microprocessor and stupid cheap and can write using Arduino IDE... but when i found the ESP32, my world changed that day.... That was the day I opened my eyes! I havent been the same since... LOL
Don't write off the C3, I've been using them recently and they are really nice to work with. For something that doesn't need lots of pins and horsepower they work very nicely. Native USB for programming too so no need for a USB UART and you can make very minimal boards from them.
exactly me doing the same - nowadays lots of C3 modules in my projects
I've also been using the c3, less pins than the s3 but if you don't need them it's a cheaper option.
I also would not write the C3 off. But it is more a replacement for the ESP8266, not the ESP32...
That's what I have in mind too. However, the near future might be evolving towards the newer one.
C3 is awesome, best bang-for-buck in wifi uC space
We just started using the ESP32-S3-DevKitC-1 boards for projects at work. We got the variant of the board with the most PSRAM and Flash and that has been useful in our projects to have more external RAM and Flash than the older ESP32 boards.
The other thing that we liked about the S3 is that the USB port also supports JTAG so we are able to run VS code with Platform IO with full source code debugging without needing to have an external JTAG board.
Also in the S3, besides more GPIOs, you don't have to worry about SPI bus sharing as the PSRAM and SPI flash are on their own busses separate from the two SPI busses for use to the actual pins.
Thanks for publishing the spreadsheet, that is quite helpful.
I agree with your statements!
It has native JTAG via USB? I just might need to use them on my latest power electronics...
I'm excited to see the introduction of more RISC-V based parts from Expressif. I've been playing around with implementing a RISC-V CPU in an FPGA and am learning quite a bit about the instruction set architecture. It looks very well thought out, with a degree of elegance that I can appreciate. Having Expressif wrap that up with their WiFi, Bluetooth and Zigbee/Thread radios and their other SoC peripherals is a welcome development!
I somewhat like the ESP32 family, but (like most tech companies) they should fire their marketing staff. Too many parts, with only fine separation between them, and no coherent numbering system. Part of the reason this video is needed, is to sort out the mess.
@Nate: What would you suggest STM? With their huge number of chips?
@Louis: I am not sure if this is only because they like RISC-V. Maybe it is also a preparation for the future...
@@AndreasSpiess Right, chinese chip companies are dumping US owned technologies like the plague, can't blame them though
Thanks for explaining all the differences. I bought some color changing light bulbs with esp32 c3 in it thinking it was much better chip. The bulbs were only $5 each and I reflashed them to Tasmota so still a good deal.
The C3 is for sure a good chip, but more the replacement of the ESP8266. This is why I crossed it out in this video.
What bulbs did you buy, thanks for answering.
Love to hear what bulbs! I love open firmware on my bulbs.
@@jmr Here is the video link th-cam.com/video/92F7DqQrZWg/w-d-xo.html
@@mpsadre132 see my reply to jmr - I have more info link to info .
Major drawback of S3 which you did not mention is lack of classic bluetooth support. Stick to esp32 for projects requiring classic bluetooth.
Good to know! I was not aware of that fact because I hardly use it...
@@AndreasSpiessplease do your research better next time! I actually follow your videos very closely and expect reliable information!
@@dcpowered What a ridiculously rude and condescending comment. No self awareness with you is there.
@@dcpowered you sure ask a lot for someone getting these videos for free 😅
Do your own research. Read the documentation. We dont care about you.
When we used the esp8266 it had a different sdk and different libraries compared to the esp32, which was a major PITA.
The esp32-C3 kind of fixes that, you can use the same toolchain and libraries for both small and bigger projects - which is great.
The ESP8266 is even older! And Espressif was very young when they made it. So no wonder that they got a few things better with the ESP32s...
Ive made a video about the P4 a few months ago. The only announcement from Espressif I am really excited for. 400MHz dual core with lots of pins? Hell YEAH!!!
Can't wait to get that bad boy on the lab! It will be the definitive ESP32 substitute for projects that don't use BT/WiFi....
Thanks for the update! Zigbee could be a game changer. Until then I will remain using the 8266 which is in my opinion still suitable for 98% of all situations/projects.
Good points!
I can't wait to play with the Zigbee!!! My projects I build I attach to Home Assistant and control through ESPHOM. It would be awesome to build smart home devices without having to design the PCB by adding a ZigBee chipset to it... Just the ESP32 and boom, done... well building out the code of course.
Like always, nice vlog. The three features that are game changer for S3, C3 and C2 are:
1. Direct connection with USB, no need for CP2102 or any other USB to UART Bridge.
2. Bluetooth 5.0 support
3. In built support for debugging, no need for external JTAG adapter and extra wiring / cable to connect JTAG to ESP32-C3/C2/S3
You missed to mention last feature in your vlog.
Thank you for the additional info!
majority of my projects are on S2, is so much faster than than original! Yes, in few places I had to go to ESP32 due to the lack of memory on S2, but processor wise S2 is much faster than the original. Ok, original ESP32 is 4uA during hibernation while S2, C3, S3 are all around 20uA. ADC on S2 is also much better than ESP32. And all pins are configurable (unlike ESP32). And the most nice is: S2 does not need USB->UART
Actually nothing today is as huge jump as between ESP8266 -> ESP32
I agree, the -S3 is not a big jump. This shows how lucky we were that we had the ESP32 so many years ago...
I got started using the esp32 in the last two years. I use them to wifi enable sensors around the house and drive led strips. I did use a raspberry pi for some of those things but pi s got extensive and hard to come by (and it is overkill). I also have some pi picos and the w version of those but prefer the esp32 because it is easier to setup the webserver part. There is still a lot of mileage left for the esp32 for me. No need to switch yet.
No problem with me. Now you know that you do not lose a lot...
I recently made a project with a ESP32-WROOM-32U on a custom PCB, it was super handy. I only had to make sure it had proper power, and then a little enable delay circuit, a pull up on gpio0, and then it was ready to go. :)
Compared to the pi pico, the pico is a lot harder to put onto a custom pcb, and requires a lot more extra components.
And you already had Wi-Fi...
Teensy 4.0 and 4.1 are what have turned my head the last few years. They have absolutely unbelievable computing power!
They are extremely fast, I agree. Probably too fast for most of my applications.
I really like the teensies. I use them for my work. For my personal projects they are too expensive in my opinion.
@@piranha1337 Yes, they've always been pricey. Until 4.0, I didn't see a justification for it.
I'm new to arduino looked these boards up very cool but unsure what they would be good for
S2 has native USB, so it’s a cheaper option for diy keyboards and such. The C6 looks really neat, not very available yet though. The RP2040 is seeing a lot of use in MCU communities other than the arduino and micro python ones. Like for using as the driver of a 3D printer mainboard. They have two cores that are always usable (not having one used up by wireless driving). It’s a conventional ARM architecture, so its a lot nicer to work with bare metal than an ESP, hence why it seems quite attractive for more advanced users. That said, the ESP32C series are RISC-V, which is also gaining traction among hobbyists for its open standard.
I agree, the USB of the S2 is useful for some projects. It seems that Espressif wanted to test this feature in the S2 for future designs...
Thank you for this video! Nice work and a good comparison of options :)
I hope Expressif will fix their buggy ADC in the future, it's very annoying!
Me too ;-)
I dont understand why people still use the Arduino IDE as a standard. If you want to use all the 'special' functions and speed. ArduinoIDE is not the way to go. Just like the STM32. If you want to get the most out of it you have to use the STMCubeIDE, not the ArduinoIDE. ArduinoIDE is past history ...... just my 2 cts :)
the platformio+vscode my friend
@@dreamcat4 I think people confuse "IDE" with the toolkit and libraries used.
For why people use the arduino libraries, rather than lower level ones: professionals mostly do, hobbyist do not want to, and are mostly not capable to, write their own custom drivers og libraries for everything they use. If they use NRF24, TFT display etc etc, they cannot just use the libraries people have made. They need to read 1000 page data sheet for each component, and understand it well enough to write the drivers. And most of these boards are more powerful than most hobbyist need, so writing more optimized code is not needed. Personally I prefer writing everything myself using low level API, but because I like to understand how it works. It means I spend 10 times more time on everything, digging through poor documentation and be frustrated.
Regarding platformIO, that's just an IDE. For most chips you can both use the Arduino framework and libraries (if supported) and the native API. Moving to PlatformIO and using arduino libraries does not automatically make your code more optimized or use new features. It just gives you a nicer IDE to type in.
@@element4element4 very good point, you can indeed use pretty much any libraries system you like (under the sun) if you are on PlatformIO... so in that sense it's not just merely 'another IDE for the sake of user preferences'.... because you cannot do that with any other specific single IDE, to use any preferred or chosen libraries so well. It's just a non-starter, you tie yourself to that mast (be it either arduino, or CubeMX, or something else like RTOS or whatever other toolchains). And same goes for the Rust embedded libraries / toolchains. However the other distinguishing feature is hardware debugging. Which simply is also a non-starter for the Arduino IDE... you do get debugger on STM32CubeIDE. But then you are probably quite limited to compatible hardware platforms.... again this isn't the case whatsoever on PlatformIO + VSCode, you have a maximum of different hardware platforms fully compatible. At the drop of a hat. So no - it's not merely 'just a nicer IDE to type in'. The issues that exist around embedded programming all goes far deeper than that. Much deeper.
You are right. But we want to be open to choosing chips from different manufacturers and do not like to be locked in. I also could use the Espressif IDF for the ESP32, but I don't...
If you do programming for a living, this is a different story, of course.
Eclipse ide
For high processing, Espressif have got an S3 to sell you. FPU and features galore.
For low power, they have a C3. No CH340 / CP210X needed, saves that $1 bom cost, still has Wifi & bluetooth. Beats the pants off an arduino if you don't need 5V.
Sometimes your project wants to do camera processing, sometimes it is just a bunch of glue logic that barely needs the power of any modern processor. So I think bifurcating for use cases makes a lot of sense here. I have to give it to their marketing strategy, they've done quite nicely in market segmentation for their designs IMHO.
For me, the C3 is a replacement of the ESP8266. This is why I did not cover it in this video. It is a good chip, I agree.
As always, a great, structured and informative video. Thanks for doing that for free here
Thank you for your kind words!
Andreas thank-you for this esp32 overview. Your engineering focused, informative , refined instruction videos are my go to.
Thank you for your kind words!
Apart from the Ethernet there is yet another “small thing” we loose: the legacy Bluetooth, this impacts if your project plans to use A2DP or HFP.
Thanks for this info. I was not aware of that fact.
I always try all the new modules, so far I go back to ESP32 a lot for things more than classic Arduino and less than Pi0, so thanks for review ! I am a C/C++ person, so that is important to me.
You are not alone. Most people on this channel are probably C++ on the microcontrollers...
Cant you use c/c++ with esp32 s3?
Thank you! I wouldn't have discovered the ESP32-S3 without your video! :D
Thank you for your support!
Great video.. I think this video misses a very crucial point. S3 has inbuild jtag, which uses only 2 pin without any external debug adapter for debugging. This is a big plus as we donot need any external adapter like esp-prog for esp32.
One more thing, it has the hardware acceleration for crypto, much need for secure applications.
Thank you for your additional info!
Holy shit! Günther! Is that you? Times are hard in HAAS F1 Team but damn... going from F1 to Electronics's a steep move eh? :D
Great content! Grüetzi from another Swiss :)
???
It is always cool to see where things are headed. Other ideas could be looking at the form factors, and comparing what they delivered at the time and what would be possible today, or in the future. Kind of like this video but further down the pipeline
I usually wait till something is available. Otherwise it is not fun for the hobby., I think. This is different if you have to decide for a product that has to live a few years, of course.
@@AndreasSpiess that makes complete sense. How about this: esp devices are like $5-15ish: is there a same sized device, that if someone had a budget of $100 to $1000 and was building a custom pcb, what could be done? I think part of the appeal these things & youtube is just seeing so much capability in such a small package. 🤷♂ Just day dreaming :)
As usual I love all your videos. I've been working with the ESP32 the past couple of years and the past couple of months have worked with several ESP32-S3. However some companies put out boards but don't keep up their software. I've had issues with the LilyGo stuff. They want you moving, copying, replacing libraries, and downgrading ESP32 lib versions, etc. To the point it's not worth it. Not when I have other boards to consider. Also found out that all of ones with cameras get hot enough to literally burn you. For cameras and AI I found the AMB82 Mini the bomb. Aside from camera I will still use the ESP-32-S3 for non-camera projects. Keep up the great work.
Speaking of AI. That sounds like something you would be interested in too. Object recognition, voice recognition, etc. Enjoy!
Unfortunately, I am not very much into video. I just did not find useful things for me :-(
@@AndreasSpiess I understand. Everyone has their own areas they like to explore.
Very useful updates about upcoming ESP versions. As always, very well done. Thank you, Andreas.
My pleasure!
The thing with ESP32-S2 is it costs the same as 8266 (at least in the D1 mini form factor) and is better in every way.
Good to know. I did not use a D1 mini for a long time... The only ESP8266 I recently used was a ESP01 because it is so small...
Great overview and interesting details. I know I keep repeating myself... but this is really wonderfull Sunday morning entertainment and an appetiser to spend the whole afternoon in my workshop.
Glad you enjoyed it! Yesterday, I was not in my lab the entire day, but in an AREDN workshop where we built 5.8GHz links. Also a nice project.
You are the best TH-camr I have ever seen.
I enjoy every video you post. Your channel is one of the few that I have subscribed.
Thank you for your great work.
Thank you for your kind words!
Thank you, I've come to the same conclusion. I am still quite satisfied with the old ESP32, mainly due to library support and price. When I do nee designs, I try to use the S3
:-)
thanks for all the important info we get on the channel,
My pleasure!
Would be interested in the Excel sheet you made, but can't find the link. Thanks, Andreas, for this video!
Thank you! I forgot the link. Now it should be therere...
I so much like your style
Very analytical and straight to the point
Thank you!
Hi, nice video.
Another difference: ESP32 has BR/EDR (Bluetooth classic) support as well as BLE... while ESP32-S3 only supports BLE
You are right. I was not aware that it was dropped.
This is why I don't use the s3, no quick and easy Bluetooth serial port ...
I also wanted to mention that. Unfortunately, this means that you cannot use it as A2DP Bluetooth audio device (ESPuino for example). This is the only feature of the S3 I am really missing.
Thank you for an other great ESP video!
However, I think it would have benefited from not dismissing and "red crossing" S2 with very little comments. S2 is a great module for low power applications not needing BT or dual core. It is for me the most direct upgrade from an ESP12 module (8266). Then the other ESP32 modules come with added features - at the cost of increased power consumption.
I agree that the S2 (or the -C3) are replacements for the 8266, But the question in this video was about a successor of the ESP32.
I finally settled on RPI Pico rp2040(and /w) in the Arduino 2.x environment due to cost despite the initial learning curve frustration. Works just fine with LoraWan ttn, Oled, GPS, SD cards, memory size, etc. ESP32's are back in my parts box and my hair is finally growing back. LOL. Thank you for the new video. Keep them coming.
Is there a big price difference between an ESP32 and a Pi Pico? I thought they are similar.
@@AndreasSpiess and the RP2040 uses more power and is much slower
Thanks again for super helpful content . All the best from Croatia.
You are welcome. Greetings from Switzerland!
Thanks for all the updated information, your channel is such a fantastic resource for people learning embedded on their own like me.
My pleasure!
You might want to look at the new Pine 0x64. It's very new, so little support. It's a hybrid MCU / CPU. It can boot into Linux or run RTOS. Looks promising.
As an old man I am very reluctant to use new MCUs. They usually are time holes and a lot disappeared after a while...
@@AndreasSpiess haha, same here. In my younger days, I'd be all over it. I'm finding ChatGPT extremely useful, although it's not much help here with something so new. There is at least one TH-camr playing with it, so I'm following them.
There's a few setup guides online so it's not too bad.
There's also the sipeed m1s which uses the same chip set as the ox64.
It's 480mhz 64 bit risk V with 2 32 bit additional processors, and it does bt ble wifi and zigbee afaik.
Apparently it also has an audio dsp which may be interesting for some projects.
Also it has an NPU accelerator for ml tasks which can get better performance than cpu acceleration on some older laptop processors, so for cv applications it looks really interesting compared to an esp32 cam module
Thinking about it some more it has the full feature set for an audio assistant.
@@satibel You did not mention the Arduino IDE support...
@@AndreasSpiess I haven't checked if it's Arduino compatible or not, hence why I didn't mention it, they are compatible with freeRTOS which apparently you can compile for with the arduino ide, but I haven't tried it.
Thanks - I was waiting for that video for a long time!
:-)
All ESP32 can keep Wi-Fi during light sleep. It halts processes between DTIM pings, every 100ms or so. Cuts usage to about 800uA and allows for rapid reconnection. Doesn’t reboot when waking.
I've never had any luck with this, and every commenter I've come across shared the same experience. Any examples? Does it need a 32khz rtc xtal to achieve this?
@@EdFrench_uk I can’t give an example because I use MicroPy which has no support for this. It’s probably only in the Espressif SDK and never ported anywhere.
I never used light sleep in a project because it did not solve my problems. Battery operated, it was too "thirsty" and mains powered not needed...
I never tried the newer chips. My latest was the WROOM. The WROOM was a powerful chip. It is a wide chip, though, so it doesn't fit well on a breadboard. I was lukewarm on their SDK, although I guess it was good enough. Having to download a separate Xtensa compiler and some monkeying around with the install was tedious. My go-to chips have been the Pico RP2040 and the STM32F411. I think the RP2040 has the edge, although the development environment for the STMs is pretty good. I tend to flop-flop around a little but I mostly end up using the RP2040. The RP2040 is VERY popular with the Maker community, and when it comes to really cool projects, the RP2040 seems to outshine STMs. It doesn't help that STMs are difficult and absurdly expensive to get hold of right now.
I agree, the RP2040 is more popular than the STM32s in the maker community. But the real king is the ESP32 in this community ;-)
What a great Sunday. Thank you Andreas.
You are welcome!
I migrated to the Xiao esp32C3 for all my sensors. I don't need many pins and the battery management on board is ideal (and charges with a small solar panel). The deep sleep model the esp32 wake modes is ideal. My typical sensor has the resistor bridge on D0 for battery monitoring (one short coming not having it on board), day sensor on D1, D2 and D3 are available for interrupts and sda, scl for the i2c sensors. With a 18350 900ma lion battery I have several running in just window light for solar and haven't touched them in over a year. They use espnow for hourly idle updates and on-demand sensor updates, typically 10-12 per day. I tried the S2 and determined life is too short, what a pain!
For my wearables I like the Xiao Nrf52480 sense.
I've used the rp2040 both as the rpi board and Xiao form factors and I find them to be useless. I have a handful of these if anyone wants them LOL
Thanks Andreas for your videos. You are always informative.
Thank you for sharing your experience! I agree that the -C3 is a good replacement for an 8266. It is too small for an ESP32 replacement.
Can you share a solar powered code sample for Esp32c3?
@@tactizityeibar8922 The code has nothing to do with the way you power a device, I think. If you want a low consumption, try the deep-sleep examples.
Excellent presentation, however the newer ESP32's at least so far are pretty underwhelming tweaks on the original. Hoping we get some additional vendors in the mix with competitive products.
Last time I checked the ESP32 had an undocumented machine machine instruction set. That's a security as well as a support and engineering concern and showstopper for using ESP32 for any serious commercial or industrial projects for me. Has this changed?
I never looked into this topic because it has no priority to me. But I know that many companies use the ESP chips for their products.
Dang! I didn't know about the undocumented instruction set. That's quite risky to other nations, given where these chips come out.
Another great video mate! Your knowledge and sense of humor is refreshing :)
Thank you!
The ESP32 killer is....an ESP32 😊 . We knew it. They are pretty unrivaled. I wish though expressif had given them numbers of their own rather than their C and S classification
I agree, the numbering is not ideal. They probably employ more engineers than marketing guys. That is the positive side ;-)
I personally think the C-Series chips are way more interesting. I use a couple of C3s, but the C6s also seem very interesting. I personally love using Rust on ESPs and there Xtensa is just so much more painful to use.
I did not cover the -C3 here because I consider it as a successor of the 8266...
For me, any device that is dependent on WiFi is a no go making most of the newer models just downgrades. If I'm making my own custom stuff it either needs Ethernet (ideally PoE) or to be able to work 100% via a non-WiFi wireless. LoRa is definitely getting interesting. Worst case I can always fall back to 433, but that's obviously not ideal for anything I want two way communication on and/or missing a heartbeat would cause major issues. Custom ZigBee and Zwave look to be a pita so I've not tried that yet. Ones supporting ZigBee natively will be a great improvement.
If you do not need WiFi you have many other choices than the ESP32s, I think.
which processor can kill the esp32 and Ethernet?)
Just emulate Ethernet over usb and use a cdc_ncm or cdc_ecm adapter into your application? I really wish espressif would ship a dual or quad core processors with hardware 802.11, 802.15.4, and concurrent BLE. The silicon isn’t that expensive and you can really get a lot done bridging Thread / Matter to a wifi network
Excellent video friend. For me, the best development board is the ESP32-P4, which reaches 400 MHz, dual core, and 728Kb SRAM... the bad thing is that it will probably come out late. Because ESP32-P4 boards there are only few prototypes to test. Yes, without DACs!
Plus so far, it is not supported by the Arduino IDE...
Excellent overview, saves me trawling datasheets. Shame about the sleep behaviour, when will some manufacturers ever learn? Maintaining any RF-based connection is always going to be a killer, as far as average current in sleep mode is concerned.
Maybe power needs will change when we will be able to use Zigbee for our designs...
Hello Andreas, thx for your thorough work very helpful, keep going ! One question though: Espressif is a Chinese company will they suffer from the US ban on chips that is coming up ? do you have info on this topic ?
I do not think so. First, their chips do not use small dimensions, second, they seem to be produced by TSMC (Taiwan), and third, Espressif is aware that this is a thread to them. They already have a team in Europe, for example.
Good morning.
As always a precise and correct explanation.
What do you think instead of the new Arduino Giga compared to the ESP 32?
Look at its price and you will know ;-)
I’ve been developing in the ESP-IDF with the S3 and it is lovely
Thank you for the info!
Glad to hear someone raising the Esp32’s terrible ADCs in terms of linearity, offset and noise. Was hoping they’d fix it in the s3 but doesn’t look like it 😢
As said, I did not test it :-(
The S2 is good for one specific reason: USB HID. Examples of uses are keyboard and mouse, it's why it's power consumption isn't that much of a problem. Or you can use Bluetooth on other ones if you don't care about USB.
I agree.
Two gripes I had. No input with a schmitt trigger caused variations with quickly timed interrupt tasks. Also if you had a time dependant task that was locked to the free arduino core and all other tasks locked to the core that handles wifi the free core still had interruptions/delays from things happening on the os/wifi core. I ended up having to use a second microchip to handle time sensitive tasks. I've also seen issues with static electricity lockup/reboot the esp. Not direct hits but a static discharge several feet away or someone with high static carpet walking near the device. Not sure if the antenna picks it up or what.
I agree and even made a video about this delay a few years ago...
I started my journey into C++ programming on ESP32 dev boards a couple of years ago. I like using them, I’ve only had one die on me. It got ‘cooked’ in my greenhouse on a very, very hot day. Many of the plant in there died too 🙁
I have had a play with RPi Picos. My grandsons (10 & 12) made electronic dice for playing D&D. That was last summer, they’re still using them. I had a bit of a re-learn of Python and liked the boards as they’re more compact than the ESP32 and fit on a breadboard nicely.
My main (on going) outside lighting project will continue to be based on ESP32 boards.
My main criticism of the ESP32 is the analogue input, it’s too unstable to be of any practical use. It just about works with a soil moisture sensor. It gives me a ‘ball park’ value which stops my plants drying out.
My lighting system is getting incrementally more reliable, as my programming skills improve. Any problem with my ESP32 boards regarding reliability is entirely dependant on my ability to ‘tell them what to do’ in C++! Apart from the cooked one, they’ve survived all my wrong connections and sloppy programming.
Thank you for sharing your experience! I recently changed many of my "bread and butter" projects to ESPhome or Tasmota because it is so easy and fast to create a new node and integrate it via MQTT.
@@AndreasSpiess I use NodeRed and a mosquito MQTT broker running on a Raspberry Pi Zero W. (I bought one, the day they were released. I want more!). Originally I used a Raspberry Pi 4, but it was a waste. That’s sitting in a box waiting for an interesting project to use it for).
Greutzi Andreas, thank you for this video. You helped me on my Reflections project x 100! The pin spreadsheet should come with the ESP32-S3's. Danke vilmal -Frank
You are welcome! The link to the spreadsheet should be available in the description.
Nice breakdown. I am looking forward to the C6.
Me too ;-)
Great overview, thanks!
Glad you liked it!
I think the C6 will be the next big thing. Maybe less power than the S3, but definitely more connectivity with all the wifi 5 and 6.
We will see where things go. If we can use Zigbee (or Thread), maybe Wi-Fi will no more be needed for low power devices). Otherwise, I saw a WiFi6 demo of the -C6 and it was interesting!
Fyi, the 'reboot after deep sleep' thing is inevitable, up to a point. The ESP32 series have a fair amount of RAM, and keeping that RAM alive (which is needed for the chip to continue where it stopped after sleep)n would suck up a fair amount of power, meaning deep sleep would be somewhat inefficient.
Nice to see you here ;-) I thought that this is the reason. Thank you for confirming it. Still, it is more comfortable the other way round. So we must "die one death"...
Thanks for this video. Thanks for subtitles in Portuguese
Thanks for the information!
You are welcome!
I would implore more people to look into using teensy of the teensy offerings. They are pretty amazing bits of kit
I agree!
Just bought a few C6 engineering boards for the zigbee support. Very excited and can't wait to receive them.
What I need is examples for Zigbee sensors in the Arduino IDE. That would change a lot on the power front... Do you have them?
@@AndreasSpiess Im not 100% sure but I think Arduino only gets support after esp-idf 5.1 gets released. Got my dev boards today maybe I will look into it.
@@Jonas_Meyer Just send me a message on another channel if it works.
Great information Andreas, just like you always provide!
Thank you!
A JLCPCB how-to might be really really cool...
Especially with an ESP32, it would be helpful to have "baseline" schematic for powering the chip. That's the sort of stuff one doesn't usually worry about when using a dev kit
There are other channels that did it already. And I am no PCB specialist :-(
@@AndreasSpiess fair enough 🙂
I did look around and was not convinced I found anyone who explained what power supplies to use. Power supplies are one of your specialties 😉
But maybe I just need to look harder..
Thanks for keeping us updated! I have to admit, that I stick to the 8266 for most of my projects. I am looking forward to the next generations including Zigbee, Matter etc.
I already asked Espressif for a Zigbee sensor example for their Zigbee chip. If we get that, Wi-Fi as the primary transport for the ESP32 will no longer be needed, I think. A whole new world.
@@AndreasSpiess Yes, And hopefully the possibility of real battery powered applications.
What a coincidence, just yesterday my PCB arrived for a little esp-s3 board which I will solder today. Let's see if I made a good decision with going S3.
War wohl die richtige Entscheidung. Danke fürs super Video :)
Gern geschehen!
What do you mean by Ethernet functionality of the esp32 ? At 6:30 like does esp32 somehow have a native ethernet ? Or does it require an external chip like the W5100/5500 ??
You only need a PHY controller like the LAN8720. The rest is in the ESP32 chip.
Thanks so much for this video and the pin reference! A great resource! Would you mind please explaining what the glitch with all those analog pins is?
I do not know what you mean with "glitch with all those analog pins" :-(
@@AndreasSpiess In your pin spreadsheet row 69-90 you list pins with glitches during boot.
@@AndreasSpiess In your spreadsheet row 69-90 you mention pins that have glitches during boot.
@@briansperryn They do not stay at the initial level. So pay attention to what you connect to these pins (e.g., a motor could start for a moment).
Thanks, great to learn things even for we old farts! I very much enjoy your videos and the way you explain these new boards in a way that can be grasped by all, not just he engineers who subscribe. I have been playing with the newer Uno and Nano's as well as the new Xioa or what ever the hell that is board from Seeed, it makes for a cool camera that seems much more stable even with it's diminutive size then the esp32 cam board.
Thank you. Indeed, I try to keep my videos understandable to a general public...
The deal breaker for me was always the fact that the esp32 had to reboot from standby/low power mode. In this respect it's often not usable for me in low power projects.
Indeed, it has some flaws. One size does not fit all ;-)
ESP32-P4 and C5 are going to be pretty fun; it'll definitely be more expensive but..
These are for next year on this channel...
I don't take notes about the deep sleep. If one needs to keep the application context, they can use the light sleep. Deep sleep needs to consume less, hence it powers down the RAM among other peripherals. If you need to preserve some data from RAM during deep sleep, you can transfer it to and from the RTC memory.
I agree. Still, the Atmel328 keeps the context which is very handy...
@@AndreasSpiess Sure, but ESP32 too. In its light sleep. Well, if it consumes more than e.g. Atmel328 is by design, but one can use ESP32's deep sleep with some extra programming (if necessary). For example if I wanted to make a low power ESP32 app that would just periodically wake up for a short time, do some stuff and went to sleep, I would use a deep sleep with only RTC timer and RTC memory active and mark the variables to survive this deep sleep with RTC_DATA_ATTR attribute. Such a thing might consume ~10µA during the sleep period.
Now that the C6 is available I would love to hear your opinions on that. While not as big a jump as the C3 and H2, it still appears to be a great improvement.
AFAIK the C6 is not yet supported by the Arduino IDE. So I cannot cover it here :-(
Recently got an ESP32-C6, there are only Sample V0.0 chips currently, which don´t have their ADC calibrated.. Otherwise it´s quite nice!
It has
- 802.11ax WiFi (way less power consumption due to target wake time)
- Bluetooth 5 (BLE as well)
- up to 16MB of Flash
- an integrated 802.15.4 radio for ZigBee and Thread -> They have nice libraries in ESP-IDF for both.. Thread is quite nice as you can do IP via it, in a very low power fashion. I already connected it to my network via 802.15.4 via my Nest Hubs integrated Thread Border Router.
Cool chip, I agree (I saw one last week in Nürnberg). So we only have to wait for Arduino IDE compatibility...
@@AndreasSpiess ESP-IDF works as well, but yes, arduino is easier ;)
Just implemented a ZigBee switch, which sets a ZigBee bulb to a random color on every button press lol.. Couldn´t think of a more usless application of the 802.15.4 radio :D
@@Spacefish007 So there is hope that we will get this functionality soon...
The ESP32-P4 looks very promising.
AFAIK it is only on paper for the moment...
Hopefully available soon…
0:07 "...availability, also in corona times..."
Entire audience nodding, thinking, "he means you, Raspberry Pi!"
Not only. Also STM and Microchip had enormous problems...
I like the S2. It's a great upgrade for a 8266. There is a board that is pin compatible with a D2-mini and so the S2-mini board can be used as a faster D1-mini. It's not a real competitor to an ESP-32, more one for a 8266.
The greatest advantage is the additional USB plus 2 TTL.
I agree!
Nice comparison, thanks. I could redo those projects that rely on longer deep sleep cycles, I guess. But is it worth it just for a few microAmps? I guess, not ...
I agree. Never change a winning team ;-)
Its crazy all this time later no one even tries to compete. I think the Texas Instrument Simplelink series is the closest, but costs like 5x as much, and is very hard to access with multiple layers of "contact us" and form signing required before you can access their closed source SDK with no transparency at all.
There are a few other Chinese brands popping up, but non has community support like the ESP32.
Great video as always 👍
Great tour of the new processors on the way.
Thanks for sharing your experience with All of us 👍😃
My pleasure! Indeed, the development does not stop...
A downside to the S3 (and maybe the C6) is that they do not support bluetooth audio profiles. no LE audio and no A2DP. ESP32 has A2DP so this is a bit of a downgrade if you are looking to have a bluetooth audio source or sink.
I agree (I was not aware when I made the video because I hardly use it)
As usual another great video with swiss accent 🙏
Thank you! 😃
I work with the Raspberry Pi Pico at work so at the moment it's my goto Microcontroller. But I already filled up all 264k of RAM with a mix of c/c++ without arduino but Pico-sdk.
A good choice if you do not need the openness of the Arduino IDE.
You had my interest, but when you said “zenzors” you got my complete attention
:-)
The usb functionality is very useful, especially for making phone USB-OTG accessories.
I agree!
stm32wba52ce is proabably one of the biggest competitors against esp in terms having built in 2.4ghz and uses an arm cortex m33 which seems to perform better than esp core at 240mhz, running at half that clock
From a HW point of view you might be right. But I decided to stick with the Arduino IDE on this channel because it is open for several chips.
I'll add to the "things we never liked" list: there are two pin muxes - one for normal operation and the other for light/deep sleep. If you don't configure the sleep pinmux correctly you'll get floating pins instead of outputs.
So far I have never suffered from this fact. But good to know!
It also removed the built-in DACs and doesn't offer Bluetooth Classic which offers Bluetooth Serial functionality, which was neat when doing really quick and dirty bluetooths versions to the code (you could develop something using normal serial communication, and than replace the Serial with BTSerial) :(
I think with it it also looses Bluetooth Audio Streaming capabilities, because A2DP was part of Bluetooth Classic (just as a point of reference everything after the normal ESP32 dropped Bluetooth Classic Support).
For some reason BLE on the C3&S3 are kind of broken for me, I can't use them for BLE Keyboards library that worked without a problem on the ESP32 (old one) it just doesn't connect with either S3 and C3.
Not mention that they still suck up way more power, calling it a low power mcu (especially when using wireless connectivity) is like calling AMS1117 an ultra low dropout voltageregulator!
Each version sucks up more power or creates bigger power spikes it feels like.
It feels like they designed the radio module in the mcu in 2016 or so and since then just updated everything around it.
As a comparison for other Bluetooth or wireless mcus:
NRF51 or so use like µA when staying connected via Bluetooth. Even other wireless point to point communication sucks up way less on it and other chips.
NRF52 uses a bit less than the NRF51.
The stark difference between these and the esp32 has nothing to do with the fabbing, the NRF51 is fabbed at a gigantic 155nm or so, the NRF52 is 55nm and the ESP32 uses 40nm tech. So it should consume way less on the esp32.
The CYW43439 found in the Pico W also consumes less power than the esp32/s3/c3 wifi module, especially when staying connected and transmitting data.
I was not aware that it "lost" Standard Bluetooth. Thanks. And yes, the ESP32 never was a low-power device. Particularly not in BLE ( made a video about it). There you better go with other chips.
The CYW43439 seems to have 15dBm output power on WiFi and the ESP32 20dBm which is nearly double. This explains a lot about power savings.
@@AndreasSpiess Sorry for the extremly late reply, youtube never notified me, lol.
Yeah Bluetooth Classic is fully gone on the new ESPs only the OG has it. The new ones just support BLE 5.0
Hmm okay, I really hope they release a ultra low power chip, that can compete with the NRF24L01+ & and a attiny412 when transmitting stuff, and even less when receiving like the NRF52 chips. :/ the NRF stuff is just too expensive and cumbersome to use imo.
I hope you make a video one day with a chip that is really good and super cheap if you find one :)
Great video! One question, you didn't come back to the quality of the ADC in the esp32-S3, can we expect the same (low) quality as in the esp32? Thanks!
I did not check the ADCs in this video.