#332
Vložit
- čas přidán 16. 05. 2020
- In this video, I would like to remind you of a handy ESP32 concept: Over the air or OTA update. A simple and efficient replacement of the Serial cable for devices which are not easily reachable, or for barebone ESP32 modules. And, as usual, I will add a few tricks and helpers.
In this video, we will:
- Learn how to use ESP32 OTA
- Create a basic sketch template for all our new projects
- I will show you some tricks like remote debugging
- If this simple OTA is not enough, I will show you other frameworks
- And, as usual, I included a “one last thing”
I am a proud Patreon of GreatScott!, Electroboom, Electronoobs, EEVblog, and others.
Links:
Sketches: github.com/SensorsIot/ESP32-OTA
ESP32 Dev board: s.click.aliexpress.com/e/_dVt... and s.click.aliexpress.com/e/_d7D...
Standard ESP32 Dev board: amzn.to/2Axh24B
ESP32 barebone PCB: s.click.aliexpress.com/e/_dZ6...
Telnetstream: github.com/jandrassy/TelnetSt...
WiFiManager for ESP32 (and ESP8266): github.com/tzapu/WiFiManager/...
IOTappstory.com: iotappstory.com/
The links above usually are affiliate links which support the channel (no additional cost for you).
Supporting Material and Blog Page: www.sensorsiot.org
Github: www.github.com/sensorsiot
My Patreon Page: / andreasspiess
Discord: / discord
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
My Amazon.com shop: www.amazon.com/shop/andreassp...
For Banggood bit.ly/2jAQEf4
For AliExpress: bit.ly/2B0yTLL
For Amazon.de: amzn.to/2r0ZCYI
For Amazon UK: amzn.to/2mxBaJf
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
As an Amazon Associate, I earn from qualifying purchases - Věda a technologie
"It always sits in the in the first row!" - brilliant! :-D
@@nutsandguts2871 Maybe 17 other people (including me) get impressed easily too, then.
Edit: 31 now
5:44 so OTA is also a subscriber ^v^
Or you just sort your projects differently and use a better IDE (like MS Visual Studio Code + Platform.io) instead of the limited Arduino IDE. Yet, I like his videos for being "always straight and basic" (which unfortunately implies to also fallback to arduino IDE)
@@PranavSharma2504 it was a great joke! (made me laugh anyhow =D)
i guess Im asking randomly but does anyone know a trick to get back into an Instagram account..?
I was stupid lost my password. I appreciate any tricks you can offer me!
Hello Andreas! I always wait anxiously for new videos from you, no matter the subject, I know that I will learn lots of things! Greetings from Canada! 🙌
During the last weeks you did not have to wait for too long ;-) It must be late in Canada...
Same here! Of all the CZcamsrs, @Andreas Spiess is my all-time favorite! A perfect mix of information, experimentation, and humor!
Again a wonderful presentation with much practical information in a short time.
Each Sunday morning I am looking forward to your high value information, thank you!
You are welcome! And thank you for your nice words.
I'm seeing and seeing again your videos. They are very useful and help me to speed up my projects. Thank you very much for your work here, really!
Glad you like them! And they help you in saving your valuable time.
Just when I needed it! Thank you🙌
Perfect!
@@AndreasSpiess I'm having trouble finding your video shown at 6:19 talking about using the FTDI board to read the serial connection. Which video was that in?
Always enjoy your tutorials and your github contributions. Thanks for the time and effort you put into these.
My pleasure!
Excellent, finally something that I will surely personally use.
Thank you.
Glad it was helpful!
Thank you for your video, I like those ESP videos so much.
Also, I'm planning to use ESP in my new project on my channel. It is a very exciting controller!
Go for it!
This video was useful! Thanks a lot for a very dense set of excellent tips!
Glad you can use it!
Grüezi Andreas, thanks for the many hours you devote to your viewers. I appreciate your dry humour very much. I tried to find if you have created any videos on motors and actuators without success. Monitoring & control systems would seem a natural progression to your sensor projects - LoRa especially. Hopp Schwiiz!
Great video, Andreas, and very well explained!!!! Greetings from Italy! And I always sit in the first row!!!
Thank you!
Thanks a lot for this tutorial. I had been wanting (and needing) to do OTA for a long time but always wrongly assumed it would be very difficult and had in fact tried a few times without success but after watching your video I got it working in a few minutes in one of my projects.
Glad I could help!
I love the way that you did this... You made this so user friendly THANK YOU.
You're welcome!
Andreas, I spent over a week trying to get OTA Basic from the Examples to work with my ESP32 Cam. Finally, I gave up and used your OTA template and it worked the first time and every time since. I can't thank you enough for taking the time to help me and those less fortunate in electronics knowledge. You're a HERO. :))
Glad I could help!
Hello Andreas! I really love your videos and can't wait for another one. I like the way you do it. I didn't know something like this is possible in ESP32 at all! By the way, it works also on ESP8266 as I've just found out. Thanks a lot and keep up the great work! Greetings from Slovakia!
You really nail it down in 10 minutes, that's great
Thank you!
Thanks for this video, will most defiantly be testing OTA and remote debugging on my next project.
Great!
Thanks Andreas for the explainations. I worked with this beast during the last weeks and you complete informations i needed. Thank you !
Glad it helped!
I always learn something new or interesting from your great videos!
Thank you very much.
Glad to hear that!
Thank you, I have learned a lot of useful things from your videos. Looking forward to more ESP32 content :)
More to come!
Copying and pasting from sketch example works right away! PuTTY debugging works as a charm. Thank you for the clear explanation and extended OTA debugging.
Glad it helped!
thanks for your all’s videos you provided to us, very helpful for me and thank again 👍🏻
Glad to hear that!
Very helpful tutorial! This opens so many "ports" ;-) for new projects !!
Thank you!
Andreas, you are "The Man". Thanks!
I know it is Sunday when I see a new video From Andreas! So good!
:-)
Just in nick of time for me Andreas! Thanks for several tips that will make our lives easier! You are just a machine that keeps going and going further than the battery commercial!
I just have a schedule ;-) And you never know how long you live in my age...
@@AndreasSpiess I agree! I'm not the youngest either, but I have plans too.... I just admire you and the amount of work you can do!!! Wishing you health - the rest can be purchased.
Thank you so much, i was just thinking of a way to upload code onto a smart bulb in the future without having to resolder all the connections. But i didnt know about OTA, you are a life saver. Thank you!
Glad it helped!
Thank you, an educational and fun video as usual 😄
Glad you enjoyed it!
Another excellent and useful video - thank you!
Glad you enjoyed it!
And just by the work of your magic, i can program my esp32 ota... thank you very much! Your videos couldn't be easier to understand. This capability is perfect for an mqtt smart house.
Glad it worked!
A great and useful video! Thanks Andreas!
My pleasure!
Super helpful, thank you!🥸
You are welcome!
wow.. The code works flawlessly. Thanks!
You're welcome!
So it is time for some refactoring in my projects :) Thank you Andreas!
You are welcome!
This is so cool. 1. I am just starting to learn morse code. 2. I am just getting my head around ESZP32 and 8266. 3. I am working on a battery-powered automation controlled relay and am searching for information on very very low power devices (which you have previously covered). I really enjoy your ideas and how you go about explaining them. OTA will really help with all these projects.
If you want to learn morse you have to have a look at my first videos. And if you are interested I have an updated version for the ESP32...
You made it very easy. Great tutorial
Glad to hear that!
Mr. Andreas thanks, this video is amazing! Thanks!
You are welcome!
Danka viel mohl Andreas. I've played around with OTA but the debugging trick I was not aware off. Time to do some testing on my RV project where I have 8266's deployed to handle various tasks in the RV.
I am not sure if everything works the same on the ESP8266. But you can try
Awesome content! Thanks a lot!
Great walkthrough 👍
Thanks for sharing 👍😀
Thanks for the visit
I am proud to say that I am enrolling in an IoT program from ASIT (Andreas-Spiess-Institute-of-Technology).
and "ASIT" in the first row. Love it, awesome as always~
Glad you think so! ASIT - I love it!
@@AndreasSpiess Thank you prof :D
thanks for sharing.RTOS is a great tool in such systems.can't wait to see more about that :)
Maybe...
Very helpful, thanks Andreas.
You are welcome.
Thank you so much for this awesome tute. I am now able to solve my year-old problem. Very accurate and informative tutorial. God bless you.
Glad it helped!
Wonderful videos, as always
Glad you like them!
As always great video...
Thank you!
It was a video with useful information. I liked it
Glad to hear that
Always very good classes
Thank you! 😃
Oh Thank You! I never knew you could debug over WiFi, that will make things easier.
I've done an OTA update before where I forgot to add OTA code block to new sketch. I did a Face Palm, back when you could touch your face. :)
Can't wait to see more on the long range 2.4Ghz radio.
If you refer to the satellite project I assume I will continue this or next week.
Very nice video. Enjoyed it
Thanks for the visit
Brilliant video. Now I don't have to find my data cable which has a tendency to disappear whenever I need it . Thanks so much !
And you even do not have to find your ESP as long as it has Wi-Fi connection ;-)
Wow vielen Dank !
nice Erweiterung/Erleichterung
Klasse Zusammenstellung !
klappt auf anhieb : 7
Sollte eigentlich ;-) Vielen Dank für's Feedback.
Perfect Timing 👌
Glad you think so!
funny that.. i was just setting up OTA on my ESP8266!... Great minds think alike!! :P
nice info..as usual..Thanks Andreas :)
My pleasure!
@@AndreasSpiess This is awesome, will the example sketch work with an ESP8266 though? The video indicated it would need someone to contribute a compatible version. I am still working through how to include the #include libraries
@@msuc5vette try this one i setup after watching.... i was using a version already in ESP_AsyncFSBrowser.. i just added esp8266s needed libs wrapped in #ifdef. the ArduinoOTA calls would complain during compile on esp8266 so i fixed them too.. github.com/WacKEDmaN/ESP32-OTA/blob/master/0TA_Template_Sketch/OTA.h
@@WacKEDmaN Thanks for that, seems to work fine on the Wemos D1 board but not on the ESP-07, [ERROR]: Bad Answer: ERR: ERROR[4]: Not Enough Space
@@stonecoldcnc make sure the partitions are set correct... im also guessing the low flash memory ESP (eg 512k/1Mb) chips wont be able to support OTA
Very interesting video. THANKS!
You are welcome!
Wow! I had no idea it was possibile to update the Arduino this way. Thank you for getting us know.
It is not for the Arduino, it is for the Esp32
@@AndreasSpiess , ohhhhh...ok. got it as you can see I'm not familiar with the different processors. :) thank you for the clarification.
Cool. I'd certainly like to see your take on RTOS, I've been using parts of it in my sketches and it looks incredibly powerful... A video from the guy with the Swiss accent would probably help many of us to get off the ground. Thanks!!
Maybe in the future, as I said...
@@AndreasSpiess Fingers crossed ;)
This tutorial got me quickly onto OTA for my ESP8266 & 32s, thanks. Your helpful piece of #include code makes OTA smooth for both 8266 and ESP32s. I especially like the RTOS ESP32 twist. It works. Onward to TelNet for debugging OTA and to see how this all works with Blynk, which I use all the time. Thanks, Andreas. Much appreciated.
You're welcome!
@@AndreasSpiess This quickstart into OTA is fabulous. Your code made it easy to get my Blynk-enabled ESP32s and 8266s updating OTA with little/no problems. All very quickly, thank you. (Change the 7 to an 8 in OTA.h line 23, and it's PERFECT!) Good intro to TelNet and PuTTY as well. So simple with your guidance. Thank you once again. Most helpful.
Thank you so much for this vidéo Andreas :)
My pleasure!
Very useful video, sir. I'm happy to see more code taking advantage of the ESP32. Dev boards are close enough to the 8266 in price that it's worth using the 32s even for simple projects. The extra uart is nice for Nextion screens. ITead just needs to rework their editor to be a little more user friendly.
The ESP32 has many advantages. So there is no real benefit in investing into ESP8266.
Great Work Andreas! What would we do without you ;)
Just drink a Sunday beer in a sunny Beergarden ? ;-)
@@AndreasSpiess Yes! I hope if you stay next time in vienna we have time together to do this and talking about technical news...
Thank you for another great episode.
Please make the RTOS episode.
We will see...
I'm having trouble finding the video shown at 6:19 talking about using the FTDI board to read the serial connection. Which video was that in?
Thank you for this great tutorial, subscribed immediately - although I suspect it's getting crowded in the first row! I have Telnet remote debugging working on the ESP-01, all that's needed is to add "#include TelnetStream" and add "TelnetStream.begin();" in Setup. And I've only been playing with ESP-01 for a few days ;-)
Welcome aboard of the channel!
So helpful. Thanks
You're welcome!
Useful and necessary if you have sensors not on your workshop table but somewhere in the roof...
Exactly!
Thank you so much !
You are welcome!
Excellent and usefull !
Thank you!
Greutzi Andreas, I'm back in Zürich 18 Aug to 21, part of my older son's wedding. I'm even planning to do the Limmat swim! I hope you are having a great holiday. Thanks for this video. I am writing a BLE-based logger for ESP32 devices and will post it to the Reflections repository on Github in the coming weeks. It will support multiple devices logging to what looks like local Serial, and a central logger will display the logs. It will also work over an Internet connection to a central log server. If you already have seen something like this please let me know, so I don't waste my time re-inventing the wheel. -Frank
There are loggers like github.com/jandrassy/TelnetStream (I even made a video about it, if I remember right). But all go via WiFi.
I wish you a pleasant stay in Switzerland and hope the weather will be fine for the wedding! At the moment, we have quite a lot of rain (which is suitable for nature, of course).
@@AndreasSpiess merci!
Andreas, thanksfor the video. I'm sure you already know, but just for the records: OTA also works absolutelyflawless with ESP8266
You are right.
Excellent 👍 Work Perfect
Great!
man.you are a life saver :)
Thank you!
very helpful... Tanks
You are welcome
Thanks for all of your videos, you are going to be my favorite youtuber about microcontroller. But I recommended that if you call another video for more details, you could link in a box that video in the video. Thanks anyways for the good stuff.
You are welcome! Usually I place a card in the upper right corner if I mention another video.But maybe I forgot one or the other :-(
@@AndreasSpiess yeah, maybe there is a issue with cards, but it's easy to find the video because of the numbering of your videos.
Thx for some interesting things
You are welcome!
Many thanks!!!
You're welcome!
Good tricks Andreas. Creating a mock-up sketch with OTA&credentials , so smart
I've been using remoteDebug to get a serial port when deployed, but recently I've got some troubles with websockets. I'll try your telnet suggestion.
Thank you so much!
BTW, I encourage you to dig into FreeRTOS as it gives you a lot more possibilities to manage many tasks concurrently
I also had problems with other remote debugging libraries together with OTA. This one worked.
Thanks Andreas for not only being succinct, organized and creating very useful content. You are also fun and your videos are pleasurable. Now in addition to being a channel subscriber, I’ll put a zero at the beginning of my youtube username lol
Good practice if you want to be first!
Great. Thanks!
You are welcome!
Thank you ✨😊
You’re welcome 😊
Very interesting. I also have a trick for when you use a battery driven device that sleeps a lot, e.g. a sensor like the bme680.
In that case loop is never reached and the device goes to sleep very fast. So, I use a loop in the setup that looks for the bme680
and in that loop I add the OTA handle.
All I have to do is disconnect the sensor and the device keeps looping and I can connect via OTA. You could use a switch or button
to disconnect the sensor.
Great tip! Thanks!
you are amazing :D
Thank you!
This is a great video. Best explanation on how to do it. I know I'm a little late but credit where credit is due. I use the wemos d1 and have never had to reset after an ota update. My only complaint is that espressif should've released a more powerful board by now. They're the best other than a pi zero or whatever the new wifi mini pi is called. Anything pi related in Canada that isn't a Pico is at least 115 dollars where as an esp32 is about 20 now. More program memory and a faster cpu like the teensy has been doing for years but the teensy is 60cad.
I most of the time use the ESP32 which is much stronger than the ESP8266 and not much more expensive...
@@AndreasSpiess the chip shortage has affected esp32 modules. Where you used to get 5 for 30 dollars, 2 for 30 is the going rate while the 8266 is now 5 for 50. It's made me realize (which is somewhat contradictory to what I said previously) the 8266 can do alot of the same things I need without any appreciable notice in lag for some of the devices I make. They're nothing special, just iot devices that do simple things usually lighting related. Haha. I've been doing alot more circuit stuff recently, like learning more about passive component along with digital logic ics, respectively. I have more of a software background than hardware and I find that more interesting learning wise.
Hi Andreas, very useful video, as always. You've helped me a lot with my projects!
I wanted to mention a correction to your description of OTA. It appears that the ESP32 maintains two areas of memory, OTA1 and OTA2. The Esspressif OTA mechanism always loads the new firmware in the unused portion, and, if successful, switches over the boot pointer to the new area of memory. Thus the previous firmware is not written over as implied in the video, and is available for a rollback. This from docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/ota.html
Again, thanks for all your help, and also, Grüezi from Yverdon!
You are right. Because it happens on the background I did not want to make it more complicated than necessary.
Thank you very much for that, very helpful explanation. Could you please explain what this line is for "unsigned long entry;" in the 0TA_Template_Sketch.ino?
Maybe I forgot to delete it if it is not used
Thanks a lot!
You're welcome!
Hello Andreas, Thank you for another great example. I finally got it working but I struggled a bit because I decided to use VSCode and PlatformIO (one of your other awesome videos). The part that stumped me was the way PlatformIO automatically selects the upload connection. Normally that is a good thing but I wanted to test the OTA connection. It turns out I needed to add a line to the platform.ini file like this "upload_port = " where "" is the value printed to the serial monitor. Maybe that will help someone else. Thanks again!
There were a few other comments about the same fact. So you are not the only ;-)
Andreas, great job! Works like a charm. is there a way to SET the upload IP address? The IPAddress command doesn't seem to work. I suspect it has to do with the placement of the IPAddress command?
The IP address is usually given by your network.
nice it works
Good to hear!
Thanks very much! More information about RTOS would be great imo. Also cant the otahandle function be called every once in a while by a timer interrupt? Especially as it doesnt take to much time anyways.
Try it, maybe it will work. I do would not like this structure.
@@AndreasSpiess Use another thread, not an interrupt.
Another task did not work :-(
@Andreas Spiess : I tried it and also and had some problems, but I was able to fix them:
1. I had to reduce the sleep time between the calls to 5ms (10ms is too long)
2. I had to increase the stack size to at least 1900 byte, (1800 byte is not enough)
call this in setup():
TaskHandle_t xOTATaskHandle = NULL;
xTaskCreate( vOTATaskCode, "OTA", 2048, NULL, 1, &xOTATaskHandle);
define the task function and remove the 'ArduinoOTA.handle()' call from loop():
void vOTATaskCode( void * pvParameters ) {
for(;;) {
sleep(5);
ArduinoOTA.handle();
}
}
@@michaeldreher1372 @Andreas Spiess I've managed to get this working slightly differently to Michael but had to change a few things. Mind if I send a pull request with the updates? (I'll have to do them in a tidy way first, currently code is full of debug prints)
Also small note about upload: image was uploaded to one of two partitions (free one), then if all ok and md5 match, bootloader would be told to switch to use that partition. So nothing to memmove. (i may be not accurate, digging into the code a few years ago to check what's wrong with http ota, and i don't know what is used for SPIFFS, because i only use it to store config.json).
I think you are right.
Grüezi Andreas, great video again!
The sketches I dowloaded from your link are quite different from them of the video ("#define ESP32_RTOS " at the begin of the "0TA_Template_Sketch" for example ).
Can I use them without changes with an ESP32 (except SSID and password of course)?
Thank you!
I do not remember the details. I would just try it ;-)
we can save the library in the epprom memory ? with this form we don’t need to use the library because we have in the bootlouder
You can do a lot of things if you want. Current C++ architecture compiles and links the libraries into one bin file.
Hello, thanks forvthe video, do you know how i can perform ota using esp32-idf over gsm module?
Search for "otadrive ESP32"
This video already helped me at 2:50... i never thought there are different partitioning schemes on ESP32s, since i had only 4 option in that menu by using a Lolin32 option. I am writing thing with lots of libraries and i run out of space. I will try these, i think it will help already.
Available partitions depend on the board you select.
Hello Andreas! Is this method possible to modify to using BLE? I would like to create a peripheral that is using BLE and has OTA.
I never saw OTA using BLE so far. Which does not mean it does not exist ;-)
Thanks, Andreas. Just the two hints on creating your own sketch templates and #include "MY_WIFI_CREDENTIALS.h" made my day. Brilliant time-savers.
Glad it helped!
Very interesting but above my familiararity ? level at the moment. Will need to get back to this when I have done more.
This seems to be a good plan!
Wonderful
Thank you
Great video as always. What do you think about offloading the OTA functionality to the second core? Might keep the main sketch cleaner.
Also I’ve struggled to get remote debug working with Platform IO. Would love you to delve into this in a future video.
1. I see no advantage to "offload" 41 microseconds to another core. Maybe in another process would be a possibility.
2. I will not cover platformIO on this channel other than teasers. Most of my viewers are on Arduino IDE