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.
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.
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.
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.
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 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.
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!!!
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.
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.
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 ??
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 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.
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.
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 :)
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.
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.
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!
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
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.
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 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.
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.
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?
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.
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?
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.
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.
- 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).
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..
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 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.
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!
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.
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.
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.
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.
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.
@@AndreasSpiess I could only find W32-ETH01 boards, with an esp32 and a LAN8720 ethernet chip. in this video, you seems to tell that the esp32 can be directly interfaced with ethernet ? is it the case or do you still need an interface chip ? thanks for all your work.
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.
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.
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.
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
Hi Andreas. What would you suggest or how, for I2C protocol commands reverse engineering. I have old setup (not built by me), that monitors LED temp and Voltage, whole system communicates over I2C protocol. I wany to replace current "controller" with Arduino based device (ESP32, Arduino Uno...). But I need to "listen" to commands that "controller" sends over I2C so I could replicate them via Arduino board (that is my idea 😁).
@@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.
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.
Hi Andreas, I did some research to compare ESP32 WROOM and ESP32-S3 floatingpoint speed. And strange to say, the -S3 is pretty much slower than the ESP32 WROOM. For comparison I programmed a loop for creating 1 million random numbers-pairs with division: num1 = random(1000) / 1000.0; num2 = random(1000) / 1000.0; Then they were multiplied. The microseconds of random number creation, and the multiplication were added seperately. The results of muliplication/RandomNubers were: ESP32: 533000/1730419 ESP32-S3: 789000/42163500 I expected this to be the other way around. Do you have any idea, why the 'better' microcontroller is slower?
I would not expect the S3 to be faster in "standard" floating point calculations. Its new vector commands make a difference, but only where used. But it is strange that it is slower....
@@AndreasSpiess Yes, its very strange. I did some more research to change compiler optimization for GCC. But without success related to executing speed, or code size. There's one overall file platform.txt, where optimize_level =-O can be entered. are 0, 1, 2, 3, s, fast. The same arguments can be used in the textfile sdkconfig, at line ''CONFIG_COMPILER_OPTIMIZATION_PERF'. The later one distinguishes between ESP32, ESP32-S3 and so on. Here's the outup of my benchmark: ESP32 WROOM: LoopingTime (= waste): 0.092 µs/Operation, 10.826, MOperations/sec Creating random integers: 0.697 µs/Operation, 1.435, MOperations/sec Dividing floats: 2.933 µs/Operation, 0.341, MOperations/sec Multiplying floats: 1.595 µs/Operation, 0.627, MOperations/sec ESP32-S3: LoopingTime (= waste): 0.076 µs/Operation, 13.240, MOperations/sec Creating random integers: 22.246 µs/Operation, 0.045, MOperations/sec Dividing floats: 0.037 µs/Operation, 27.048, MOperations/sec Multiplying floats: 44.494 µs/Operation, 0.022, MOperations/sec As you can see, the looping is very fast, the rest not really usable for serious projekts. Do you have any hints?
Hi Andreas, I ordered an esp32-h2 module and installed the Arduino ESP32 Core version 3.0.0. I am going to use my module as a Zigbee client (for my sonoff dongle that acts as a coordinator for zigbee2mqqt). But I can't find a good example to commumicate via zigbee in arduino IDE. Should I use the XBee library for that?
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)
The ADCs arent low quality (IMO). If you build a proper voltage divider, set attenuation to 0, and add a small capacitor its generally within a few tenths of a volt. Calibrating ADC and multisampling will get you within a few mV.
Hey, a bit off topic, why do you mention 5.7gbz wifi? I have long thought that the wifi frequencies are 2.4 and 5. But then the other day I saw some ac thing listing a 5.2 ghz instead. Are these specific freqs for different regions? Are they different standards? Is the 5ghz ac/wifi6 is on different than the 5ghz a was on?
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 :)
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 ...
If only the Teensy 4 had the BT and WIFI , . Octal SPI, have we gone full circle. Isnt that an 8-bit memory. Any thoughts on the PADAUK PMS150C $0.035 micro, (sold at LCSC) . RISC V interesting move from the xtensis ? A good move , how are the new ADC 's .
I do not do mass production, so the price of an MCU is not extremely important (if it is in the few $ range). So the PADAUK stuff is not too important for me.
Hi Andreas, I've been watching your videos to try to clear up my doubts. You see, I have a peculiarity in my work, I am a border policeman in my country and 85% of the time I am, in a primitive way, scanning frequencies used by organized crime to intercept contraband, drugs and weapons that enter the country. Nowadays I mostly use a handheld radio to scan frequencies between 138,000 to 170,000, I've used a Uniden with close call (works, but CLOSE call 😅) and I also have RTL-SDR (the silver one), which I'm in constant trouble with. battle to make it work. Anyway, my question for you. Is there a more efficient way for you to find their frequencies? Or any tip that might facilitate my search for frequencies. Thanks in advance! PS. I know this video is not about it, just trying to reach you.
To cover 32MHz bandwidth you need a more expensive SDR receiver (like the LimeSDR) and a PC with SDR software. Then you would see all signals in this range in real-time.
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.
Beetle ESP32 C6 Mini Development Board can you do some project using the Beetle ESP32 C6 Mini Development Board Bluetooth audio boombox with digital menu with volume control and internet radio
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.
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
Thank you! I wouldn't have discovered the ESP32-S3 without your video! :D
Thank you for your support!
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
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.
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
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
Thanks!
Thank you for your support!
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 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.
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....
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...
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.
As always, a great, structured and informative video. Thanks for doing that for free here
Thank you for your kind words!
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.
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 - I was waiting for that video for a long time!
:-)
Very useful updates about upcoming ESP versions. As always, very well done. Thank you, Andreas.
My pleasure!
thanks for all the important info we get on the channel,
My pleasure!
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...
Andreas thank-you for this esp32 overview. Your engineering focused, informative , refined instruction videos are my go to.
Thank you for your kind words!
Thanks again for super helpful content . All the best from Croatia.
You are welcome. Greetings from Switzerland!
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...
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!
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 so much like your style
Very analytical and straight to the point
Thank you!
Another great video mate! Your knowledge and sense of humor is refreshing :)
Thank you!
Great video as always sir!
Thank you!
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);
Thanks for all the updated information, your channel is such a fantastic resource for people learning embedded on their own like me.
My pleasure!
Great overview, thanks!
Glad you liked it!
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
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...
What a great Sunday. Thank you Andreas.
You are welcome!
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.
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 ;-)
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.
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...
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.
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.
Great information Andreas, just like you always provide!
Thank you!
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...
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.
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 for the information!
You are welcome!
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.
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.
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?
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 :-(
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!
- 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!
What is with boards from Nordic like the nrf5340?
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..
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 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.
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.
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...
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.
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?
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...
Very useful Andreas, thank you!
You are welcome!
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.
Very interesting , thank you Andreas!
You are welcome!
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...
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...
M0s Sipeed?? WDYT?? It says it has wifi, but does not have any sdk yet.
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.
Hi Andreas, do you have a link to the ethernet dev board for esp32 you show on this video ? thanks.
You find them on Aliexpress ("poe ESP32"). TH-cam does no longer allow links
@@AndreasSpiess I could only find W32-ETH01 boards, with an esp32 and a LAN8720 ethernet chip. in this video, you seems to tell that the esp32 can be directly interfaced with ethernet ? is it the case or do you still need an interface chip ? thanks for all your work.
@@jeanyvespochez You are right. I mixed things up. I'm sorry about that.
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...
5.4ghz support for wifi you mean? (around 4 min mark)
Yes.
Hello Andreas, do you checked the ESP32-C6 already? A comparison between ESP32-S3 and ESP32-C6 would be great.
No. So far it is not supported by the Arduino IDE
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 for this video. Thanks for subtitles in Portuguese
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...
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...
Hi Andreas. What would you suggest or how, for I2C protocol commands reverse engineering.
I have old setup (not built by me), that monitors LED temp and Voltage, whole system communicates over I2C protocol.
I wany to replace current "controller" with Arduino based device (ESP32, Arduino Uno...).
But I need to "listen" to commands that "controller" sends over I2C so I could replicate them via Arduino board (that is my idea 😁).
You find cheap Logic Analyzers ($10) on Aliexpress which will do the job. Videos are also available, also on this channel.
@@AndreasSpiess Thank you. That was my idea how to do it. Just wanted to see if I am on right tracks 🙏
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...
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.
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.
Hi Andreas, I did some research to compare ESP32 WROOM and ESP32-S3 floatingpoint speed. And strange to say, the -S3 is pretty much slower than the ESP32 WROOM. For comparison I programmed a loop for creating 1 million random numbers-pairs with division:
num1 = random(1000) / 1000.0;
num2 = random(1000) / 1000.0;
Then they were multiplied. The microseconds of random number creation, and the multiplication were added seperately. The results of muliplication/RandomNubers were:
ESP32: 533000/1730419
ESP32-S3: 789000/42163500
I expected this to be the other way around.
Do you have any idea, why the 'better' microcontroller is slower?
I would not expect the S3 to be faster in "standard" floating point calculations. Its new vector commands make a difference, but only where used.
But it is strange that it is slower....
@@AndreasSpiess Yes, its very strange. I did some more research to change compiler optimization for GCC. But without success related to executing speed, or code size.
There's one overall file platform.txt, where optimize_level =-O can be entered. are 0, 1, 2, 3, s, fast. The same arguments can be used in the textfile sdkconfig, at line ''CONFIG_COMPILER_OPTIMIZATION_PERF'. The later one distinguishes between ESP32, ESP32-S3 and so on.
Here's the outup of my benchmark:
ESP32 WROOM:
LoopingTime (= waste): 0.092 µs/Operation, 10.826, MOperations/sec
Creating random integers: 0.697 µs/Operation, 1.435, MOperations/sec
Dividing floats: 2.933 µs/Operation, 0.341, MOperations/sec
Multiplying floats: 1.595 µs/Operation, 0.627, MOperations/sec
ESP32-S3:
LoopingTime (= waste): 0.076 µs/Operation, 13.240, MOperations/sec
Creating random integers: 22.246 µs/Operation, 0.045, MOperations/sec
Dividing floats: 0.037 µs/Operation, 27.048, MOperations/sec
Multiplying floats: 44.494 µs/Operation, 0.022, MOperations/sec
As you can see, the looping is very fast, the rest not really usable for serious projekts.
Do you have any hints?
@@fineliner7700 No. I am not a specialist in this. Maybe you send me the code. Then I forward it to Espressif.
Comments with links are deleted on TH-cam (I saw it because I get a notification). I wait for your answer...
Hi Andreas, I ordered an esp32-h2 module and installed the Arduino ESP32 Core version 3.0.0. I am going to use my module as a Zigbee client (for my sonoff dongle that acts as a coordinator for zigbee2mqqt). But I can't find a good example to commumicate via zigbee in arduino IDE. Should I use the XBee library for that?
I am not sure if Zigbee is already supported by the Arduino IDE
@@AndreasSpiess hmm, that would be the reason. Then I have to use Python I guess. Thanks!
I would implore more people to look into using teensy of the teensy offerings. They are pretty amazing bits of kit
I agree!
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.
The ADCs arent low quality (IMO). If you build a proper voltage divider, set attenuation to 0, and add a small capacitor its generally within a few tenths of a volt. Calibrating ADC and multisampling will get you within a few mV.
I once made a video about the ACD of the ESP32, and it was really bad (non-linear). Maybe the newer ones are better.
Why not use the Teensy 4.1? Is it just because of the price?
The price and that it is an overkill for most of our applications. A fine board if you need it.
Hey, a bit off topic, why do you mention 5.7gbz wifi? I have long thought that the wifi frequencies are 2.4 and 5. But then the other day I saw some ac thing listing a 5.2 ghz instead. Are these specific freqs for different regions? Are they different standards? Is the 5ghz ac/wifi6 is on different than the 5ghz a was on?
You find the ISM frequencies with Google. They are a bit different in different regions. This is why you have to chose the country in your router.
The big question is whether there is an available alternative to the Raspberry Pi Compute 4 module yet? With operating temperature -40 to +85 degC.
I do not know (fortunately, I do not need these specs ;-)
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 :)
???
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 ;-)
If only the Teensy 4 had the BT and WIFI , . Octal SPI, have we gone full circle. Isnt that an 8-bit memory. Any thoughts on the PADAUK PMS150C $0.035 micro, (sold at LCSC) . RISC V interesting move from the xtensis ? A good move , how are the new ADC 's .
I do not do mass production, so the price of an MCU is not extremely important (if it is in the few $ range). So the PADAUK stuff is not too important for me.
Hi Andreas, I've been watching your videos to try to clear up my doubts. You see, I have a peculiarity in my work, I am a border policeman in my country and 85% of the time I am, in a primitive way, scanning frequencies used by organized crime to intercept contraband, drugs and weapons that enter the country. Nowadays I mostly use a handheld radio to scan frequencies between 138,000 to 170,000, I've used a Uniden with close call (works, but CLOSE call 😅) and I also have RTL-SDR (the silver one), which I'm in constant trouble with. battle to make it work. Anyway, my question for you. Is there a more efficient way for you to find their frequencies? Or any tip that might facilitate my search for frequencies. Thanks in advance!
PS. I know this video is not about it, just trying to reach you.
To cover 32MHz bandwidth you need a more expensive SDR receiver (like the LimeSDR) and a PC with SDR software. Then you would see all signals in this range in real-time.
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.
Beetle ESP32 C6 Mini Development Board can you do some project using the
Beetle ESP32 C6 Mini Development Board Bluetooth audio boombox with digital menu with volume control and internet radio
Is the ESP-S3s minimum schematic still the same as the ESP-32 ? Which pins are for D+ and D- ? Ive seen IO19 and IO20.
I left a link to a sheed with all the pins of the -S3. I never used a chip, only the modules. And they are different because of more pins.
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.
Nice breakdown. I am looking forward to the C6.
Me too ;-)