ST should pay you for these tutorials as none of their engineers has so far managed to explain HAL libs in such detail. Please make separate vids on different peripherals and then some example application implementation for each.
It would be super cool if I got in touch with ST. I'd be a bit embarrassed to show them my first video in this series. It was riddled with mistakes, such as the specs for the blue pill. My channel is probably still too small at this point for them to care about any sort of sponsorship though.
Completely agree. ST documentation sucks a lot: literally thousands of pages and nearly nothing useful (it's much faster to see a code implementation and figure it out by yourself than to read the documentation). They really should hire this guy to clarify and fix it on human-readable and usable language.
It's very likely that ST has a training division that charges big bucks to attend their classes. It's a major source of revenue. At least that's the way I've seen it done at other companies.
This is slowly becoming one of the best bare metal ARM programming courses. Very few other videos/courses explain direct register manipulation and the intricacies of working with the datasheet and reference manuals. They're mostly just "yeah so the HAL is this and this and this". Thanks for this video.
Glad to hear that! My #1 goal isn't to just tell people exactly how to do something. I want to focus more on how you would be able to find it out on your own. The answer to "how do I use PWM" shouldn't be "go look at this person's video". Instead, you should be able to learn it on your own by reading through the necessary documentation. It's a bit scary to do though if you aren't familiar with it, so I'm trying to ease into documentation reading while still being practical.
@@MitchDavis2 you have successfully done that. I’m studying mechanical engineering but I can say I was definitely able to keep up with the explication. Thank you now time to use my STM for some PWM used on stepper motor.
@@MitchDavis2hello! Can you please give me an overall idea of the benefits of combining an mcu with a DSP? And some combo examples in real life and the jobs they do?also, this lesson applies to rip Pico's also, correct? Compare the st model you used to the pico abilities wise, please.
Your series are hands down the best resources for beginers to learn STM32 🙌 I beg you to make more. I feel like I'm receiving enlitament whenever you explain a new concept 🙇♂
I'm glad to hear you think that. I'd love for more people to follow me, but I also don't want to turn into that stereotypical person who never stops saying "DON'T FORGET TO SMASH THAT SUBSCRIBE BUTTON". That being said, I'll certainly never be opposed to other people sharing my content if you really like it.
@@MitchDavis2 Do it! I don't mind being asked to subscribe when the content is as good as yours. I hope that you continue to make STM32 videos, you're an excellent teacher and you are very articulate.
I would love it if you kept this series going as it has helped me understand the auto generated code which is super scary when you just begin working with embedded systems and the documentation is so hard to navigate if you're new to stm32, so please keep this series alive!
You not only teach practical applications, but also teach us how to learn new things on our own. This is honestly amazing. You are so thorough with your explanations. I truly appreciate the effort you put into your videos. Please continue doing this 🙏 thank you!
Oh boy do i enjoy your tutorials👍👍👍👍 having bought 2 packages that are supposed to teach me stuff about stm32 i thought i was a dumb person and I'll never understand stm32 but after only watcning this 5 videos i have learnt so much in so little time and im so excited to go and start reading reference manuals and hal documentations and learn and figure out everything by myself but i wish i had a teacher like you
Very enlightening Mitch. You have given me an understanding of registers. With this, I am going to try register manipulation using Forth Programing Language.
I think I would not find the function __HAL_TIM_SET_COMPARE without you guide, thanks a lot. Your explanations are great, I think it is one of the best embedded guides I watched. some interesting points in the video: 2:22 enabling the "auto reload" is not needed 5:43 great explanation of passing argument with reference to structure 9:17 HAL TIM documentation 16:51 __HAL_TIM_SET_COMPARE() the function we are looking for 19:49 Bare Metal 21:38 TIMx->CCRx the relevant register 23:26 TIM2->CCR1 = some_new_value
Hi Mitch, I really want to say that this series of videos is the best intro course for me to self-study those embedded system-related among all stm32 videos on youtube! As a CS student who wants to learn some chip manipulations, the most difficult part is always the setups and the wire connection issues. Really appreciate your videos and hope you could come up with more interesting videos about stm32!
You are the only ONE that I have learned a lot from by watching your videos. It´s easy to understand you and you take up and explain parts that others miss that are crucial to understanding STM32 programming. Love your videos so keep up the good work and thank you very very much indeed.
I am from Brazil and I really like all your vídeos about STM32. The quality of your explanation and detailed information that you have added inside the video editing were fantastic. If you could launch a course about STM32 I would pay for it at the first time. You may talk about PWM output controlled by a rotary encoder, ADC showing conversion on LCD display, some kind of communication using LoRa devices or GPRS modules, etc. Starting from simple codes and re-using them to create complex codes and application.
I've found CubeMX and HAL to be massive barriers to actually understanding STM32... I've just got this talk on as background whilst I'm soldering right now.... I'm going to come back and watch this properly later... This sounds like you've got a very interesting approach going on here.
Starting with stm32 microcontroller and no better person than you explained the programing well. Thank you and keep up the good work. Please continue this series as it gives me great confidence to ditch arduino IDE and use STM cube IDE. Cheers!👍
Hey Mitch !! A big thanks for this video series. I started with Blue-Pill & STM32 tools ( NO ARDUINO ) & created a simple Voltmeter as my first usable project. Right now I am planning to try PWM & I already feel confident after watching your videos on PWM & Timers. Your videos & this series has been key enabler for me. I couldn't find such tutorials on STM32 elsewhere. Your skills & efforts are much appreciated. Further, I request you to please consider adding more tutorials to this series if possible.
please upload more videos on stm 32 please this is really helpful if you can create a course than that be more helpful on udemy or any other platform please try to do so i am really enjoying the way you explain things and thanks a lot for all the content that you put lots of love from india
Appreciate your efforts with simplicity that we need more of it to teach anything,keep going without look back to no. Of subscribers , There are some people in the world care and learn from your amazing work. From Egypt I thank you 👍
Sometimes I feel like my "what we did last time" parts of the videos do a better job of explaining than the previous video itself. :/ Also, thanks again for pointing out my mistake last time
Hi this is very incredible video series, you showed clarity, simplicity and a very comforting pace of of conveying complicated information. you are a extremely good teacher. i am very much a fan now and i am looking forward for the next video. Hats off !!
I’m glad it’s useful. I also do that as a challenge to myself. If there’s too much text on the screen, i might be trying to explain too much at once. It forces me to find ways to introduce things in bite-size chunks. Sometimes it’s not so easy to to though….
You are definitely one of the best instructors for STM32 stuff. I see a great book from you on STM32 hardware/software in your future. 👍 Mitch, look at the number of views vs. number of subscribers. I think the fact that you have about 3 times the number of views to subscribers says two things. One, your content is deemed valuable by STM32 aficionados. Two, if you had more STM32 content, may be you would get more subscribers. Just my two cents. Keep up the great work.
Mitch! We are waiting for the next part. Itll be good of you if you continue with the course like keypad,lcd,usart and many more...and you are best tutor for embedded as far as i know..
This is a well put together tutorial, taking me from scratching my head to ahhhh!! I was thrown in the deep end at work, tasked to improve the functionality of the STM32based equipment. I needed something that will teach me the basics in one evening. You did it. Thank you!
This is the power of the internet and what it should be used for. 4 hours ago I stared blindly at an STM32 microcontroller and now I'm driving stepper motors with it. This is the evolution of education. Making things easier to understand and referring to similar constructs that your audience understands (referencing Arduino), making easily interpreted graphics, explaining the simplified interworking of what's actually happening and distributing it to the world (well except for North Korea). Keep creating this educational gold. See past the profit from the videos and understand that content like this can change the world. It might not be me or you but someone who watched this might someday solve one of humanities greatest problems... or develop AI that destroys humans because it knows we're the earths problem. Either way, nice work
I an EE trying to break into the firmware scene. I have been up and down datasheets, reference manuals, and online courses to get better at this stuff using STM32. Your videos are extremely clear and gets straight to the point. I had to go through many mistakes and reading to get to acquire the same information. So thanks for your hard work on your STM32 videos!
Very high-quality videos, keep it up! I have a nucleo64-G474FE board (which was given to me from my university), followed the steps. Only Timer 20(TIM20) in CH2 mode had a PWM signal to an output. Thank god the box has a pin layout with the names and which pins on the board they are. I only have a multimeter but it was obvious it worked when I connected it to the desired pin and ground. I have no prior knowledge of these things except for a bit of Arduino and basic C stuff. I now have a very rough foundation as to what I'll need for my project. I need to control a stepper motor and have some sort of connection from the board to a PC, to change things on the go, I believe. I think the CubeIDE helps a lot for this. Again, thank you for the videos, they are longish but they go by with ease.
Excellent video. I think the definition of duty cycle is time high / period x 100% and resolution is related to the number of bits to represent the duty cycle. For an 8-bit PWM, there are 256 levels, so 100%/256 is the resolution. I might be wrong.
Greetings Mitch! Hello, right now I'm in a middle of a project and maybe should using stm32 because one and other reason. Your video very helpful and easy to understans, i love it, very much. still waiting for the next part tho. keep it up, I'm pretty sure there are a lot of people that waiting too.. Great Work!
Anjir bwang, i'm rarely seen sucha indonesian person among the stm32 tutorial video. It seems like u getting struggle with it innit ? Me as well hahaha.... Stm32 is more complex to master than any other mcu. I'm a mechatronic student in poltek batam... We covered mcu intensifies since the 1st year... And yeah, i can't help myself with this mcu to get further as fast as other mcu was. Best regard buat anak undip lainnya bwang 🙌
Once again congratulations and thank you for the great content you are really a great teacher. Very cool the way you taught how to use the datasheet. Teach how to do and study. I really hope you continue with this great job!
Mitch it was a great tutroial and i finally got it to work, my big problem wes the _ _ before the HAL and you said it but it went over my head thanks it was great and i appreciate your effort . MY next tast is to buld a switching power supply with thepwm from the bulePill bob
Hello Mitch, Do you plan to continue this series of STM32 Tutorial? ADC, USB ... It appears to be the best I've ever watched!!! Maybe not anymore time for that. Wish you the best :)
Hey Mitch, these videos are incredible! Thanks for all of the time you've spent putting them together! Any chance we can expect this series to continue?
Yes. For the past few months, I’ve been working with a company who will be involved in the next few videos. Filming hasn’t started, but the content is nearly complete
If you are looking for new video suggestions, maybe you can try using the provided sample applications by STM32 and add features on top of it. I think this would allow beginners to immediately create meaningful applications since the time to learn how to build boilerplates and such deter a lot of newbies from using this for hobby projects and such. I think that understanding and modifying existing code is also a pretty useful skill especially for junior developers.
CubeMX and HAL is great to use until it's not. They are buggy, missing some hardware features, and slow. Just look at one of their interrupt routines, and you will understand what I'm talking about. Also, it has too many abstractions just to set a few hardware registers. Your video makes a great example in showing that it's really not that hard to do your own implementation. Thanks for the video.
Well, they gives you extra option and you can decide if you go straight to the registers or use HAL. Regarding HAL you can switch to LL (Low Level ), it will make bit less abstraction but it will be harder to migrate from one chip to another. So it is an option, not a rule and you're free to choose what fits you best. [Project Managment] ->Abvanced Settings ->Change from HAL to LL.
I try to avoid taking any stances on "what is good and what is bad". Instead, I like to explain how something works, and let people decide if they like it or not. There's countless frameworks, IDEs, Compilers, and entire ecosystems out there. The scary part is trying to figure out how they all compare to each other. The only important thing is that you make an educated decision on what you like best. If you watch this whole series and fall in love with HAL, cool. If you watch it and think it's disgusting, that's fine too. I just hope that I provide enough info for people that they can make their own decision instead of just echoing something that someone else told them. Arguably, this whole series is basically just me documenting my own journey to figure out what I like/dislike. I still don't know yet.
@@MitchDavis2 For a hobbyist or an amateur, it doesn't really matter what you use. If it works, it works. But in a production environment, you want to control every bit of instruction your CPU execute. Using third party libraries get you started, but in the end, you want to get the control back. I think your video series are helping people find their path in this regard. BTW I really loved your execution in this video. Going from higher abstraction to register level programming made understanding how the peripheral work easier. I'd say you are on a good journey. Keep up the videos coming!
@@sfaunl Not always. Depends if project manager can understand that and willing to pay for it. Sometime crazy things happens and you have no other choice rather than do what they want. And from the other side, if you have enough memory for you code and chip can do all tasks in time (for example alarm clock which communicates with RTC module), then getting down to assembler level would be waste of time and money.
@@goodwill7643 Of course, you are right. I'm not saying that one solution fits all. I'm talking about when writing for example a mission critical code, you need to write code according to your constraints. Everything has time and place.
Right now, I work on videos on weekends, which is all the free time I have. I often completely scrap my videos and start over because they don't flow right. Hopefully I'll get more efficient as I continue to make videos. My original goal was to post 1 video each week, but now it takes much longer than that. I'm hoping the new video topics will be a little bit lighter so I don't have to spend 8 weeks to make one video again.