No video

[#1] ESP32 on Zephyr OS: "Hello, world!" (Blinking LED) [Part 1]

The ESP32 family of microcontrollers are capable devices with many built-in peripherals, including Bluetooth and Wi-Fi. The official SDK and toolchain is the ESP IoT Development Framework (ESP-IDF) and uses FreeRTOS as its real-time operating system.
However, in this tutorial series, we'll use the Zephyr real-time operating system and SDK to program the firmware for the ESP32.
Links:
Zephyr Getting Started Guide: docs.zephyrpro...
ESP32 specific instructions: docs.zephyrpro...
ESP32 Technical Reference Manual: www.espressif....
Zephyr Devicetree Mysteries, Solved: • Zephyr Devicetree Myst...
Github repository: github.com/bok...

Пікірлер: 78

  • @GabeShaikh
    @GabeShaikh Жыл бұрын

    Absolutely phenomenal series of videos! This is the best introduction to Zephyr I have found anywhere and I have looked far and long. Thank you so much! I am excited to see your channel take off and to keep learning with you.

  • @thepullupresistor

    @thepullupresistor

    Жыл бұрын

    Very happy that the videos have been helpful! I'm sure that more Zephyr material will become available over time as adoption grows, but I suspect that the initial learning curve is quite steep for many people, especially those with limited previous exposure to Devicetree.

  • @BillXT11
    @BillXT11 Жыл бұрын

    First clear and detailed video to learn Zephyr from scratch! This is great for us migrating from Arduino.

  • @thepullupresistor

    @thepullupresistor

    Жыл бұрын

    Arduino is great, and that was how I was first introduced to microcontrollers as well. The community is also very large and there are loads of fantastic documentation and tutorials out there for Arduino. Hopefully, we will have more tutorials and learning materials for Zephyr over time, just like Arduino already has. Thanks for taking the time to leave your comment, it made my day :-)

  • @ryun_d3v
    @ryun_d3v8 ай бұрын

    Wow, what a video! Sufficently in-depth and practical. Great explanations without skipping anything that might be considered trivial to more experienced develpers. Congrats!

  • @octetta
    @octetta Жыл бұрын

    Thanks for this video, it's a great step-by-step guide. One thing that tripped me up was that I needed an empty prj.conf file in the helloworld directory to make the "west build -b esp32" command work. Hope this helps anyone with troubles near May 2023.

  • @thepullupresistor

    @thepullupresistor

    Жыл бұрын

    Thank you very much for letting others know about this!

  • @ParthSarthiSharma

    @ParthSarthiSharma

    Жыл бұрын

    Thank you for this. I am gettign the same issue

  • @vacagonzalo
    @vacagonzalo Жыл бұрын

    Top tier content. You should feel proud. Thank you for uploading.

  • @thepullupresistor

    @thepullupresistor

    Жыл бұрын

    Oh wow, thank you so much for your kind words! I'll try my best to continue making content that is useful and informative :-)

  • @shivdd1917

    @shivdd1917

    Жыл бұрын

    @@thepullupresistor please ...try with w5100 evb pico zephyr rtos

  • @deterdamel7380
    @deterdamel7380 Жыл бұрын

    Good work! Compact intro without unnecessary boilerplate content.

  • @thepullupresistor

    @thepullupresistor

    Жыл бұрын

    Thanks for the kind feedback!

  • @ephraimwestenberger3565
    @ephraimwestenberger3565 Жыл бұрын

    Thank you for these videos. Its the only resource that i have found so far explaining Zephyr clear and concise.

  • @thepullupresistor

    @thepullupresistor

    Жыл бұрын

    Thank you very much for your kind words. I'm glad that you found the video useful!

  • @user-ff2bz6sh7h
    @user-ff2bz6sh7h8 ай бұрын

    Perfect !! Best explaination of Zephyr. Please dont stop the video series

  • @milosjovanovic7678
    @milosjovanovic76782 ай бұрын

    Very good approach! It was easy to follow! Great series! Great job, just keep going!🔥 Thank you!

  • @wizardy6267
    @wizardy62679 ай бұрын

    Thank you for your highly educational video, very interesting. I just hope Espressif Systems could put a bit more resources like Nordic Semiconductor does to support Zephyr :) Looking forward to seeing the part 7 coming

  • @thepullupresistor

    @thepullupresistor

    9 ай бұрын

    I'm happy that you found the videos educational. I've been tied up with some other projects lately, but I still have the next two parts in progress...

  • @korkutterkan959
    @korkutterkan9598 ай бұрын

    Your six videos are the best tutorials in general I have seen so far on the web. Alongside JPJ's tutorials on Python and Tkinter. Very well structured, well explained and well presented. On top of that your calm voice makes the videos enjoyable even more. Thank you very much for all your effort! Do you by any chance plan to continue your video series?

  • @thepullupresistor

    @thepullupresistor

    8 ай бұрын

    Thank you so much for your very kind feedback. It is really motivating to hear that you find the videos helpful. As to your question, yes, I do plan to continue. Unfortunately my time and attention has been focused on some other projects recently. I can't promise any time frames, though!

  • @korkutterkan959

    @korkutterkan959

    8 ай бұрын

    I am very happy to hear that and looking forward for your next videos. Much luck with the other projects you are currently working on :)

  • @bayroncabrera7566
    @bayroncabrera7566 Жыл бұрын

    please keep going with this video series, Love it !

  • @thepullupresistor

    @thepullupresistor

    Жыл бұрын

    Very happy to hear it :-) Working on the next video in the series now, I hope you'll find that useful, too.

  • @usmanalibutt7832
    @usmanalibutt7832 Жыл бұрын

    Nice way to explain to newbies. Keep it up. 100/100

  • @SaieenTwist
    @SaieenTwist7 ай бұрын

    I am your 1000th subscriber.

  • @thepullupresistor

    @thepullupresistor

    7 ай бұрын

    Oh wow. Thank you for letting me know :-) I had no idea so many people would be interested in this topic!

  • @abdellahessetty1336
    @abdellahessetty1336 Жыл бұрын

    I absolutely love this. Thanks for uploading. Just one thing though, I would really appreciate a video on why to use Zephyr (some high level comparison with other RTOSes).

  • @thepullupresistor

    @thepullupresistor

    Жыл бұрын

    Very happy to hear that you enjoyed the video, thank you! And thank you for the suggestion on why to use Zephyr. I haven't planned to do a video like that (so far at least), as I suspect someone with more experience using Zephyr in real products would be better suited to provide their viewpoint. I am only using Zephyr for hobby use :-)

  • @alexscott4277
    @alexscott4277 Жыл бұрын

    Absolutely fantastic tutorial. First rate! Thankyou very much!

  • @adir2959
    @adir2959 Жыл бұрын

    Super! wating for the full tutorials.... Love from France

  • @thepullupresistor

    @thepullupresistor

    Жыл бұрын

    Merci beaucoup! 🙂

  • @fl4tcircl3
    @fl4tcircl311 ай бұрын

    Absolutely brilliant! Thank you very much!

  • @thepullupresistor

    @thepullupresistor

    11 ай бұрын

    Thank you very much, and I hope you'll have lots of fun with Zephyr!

  • @saidsoufi4267
    @saidsoufi4267 Жыл бұрын

    Excellent! Keep up the good work!

  • @thepullupresistor

    @thepullupresistor

    Жыл бұрын

    Thank you very much. I will try my best.

  • @iftekharulalam38
    @iftekharulalam387 ай бұрын

    great tutorial

  • @techxplorerxxx
    @techxplorerxxx Жыл бұрын

    Good content .. Waiting for the upcoming videos...

  • @thepullupresistor

    @thepullupresistor

    Жыл бұрын

    Thank you for your feedback and I hope to not keep you waiting too long :-)

  • @philippsteiner1987
    @philippsteiner19877 ай бұрын

    Great Tutorial! Thanks a lot!

  • @MattyJ66
    @MattyJ66 Жыл бұрын

    Perfect video. Well done!

  • @thepullupresistor

    @thepullupresistor

    Жыл бұрын

    Thank you so much! I've still got so much to learn, but your feedback encourages me to keep trying to improve!

  • @DAXFZ2300
    @DAXFZ2300 Жыл бұрын

    Thank you so much, this was very helpful to me.

  • @thepullupresistor

    @thepullupresistor

    Жыл бұрын

    I'm very glad to hear it! Thank you for taking the time to comment and letting me know.

  • @mathicalee
    @mathicalee Жыл бұрын

    Like that a lot!!😄 Just using xiao ble instead, but without any problem.

  • @thepullupresistor

    @thepullupresistor

    Жыл бұрын

    That's great, thank you for letting me know!

  • @sanya5881
    @sanya5881 Жыл бұрын

    super helpful!

  • @user-cu1gg4gl4r
    @user-cu1gg4gl4r9 ай бұрын

    Amazing video. I am trying to understand zephyr RTOS and program the RGB LED in the esp32c3 devkim-M1 to blink. It would be helpful if you could elaborate on the approach you took to gather the information about the RTOS such as the various macros in zephyr or the functions that are available in zephyr.

  • @thepullupresistor

    @thepullupresistor

    8 ай бұрын

    Thank you very much for your kind feedback! As for my approach to gather information about the RTOS, such as macros, etc. I want to be careful to offer much advice, because my way of learning may be very different from yours. But, for what it's worth, when I first started out with Zephyr, I watched all the videos online first, especially from the Zephyr conferences. That gave me a high level overview, but I didn't understand many of the details in the presentations until I started working on small projects for myself. Beginning with setting up the build tool-chain, getting a blinking LED, etc. However, the devicetree model of Zephyr was the biggest challenge for me. I suspect it has also been a big stumbling block for many others who does not have experience doing Linux kernel development. Making these videos helped me to dive deeper into the underlying macro "magic". However, it took me quite a long time to get my head around it. Sorry for not being more helpful, and good luck in your learning journey!

  • @noweare1
    @noweare1Ай бұрын

    Seems like a lot to go through. Is their any advantage of using Zephyr instead of the esp-idf with freeRTOS already integrated ? Does Zephyr use its own IDE ?

  • @thepullupresistor

    @thepullupresistor

    29 күн бұрын

    I think it depends on your specific situation. In particular, I think that Zephyr offers a good way to separate application code and hardware configuration, which could be important for large projects and projects that are looking at using more than one microcontroller family, for example. However, I program microcontrollers as a hobby, so Zephyr is more of a fun learning opportunity for me. And, yes, I feel that there is a long and steep learning curve, which is why I started making some of these tutorial videos so that hopefully my (many) mistakes could help someone else have a smoother learning journey. For my hobby projects, I mainly use Zephyr now for 32 bit projects (STM32, ESP32, RP2040) and avr-libc for 8 bit projects. And even when using Zephyr on ESP32, I can always use the esp-idf HAL directly if I need to. As for the question about an IDE, as far as I know there is not one "official" IDE for Zephyr, but CLion and VS Code seem to be popular. I think most modern IDEs should be able to handle the CMake-based workflow. Personally I use a combination of Emacs and the Zephyr CLI tool called west, together with OpenOCD and GDB. This is just my personal view, and I'm not associated with the Zephyr Project in any way, so you will probably get better answers and more diverse viewpoints by asking in the Zephyr forums online.

  • @yoctoleef
    @yoctoleef9 ай бұрын

    Great video, I have one question please, what did you use to make those animations of the source code ? I want to use the same for my training videos. Thanks

  • @thepullupresistor

    @thepullupresistor

    9 ай бұрын

    Thank you very much! I used the community edition of Manim (www.manim.community/).

  • @soyharso
    @soyharso Жыл бұрын

    Regards, How much memory free in dram0 has you ? Only with wifi connect is filled 79% , almos not margin for to the application....

  • @Nabilphysics
    @Nabilphysics Жыл бұрын

    Good Content.

  • @thepullupresistor

    @thepullupresistor

    Жыл бұрын

    Thanks for letting me know that you found it useful!

  • @juliane.jamioy6870
    @juliane.jamioy6870 Жыл бұрын

    Gracias (y)

  • @thepullupresistor

    @thepullupresistor

    Жыл бұрын

    ¡Es un placer! :-)

  • @mlann2333
    @mlann23334 ай бұрын

    I've run through the tutorial here but when I try to build I get this error message: west: unknown command "build"; do you need to run this inside a workspace? Any ideas ? I'm running this command from the helloworld folder and not src.

  • @thepullupresistor

    @thepullupresistor

    4 ай бұрын

    Sorry to hear that you're facing this trouble. Could you please try to run the shell script to setup the Zephyr environment? On Linux/MacOS you can run ". ~/zephyrproject/zephyr/zephyr_env.sh", assuming that your Zephyr installation is in the ~/zephyrproject directory. If you are on Windows, the equivalent script is zephyr_env.cmd in the same directory. I just tried it on my system (Debian 12) and it works. Please let me know if you're able to fix the issue. Thank you.

  • @mlann2333

    @mlann2333

    4 ай бұрын

    ​@@thepullupresistor It works, thank you !

  • @BS-channels
    @BS-channels Жыл бұрын

    hello there, I was working on zephyr os with the esp32c3 dev board. the build with the west tool is successful but it does not flash using west flash. can you help?

  • @thepullupresistor

    @thepullupresistor

    Жыл бұрын

    Hi! Very cool, I haven't been able to get hold of an ESP32C3 yet, so unfortunately I've not played around with it so far. I'm not sure if there's anything different about the C3 when it comes to flashing, but in my experience with ESP32 WROOM and WROVER modules there are a lot of things that can cause the flashing not to work. The most frustrating experience I've had is with unreliable FTDI FT232RL boards, so now I exclusively use the ESP-PROG since it has JTAG as well, is very fast and works every time. I'm happy to try and help troubleshooting, but may I ask that you share your exact problem, system setup, and what you have tried already in the Zephyr Discord #espressif channel? That way, if i can't help you, maybe someone else will be able to. Also, if you solve your problem, others with a similar problem can also learn from it. You can find an invite to the Discord channel on the www.zephyrproject.org/community/ website.

  • @voytek_two_thousand
    @voytek_two_thousand6 ай бұрын

    how do I connect the esp320 to the pc to download the code

  • @thepullupresistor

    @thepullupresistor

    5 ай бұрын

    Sorry if I misunderstand your question, but you can use any of the supported methods to program your ESP32 board. Personally, I use the ESP-Prog board because it has JTAG and serial (docs.espressif.com/projects/espressif-esp-iot-solution/en/latest/hw-reference/ESP-Prog_guide.html)

  • @anzalnizam3763
    @anzalnizam3763 Жыл бұрын

    west espressif monitor returns error in windows

  • @thepullupresistor

    @thepullupresistor

    Жыл бұрын

    I see. Have you been able to troubleshoot this issue? I don't use Windows, but hopefully you can use another serial console program to connect to the ESP32 if west espressif monitor doesn't work for you.

  • @danielcarpio4302
    @danielcarpio4302 Жыл бұрын

    I'm very new to this, what is the name of the terminal you use?

  • @thepullupresistor

    @thepullupresistor

    Жыл бұрын

    I'm using the built-in term in Emacs. But you can use whatever tools you prefer :-) Since you're saying you're new to this, welcome! It's a great time to explore embedded systems.

  • @zoenagy9458
    @zoenagy94589 ай бұрын

    How many files it created?

  • @thepullupresistor

    @thepullupresistor

    9 ай бұрын

    Sorry, but I don't understand the question. Would you mind elaborating a bit more to help me out, please?

  • @rastinder
    @rastinder Жыл бұрын

    can we run a vpn server on it?

  • @thepullupresistor

    @thepullupresistor

    Жыл бұрын

    I'm not sure, I'm afraid. Maybe someone else watching this knows better than me and can reply?

  • @huajunren7197
    @huajunren7197 Жыл бұрын

    what's your Linux version ?

  • @thepullupresistor

    @thepullupresistor

    Жыл бұрын

    I'm using Ubuntu 22.04.1 LTS.

  • @huajunren7197

    @huajunren7197

    Жыл бұрын

    Thanks for your reply, after trying 18.04, 20.04 and 22.04, I decide to take 2204