[#4] ESP32 on Zephyr OS: PWM, pinctrl, Timer [Part 4]

  Рет қаралды 7,290

The Pull-up Resistor Channel

The Pull-up Resistor Channel

Күн бұрын

Пікірлер: 57
@MrMKFreak
@MrMKFreak 5 ай бұрын
Fantastic series, great introcution into using Zephyr OS and how to go about facing challanges during development. Loving this series
@thepullupresistor
@thepullupresistor 5 ай бұрын
Thank you very much! :-) You made my day.
@MattyJ66
@MattyJ66 Жыл бұрын
Amazing tutorial. The story approach with hiccups along the way is effective and insightful. Much appreciated
@thepullupresistor
@thepullupresistor Жыл бұрын
Thank you very much for your kind feedback. It's good to know that the story approach is helpful, I will try to continue to find ways to make the learning experience more effective.
@ConorMcQuaid
@ConorMcQuaid Жыл бұрын
Just finished watching all 4 videos. Superb content, impeccable presentation and excellent pedagogy. I am no longer so afraid of device trees. I may even start drinking tea again.
@thepullupresistor
@thepullupresistor Жыл бұрын
It makes me very happy that you found the video useful, and thank you for sharing the kind feedback. Device trees are definitely not easy to get started with, but I find that they do make more sense after a few cups of tea ;-)
@Wayazaexa42
@Wayazaexa42 8 ай бұрын
@@thepullupresistor They definitely make more sense after watching your videos! But maybe the choice of drink was my issue before finding these gems; too much coffee, not enough tea! 😅
@prashkd7684
@prashkd7684 Жыл бұрын
thank you for creating this series
@xiaoyi982
@xiaoyi982 Жыл бұрын
This video is a gem in the ocean. There are so many points to complain about Zephyr, yet zero complaints in the video. Instead, you turned this frustration into a treasure hunt. Well done, sir.
@andreyparovozz
@andreyparovozz Жыл бұрын
For version 3.3.99, you need to add #include to main.c, to *.overlay #include
@thepullupresistor
@thepullupresistor Жыл бұрын
Thank you for highlighting this for 3.3.99 and above.
@ParthSarthiSharma
@ParthSarthiSharma Жыл бұрын
Thank you, I couldn't find the solution to the error I was seeing. This helped me.
@philippsteiner1987
@philippsteiner1987 8 ай бұрын
Great Tutorial! Please keep up your excellent work!
@akshaynk130
@akshaynk130 Жыл бұрын
Coincidentally I was also looking at pwm and had coding done. Then I bumped to your video. Your video gives precise and deep understanding. Thanks a lot 😊. I wish you keep making more videos. Somehow in my esp32, for 20ms (also set 20ms in DT), setting pulse width using dt_pulse_set() returns invalid parameters.
@thepullupresistor
@thepullupresistor Жыл бұрын
That's great, thank you for your feedback. I hope you managed to find a solution to your issue with dt_pulse_set().
@KT819GM
@KT819GM Жыл бұрын
Quality content which deserves much more viewers. @creator just don't drop making these videos as subscribers will start to grow at some point.
@thepullupresistor
@thepullupresistor Жыл бұрын
Thank you very much for your kind feedback and encouragement! I'm enjoying the process of learning about the technology (and how to make videos) so having more people find the content useful is just an added bonus on top :-)
@Budiinag
@Budiinag 9 ай бұрын
Excelent explination tnak you so much.
@jamjestlx
@jamjestlx Жыл бұрын
This series was pristine, thank You! It was very helpful.
@JorgeYannie
@JorgeYannie Жыл бұрын
Finally I am starting to learn Zephyr thanks to your videos! keep the awesome job going! Thanks a lot
@thepullupresistor
@thepullupresistor Жыл бұрын
It makes me very happy to hear that you find the videos useful. I think Zephyr has a lot of potential and there are so many facets that I have still not explored.
@JorgeYannie
@JorgeYannie Жыл бұрын
@@thepullupresistor I hope you are releasing more videos soon!
@minhthuan2132
@minhthuan2132 Жыл бұрын
Thank you for providing such high-quality content that has helped me to learn more about ZephyrRTOS. I have a question regarding your statement at 14:50, where you mentioned that "any node that wants to use this compatible MUST provide 3 specifier." From what I understand, you meant to say "MUST provide a specifier with 3 cells" instead. Could you please clarify your opinion on this matter please, thanks so much !!!
@Duglah
@Duglah Жыл бұрын
Very nice video! I really like the part of you showing how to troubleshoot the errors. I think this is a part most tutorials are missing. Thank you! Can‘t wait for the next video!
@thepullupresistor
@thepullupresistor Жыл бұрын
That's great feedback, thank you! Working on video number five in the series now, and I think there will be some troubleshooting of issues in that one too, so I hope you'll like it as well :-)
@Budiinag
@Budiinag 9 ай бұрын
Please make it more videos
@Bananananamann
@Bananananamann Жыл бұрын
Absolutely next level content! This is such a difficult concept yet you take us by the hand and even make us take breaks to get tea at the right time! What a great teacher.
@enesalbay9707
@enesalbay9707 Жыл бұрын
I think phandle stands for peripheral handle
@thepullupresistor
@thepullupresistor Жыл бұрын
I see. If you do happen to find a source, please do share. I wasn't able to find anything definitive in the Devicetree specification, so I thought of the p as standing for "pointer" since phandle references another node in the Devicetree. But peripheral handle would also make sense to me as well. Thank you for sharing!
@jamespeterson7979
@jamespeterson7979 11 ай бұрын
Because it took me a while to puzzle this together, here is an overlay example for a stm32f411_nucleo_board. With pwm on the build in green user led (PA5): &timers2 { st,prescaler = ; status = "okay"; pwm2: pwm { pinctrl-0 = ; pinctrl-names = "default"; status = "okay"; }; }; / { pwmleds: pwmleds { compatible = "pwm-leds"; status = "okay"; green_pwm_led: green_pwm_led { pwms = ; }; }; };
@jamespeterson7979
@jamespeterson7979 11 ай бұрын
static const struct pwm_dt_spec fading_led = PWM_DT_SPEC_GET(DT_NODELABEL(green_pwm_led));
@thepullupresistor
@thepullupresistor 10 ай бұрын
Thank you for sharing!
@Wayazaexa42
@Wayazaexa42 8 ай бұрын
Oh, this might come in very handy, thank you! I'm using the same board, and I'll definitely reference this if I run into too many issues. I'll start off on my own though of course as my purpose when watching these videos is to fiddle around with zephyr and device trees and learn on my own.
@sopheaktrachhorn3401
@sopheaktrachhorn3401 Жыл бұрын
I hope you cover wifi and network stack soon
@thepullupresistor
@thepullupresistor Жыл бұрын
That's a very good idea! I'll start thinking about ways to present the networking portions, since that is probably one of the most common reasons for choosing the ESP32 series ICs in the first place. Thank you for the suggestion! However, I can't promise how quickly I can put something together, so I ask for your patience! :-)
@arunvijay6928
@arunvijay6928 Жыл бұрын
What a channel, if I make it big, I'll find you and send you a beer.
@thepullupresistor
@thepullupresistor Жыл бұрын
Thank you! Good luck and I hope you make it big! :-)
@nikoraasu6929
@nikoraasu6929 Жыл бұрын
I've been following this video, and It's great, I really learnt alot, but setting up the motor MCPWM drivers just doesn't want to work
@thepullupresistor
@thepullupresistor Жыл бұрын
I'm so glad that you learned a lot from the video, and thank you for your kind feedback. I'm sorry if I misunderstood your comment, but would you mind elaborating a bit on your problem with the MCPWM driver? In this video we don't use the MCPWM driver, but rather the LEDC driver. Again, apologies if I misunderstood your problem or if my video was not clear enough on this point. Please do let me know if I can be of further help.
@nikoraasu6929
@nikoraasu6929 Жыл бұрын
@@thepullupresistor Oh my problem was that I was following your video as to get the "basic" understanding on how to construct devicetree and bindings, but I couldn't get my own devictree and bindings based on MCPWM to work. My team have moved on to ESP-IDF though as we only plan to release our product on an ESP32 and we decided that going the Zephyr route when it's much harder than anything else is only going to complicate things. Anyways I will still follow this channel because I find the way you explain things much clearer than anyone else and it's also the most up to date guide, and that's important when Zephyr keeps having big changes with almost every update. I hope that when the technology becomes a little more mature I will dive into it yet again, but for now it really proved to be too much for a beginner software engineer like me!
@emoutraspalavras-marloncou4459
@emoutraspalavras-marloncou4459 Жыл бұрын
I hope you continue the series and show also pwm with servos, serial, i2c, spi communication with some sensors, Bluetooth, Wifi and EspNOW protocol in ZephyrOS
@thepullupresistor
@thepullupresistor Жыл бұрын
Thank you for your comment and suggested topics. I am working on the next video already, but I will consider your suggestions for subsequent videos.
@nicoladellino8124
@nicoladellino8124 Жыл бұрын
Very nice video, TNX.
@thepullupresistor
@thepullupresistor Жыл бұрын
Thank you very much for letting me know, it is very motivating :-)
@mostafanfs
@mostafanfs Жыл бұрын
Very informative
@thepullupresistor
@thepullupresistor Жыл бұрын
Thank you for letting me know. I hope you'll have fun with Zephyr and make some projects using it :-)
@solowplaysmc9013
@solowplaysmc9013 Ай бұрын
At 18:35 , you put compatible = “pwm-leds”; Would this not be compatible=“espressif, esp32-ledc”? If not where did you get this pwm-leds from. Otherwise very good video though :)
@thepullupresistor
@thepullupresistor Ай бұрын
That's a great question, thank you! You can certainly use the espressif,esp32-ledc compatible directly if you would like. However, using pwm-leds adds another layer of abstraction so that you could easily change the underlying microcontroller to another family or even manufacturer, without having to make any change to the source code, only a few changes in the devicetree. This comes back to the concept of separating the application code from the hardware that Zephyr is trying to do. If you have a look at the generated devicetree for the application under build/zephyr/zephyr.dts, you can see that the pwmleds node (using the pwm-leds compatible) refers to the node &ledc in its pwms property. If you look up the ledc node in the same file, you will see that it indeed uses the espressif,esp32-ledc compatible: ledc0: ledc@3ff59000 { compatible = "espressif,esp32-ledc"; ...... So, we are just using an extra layer of indirection to separate application code from hardware. Does that make sense? Sorry if I misunderstood your question, and thanks again for making a great point!
@solowplaysmc9013
@solowplaysmc9013 Ай бұрын
@@thepullupresistor Thank you very helpful sir.
@platin2148
@platin2148 Жыл бұрын
I do wonder how can i create my own drivers? As i have fpga defined hw..
@thepullupresistor
@thepullupresistor Жыл бұрын
I'm working on a custom driver video right now, so I hope that might be helpful when I complete it :-)
@JonathanDeneault
@JonathanDeneault Жыл бұрын
@@thepullupresistor can't wait for that video to come out. Subscribed!
@ridgeAndcompany-nm7qt
@ridgeAndcompany-nm7qt Жыл бұрын
Keep it going! This is a great series. Are you going to do a WiFi tutorial too?
@thepullupresistor
@thepullupresistor Жыл бұрын
Thank you very much for your feedback and encouragement! A WiFi tutorial is definitely on my list of potential future videos, but I can't make any promises as to when I'll be able to get around to it, unfortunately.
@ntn888
@ntn888 Жыл бұрын
@@thepullupresistor oh i didnt know zephyr did wifi. thats great. hope you cover ble as well... thanks for the content. GOLD.
@AhmadFirdausIdris_AFNAN
@AhmadFirdausIdris_AFNAN Жыл бұрын
Nice video. I tried using PWM for my project where I have 2 esp32 running pwm to drive led. initially they blink in sync, over time, after few hours, they are out of sync already. do you any idea or work around to solve this?
@thepullupresistor
@thepullupresistor Жыл бұрын
Thank you for the feedback. With regards to your project using two ESP32s where the PWM LEDs go out of sync after a few hours, I've not experimented with the accuracy of the different ESP32 clock sources, but the two things that came to mind was either to use a more stable internal clock source (if you're not doing that already), or to use an external crystal that provides the same clock source to both ESP32 ICs. Please do share if you get it working. Out of curiosity, would you mind sharing what your project is for? Using two ESP32s sounds interesting!
[#5] ESP32 on Zephyr OS: OLED Display (SSD1306) [Part 5]
35:43
The Pull-up Resistor Channel
Рет қаралды 8 М.
[#6] ESP32 on Zephyr OS: Custom Device Driver [Part 6]
22:02
The Pull-up Resistor Channel
Рет қаралды 3,9 М.
Cute
00:16
Oyuncak Avı
Рет қаралды 11 МЛН
escape in roblox in real life
00:13
Kan Andrey
Рет қаралды 74 МЛН
Секрет фокусника! #shorts
00:15
Роман Magic
Рет қаралды 114 МЛН
[#2] ESP32 on Zephyr OS: "Hello, world!" (Blinking LED) [Part 2]
16:02
The Pull-up Resistor Channel
Рет қаралды 10 М.
How 3 Phase Power works: why 3 phases?
14:41
The Engineering Mindset
Рет қаралды 1 МЛН
Mastering RTOS Debugging Techniques
1:00:04
Jacob Beningo
Рет қаралды 18 М.
Using PS3 Controllers with ESP32 | Build Custom Remote Controls
1:08:17
DroneBot Workshop
Рет қаралды 104 М.
Zephyr RTOS Intro - And why I love it
39:37
ANTSHIV ROBOTICS
Рет қаралды 7 М.
The intro to Docker I wish I had when I started
18:27
typecraft
Рет қаралды 94 М.
The BEST EVER IOT Project using ESP32 🔥🔥 | PCBGOGO
19:44
Cute
00:16
Oyuncak Avı
Рет қаралды 11 МЛН