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
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.
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
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.
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.
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 ua-cam.com/video/vrcPGeYinVQ/v-deo.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.
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 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.
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.
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!!!
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.
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 ??
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 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.
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.
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.
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 :)
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.
You are the best UA-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.
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.
- The Arduino FastLED/Neopixel library for ESPHome needs a patch to work. - The vendor/board LoRaWAN library that I was using with ESP32 wasnt supported on their new boards with ESP32S3 (they switch to a different LoRa Radio chip).
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.
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 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.
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.
Is the Wi-Fi transmit power adjustable programmatically? That additional 9 dB of output could be a power saving opportunity when using Wi-Fi, if you don't need that extra power.
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.
They showed a -C6 in Nürnberg last week. But they did not give me a board. So it is probably not ready for us ;-) For me, the DAC is a rarely used function. But it is handy, if you need one. You always can add a chip or go back to the ESP32.
@@AndreasSpiess I use the dac for many brushless motor projects using a hoverboard main board with the "feru hack".. Works just as well as hobbywing esc's, is about $60 and has two motor outputs! The only downside is that if you use pwm input, there is a lot of noise issues. Using analog voltage provides a noisy free result.
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.
4:14 Saying it doesn't keep context in deep sleep is a little unfair. You can allocate variables in the co-processor and they keep their state when waking from deep sleep. For larger datasets you can store it to non-volitile before putting it to sleep, then pull it back out on boot. Sure it's a bit more work for the firmware programmer, but it's good-enough for the price point.
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.
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.
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 UA-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.
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.
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.
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
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
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?
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 :)
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..
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.
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
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 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.
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!
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 :)
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.
G'day Andreas, I am wondering if it can do Speech to Text, and how small can it really get? I saw the XIAO Esp32 being tiny. I have a project that requires real time Speach to Text capabilities, and 4 programmable buttons on it... Do you reckon it can be done with Esp32's or am I better off looking somewhere else?
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
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"...
Unfortunately you mislabeled the 6th and 7th part in the time signatures (2:17 and 3:18) to say STM32 instead of ESP32. So at the start of this video I was under the impression that another manufacturer would be providing the ESP32 killer, also having mentioned the RP2040 and all...
@@AndreasSpiess Oh sorry, I didn't realize you replied since I didn't get a notification about it, but I appreciate that you did! My point is that the "progress bar" for lack of a better word is split into different sections that each have a "chapter" name. The error is not in the video itself, but in the bar below it: chapters 6 and 7 (at 2:17 and 3:18 respectively) show STM32 instead of ESP32. It's a tiny little detail, but it caught my eye.
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.
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'm a huge fan of STs 'Nucleo' boards. You can get one for any of their ARM Cortex M parts (dozens), free halfway decent IDE and built in usb debugger/serial port/file system. And they have a ton of I/O - Arduino shield plus their own 'Morpho' connector. As an embedded programmer, I've used them many times to prototype something. And they are cheap.
For standalone personal IOT projects that don't involve streaming or sending massive amounts of data the price point on esp32 definitely can't be beat. For example I use them for a secure ad hoc wifi mesh network as repeater nodes. Data packets are broken up and hopped to whatever node is available to receive so larger data streams can be sent simultaneously to end points. I use a bit more powerful microprocessors for my AP masters that can handle multiple connections and reassemble data streams.
@@AndreasSpiess Yeah the hardest part for me was programming the data packet "header" to save as much memory as possible as you need order/destination if you want to use data packets and reassembly. I ended up with just pass through using a short hex variable and code similar to what a router would do tied to another variable open for input for whatever data I wanted to drop across the network. Data type you can filter with a couple if then statements and send it wherever you need. As for the data itself you could go dynamic too and easily create an endpoint at your AP with a touchscreen interface to simplify what/where you wanted to send your data from ie. SD card, sensors, or simulated keyboard input. Esp IDF is easy to use covers basic encryption and can send multiple type requests. The base is just a modified access point sketch which is setup instead for p2p ad hoc.
How about Buffalo Lab BL616? RISC-V architecture (future-proof), WiFi 6, BL 5.2, Native USB. I've been eyeing those Sipeed M0S modules. Looks like a nice alternative.
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.
Hi, overall I enjoyed this overview, but I'm curious to know how you came up with the RF 6dB RF link performance improvement figure for BT, nominally the specifications indicates an +11 dB increace in outout power, all things being equal I'm not sure where you have lost 5 dB? Now as far as range goes I agree it should be very close to 4 times the range, (11dB is close enough IMHO)
Sir, I got some Pico d4 chips recently. Can you make a video on that chip. My target to use the built-in usb. Bty, Your TP4056 upgrading video halped me a lot on my project. I made a PCB with that as a module. Everyone liked it.
@@AndreasSpiess Yes I watched it... later.:) It is important to know and not design PCB, and later try to figure out why your ADC does not work when WiFi is working. I think it is not a minor issue.
I am also intested in the Ethernet you mentioned as others are. I could not find the other video. Can you do a video on it. I like doing smart home stuff and use POE cams and WLED. I use it to power my ESP boards. DIG Uno uses a board. I would like to use it more. I also like the Zigbee for its low power and would like more videos on low power setups. I now have have a Unifi Access point that supports Bluetooth. I would like to learn if I can use that.
@@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.
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
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.
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
Thank you! I wouldn't have discovered the ESP32-S3 without your video! :D
Thank you for your support!
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.
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 ua-cam.com/video/92F7DqQrZWg/v-deo.html
@@mpsadre132 see my reply to jmr - I have more info link to info .
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 ua-cam.com/video/vrcPGeYinVQ/v-deo.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.
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 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
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.
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....
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...
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.
As always, a great, structured and informative video. Thanks for doing that for free here
Thank you for your kind words!
Very useful updates about upcoming ESP versions. As always, very well done. Thank you, Andreas.
My pleasure!
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 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?
Thanks - I was waiting for that video for a long time!
:-)
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!
thanks for all the important info we get on the channel,
My pleasure!
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 ;-)
Andreas thank-you for this esp32 overview. Your engineering focused, informative , refined instruction videos are my go to.
Thank you for your kind words!
I so much like your style
Very analytical and straight to the point
Thank you!
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...
Thanks for all the updated information, your channel is such a fantastic resource for people learning embedded on their own like me.
My pleasure!
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 :)
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.
Thanks again for super helpful content . All the best from Croatia.
You are welcome. Greetings from Switzerland!
You are the best UA-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!
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...
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...
- The Arduino FastLED/Neopixel library for ESPHome needs a patch to work.
- The vendor/board LoRaWAN library that I was using with ESP32 wasnt supported on their new boards with ESP32S3 (they switch to a different LoRa Radio chip).
Thank you for the additional info!
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
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.
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!
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
What is the Ethernet project you talk about at 6:29? I have those same esp32 Ethernet boards and can’t get it to work properly.
We use them to create APRS iGates (HAM Radio). Maybe I will make a video on my second channel about them...
What a great Sunday. Thank you Andreas.
You are welcome!
Another great video mate! Your knowledge and sense of humor is refreshing :)
Thank you!
Great overview, thanks!
Glad you liked it!
Thanks!
Thank you for your support!
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.
Is the Wi-Fi transmit power adjustable programmatically? That additional 9 dB of output could be a power saving opportunity when using Wi-Fi, if you don't need that extra power.
Yes:
Lowest RF power output: WiFi.setTxPower(WIFI_POWER_MINUS_1dBm);
Highest RF power output: WiFi.setTxPower(WIFI_POWER_19_5dBm);
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.
The ESP32-C6 is already available in on a dev board? The lack of DAC on many of the newer ESP32 mcu's is a bit annoying for me and my use though.
Agree, the lack of DAC outputs makes the newer Esp32 boards useless to me!
They showed a -C6 in Nürnberg last week. But they did not give me a board. So it is probably not ready for us ;-)
For me, the DAC is a rarely used function. But it is handy, if you need one. You always can add a chip or go back to the ESP32.
@@AndreasSpiess I use the dac for many brushless motor projects using a hoverboard main board with the "feru hack".. Works just as well as hobbywing esc's, is about $60 and has two motor outputs! The only downside is that if you use pwm input, there is a lot of noise issues. Using analog voltage provides a noisy free result.
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.
4:14 Saying it doesn't keep context in deep sleep is a little unfair. You can allocate variables in the co-processor and they keep their state when waking from deep sleep. For larger datasets you can store it to non-volitile before putting it to sleep, then pull it back out on boot.
Sure it's a bit more work for the firmware programmer, but it's good-enough for the price point.
I agree that there is a solution. Still, the Atmel chips keep the context...
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.
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.
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.
Great video as always sir!
Thank you!
Great information Andreas, just like you always provide!
Thank you!
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 UA-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.
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...
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 :-(
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, 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
:-)
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...
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.
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...
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 :)
???
Thanks for the information!
You are welcome!
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..
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.
Can you please include a Link to the ESP Ethernet video you refer to at 6:27?
This was only a project, not a video. I used it for a LoRa APRS iGate.
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.
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...
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.
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...
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 :)
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...
G'day Andreas, I am wondering if it can do Speech to Text, and how small can it really get? I saw the XIAO Esp32 being tiny.
I have a project that requires real time Speach to Text capabilities, and 4 programmable buttons on it...
Do you reckon it can be done with Esp32's or am I better off looking somewhere else?
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
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"...
Unfortunately you mislabeled the 6th and 7th part in the time signatures (2:17 and 3:18) to say STM32 instead of ESP32. So at the start of this video I was under the impression that another manufacturer would be providing the ESP32 killer, also having mentioned the RP2040 and all...
I looked at the two references you gave but did not understand your point :-(
@@AndreasSpiess Oh sorry, I didn't realize you replied since I didn't get a notification about it, but I appreciate that you did! My point is that the "progress bar" for lack of a better word is split into different sections that each have a "chapter" name. The error is not in the video itself, but in the bar below it: chapters 6 and 7 (at 2:17 and 3:18 respectively) show STM32 instead of ESP32. It's a tiny little detail, but it caught my eye.
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 ;-)
Very useful Andreas, thank you!
You are welcome!
Great video, very useful.... still waiting for the 5.8 WiFi as some of the AP's do not allow 2.4 WiFi connections. Bummer
I did not see plans on Espressif's side for that...
I have a question regarding the Ethernet from the ESP32. What exactly does the ESP32 need to have ethernet? Just a jack oder more components?
AFAIK just a jack if you do not want PoE.
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 ;-)
Very interesting , thank you Andreas!
You are welcome!
I'm a huge fan of STs 'Nucleo' boards. You can get one for any of their ARM Cortex M parts (dozens), free halfway decent IDE and built in usb debugger/serial port/file system. And they have a ton of I/O - Arduino shield plus their own 'Morpho' connector. As an embedded programmer, I've used them many times to prototype something. And they are cheap.
If you want to go propretary STM, that is a good choice. I decided to stick with the Arduino IDE because you can use chips from different suppliers.
Thanks for this video. Thanks for subtitles in Portuguese
For standalone personal IOT projects that don't involve streaming or sending massive amounts of data the price point on esp32 definitely can't be beat. For example I use them for a secure ad hoc wifi mesh network as repeater nodes. Data packets are broken up and hopped to whatever node is available to receive so larger data streams can be sent simultaneously to end points. I use a bit more powerful microprocessors for my AP masters that can handle multiple connections and reassemble data streams.
Sounds like a very interesting project!
@@AndreasSpiess
Yeah the hardest part for me was programming the data packet "header" to save as much memory as possible as you need order/destination if you want to use data packets and reassembly. I ended up with just pass through using a short hex variable and code similar to what a router would do tied to another variable open for input for whatever data I wanted to drop across the network. Data type you can filter with a couple if then statements and send it wherever you need. As for the data itself you could go dynamic too and easily create an endpoint at your AP with a touchscreen interface to simplify what/where you wanted to send your data from ie. SD card, sensors, or simulated keyboard input. Esp IDF is easy to use covers basic encryption and can send multiple type requests. The base is just a modified access point sketch which is setup instead for p2p ad hoc.
How about Buffalo Lab BL616? RISC-V architecture (future-proof), WiFi 6, BL 5.2, Native USB. I've been eyeing those Sipeed M0S modules. Looks like a nice alternative.
Do you have information about Arduino compatibility and library availability?
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 ;-)
Please also do a alternative for the now in some countries obsolete SIM800l like the SIM7600X, SIM7020E and EC01.
It is on my list...
so does any of the new chip allow the real BLE like abilities? basically very low energy consumption while still have some kinda of wireless ability?
I do not think that the -S3 is a good BLE chip. The ESP32 definitively was power hungry...
Nice breakdown. I am looking forward to the C6.
Me too ;-)
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.
Hi, overall I enjoyed this overview, but I'm curious to know how you came up with the RF 6dB RF link performance improvement figure for BT, nominally the specifications indicates an +11 dB increace in outout power, all things being equal I'm not sure where you have lost 5 dB? Now as far as range goes I agree it should be very close to 4 times the range, (11dB is close enough IMHO)
6dB more power (4x) is needed for the double distance. You should find various sources for that.
Sir, I got some Pico d4 chips recently. Can you make a video on that chip. My target to use the built-in usb.
Bty, Your TP4056 upgrading video halped me a lot on my project. I made a PCB with that as a module. Everyone liked it.
Are you sure the Pico d4 has built-in USB?
@@AndreasSpiess my mistake! It has jtag. 😞😮💨
1:13 here is missing that you can not have WiFi and one of the analog ports together.
It is later covered later. But it is not extremely important for me.
@@AndreasSpiess Yes I watched it... later.:)
It is important to know and not design PCB, and later try to figure out why your ADC does not work when WiFi is working. I think it is not a minor issue.
What is with boards from Nordic like the nrf5340?
I am also intested in the Ethernet you mentioned as others are. I could not find the other video. Can you do a video on it. I like doing smart home stuff and use POE cams and WLED. I use it to power my ESP boards. DIG Uno uses a board.
I would like to use it more. I also like the Zigbee for its low power and would like more videos on low power setups. I now have have a Unifi Access point that supports Bluetooth. I would like to learn if I can use that.
Maybe I will make such a video with the ESP32. I already made a video about PoE in general.
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.