Dual Core Microcontroller Battle Royale - Performance and Power Efficiency
Vložit
- čas přidán 20. 08. 2024
- Some microcontrollers have two CPU cores like the RP2040, in the Raspberry Pi Pico; the ESP32; and the ESP32-S3. Does using the second core incur a power usage penalty? Which one is the most efficient? Which one is the fastest? Let's find out.
---
Let Me Explain T-shirt: teespring.com/...
Twitter: / garyexplains
Instagram: / garyexplains
#garyexplains
If your going to continue doing power consumption tests on microcontrollers, you should get a Nordic Power Profiler Kit 2. It only $99 and it allows you to get MUCH more detailed current usage over time compared to just using a shunt and voltmeter. It can also accurately measure down to the very low uA and even nA range.
hi Gary, great work as always. I wanted to add my voice to the chorus who thinks you should test the pico at the same clock rate as the ESP 32. As others have mentioned, the Pico is capable of clocking well in excess of 300 MHz. It would give a more fair comparison
I would say it was a chorus of people saying that!!! Because, I did that in previous video. Try here: czcams.com/video/XJawv8xGtX4/video.html
Despite being dual core, esp32 has a big problem when connecting and disconnecting wifi events happens. It causes delays , even if you are using a second core
Amazing. Despite different architectures and features in silicon, these 3 perform basically the same amount of computation for the power used. And it sort of makes sense, for this test they mostly move the same amount of data between registers, trough mostly the same cmos circuits, with the same size transistors.
I would've thought the tensilica cores had an edge with their divide circuit, but I guess it just requires it to power a whole lot of transistors. So, maybe faster but with the power expense.
Maybe us software guys get too hung up on architecture and api debates, the cmos circuits and sram blocks just do what they do.
What voltage was used for powering the boards? If it was 5 V, then the results are skewed in favor of Pi Pico, which has an efficient switching mode 3.3 V regulator instead of a linear one wasting about 1/3 of the power.
As I have stated in other videos in this series, the testing was done using 5v and 3.3v (for all boards). The relative results don't change.
@@GaryExplains it is not reasonable. Normally, switching regulation have much higher energy efficiency than linear regulation, such as 90% vs 66%. Normally, switching power regulation has more noise than linear one and it affect the ADC noise much.
I suspect that the most important power issue with microcontrollers is not how many micro-joules are required per million instructions (or whatever you care to use), but the total amount of energy used for what is often intermittent usage. Of course, if there's a simple-minded program that runs in a tight loop, as is often the case, then that won't help much. However, with a well designed micro-controller and software which is interrupt driven and has the ability to put it into a proper "sleep" mode when not executing code, then I would hope that the power consumption can be minimised.
Also, those CPU architectures which have power saving modes when running light usage applications might have an advantage, although I suspect that sort of thing doesn't apply to micro-controllers in general, and is more likely to be found on the sort of processors to be found in tablets and smartphones.
great video as always 👍
thanks for sharing your experience with all of us 👍🙂
Any thoughts how the TWO Ultra-Low co-processors on the ESP32-S3 (ULP-RISC-V , ULP-FSM) could be used to improve performance / power-efficiency?
Excellent video
In the mAh chart, the differences are 2% and 5%, not very significant.
you could have overclocked the pico via an API call
One more comment, given that the RP2040 does not have single cycle divide (STM32 M3/M4/M7 all do) I was surprised at how well it performed on the clock for clock basis against the LX6 and LX7. it might be interesting to repeat this test against an STM32M4.
I have tested it against the STM32 M4 in other videos in this series.
I'd be very interested to hear how these powerful microcontrollers compare to some of the old 8 bit ultra low power microcontrollers such as ATMEGA AVR line. Often my projects have no speed requirement. Maybe they only need to wake up and read some sensors every few minutes. In these cases, I'd be curious to know what is the absolute most efficient. Additionally, those chips can run without any external components at voltages as low as 1.8V, and clock speeds around 250 kHz. ...would be cool to compare all of those options.
presented with double efficiency
🤣👍
Results are strange...
In my case, when i switched from ESP32 to ESP32-S3 i've got more performance when decoding Jpg from ov2640 on the fly. Like +15FPS on avg. in HQVGA, what allowed me to move into QVGA mode.
Now i'm wondering how... Could it be due to better IRAM/DRAM cache subsystem?
The S3 has 512 KB sram, this is more than the older models. Also the S3 has AI Acceleration Support. This can also help to decode JPG. Anyhow, how much FPS do you get with the ESP32-S3 and the ov2640?
@@peterschets1380 A bit of pre-conditions:
- ESP-CAM (From Ai-Thinker) transmits over ESP_NOW with cap at 1Mbit/s and LR mode;
- Camera is set to QVGA and quality=20 with 2 framebuffers in PSRAM;
- On receiver side there is a ESP32-S3 which decode received data at one core (APP_CPU) and draw image on another (PRO_CPU) via SPI;
- I use modified by myself Tjpg C library (added IRAM_ATTR to all functions and DRAM_ATTR to const arrays);
- In menuconfig for ESP32-S3 set I/D cache sizes to maximum (32/64 KB);
So, with an average data rate as:
- something like ~86kB/s, i have 27±1.5FPS (Complex scene with bunch of text and objects).
- something like ~54kB/s, i have 33±1.5FPS (Just blank dark image with closed camera lens).
As a side effect:
- I'm using active cooling for ESP-CAM, otherwise it will burn within 1 minute \(o_0)/
Hehe, entirely not the best to make an FPV cam :)
@@Bismuth208 Ow, and if you send 5 fps, can you use a pasive cooler?
@@peterschets1380 Hi! Well, i've tested ESP_CAM with 80MHz CPU freq. and 5fps limit at max Tx power (19.5dBm) for 20mins. With a room temp. at +24C it heated up to +50±2C. (Measured with non calibrated DIY thermal camera). Also, one heatsink (10x10x10mm) was attached to ESP module and another on top of AMS1117 voltage regulator.
So, yeah, passive cooling is possible.
Are there boards with the same CPU that are more power efficient (because of better regulator, …)
esp32 c3 is the risc v single core, and the frequency is low. maybe you can have a test for risc v controllors.
I tested the ESP32-C3 in the previous video in this series.
Thanks Gary, great comparison, well explained. I'm curious how the 'Arduino Nano RP2040 Connect' would do in this "Battle Royale". My guess is that it would be close to the Raspberry Pi Pico, but not sure. Any ideas?
I suspect it would be close to the Pico since they have the same processor. However I am measuring the board current, so if the Arduino one has a more sophisticated board then it could draw more current.
What is the efficiency with Wifi enabled ?
Hey Gary, nice video. The RPI Pico W has a configurable clock speed up to about 400Mhz. You could set the Pico to 240MHz to exactly match the ESP32 boards. I usually run the clock on the Pico at application specific speeds for example HD Video output needs specific speed depending on resolution. I suspect higher clock speeds might be less power efficient but faster to complete your test. I wonder how this might impact things? 😬 as always great content
Yes, I already did that in a previous video, no need to repeat myself.
@@GaryExplains This video compares performance and power consumption, in your previous video does it show click speed changes does not change power usage? Can you share your prime factor code so I can test this?
@@GaryExplains bench-marking with different clock speeds is a bit misleading though.
@Robin Grosset Yes clock speed changes the power usage, as I show here: czcams.com/video/XJawv8xGtX4/video.html
@rob d I don't understand. I show the performance and the power usage (across several videos now) at the default clock speed and at overclocked/underclocked frequencies. Are you saying that if I have an i7 Intel CPU I can't compare it to an AMD Ryzen 7 CPU if the clock speeds are different?
Esp32 with 9sec, 87mA
Pico with 20sec, 38mA
Esp 2.22 times faster, devide the 87mA with 2.22 To make it even, its gonna be 39mA, So for me same efficiency😁
Which is what I show in the video, but you are using rounded numbers (i.e. it isn't 9.0 seconds for the ESP32, etc).
Hey Gary, can you do speedtest G for Galaxy Z Fold 4 vs iphone 14 pro/max?
Sadly no. Speed Test G is on pause, it wasn't popular.
Good video Garry. Have you had a chance to play with the ESP32-S3?
I want to know if migrating an Arduino ESP32 project to the ESP32-S3 is straightforward.
Either way, ill be working on that this week to find out for myself.
I have used the S3 while making this video. Anything in particular you wanted to know?
Ah, I see your edit now. You should be able to run your Arduino project on the S3 with no alterations, assuming the pinout is the same on the new board.
How would a Teensy 4 do in this test?
That is a good question. Of course there are several different models with different CPUs. Unfortunately they are hard to get hold of, very USA-centric sales.
@@GaryExplains Hard to get Teensy's? Here (NL) most arduino-like webshops have them in store, I do see half of them have a little delay in shipping right now, but also quite a few options with stock.
Could you please suggest a good European website for them, I have wanted to get some for quite a while but the price and/or availability has always been a problem. If CZcams doesn't let you post a URL directly then just spell it out and I will google the store. Many thanks!
@@GaryExplains I get them at Tinytronics. They have most in stock right now.
Thanks, much appreciated. Unfortunately the cheapest is €27.50, which I think is quite expensive for a microcontroller board. The Pi Pico is more than 3 times cheaper.
Can you also test stm32 for fun
I tested some STM32 boards in previous videos in this series.
@@GaryExplains i will going to see it 👍
Runs more fast in micropython compared to c++
What runs faster in Micropython?