#252

  Переглядів 109,669

Andreas Spiess

Andreas Spiess

5 років тому

We can save energy by deep-sleeping the ESP32. During this time, the chips do not consume a lot of energy but also are not responsive. This is why Espressif included a mysterious Ultra Low Power core (ULP) which is active when the main processor sleeps. People say it has to be programmed in Assembler, and nearly nobody was able to program it in the Arduino environment.
Until now.
Links:
Arduino IDE ULP repository: github.com/duff2013/ulptool
Sketch: github.com/SensorsIot/ESP32-U...
ESP32 module: s.click.aliexpress.com/e/bQwDCLQs
ESP32 Board: s.click.aliexpress.com/e/XAhzEgY
ULP commands: docs.espressif.com/projects/e...
Technical Reference: www.espressif.com/sites/defau...
Otii power Supply: www.qoitech.com
Supporting Material and Blog Page: www.sensorsiot.org
Github: www.github.com/sensorsiot
My Patreon Page: / andreasspiess
Alternative: flattr.com/@andreasspiess
My Bitcoin address: 19FSmqbBzb5zsYB1d8Bq4KbxVmezToDNTV
If you want to support the channel, please use the links below to start your shopping. No additional charges for you, but I get a commission (of your purchases the next 24 hours) to buy new stuff for the channel
For Banggood bit.ly/2jAQEf4
For AliExpress: bit.ly/2B0yTLL
For ebay.com: ebay.to/2DuYXBp
profile.php?...
/ spiessa
www.instructables.com/member/...
Please do not try to Email me or invite me on LinkedIn. These communication channels are reserved for my primary job

КОМЕНТАРІ: 580
@cpfs50
@cpfs50 5 років тому
Hi Andreas, this is by far your best and most exciting video yet! I also wrote assembler in the late 70's and 80's so I hope I can meet your challenge. This feature of the esp32 was what interested me most when it came out. Thank you so much for opening the door for me.
@AndreasSpiess
@AndreasSpiess 5 років тому
I also waited a long time to get this "missing link" from duff2013.
@jamess1787
@jamess1787 5 років тому
I love the plastic hand. Makes me laugh everytime.
@AndreasSpiess
@AndreasSpiess 5 років тому
Thank you!
@JohnoScott
@JohnoScott 5 років тому
Omg I am so excited to know how to program the ULP. The esp 32 keeps on getting more exciting. Thank you Andreas
@AndreasSpiess
@AndreasSpiess 5 років тому
You are welcome!
@jasonmhite
@jasonmhite 5 років тому
Aweseome! I've played around with the ULP using ESP-IDF, but it's a hassle to get it set up and integrated into the build system. Glad to have this video, the ULP is a really cool part of the hardware that hasn't been talked about as much.
@AndreasSpiess
@AndreasSpiess 5 років тому
Part of it was because it was no easy way to use it with Arduino. At least that is what I think.
@crckdns
@crckdns 5 років тому
"Most playtime per dollar" 😹 ich musste sehr lachen, Danke! Danke, endlich mal "aktuelle" Videos über low-level Sprachen und Microcontroller 😻👍 Endlich kann man wieder auf Effizienz programmieren, wie im Studium gelernt :) Wusste gar nicht dass ESP diese Schnittstelle hat 💗 danke!
@AndreasSpiess
@AndreasSpiess 5 років тому
Dann freue ich mich schon über deine Teilnahme am Challenge ;-)
@iiilllii140
@iiilllii140 Рік тому
Andreas you are very funny. 😁 I love your videos!
@tonysfun
@tonysfun 5 років тому
Great video! My friends and I were looking into this "issue" last year and your video is far the best! Thanks again Andreas!
@AndreasSpiess
@AndreasSpiess 5 років тому
I am only the messenger. The hard work was done by duff2013.
@springwoodcottage4248
@springwoodcottage4248 5 років тому
Thank you for introducing me to these super useful & very practical capabilities of the Esp32 especially for battery application. The ability to do things with out troubling the main processor has extraordinary potential for extending battery life which is always something that is useful for end users. Thanks for sharing!
@AndreasSpiess
@AndreasSpiess 5 років тому
You are welcome. Please consider participating in the challenge. It would be a good jump-start ;-)
@KJBtheMosFett
@KJBtheMosFett 4 роки тому
Moved all my senior design code from atmega to the esp. Got the display working,moved peripherals. Using your guide for the rtos. I can't believe this thing is under 10$. You are awesome. Thank you for this, sincerely from Texas.
@AndreasSpiess
@AndreasSpiess 4 роки тому
Glad you have success with the ESPs..
@mt-qc2qh
@mt-qc2qh 5 років тому
Great info! I spent many years in assembly language on DG Nova's and early micros (6502 and 8080). Glad to get to use it again. The ESP32 has a lot of hidden power. Looks like fun.
@AndreasSpiess
@AndreasSpiess 5 років тому
So it will be easy for you. It is already good if you still remember how to calculate with short hex numbers and overflow ;-)
@LostDeadSoul
@LostDeadSoul 5 років тому
Nice. This is exactly what i need to make a ULP power management system for a wind turbine project. Thank you for this tip!
@AndreasSpiess
@AndreasSpiess 5 років тому
Good luck for your project!
@bardenegri21
@bardenegri21 5 років тому
Wow! Been waiting for this for a long time. Amazing stuff. Now I can finally make my mqtt door sensors. I have boards for a trigboard-based design just for this task, but now I will try it with just an ESP32. Great stuff!
@AndreasSpiess
@AndreasSpiess 5 років тому
It needs a little more than a trigboard. But is probably ok for most battery applications
@hashemsharrab5430
@hashemsharrab5430 5 років тому
NS Gaming would like to build and IOT device if we can talk
@kevinnicholls1017
@kevinnicholls1017 5 років тому
This was exactly my thought. Wake on state change to report door open and door close events via MQTT without the need for complex supporting circuitry. Exciting.
@davidbradley3074
@davidbradley3074 4 роки тому
Andreas, Thank you for all of your hard work and iniating this challange to promote support software. You guys are great!
@AndreasSpiess
@AndreasSpiess 4 роки тому
Our pleasure!
@xyloidify
@xyloidify 5 років тому
Love your sense of humor! Great video as always! Brought back memories of 6800, 6502, and 6505. Love voodoo lol!
@AndreasSpiess
@AndreasSpiess 5 років тому
Thank you!
@Magic-Smoke
@Magic-Smoke 5 років тому
Good to see this finally get some airtime :) I tried it last summer but ended up running into problems with the ADC at the time. Nevertheless, thanks for expanding the audience and hopefully the number of available working projects
@aspuzling
@aspuzling 5 років тому
What problems did you have with the ADC? Does the example Andreas gave here help you?
@Magic-Smoke
@Magic-Smoke 5 років тому
@@aspuzling I had problems expanding to use the other pins at the time. I was using the same examples from Duff2t013. They are good examples but I was short of the brain cells and it was hard work to get it all working. As I recall, I got there in the end but it wasn't straightforward... In the end I kept on using the ADS1115.
@AndreasSpiess
@AndreasSpiess 5 років тому
I only used this example but did not do thorough testing. It worked for my thresholds.
@walterpark8824
@walterpark8824 5 років тому
Better than consistently good. Excelsior!
@AndreasSpiess
@AndreasSpiess 5 років тому
Thank you!
@prlombaard
@prlombaard 5 років тому
Hi Mr Spiess, another well documented video just to get the juices flowing. The ESP32 is becoming more and more an IoT contender because of the ultra low power capability. and now with the ULP processor even more so! Thank you for the video.
@AndreasSpiess
@AndreasSpiess 5 років тому
You are welcome!
@sethrd999
@sethrd999 5 років тому
Great video Andreas, I had read about this but had not gone down the rabbit hole per se, as I had no vision for a use case currently. Il be going over this video again in detail as a solar project could perhaps do with this update.
@AndreasSpiess
@AndreasSpiess 5 років тому
I am sure some examples will pop up over time. Many projects where we use an ATtiny can be done this way.
@StefanoBettega
@StefanoBettega 5 років тому
Awesome introduction, this opens a lot of possible use as battery powered security sensor for the ESP32. I have a garage that can't be connected to the alarm plant, but I can reach it via WiFi: I can now use a battery powered ESP32 to probe the environment and receive alerts if needed. Thanks!
@AndreasSpiess
@AndreasSpiess 5 років тому
You are welcome!
@paulrichmond6903
@paulrichmond6903 4 роки тому
Andreas once again you blow us away with new ideas. Very well done.
@AndreasSpiess
@AndreasSpiess 4 роки тому
Thank you!
@Nichetronix
@Nichetronix 5 років тому
Great video, Andreas! I accept your challenge to create a cool project with the ULP!
@AndreasSpiess
@AndreasSpiess 5 років тому
Just send me a message on facebook or on twitter when you are ready...
@MikeKranidis
@MikeKranidis 5 років тому
Dear Mr. Spiess, congratulations for the topic and the fantastic video... I am also one of z80 assembly trained... I hope to have more advanced video for the ESP32 I think it deserves. Thanks again.
@AndreasSpiess
@AndreasSpiess 5 років тому
I do not think I will do an advanced video here. I hope some viewers will "bite the bullet". Maybe somebody writes a tutorial?
@santorcuato
@santorcuato 5 років тому
Useful AND interesting as always. Thanks Andreas!
@AndreasSpiess
@AndreasSpiess 5 років тому
You are welcome!
@TomasSab3D
@TomasSab3D 3 роки тому
You are a god. This is presented so incredibly well. No words for it...
@CTCTraining1
@CTCTraining1 5 років тому
Fascinating challenge... I would recommend mentioning the prize challenge in the video title (or making another video to link to this one) as I’m sure folks who relish such problems might miss it with the sleepwalking title.
@AndreasSpiess
@AndreasSpiess 5 років тому
Done. Thank you for your suggestion.
@youliantroyanov2941
@youliantroyanov2941 5 років тому
Another old geezer assembler fan here. Andreas ftw :)
@AndreasSpiess
@AndreasSpiess 5 років тому
So where is your proposal for the competition ;-)
@stuartcoyle1626
@stuartcoyle1626 5 років тому
It is good to see these features being implemented for Arduino and thus made available to many more people. I've been using ESP-IDF rather than Arduino, but then again I've been a professional programmer for a while. I willhave a go at your competition if I come across something interesting to do.
@AndreasSpiess
@AndreasSpiess 5 років тому
I would be glad to see your contributions to the competition!
@jerryhilburn9090
@jerryhilburn9090 5 років тому
Wonderful deep dive and very much appreciated by me! Thanks!
@AndreasSpiess
@AndreasSpiess 5 років тому
You are welcome!
@jorgedelcastillo2811
@jorgedelcastillo2811 5 років тому
Great video, Andreas ... "until recently" the PICs were programmed in assembler too.
@ralfoide
@ralfoide 5 років тому
For some version of "until recently"... The MPLAB X IDE has been available for the last 5 years, for free with a C compiler :) That said I had fun with the 12-bit words and reduced instruction set in the older PICs in the 90s. That was a different level of fun.
@AndreasSpiess
@AndreasSpiess 5 років тому
Maybe this is why PICs were no more as popular as Arduinos ?
@listerdave1240
@listerdave1240 4 роки тому
PIC has been programmable in both C and assembly years before Arduino even existed at all and still can. Also, while C is obviously more convenient there are still times when it is useful to use assembly. That is mostly the case when you need fast acting realtime operation such as precise timing signals, dealing with stepper motors running at high step rates and so on.
@piconano
@piconano 2 роки тому
Holly bananas batman! I thought it would be a simple task to use the ULP! The links alone saved me hours of googling. Much appreciated.
@AndreasSpiess
@AndreasSpiess 2 роки тому
It is not easy. This is probably why you do not find a lot of projects using it.
@NimaSajedi
@NimaSajedi 5 років тому
Your videos are really interesting. I appreciate your effort on sharing valuable information.
@AndreasSpiess
@AndreasSpiess 5 років тому
Thank you!
@jamespcorbett
@jamespcorbett 5 років тому
Amazing find, ULP is super useful. Using it to make a battery powered switch board for my home that'll hopefully last a year.
@AndreasSpiess
@AndreasSpiess 5 років тому
Should be possible.
@jamespcorbett
@jamespcorbett 5 років тому
@@AndreasSpiess yeah, simply recording the previous state of the pins then waking up the main to update mqtt. I'll put it on github :)
@jvgorkum
@jvgorkum 5 років тому
Andreas thank you for explaining this (cool) feature and willing to spend 100 usd for the open-source competition (thumbs up)
@AndreasSpiess
@AndreasSpiess 5 років тому
I hope we will get some interesting contributions ;-)
@chriscauwelier
@chriscauwelier 5 років тому
Thanks! I Just bought one, let's test it! 👍🏻
@AndreasSpiess
@AndreasSpiess 5 років тому
:-)
@norm1124
@norm1124 5 років тому
So cool, bin sehr gespannt auf die Resultate.
@AndreasSpiess
@AndreasSpiess 5 років тому
Habe nicht so viel Hoffnung. Mal sehen. Vielleicht täusche ich mich ja. Deshalb habe ich auch den Termin relativ kurz angesetzt. So wird es mindestens keine "Never Ending Story". Das Tema selbst ist sehr spannend finde ich.
@cedricwalter2442
@cedricwalter2442 5 років тому
11:32 There is a register that directly controls the rtcio pins output. WRITE_RTC_REG(RTC_GPIO_OUT_REG, 26, 1, 1) This line directly controls gpio 2.
@AndreasSpiess
@AndreasSpiess 5 років тому
Thank you. I will try. I wonder why the examples do not use this simple way :-(
@Palifra
@Palifra 5 років тому
After Lora series, maybe the best video to date.
@AndreasSpiess
@AndreasSpiess 5 років тому
Thank you. I have to admit, I liked also very much producing it. I waited for a long time until a got this chance...
@HelmutTschemernjak
@HelmutTschemernjak 5 років тому
Great video as always, thank you. I use another method which works in C without programming the ULP. There is a wake up hook function when the ESP32 wakes up. It gets called before booting the ESP32, before the flash is activated. C functions can be placed into the RTC memory for little processing. This function can continue to boot the ESP32 (which takes 0.3 secs) or put it into deeplseep again. This hook requires only 3 ms to check some processing. The advantage is can it can be programmed in C, the disadvantage is that only low-level IO can be done because program functions (FLASH) are not available. However all registers and ESP32 ROM functions can be used, or own functions marked with IRAM_ATTR will also work. This is pretty much low level like the ULP, however programmed in C with proper print debugging, etc. Regards Helmut (Arduino Hannover & RadioShuttle.de)
@AndreasSpiess
@AndreasSpiess 5 років тому
Interesting idea. I did not know that it exists. Maybe there is a small difference: The ULP clocks quite slow but still is quite fast because of its simplicity (microseconds) and only needs "full throttle" 2mA. So you can run it every few ms and still hardly consume any energy. Might be interesting for faster moving signals where you have to check quite frequently.
@HelmutTschemernjak
@HelmutTschemernjak 5 років тому
The main reason I use the wakeup hook is that the deepsleep timer does not last long, therefore it wakes up the ESP32 too often which consumes energy, now I can just re-enter into deepsleep (3 ms versus 300 ms).@@AndreasSpiess
@AndreasSpiess
@AndreasSpiess 5 років тому
That what I understood. It is a goo way to save energy by reducing the on-time.
@TMS5100
@TMS5100 5 років тому
you would think espressif would want to strongly encourage support of this feature. someone should make a C compiler for the ulp. the 8kb of the ulp is quite adequate for some reasonable code.
@AndreasSpiess
@AndreasSpiess 5 років тому
Maybe they do. I do not know.
@AndreaBorgia
@AndreaBorgia 5 років тому
I would say that the target audience for this feature is comfortable with using assembler, so they see no need for a compiler. The code is minimal anyway.
@AndreaBorgia
@AndreaBorgia 5 років тому
@Mai Mariarti I see your point and I agree, I was only trying to see things from ESP's point of view.
@Spritetm
@Spritetm 5 років тому
Espressif guy here: The issue is that the ULP barely is a microcontroller. It originated from a few digital people trying to build a somewhat programmable state machine to do some sensor sampling in deep sleep mode, then added in enough logic to make it turing-complete. Porting C to it would be a pretty tall order. We have something in mind that will make that possible for the ULP in our next chips, if that's a comfort.
@mikebrown7366
@mikebrown7366 5 років тому
@@Spritetm I agree. Some processors just weren't made to support a C compiler. For example, 8 bit PIC chips. This "CPU" smells more like an FPGA state machine. Being a long time assembly language lover, I will be looking into this architecture.
@deangreenhough3479
@deangreenhough3479 5 років тому
Happy Sunday Morning Andreas 😁🏴󠁧󠁢󠁥󠁮󠁧󠁿 what a start to 2019😀😁😁😁😁😁😁😁😁😁😁
@AndreasSpiess
@AndreasSpiess 5 років тому
Happy Sunday to you, too!
@avejst
@avejst 5 років тому
NIce review, thanks for sharing as always :-)
@AndreasSpiess
@AndreasSpiess 5 років тому
You are welcome!
@petermeiner3574
@petermeiner3574 5 років тому
Yes,the good old times. Programming a Z80 with an Manual(a real paper book!), and then calculate the bits by hand( yes, also on paper.....) to hex values. Then type all Values by hand into the dev.board , which only have some switches, 7segment led and a small keypad! And if it loose the power, all is gone. Young people couldn't understand, how amazing the first blinky on those projects make me so Lucky, to get it running.....
@AndreasSpiess
@AndreasSpiess 5 років тому
Not to forget the cassette tape recorder to save the programs. I still prefer the modern tools if I have to get somewhere...
@kevinnicholls1017
@kevinnicholls1017 5 років тому
I had a lovely hand written ready reckoner for the Z80 with the instructions laid out in a 16 by 16 grid. Fond memories, but the good times started for me with emulators, break points, swiftly followed by C. Debugging assembler without JTAG sounds hard work.
@Cairos1014
@Cairos1014 5 років тому
I dont miss those days, but I still think it was a fun and educational process to toggle in the bootloader on an Imsai 8080 via the front panel! Thankfully, I'm not so old I had to enter the whole program that way.
@LutzSchafer
@LutzSchafer 5 років тому
Yeah these were the days. In the late 70's without an assembler I developed a four pole linear circuit simulator on a ZX spectrum. Everything was developed on paper and very little debugging was necessary because you had to think rigorous with attention to detail. Still have a binder full of hand written assembly and it's hand-translated machine code. Unthinkable for today's standards. For back in these days this was the fastest code. But you had to do everything even design your floating point arithmetic. This program could deal with up to 200 nodes and had FFT for time domain output. Amazing how little memory we were forced to use.
@mikebrown7366
@mikebrown7366 5 років тому
I learned on 1802 by hand assembling. A truly painful experience, but taught me to really think out the project before writing one line of code.
@Iceteavanill
@Iceteavanill 5 років тому
Interresting Idea and very generous. I really want to see the outcome....
@AndreasSpiess
@AndreasSpiess 5 років тому
Or you go into it yourself? After a little assembler programming, you will be the hero in hex arithmetics ;-)
@Iceteavanill
@Iceteavanill 5 років тому
@@AndreasSpiess Yeah thats true.. although im more of the hardware guy it would surely not hurt to try it out and gain some experience....
@rubialugattimoreira1978
@rubialugattimoreira1978 Рік тому
This is the man. 🌹 Absoluty amazing
@AndreasSpiess
@AndreasSpiess Рік тому
:-)
@petercalum9767
@petercalum9767 5 років тому
Super interesting and usefull video, thanks Andreas
@AndreasSpiess
@AndreasSpiess 5 років тому
You are welcome!
@ewap-by-daniel
@ewap-by-daniel 5 років тому
Danke für das super Video. Überlege mir gerade mit Was für einem Projekt ich mitmachen kann.
@AndreasSpiess
@AndreasSpiess 5 років тому
Super! Freut mich.
@jamisusijarvi646
@jamisusijarvi646 5 років тому
After 20 years, do I really need to go back to assembler. Oh boy :)
@AndreasSpiess
@AndreasSpiess 5 років тому
I am sure you will remember a few things. And maybe you still find your old hex calculator ;-)
@RDarrylR
@RDarrylR 5 років тому
Very interesting. Lots of possibilities using these techniques. Assembler coding isn’t really that hard but I’m sure some people will come up with some more friendly libraries.
@AndreasSpiess
@AndreasSpiess 5 років тому
I would hope so. But browsing through the comments I am not sure :-(
@UnrealVideoDuke
@UnrealVideoDuke 5 років тому
Great time frame! Some people will not be able to receive their parts in time to complete their projects by your deadline. I would give it at least 60 days.
@AndreasSpiess
@AndreasSpiess 5 років тому
You are right. It is short. I thought that people not owning an ESP32 will anyway not be interested. And I wanted to keep the momentum.
@michelebernasconi375
@michelebernasconi375 5 років тому
Hi Andreas, great video and initiative! I am also interested about applications related to the MPU6050!
@AndreasSpiess
@AndreasSpiess 5 років тому
Thank you!
@ericwilson5203
@ericwilson5203 5 років тому
As others have said, this is SO exciting! Thank you for spurring the community for more sample code examples for layman like myself. Correct me if I'm wrong, but it looks like the posted example for reading the built in hall effect sensor does not have an upper and lower bound to wake it from sleep? Instead it just wakes up every 3 seconds to print its averaged measurements? Also is it possible for the RTC code to run continuously in the background. I have a project where the main loop scans bluetooth, then deep sleep. It'd be nice if the RTC could continue to poll a sensor even when the chip is awake.
@AndreasSpiess
@AndreasSpiess 5 років тому
You are right: The ULP should decide on when to wake the main cores.
@note380
@note380 4 роки тому
Hi, I hope you are well during this tough time in the world. I have come across this video after searching online a way to keep counts of a pulse interrupt from a dds353 kwh meter and periodically send the counts over mqtt. I had not realized that esp was different from arduino in the way ISRs are handled during low power operations. Now I am convinced I need this approach shown in this video. Kindly point to how I can listen to interrupts and maintain a count for it then wakeup the main processor say after 10 minutes and pass the data over for Serialprinting( Mqtt transmission in my use case which I can do after I have figured out the ulp interrupt and periodic waking up of the main processor). This is very useful stuff thank you
@AndreasSpiess
@AndreasSpiess 4 роки тому
Nice project! I hope you will get it working.
@sourekpetr
@sourekpetr 5 років тому
Aaaah assembler, back to the roos :-D Thanks for video.
@AndreasSpiess
@AndreasSpiess 5 років тому
You are welcome!
@stefanf.5439
@stefanf.5439 3 роки тому
Nice video, thanks for the internals. Assembler was never my world but i like the idea to speak computer language:)
@AndreasSpiess
@AndreasSpiess 3 роки тому
For short sequences Assembler is ok, I think
@SyaCZek
@SyaCZek 5 років тому
Hello Andreas, When will you make a video about ULP challenge results? Thank you for your answer. I Love your work!
@AndreasSpiess
@AndreasSpiess 5 років тому
Unfortunately, I did not get enough participants.
@CircsC
@CircsC 5 років тому
I think being able to monitor a cheap solar panel and battery on its own and change esp wake times based on available sunlight and battery levels
@AndreasSpiess
@AndreasSpiess 5 років тому
Good idea!
@GregCormier
@GregCormier 5 років тому
For those curious, I just measured my ESP32 DevKit C at 2.8uA in regular deep sleep - and that includes the tiny built-in LED!
@AndreasSpiess
@AndreasSpiess 5 років тому
Thank you for your feedback!
@davidcircuity6473
@davidcircuity6473 11 місяців тому
Measured ESP32-Wroom-D Dev. Board in regular deep sleep at 4.1mA.
@RaphaelBrandaoS
@RaphaelBrandaoS 5 років тому
Watching this video eating ice-cream! Good time! Excellent subject as always, mr. Spiess! Just recently I got an ESP32-CAM and start learning ESP-IDF. Its so much better than Arduino environment IMO. Sure is a bit more complicated but RTOS is neat! And now I'm looking for a epaper display to mess around but they seem to be hiding in the market. What is going on?
@AndreasSpiess
@AndreasSpiess 5 років тому
I do not know of issues concerning e-papers. I recently got two from waveshare
@mahesh732
@mahesh732 4 роки тому
"the chance you'll get it right the first time is pretty small." :-D. right on!
@AndreasSpiess
@AndreasSpiess 4 роки тому
:-)
@RodrigoCarbajales
@RodrigoCarbajales 5 років тому
Hi Andreas, again a great video! I would like to know if it is possible to have interrupts in ULP, I would like to have my 3D printed weather station working with ULP to save energy. So I would need to count rain drops and wind speed in ultra low power while main processor is in deep sleep and after a minute wake it up and send all the information using LoRa TTN.
@AndreasSpiess
@AndreasSpiess 5 років тому
The ULP does not use interrupts. As described it starts every few ms. So it should be possible to measure both, wind speed and rain. At least my sensors create a relatively slow squarewave which can be read with the ULP.
@Trivimania
@Trivimania 5 років тому
Hi Andreas. At minute 2:00 you tell that the esp32 can wake out of deep sleep if a pin is touched. I thought it was only possible what a timer was reached. Does that mean that for example for a simple door sensor (with magnetic reed contact) I don't have to use this ULP core and I can somehow put the esp32 in deep sleep and only let him wake up when the reed contact gives a signal ? Can I do this on SIGNAL CHANGE? Or is it only on UP or DOWN but not on CHANGE ? Kind regards from Belgium
@aspuzling
@aspuzling 5 років тому
I'm not sure about signal change, but you can set up a trigger for the ESP32 to wake from deep sleep when an IO pin goes high. Here is more info: pcbreflux.blogspot.com/2017/02/esp32-deep-sleep-example.html
@joachimbaumann731
@joachimbaumann731 5 років тому
Hi Andreas, the Voodoo you are talking about allows the compiler to calculate the size for all the ULP programs (which is why you have two arrays that contain pointers to the begin and end of the ULP program, respectively). But as always a fantastic video. One idea for the challenge: Read 1-Wire sensors...
@cannesahs
@cannesahs 5 років тому
1-Wire would be awesome
@AndreasSpiess
@AndreasSpiess 5 років тому
@Joachim: I thought it will also load the code to RTC memory? And thank you for your nice words!
@InfiniteQuest86
@InfiniteQuest86 5 років тому
@Mai Mariarti I tried the I2C example yesterday, and it does not work with Arduino out of the box (it won't even build). Although the adc code from their github doesn't work either, but Andreas's code works great. So there's some more voodoo to figure out. The list of operations has I2C_RD and I2C_WR, so I believe at least one of the pins has hardware support builtin. I'm going to try to tackle this today.
@Megavoltamper
@Megavoltamper 5 років тому
Excellent video! Maybe a low power solar powered version of the Geiger-counter? Now it draws a lot of power because the ESP has to be always on to count the pings. I started to think about to do it with an ATTINY85 and an ESP yesterday. Where the ATTINY does the counting, and wakes up the ESP every few minutes, passes the ping number to the ESP and the ESP uploads the values to Thingspeak or similar. But maybe the ULP of the ESP32 could do the counting?
@AndreasSpiess
@AndreasSpiess 5 років тому
Counting the Geiger pulses would be a good example. Only trigger the ESP if an alarm occurs and your ESP runs for a long time ;-)
@ajaybnl
@ajaybnl 5 років тому
Beautiful. I like your Funny words :)
@AndreasSpiess
@AndreasSpiess 5 років тому
Thank you!
@Fifury161
@Fifury161 5 років тому
5:39 - is that you doing a voice over? Great info - thanks for sharing!
@AndreasSpiess
@AndreasSpiess 5 років тому
The whole video is a voice over. But you are correct. There I had to correct something ;-)
@bonnome2
@bonnome2 5 років тому
A while back in your micropython video you talked about mongoose OS but that it didn't work out. I think it would still be great to have a video about it!
@AndreasSpiess
@AndreasSpiess 5 років тому
The chance is small on this channel and for the moment. I go enough "shit" with MicroPython ;-)
@FLTOMM
@FLTOMM 3 роки тому
Very good work!!!
@AndreasSpiess
@AndreasSpiess 3 роки тому
Thank you!
@Brynmawrhill
@Brynmawrhill 4 роки тому
Grüetzi Andreas, A great video as usual. A little while ago you reviewed ESP32 boards and noted that all of them draw pretty high quiescent currents. What is the breakout board you are using in this video? Thanks a lot for your good work, David
@AndreasSpiess
@AndreasSpiess 4 роки тому
It is just a PCB. You get it on Aliexpress.
@Brynmawrhill
@Brynmawrhill 4 роки тому
@@AndreasSpiess I found it. 😀
@MPElectronique
@MPElectronique 5 років тому
Thank you so much!!!
@AndreasSpiess
@AndreasSpiess 5 років тому
You are welcome!
@mikebrown7366
@mikebrown7366 5 років тому
No call or return instructions, but it seems likely that implementing them as macros would be fairly easy. This is based upon the 30 minutes I spent looking at their amazingly clear documentation on the "instruction set".
@AndreasSpiess
@AndreasSpiess 5 років тому
I am curious about the contributions for the contest. I hope we will see some creativity there...
@SimonRichardMasters
@SimonRichardMasters 5 років тому
Espressive is a sharp company, they are sending development kits
@science4allworld587
@science4allworld587 5 років тому
Great video...or rather best video about esp32. Thanks. A request, since u have ucurrent and otii and currentranger... can you make a video on comparision of these three. I was about to order currentranger but now curious about otii. Thanks in advance:).
@AndreasSpiess
@AndreasSpiess 5 років тому
Maybe I will do another video which also uses the Otii. But not soon.
@BaronVonBiffo
@BaronVonBiffo 5 років тому
After hearing your cat purr, Mogg E has carried out a frantic search of Schloss Biffo to see where her rival is hiding. :)
@AndreasSpiess
@AndreasSpiess 5 років тому
So "wireless cat communication" exists ;-)
@BaronVonBiffo
@BaronVonBiffo 5 років тому
@@AndreasSpiess :)
@Cairos1014
@Cairos1014 5 років тому
Thank you again Andreas! I still don't understand the Python kerfluffel. The craftsman chooses the tool most fitted for each job. I have a number of ESP smart sensors around the house that could just as easily be running Python. C++ just happens to be my go-to hammer. It was a lazy choice.
@AndreasSpiess
@AndreasSpiess 5 років тому
I have a similar opinion. And if you came from the RPI your go-to hammer most probably would be Python. That was the point of my question. Anyway: I learned a new word: kerfluffel ;-)
@SimonRichardMasters
@SimonRichardMasters 5 років тому
I like Python, describing C as a hammer does my head in
@christianneuhaus1354
@christianneuhaus1354 4 роки тому
Hi Andreas, Thanks for this very interesting video. I was wondering whether to use an Arduino or an ESP32 for an ULP project. With the Arduino, I found that I'd have to build a very basic one myself for ULP applications while the ESP32 seems to be ready to use as is, which is great. Maybe a comparison of Arduino vs. ESP32 in ULP applications would be an idea for a future video? ;-) Cheers, Christian
@AndreasSpiess
@AndreasSpiess 4 роки тому
I would not compare the ULP with an Arduino. The concepts are too different. Maybe I will cover the ULP with a ecample in the future...
@avivkeinan3564
@avivkeinan3564 4 роки тому
Hi Andreas and all other, i was wondering if there is any way to use 2 wake ups source that won't interfere each other - i have situation that i deep sleep the esp32 for 24 hours and would like to count pulse from sensor using ext0 External Wakeup Source during that 24 hours - after 24 hours i would like to report the number of pulse to the cloud - my problem is that the ext0 wakeup resets the 23 timer sleep - i would love to get some suggestions - thank you andreas for your amazing work over the years - you are the best!
@hdeamon
@hdeamon 5 років тому
This video rocks!
@AndreasSpiess
@AndreasSpiess 5 років тому
Thank you!
@Aegilops
@Aegilops 5 років тому
Was watching your new video with great interest, Andreas, following your informative, relaxed and interesting walkthrough when at 6:14 you made me laugh out loud ... so I stopped and had to give you a Like. Excellent video as always!
@AndreasSpiess
@AndreasSpiess 5 років тому
Thank you for the like!
@alexpr0gressive
@alexpr0gressive 5 років тому
I was looking for arduino ulp support in platformio but didn't find anything yet, has anyone else been more successful ?
@BorisDessimond
@BorisDessimond 3 роки тому
1y later with IDF yes, not Arduino.
@electronic7979
@electronic7979 5 років тому
Useful video 👍
@AndreasSpiess
@AndreasSpiess 5 років тому
Thank you!
@bardenegri21
@bardenegri21 5 років тому
I wonder if the ULP can do basic timing measurements, like count the time between two pulses on a pin or similar.
@AndreasSpiess
@AndreasSpiess 5 років тому
You know how much cycles each command needs. So it should be possible.
@georgelewisray
@georgelewisray 5 років тому
Great Stuff !!
@AndreasSpiess
@AndreasSpiess 5 років тому
Thank you!
@rchandraonline
@rchandraonline 5 років тому
(just sayin'...we may pronounce "one hundred dollars", but when written, currency symbols go before the number, such as "$100") This sort of thing is so great to know. Hardly anyone wants to spend more on energy than they should. If you have only one of these things, not so bad, but when you have a (smart) house full of them, it really adds up!
@AndreasSpiess
@AndreasSpiess 5 років тому
Maybe you are right with the 100$ But asking google there are many ignorants like me ;-)
@SimonRichardMasters
@SimonRichardMasters 5 років тому
Smiles at students these days
@TheBodgybrothers
@TheBodgybrothers 5 років тому
Thanks man!
@AndreasSpiess
@AndreasSpiess 5 років тому
You are welcome!
@CMusicPro11
@CMusicPro11 4 роки тому
Kleiner Tipp zu deiner Kritik am Labeling der Pins: Durch die Mehrfachbelegung hat Espressif einige Ports eingespart, was wiederum Platz auf dem Chip spart. Das Label "Touch_Pad" scheint nach der Dokumentation von Espressif zu bedeuten, dass dieser Pin ebenfalls einer der kapazitiven touch pins ist. D.h. der Pin kann über den bloßen Kontakt erkennen, ob etwas "touchaktivierendes"(Bsp.: dein Finger) den Kontakt berührt hat. So kann bspw. ein Kabel vom Pin an eine leitfähige Münze angeschlossen werden und durch berühren der Münze kann etwas ausgelöst werden, wenn der pin im Programm verwendet wurde. Sonst, top!
@AndreasSpiess
@AndreasSpiess 4 роки тому
Das weiss ich schon und ich habe ja ein Excel Sheet dafür erstellt.
@Lolatronn
@Lolatronn 4 роки тому
hey can you use the ulp core when the main processors are on? i would to have a third core for things that don't take much processing power. But is something i need to run independently of the main two processors.
@wardog2118
@wardog2118 5 років тому
Maybe it's called touch_pad_7 because it's the 7th pin having the touch functionality? bad naming anyways xD thanks for this video! i was looking into that but never really had the motivation :)
@AndreasSpiess
@AndreasSpiess 5 років тому
I think so. But I just want to know where I have to solder my poor wire on ;-) And there I only find 27
@zyghom
@zyghom 2 роки тому
Man, ESP, Arduino, LoRa - these are completely IRRELEVANT - what IS relevant is your speech like the one at 4:18 - I died almost! ;-) So lovely ;-)
@AndreasSpiess
@AndreasSpiess 2 роки тому
Exactly. Glad you know what I am talking about ;-)
@zyghom
@zyghom 2 роки тому
@@AndreasSpiess I played this part to my wife and her reaction: "what's funny?" ;-)
@guatagel2454
@guatagel2454 5 років тому
Thank you!
@AndreasSpiess
@AndreasSpiess 5 років тому
You are welcome!
@paulofernando4717
@paulofernando4717 3 роки тому
Thank you for the video! Is it possible to read a digital input using the ULP?
@AndreasSpiess
@AndreasSpiess 3 роки тому
Yes.
@steverearwin6840
@steverearwin6840 4 роки тому
Hi Andreas, I love your videos and am very impressed by your knowledge. Your ESP-WOOM-32 breakout board looks like just what I have been seeking for over a month. Would you please tell me the model number and manufacturer/seller? Thanks in advance.
@AndreasSpiess
@AndreasSpiess 4 роки тому
You always find the needed links in the comments of my videos.
@axelmagnusmansson3265
@axelmagnusmansson3265 5 років тому
Top notch video, in the tough competition of yourself! Will help in my endeavours to have solar powered sensors. together with LoRa, one can probably have very small batteries that last forever with small solar panel. even indoors? Update on competition, or did noone dare?
@AndreasSpiess
@AndreasSpiess 5 років тому
Unfortunately, I only got 1.5 entries. Was quite disappointed :-(
@kwinzman
@kwinzman 5 років тому
It would be amazing if the ULP could do serial UART. I have a sensor that just has UART interface and I want to sample it low power.
@AndreasSpiess
@AndreasSpiess 5 років тому
It should be easy to detect at least a few "commands" in assembler. Serial com protocol is relatively simple to implement.
@NivagSwerdna
@NivagSwerdna 4 роки тому
I have only just seen this video and it is very cool... What happened to the challenge? Was there a follow-up video?
@AndreasSpiess
@AndreasSpiess 4 роки тому
There were not many entries and I did no follow-up because I was disappointed.
@NivagSwerdna
@NivagSwerdna 4 роки тому
@@AndreasSpiess Raise to to $10k and give me a couple of months and then I'm in! I would like use with an external 32kHz Crystal for good timekeeping in sleep might be interesting... I also need to drive a 5V ultrasonic sensor so I need a bit of hardware design too.
@osamahnini9829
@osamahnini9829 4 роки тому
I really want to think for your valuable videos that you provide through your channel. I need to use the ULP (Ultra low power coprocessor) for rising edge detection. Is it possible? Could you provide me with details of such process? I really appreciate your help.
@AndreasSpiess
@AndreasSpiess 4 роки тому
I am a UKpostsr and provide my knowledge through my videos. I am sure you will get it done with al little thinking and research.
@GaunerBerlin
@GaunerBerlin 4 роки тому
I'd be also very interested in a motion detection with a MPU-6050 (or MPU-9250). Where can the proposals of the competition be seen? Has someone built a motion detection inside the ULP?
@AndreasSpiess
@AndreasSpiess 3 роки тому
Unfortunately I did not get any reasonable projects.
@GaunerBerlin
@GaunerBerlin 3 роки тому
In the meantime I figured out, the MPU-9250 has internal motion detection: invensense.tdk.com/wp-content/uploads/2015/02/PS-MPU-9250A-01-v1.1.pdf#%5B%7B%22num%22%3A90%2C%22gen%22%3A0%7D%2C%7B%22name%22%3A%22XYZ%22%7D%2C62%2C460%2C0%5D
@MPElectronique
@MPElectronique 4 роки тому
Great video andreas. Would u consider to show us about push button ULP DEEPSLEEP In a video? Thanks. Marc.
@AndreasSpiess
@AndreasSpiess 4 роки тому
I am not sure this would make sense as you can use many pins to wake the ESP32 without bothering the ULP.
@MPElectronique
@MPElectronique 4 роки тому
@@AndreasSpiess :'(
@rinelbhownath6914
@rinelbhownath6914 5 років тому
amazing THANKS!!!!!! :D
@AndreasSpiess
@AndreasSpiess 5 років тому
You are welcome!
@survivalboxing3216
@survivalboxing3216 5 років тому
Hi Andreas, could you list a few reason on why to still use the Arduino IDE and board on our projects when we can code on the ESPs directly in micropython? Many thanks
@AndreasSpiess
@AndreasSpiess 5 років тому
Because my channel would be dead if I would go away from Arduino IDE
@SimonRichardMasters
@SimonRichardMasters 5 років тому
I can see the problem there...
@noweare1
@noweare1 5 років тому
@@AndreasSpiess Well spoken
@davegasman
@davegasman 5 років тому
You had me at 'pimp the Arduino IDE...'
@AndreasSpiess
@AndreasSpiess 5 років тому
:-)
@blauemeise8287
@blauemeise8287 5 років тому
Hi Andreas! I would also add 50$ for a C ULP compiler. Why not pool together in BountySource?
@AndreasSpiess
@AndreasSpiess 5 років тому
As you might have seen in one of my last videos I will not start a community project in the near time. So somebody else has to do it.
@crckdns
@crckdns 5 років тому
If there would be a pool for an open-source c2ulp compiler, I'd also add $50 to it 😸
@norm1124
@norm1124 5 років тому
Hi folks, I'm really busy. But maybe writing a CLang LLVM backend is not as hard as we all assume? github.com/llvm-mirror/llvm/tree/master/lib/Target/RISCV
@norm1124
@norm1124 5 років тому
Maybe this manual is helpful: it talks about linking and memory layout: docs.espressif.com/projects/esp-idf/en/latest/api-guides/ulp.html
@InfiniteQuest86
@InfiniteQuest86 5 років тому
I've spent probably 10 hours today working the i2c angle on this thing, and the compiler is starting to sound much easier. We have a C preprocessor and an assembler. The only layer missing is stitching together operations into assembly. After today, it doesn't seem so bad to get something rudimentary thrown together.
@ralfoide
@ralfoide 5 років тому
Suggestion for your contest: Program the ULP directly from MicroPython. Why stop at C macros to generate some opcodes...
@AndreasSpiess
@AndreasSpiess 5 років тому
AFAIK the assembler code is completely separated from any "normal" code. You would need a different infrastructure to put the code in the right place for Micropython. But it still would be assembler code.
#328 ESP32 Secrets: Interrupts, and Deep-Sleep under the Hood
18:57
Andreas Spiess
Переглядів 171 тис.
Секретная разработка КГБ! Волга «Догонялка» на V8…
1:07:10
Мастерская Синдиката
Переглядів 2,1 млн
[실시간] 전철에서 찍힌 기생생물 감염 장면 | 기생수: 더 그레이
00:15
Netflix Korea 넷플릭스 코리아
Переглядів 36 млн
451 Which Processor can kill the ESP32?
11:24
Andreas Spiess
Переглядів 330 тис.
How TINY Can I go? The BEST Power Board is here!
11:55
GreatScott!
Переглядів 258 тис.
ESP32 Deep Sleep: Ultra-Low Power Coprocessor
15:27
atomic14
Переглядів 28 тис.
Minimalist Microcontroller: Building a Bare-Bones Dev Board
9:15
atomic14
Переглядів 100 тис.
Coding a Sound Driver on the ESP32 ULP
6:46
bitluni
Переглядів 85 тис.
#363 Which ESP32 pins are safe to use?
11:53
Andreas Spiess
Переглядів 123 тис.
Это УНИЖЕНИЕ: Самсунг сделал ступеньки из АЙФОНОВ
0:14
Собиратель новостей
Переглядів 7 млн
Сомнительно... Ну Окэй... Распаковал Nothing Phone (2a)
16:19
РасПаковка ДваПаковка
Переглядів 53 тис.
Сомнительно... Ну Окэй... Распаковал Nothing Phone (2a)
16:19
РасПаковка ДваПаковка
Переглядів 53 тис.