#149
Вставка
- Опубліковано 11 вер 2024
- In this video, we look into the deep-sleep functionality if the ESP32, and we are interested if and how the deep sleep works, especially because the ESP32 has a so-called ultra-low power coprocessor. This fact promises new possibilities.
- We will deep-sleep the ESP32 to save lots of power for our battery-operated devices
- We will use three out of four sources for wake-up:
o The timer
o Two possibilities of external wake-ups
o Touch pads
- We have a look at the available (and sometimes strangely named) ESP-32 pins of the WROOM-32 module
- We use RTC memory which survives deep-sleep
- And we calculate, how long the ESP32 can deep-sleep compared to the ESP8266
Links:
Sketches: github.com/Sen...
Excel sheet: github.com/Sen...
Instructables: www.instructab...
ESP32 Deep-Sleep Details:
esp-idf.readthe...
media.readthed...
github.com/esp...
Other ESP32 boards (from video #143):
TTGO ESP32 Module www.aliexpress...
ESP32 (NodeMCU type) Board bit.ly/2sOMR3E
ESP32 Development Board (Yellow Pins) www.aliexpress...
ESP32 X-Shield www.aliexpress...
ESP32 Lolin Board with LiPo www.aliexpress...
ESP32 OLED Board bit.ly/2tosirM
ESP32 Board with 18650 www.aliexpress...
D1 mini ESP32 board www.aliexpress...
WeMos Arduino like ESP32 Board bit.ly/2tUZVnC
Cheapest ESP32 board (source not tested by me): www.aliexpress...
WEMOS Official Store: s.click.aliexpr...
Supporting Material and Blog Page: www.sensorsiot.org
Github: www.github.com...
If you want to support the channel and buy from Banggood use this link to start your shopping: bit.ly/2jAQEf4 (no additional charges for you)
Official Wemos Store: s.click.aliexpr...
/ sensorsiot
/ spiessa
www.instructab...
And again, a lot of information in a very well structured video. Brilliant! Thank you very much for all the time and effort you put in the videos.
You are welcome!
Andreas, I've viewed most of your videos and have not found one yet that I did not like or did not finish. Thank you for the spreadsheet. I use the ESP devices in a manufacturing environment and like you, research their capabilities. The information you provide has helped me many times. Thanks.
Thank you for your nice words and your support!
Great jobs as always. Thank you so much for your efforts. YOU ARE THE MAN!!
Thanks!
You are going to need a spreadsheet to cross reference the videos soon. Nice job again!
Thanks! For the moment, I try with playlists. And I think, UA-cam Search also can help because I try to include good search terms.
Yes, effective cross-referencing can become quite difficult - in my case I can't remember what I did last week. My comment was inspired by your use of spreadsheets in this video. Hope you remain well. R
The master tutor does it again. Thanks Andreas.
Thank you for your nice words!
This has been the best video on ESP32 and deep sleep I have found. Thank you Andreas
You are welcome!
You have become one of my mentors though your videos. The ESP32 ULP processer may hold more capabilities than we think. I've been researching what little information I can find on it which seems to only have an assembler available. Hopefully more information will surface as the community gets a chance to work with it. I'm certain you will discover many of its secrets.Looking forward to more of your videos. Thank you!
I think, the assembler is the "state of the art". I hope, we will get some "snipplets" to start with or to solve typical problems like trigger on a particular analog value, or saving a few values in RTC ram between wake-ups. Already the possibilities used in this video provide some interesting possibilities.
"is... like that."
Good afternoon Andreas. I'm away for the weekend, hence the late good morning.
Your work always makes me happy. As other have stated your our hero and we thank you from the bottom of our hearts
I hope, you enjoyed your WE. I was also late this morning. Had to get some sleep after working long last night...
Andreas Spiess So I see from the comments.
I hope we are not pushing our mentor too hard?
I'm very excited with your work on the esp32.
Be sure to give yourself a pat on the back and maybe you need a little break.
It was indeed a good weekend and I am now back at my lab and getting my esp out👍👍
No worries. I am old enough to know, that the most valuable word is "NO". ...And the most expensive one is "AND". And if you forget to say NO, often the result is AND.
Everything here happens without the word "must" ;-)
Quality reply, I laughed a lot at that
Good morning Andreas! Woke up early to see your latest video. Thanks and have a nice day!
It is more "good night"... Just finished the video at 4 am
Andreas Spiess - here it's not even 4am ;-)
Sleep well then...
P.S. Touch button wake-up looks quite useful.
Going to sleep now...
Thank you. Looking forward to getting my ESP32 and I'm sure your spreadsheet will really help and save me a lot of time. Best wishes, Arthur
You are welcome! I think, it is really a step-up compared to the ESP8266, at small additional cost.
Looking forward to the current measurements in the next video! Hopefully it will run for years and years to come
Depends on the battery size ;-)
these videos are gold
Thank you!
Thanks again for a great video! I really enjoy the ones focussing on the ESP's (8266 and 32) and they're a great help. Keep 'em coming!
You are welcome!
Thank you for the great videos on the ESP32! Please keep them coming.
:-)
Thank you master! You are very generous sharing your amazing knowhow with us.
You are welcome!
Interesting to know that it can go into deep sleep for several years and that it hardly consumes any power.
Great video !
Thanks!
Clicked to fast: @Andreas, how can you know that I'm working on a project where I basically need all of the IO pins and I was looking for what you did in the Excel Sheet!!! ..
Unbelievable ;-) Many Thanks for your phanstatic work all over the place!
At the beginning, I was confused with the many possibilities of the chip. Then, I discovered a similar sheet in the data sheet of the ESP chip itself and translated it to the pins of the WROOM---
Großartiger Inhalt, tolle, durchdachte Präsentation.
Danke!
I got caught out with GPIO and RTC_GPIO confusion, thanks for explaining boss
:-)
I'm not sure when it changed but under the newest esp32 code you have to declare "esp_deep_sleep.h" for the sketch to work.
add "#include " at the begining of the sketch and all will be ok.
Thanks for the tip!
still the error: 'esp_deep_sleep_get_ext1_wakeup_status' was not declared in this scope
:-( thanks
I found the solution: esp_sleep_get_ext1_wakeup_status()
:-)
I found the solution here actually: www.lucadentella.it/en/2018/01/22/esp32-29-deep-sleep/
Very interesting video as always. Please on the next video measure the current when the ESP leave sleep mode and connects to internet (like ping to custom website). I think that will be the main use of this uC and it will serve as reference for some people that want to use this device to send periodic data to a server and have to power the uC with batteries.
We will see. I think, I will not be able to use the ULP for quite some time, because it has to be programmed in assembler... I did not do this for years.
Assembler... now there is a name from the past. Must have been early 90s i did that last. Now i cant even understand my own programs from those days anymore
As always, that was a great tutorial. Thanks for taking the time to make such great videos.
You are welcome! It is my pleasure.
Excellent work sir, thank you for your research! I have one of those ESP32 with the 18650 holder, last night I started testing a modified sketch, have it waking up every 30 minutes and blink a LED couple of times, started at ~4.15v and 12 hours later my battery is still at 4.05v. A day ago I was only able to get ~24 hours of total "blinky" on a single 18650, but with deep sleep this should last for days/weeks. Looking forward to see your current measurements!
These boards usually are not ideal for deep sleep because they have many parts which are not absolutely necessary and which use some current. But weeks should be ok.
it's nicely done. in the next video please also compare Current consumption of different ESP32 boards and bare WROOM board.
I probably will not do that extensively, because deep-sleep together with development boards, in my opinion, is not a good idea. Too many parts which just consume current and are not useful during operation...
Andreas i finally understood why even my esp32 was draining my battery... i powered the module with the vin pin without entering into the micro usb connector. Thank you. Marc.
:-)
0:22 yes, we are very interested! :D
Thanks for posting this, Andreas!
You are welcome!
Very interesting, but wake up from internal RTC is a very good feature I miss in your video.
Thank you. Saying "no" is the most important thing for interesting UA-cam videos. Otherwise they get too long.
Franchement, toujours aussi passionnant. J'apprend beaucoup grâce à toi. Merci pour tout ce temps passé. Cheers.
Pas de quoi
Bonjour
Very informative. Thank you for making these videos. Greatly appreciated :)
Thanks!
Thank you so much. I have a esp32 on the way to me, and this information is very interesting.
So, you can try it right away when it arrives!
Watching this video made me want to dig out my ESP32 once more and see if I could make it do something. For about an hour, I messed with things trying to get the computer to recognize the blasted thing, and in the end I tossed it in the pile of junk I keep for parts to repair other items. I dug through my drawer and found one of the other ones I ordered at the the same time, (usually buy things in groups of 3) and behold, I have connection to the computer. Now I have spent the last two hours just running example sketches on the device, and giggling like a child when it actually does something. Now if I can figure out how to use the bluetooth to do something and how to use the wifi better then just making an led blink. Should not be hard to do, just have to adjust my mind from using the 8266.
Wi-Fi should be no problem. Bluetooth seems to be harder with the Arduino IDE...
thats good to know. Was considering a switch from 8266 to 32 especially for bluetooth. Maybe i should wait
Great video, you're saving us from having to read through all the documentation, thanks!
You are welcome! You are probably right ;-)
Hi Andreas, great again. The 150mA current seems to limit the usage on Battery mode a bit. Also using pull-up resistors must be handled with care because a 100kOhm resistor on 3.3V also draw a current of 33mA. Again I was laughing because I missed the info of the max sleep time of the esp8266 and was wondering about some strange wake-up times. Thanks again.
I think, you mixed milli with micro (or I made an error in the video). Then, everything is a factor of thousand smaller...
Your Videos are Gold
Thank you!
Very informative and a great spreadsheet.
:-)
Another excellent and very interesting video. By strange coincidence I was testing deep sleep mode yesterday on a NodeMCU ESP-32S board and the best I could get was 2.3mA because of the regulator etc. (battery was connected to 3.3v pin so bypassing the regulator to a certain extent)
This is not surprising. The same as with the ESP8266 boards...
eagerly awaiting the results!
I have 2 boards and both were disappointing.. After I hacked the cheapest one to remove the UART and LM1117 connection to the 3v3 line I got good results ~20 microAmps
Usually I use bare boards for deep sleep experiments.
Bad review. At 4:45 you didn't take into account leapyears. Now I'm 388 years short. I really needed them, you know.
are right: 388 year is a lot. Sorry for that ;-)
Oh on a different note, the Rally in Sturgis is warming up, thousands of Harley's are pouring in from all directions. We live 175 miles due North of Sturgis and see a lot of bike traffic through our small town.
Great for you. I will go to a smaller event in Austria in September... But one day, I will make it to Sturgis.😀
Thanks for the insights Andreas!
You are welcome!
I know this video is 2 years old, but after all this time, very few people actually used any deep sleep timer example longer than a few minutes.
The problem is that with default code, changing the time to longer than 2 hours, it breaks the code, and overflows the variable.
In deep sleep example:
#define uS_TO_S_FACTOR 1000000 /* Conversion factor for micro seconds to seconds */
#define TIME_TO_SLEEP 3600 /* Time ESP32 will go to sleep (in seconds) */
Both values are saved as 32bit integer, yet esp_sleep_enable_timer_wakeup(uint64_t time_in_us) expects the 64bit value. So, you have a 70ish minutes limit before overflowing.
There are 2 solutions, add ULL suffix to uS_TO_S_FACTOR value:
#define uS_TO_S_FACTOR 1000000ULL /* Conversion factor for micro seconds to seconds */
OR
Define all variables as uint64_t
const uint64_t OneMinute = 60000000LL; // 6000000 uS = 1 minute
const uint64_t MinutesInAnHour = 60LL; // 60 min = 1 hour
const uint64_t SleepTimeMicroseconds = OneMinute * MinutesInAnHour * 2LL;
esp_sleep_enable_timer_wakeup(SleepTimeMicroseconds);
esp_deep_sleep_start();
Sources:
github.com/espressif/arduino-esp32/issues/572
www.reddit.com/r/esp32/comments/95zuht/esp32_fails_to_deep_sleep_over_1_hour/
docs.espressif.com/projects/esp-idf/en/latest/api-reference/system/sleep_modes.html
You are right. Maybe somebody reports it as an error in the ESP32 Github?
Andreas, i have got the rev.1 and the deep sleep works perfect!!! Thank you...
+Marc Paradis :-)
Just found your channel. Excellent stuff, thanks and subscribed!
Welcome aboard the channel!
Excellent video! Thanks Andreas!
You are welcome!
Thanks Andreas, your videos are more informative ,
You are welcome!
Great video again. I have used sprakfun ESP32 Thing and like you said, in one the previous videos, compiling time is much faster. Pricing is coming down as well so I think now is a good time to start working on esp32.
dachoeks3 Which board is faster to flash? The Sparkfun Thing or another? Which other board are you comparing the Sparkfun to?
Compiling for ESP32 Thing is much faster compared to regular esp8266.
That is also my impression. This is why I started the coverage now.
Waiting for ulp
Great video as always
I am not sure how long you have to wait because for the moment, we would have to leave the Arduino IDE. And for the moment, this channel is not ready for that...
My ESP32 is up and running Thank you.
🙂
Once again, a very good and instructional video. Looking forward to your next episode. Now, go and get some sleep. :-)
Back again after breakfast...
Getting that ULP core to work with 1% DC and burn 25uA would be absolutely great. Might be able to get real world sensors on batteries for more than a year.
Many new possibilities with this chip to explore...
ESP32 is so superior, I bought one for just 3 dollars... so amazing little thing
Dominik Mičuta $3? I remember when it was much more expensive than an ESP8266, now it's almost on par. That's awesome!
That is why I started my videos...
hello its me again, the guy with the welsh accent, another great video, Quick question, what is the best way to wake up and Esp32 from Deep sleep, using an FZR sensor, could i use it as a touch but reverse the threshold?
I do not know FZR sensors. The ESP32 has many wake-up possibilities. Maybe you google to find the right one for you?
@@AndreasSpiess thankyou sir. I resolved this issue. I ment ''fsr'' force sensing resistors. It worked with the ext0. Thankyou for your time.
I am using esp32 with three pzem004t sensors but when I am writing Serial3 at that time it showsSerial3 is not declared in your scope but I have defined it already so how to solve this problem?
If I remember right, I made a video about Serial on the ESP32. You have to pay attention if you want to use many Serial connections. Also check the video about the "safe" ESP32 pins. Some pins are forbidden.
top!
bin auf die fortsetztung gespannt ... ggf gibt es ja ein wenig zum thema WPS.
einen schönen sonntag
Ich hab noch nie mit WPS gearbeitet. Mal sehen...
:-) wäre super !
great video as usual, vielen dank.
Bitte, gern geschehen!
What does RTC stand for?
P.S.: Sweet video as always
Real time clock
@@AndreasSpiess Thanks!
Great, thank you 👍
You are welcome!
Great video of a professional work, well done! Can you give us a hint which ESP32 dev-board is best for deep sleep (ultra low energy consumption near to ESP32 datasheet)?
No, not yet. A video should come...
Hi Andrea! I removed the led, the current in deep sleep drops from 16 mA to 4 mA.
Do you think it would be better with the LM1117 instead of the AMS1117 on the board?
Tell me what do you think?
Your opinion is very valuable to my eyes.
Thanks a lot! :)
Marc.
Thank you Andreas !
You are welcome!
Very very nice. Thank you.
You are welcome!
Andreas thank you for video
You are welcome!
Well explanatory
Thanks!
Thank you ! very interesting
Thank you!
I'm a big fan of our projects. I've been trying to incorporate deep sleep into ESP32 to wake, take sensor readings, send them via a webhook to google sheets, then go to sleep, but can't get the code to work. Are there any books/media you could suggest for me to get study to solve the problem? Thanks.
I do not know of books. I would first try to understand where in the code the problem occurs and then search for a solution.
Grüezi Andreas ! Sorry to bother you, but the thing is locked again ... (Another) Great video !
Should be unlocked now...
Hey Andreas. Just watching your ESP32 playlist, and I suspect you got ordering of videos wrong :) This episode is listed before the #147 one.
I changed the sorting now. Hopefully right this time
Now they're in reverse order, #152 listed first and #103 last. Sorry for the nagging :)
Changed
Thanx
I tried to measure real current usage, but unfortunately my board (AnalogLamb) and others hve as usual a "power led" on it.
So I could not realy measure ESP's sleep current without removing it.
The board uses 15.7mA with a short peak at wakeup (timer sketch) up to 58mA driven by 3V3 bypassing the LDO.
Waiting for your measurements with the bare board :)
Hi I connected an external RTC (That is very low power) to the esp32. I wanna keep the external RTC runnning while ESP is on deep sleep (To save power). Can the RTC via I2C still run while the ESP is on sleep mode? How could I do that? Thank you!!
You need to use interrupt pins to wake the ESP. Or you can try to use the ULP (not easy). Google should be able to help you
Since we're due for a video on power consumption, I thought I'd add this comment. Of course the amount of power used during sleep is important but so, also is the power used during the 'awake' period. I was doing some research on multi-tasking with FreeRTOS and found a tutorial which compared using FreeRTOS commands vs Arduino IDE commands (both written within the Arduino IDE) and the conclusion was this: Conclusion: the Arduino program is about 65% slower than the lower level FreeRTOS program. So, for the awake part of the program further power savings might be made by using more efficient commands. (Citation: blob.tomerweller.com/esp32-first-steps) See Ring Oscillator section. HTH!
Thank you for the information. For connected devices, connecting to Wi-Fi takes the longest time. And for that, I do not know if there is a big time difference. So, if anybody has information about the differences there would also be interesting.
Andreas Spiess maybe I will take a look! I will have some time to experiment in the coming weeks
Why didn't you try the Hibernate Mode? You did not use the ULP processor anyway. RTC functionality does not require ULP processor. RTC is supported in Hibernate mode too. Power consumption is 4 times less than Deep Sleep and you can still wake up with RTC alarm.
The data sheet was not completely clear which number applies. So, I took the (cautious) bigger one. We will see when we measure it in reality.
Very very good!
Thanks!
Could you expand on why you seem to imply things need to be written "differently". Of course lower power programming has to be adhered to but, stating you wont or can't enter the loop section confuses me. Can't deep sleep be called from out of the setup section?
After calling deep sleep the ESP goes to sleep. At wake up it boots.
@@AndreasSpiess understood, but aside from your particular example, is there anything preventing moving the deep sleep call from the end of the setup loop to anywhere in the main loop?
great excel. But a simple question(s). Which pins support OneWire and which pins support Interrupts for Wemos LOLIN32 ? I can't seem to find any info online.
Here is the Onewire library for the ESP32: github.com/stickbreaker/OneWire And here the info concerning interrupts: techtutorialsx.com/2017/09/30/esp32-arduino-external-interrupts. Both one google search ;-)
Hey, can't find the xls sheet. Actually am evaluating the esp32 for an industrial/iot application, that info seems pretty neat.
Go to the GitHub link under Sketches:
I added a direct link to the comments
I get the error
"exit status 1
'esp_deep_sleep_wakeup_cause_t' was not declared in this scope"
and so it is not possible for me to upload your "Simple Deep Sleep with Timer Wake Up" program to my ESP32 with ESP-WROOM-32 chip.
" Why is esp_deep_sleep_wakeup_cause_t and esp_deep_sleep_enable_timer_wakeup not declared in your program Is there any Libary I do not have?
I have just found the missing lbrary in Andrears program (Simple Deep Sleep with Timer Wake Up)
it is :
"#include "
;o)
I like most of your videos, but in this one a very important topic is omitted. What about not nominal but real power consumption of ESP32? E.g. DevKit1 consumes much more in deep sleep than it is documented, I was never able to get better than 10mA with it. DevKit1 costs roughly EUR 7.9, but the best one with surely low consumption from DFRobot costs almost EUR 32. There should be other choices in between. Could you please test them?
Most boards are not good for deep sleep because they use too much current. I made quite a few videos about that topic and we even started the "Superpower" project because of this fact.
@@AndreasSpiess Dear Andreas, I would be grateful if you could share a link to one of those videos, where you test ESP32.
Thanks for sharing.
:-)
I didn't see a current comparison between the deep sleep modes of 8266 Vs ESP32. Does the 32 use less during deep sleep?
I will do real measurements in a later video.
Your don't have to sort your spreadsheet Andreas, just use the Filter button to see the particular rows you require
I use filter and sort for different reasons. If I want the column in order, I think, I have to use sort.
You can use filter then click the drop down for the column you want to arrange and select A-Z or Z-A for column ordering. Much quicker for the same result :-)
Hi Andreas,
First of all great video. Been following your content for a couple of months now and it is very helpful.
I tried to compile the example, however I get "not declared in this scope error for" esp_deep_sleep_wakeup_cause_t.
Is there a lib I need to include or something. I am a huge nood, so question might be very basic, however I already spent several hours googling around with no success so I thought asking might help.
Thanks and keep up the nice vdeos
I think this command was changed in one of the newer releases. Maybe you look at the deep-sleep example of the IDE. There you should find how it works now if I remember right.
Thank you for the feedback. I will look at the examples, hopefully I find out how it works.
For that look at Birds work, have a Nice Day.:)
:-))
Great video. I'm very interested in seeing what kind of power usage you see in deep sleep on your Lolin32 board. On my Sparkfun ESP32 Thing, I could only get around 950uA (after disabling the power led); apparently the SPI Flash chip consumes around 860uA unless you add a pull up resistor to it. I would love to see what figures you get on your board.
These boards are never good for deep-sleep because they have many other components like USB to Serial chips and some sort of pull-up or - down resistors and transistors. They are not optimized for that. I will use a "bare" WROOM-32 module on a simple PCB
Andreas Spiess Then the mystery to me when using a wroom32 without usb-serial how do you flash your program to it? I also understand that without a battery power regulator you are limited to battery sources with a natural ~3.3v supply, correct?
You have to add whatever is necessary to a barebode WROOM-32. For a first flashing a USB to serial converter (later, you can use OTA update), and also a LDO for power supply. But you only add what is necessar for the operation, not more and not less. The development boards usually have "more".
Andreas Spiess thanks for the helpful information! I look forward to your next video!
Can I wake up esp32 from deep sleep sending a Bluetooth packet? Is there some configuration to make it happen?
No. The Radio is off during "Deep" sleep.
Andreas Spiess ok thanks. I cannot either receive the Bluetooth packet when it wakes up (like mqtt retain) right?
Hi good video ! Just a question , is it possible to use Deep Sleep and wakeup a ESP8266 with Wifi request ?
No. During deep sleep WiFi is off
I Have a ESP32 WROOM 32D and I downloaded your code and get error get 'esp_deep_sleep_wakeup_cause_t' was not declared in this scope.
Can you Help? Thanks.
They changed the commands. Here you should fin the new ones: randomnerdtutorials.com/esp32-deep-sleep-arduino-ide-wake-up-sources/
This is a particularly useful video tutorial Thank you very much. But were do we find the API definitions for these type of functions? (new guy here) No header files, no library info... Where do I go - I see we can create object Serial call begin, on the 8266 wakeup there is an ESP object that we can call deep sleep on - where are the headers or library definitions for these objects?
There we are - arduino-esp8266.readthedocs.io
I am developing a vibration sensor where I am using ESP8266.
My main problem right now is the power consumption, and for that reason I will have to change the communication to BLE.
I need to read vibration data every 15minutes, and the battery life (1000mAh) has to be more than 1 year.
From what I read from ESP32 datasheet, power consumption is high and I am not sure if I will be able to achieve my goal.
I would like to know your opinion about that, and also if there is another microprocessor that is more suitable for this application.
Maybe you watch my deep sleep videos? If you need less power consumption you probably find chips from Nordic (NRF51/52. But they do not have the same community support as the ESPs.
ughh... most boards have crippled this functionality because they do not let you disconnect the ESP32 power domain from usb to serial, power leds etc.. A few jumpers would have been nice.
YYou are right.
one thing i figured that GPIO12 is also more or less unusable. It needs to be low during the ESP32 boot up from the flash with external reset.
But if you have something connected with it that may keep the voltage at GPIO12 more than 1.8V and try to flash the chip, than instead of flashing the chip, the ESP enters into ROM console mode.
This in turn leads to a MD5 checksum error of the flush during sketch upload.
The issue is discussed here :
esp32.com/viewtopic.php?f=2&t=322&sid=13419f5a55e80e26a67598b206ef9e02&start=20
It was supposed to have a software bug fix recently, but so far have seen no progress on this.
Thank you for your tip. I did not know that. So we have to use GPIO12 as an output only, I think.
yes, actually GPIO12 has to be floating (probably internally pulled low) or pulled low only during sketch upload period. After that, it can be used anyway we want.
For a breadboard circuit, I just disconnect the pin from external circuit during sketch upload, which is okay 90% of the time.
But for an custom PCB, this may become more complex.
So yes, easiest work around is to either use it as an output pin or may be avoid using it as much as possible.
Hi there, great video! However, I can't seem to get "esp_deep_sleep_enable_ext1_wakeup(BUTTON_PIN_BITMASK, ESP_EXT1_WAKEUP_ANY_HIGH);" to compile in Arduino IDE. It says "'esp_deep_sleep_enable_ext1_wakeup' was not declared in this scope". The EXT0 line works but EXT1 won't. Any ideas?
Ahhh, I found out I had to use "esp_sleep_enable_ext1_wakeup" instead of "esp_deep_sleep_enable_ext1_wakeup". Note the "deep" part is deleted. They must've changed the function names! Even the built-in deep sleep example is wrong then. :)
Thanks for the info!
Andreas, i don't quite understand the bitmask, what if i want to wake up the pins 32 & 33 ?
thank you.
Marc.
Each pin has its own "mask". If you want 32/33, you have to set bit 32 and 33 in this mask to high (0x600000000 if I did not a miscalculation).
Andreas Spiess thank you Andreas. YOU are my hero :)
Andreas Spiess the bits 0000 0000 (what are gpio from bit 7 to 0) please ?? :) thank you. Marc.
Nice video! Do you know something about light sleep on ESP32? It seems not available yet. I need that because I'm building a smartwatch with a GPS module, and active mode is too hungry. Deep sleep is too inconvenient, because it doesn't seem a good idea to reset the module every second. Light sleep would be a good compromise.
I never worked with light sleep. Not with the ESP8266 and not with the ESP32. Why do you think, it is not good to reset a board every second. Nothing wears out. It is just code.
As my application has a user interface and a lot of functionalities, it will take time booting and setting it up, and will take more energy than keeping it active. Maybe if I use RTC mem to keep my variables. Anyway, I dont know if I can wake it up when serial data gets in without loosing data.
Update: newer versions of the tools now include light-sleep functions. It works just like deep-sleep, but do not boot the chip and have a faster recovery time.
Great video, and am really looking forward for the next one, I have a question, is there any way ,what so ever, to connect two serial devices (for example, a nextion and an A6) to ESP32? any suggestions?
Anas Omary Yes, it has three hardware serial ports and they can be routed to almost any of the pins. You have to look at the docs to see how to use them.
nobodybodybody I made a lot of research and the conclusion was that there is one hardware serial(Tx0 and Rx0) , and an additional RX1 only pin. Do u have any link on this subject to get me going in the right direction?
The WifiTelnetToSerial example shows how you can do it (HardwareSerial Serial1(2); // UART1/Serial1 pins 16,17)
Anas Omary I believe you are confusing it with the ESP8266, which has one available hardware serial port + one TX only port (you can still use software serial however to get more). The ESP32 has three. The Arduino port has weak documentation at the moment, the link Andreas gave is the best starting point.
Thanks alot for the info, I will definitely check that out as I need it for an upcoming project. Cheers!
Hello I have a program that turns on and off a led by bluetooth and the delay is by bluetooth too but when I send the signal so that the led begins to blink and send the signal to give the delay, I want to disable the common radio block for bluetooth and wifi so that the battery lasts longer, nothing more than that block so that the led keeps flashing, what command would use and where in the program would put it
I do not know because your setup seems to be quite complex.
Hello I made the program to turn on and off an LED by Bluetooth in this case I use the same LED that has the ESP32 in pin2, I added a stretch of code for the ESP32 to enter a state of deep sleep. Well, when I send the 'A' the LED will turn on and off and when I send the 'B' it goes into deep sleep, however, I still consume the same as I could send the program to see where the error is.
Unfortunately, I cannot do remote debugging. First, check if your MCU stays in deep sleep for a time. Then you have to check what development board you use. Because many boards consume a lot of energy even if the ESP32 is in deep sleep (I made some videos about it).
Awesome!
:-)
Congrats for tutorial. Do you know how much is current on deep sleep? Sorry my English.
It depends which board you use. The ESP32 alone needs a few microAmpere in deep sleep.
Hi this is a great tutorial is there any documentation on how to get the bitmask for different pins
I do not know.
Hello! I plan to use this mcu for a project in deep sleep mode, but Im worried if I will be able to use libraries desgined for arduino, is it possible? I want to use max31865,library for sd module and maybe some library to use accelerometers.I wait your answer with hope. Thank you for the information.
You always have to check if the library also works for the ESPs and sometimes you find one which works.