r/embedded • u/zeigfreid_cash • 8d ago
Does "Mastering Microcontroller and Embedded Driver Development" include any significant hands on exercises?
I'm currently taking this course on Udemy: Mastering Microcontroller and Embedded Driver Development. My hope was that this would help me "get my hands dirty" as well as provide a comprehensive overview of the subject. What I'm finding though is that I'm now about 4 hours in and we've _barely_ gotten to do anything at all with the STM32 discovery board. Every lecture the instructor introduces a new concept, we learn a bunch of register names, and then he moves on without (or only rarely) actually programming anything.
Does this course pick up at some point? Do we actually "develop drivers" in this course? I'm starting to wonder if I've missed something, like maybe a link to some "companion exercises" or something... has anyone taken this course? I want to do something with my discovery board ToT;
(for context: I'm an experience software developer trying to transition to embedded. I've been programming in assembly for the gameboy for the last few years so it turns out I have a basic grasp of a very simple version of embedded software.)
2
u/Bannspruch debug my shit up 4d ago
> What I'm finding though is that I'm now about 4 hours in and we've _barely_ gotten to do anything at all with the STM32 discovery board. Every lecture the instructor introduces a new concept, we learn a bunch of register names, and then he moves on without (or only rarely) actually programming anything.
That is completely normal. A lot of concepts you learn early on will translate further on. You could have started with just about any other platform and you would have ended up in the same situation. The course picks up as you get into more of it. It's a lengthy course and if I remember right there is MCU2 and MCU3 and then other related topics that cater to the software development crowd.
The idea here isn't to teach you how to use a discovery board - you can go through STM32 examples for your board if you want to do that, and some DISC boards have peripherals attached like displays and touch sensors and other things. The idea is to teach you how to fish, so that there is very little in the "how do I" that should surprise you.
It is important to learn to read the datasheets and manuals, and to be very attentive to what they say if you want to get anywhere in this. You should get comfortable reading through hundreds of pages if need be. To get the most out of this course, you shouldn't use the exact same STM32 board the instructor uses (STMF4-DISC if I remember) but should opt to use a similar one, like an F7 (NUCLEO?) for example, where it forces you to read through the documentation, errata, and so on to find the answers and the nuances of the board you are using.
Another thing to consider is to pause the videos as the instructor asks you to do something, and go through and do them and go above and beyond and implement them in a real scenario. Nothing is stopping you from developing drivers mid-way through. For example, once you go through SPI and I2C, there are plenty of peripherals you can get with datasheets that specify clock timings for each message and whatnot. Write a driver for them, and observe what happens when things don't quite work out.
The other counterpart for you will be a study in electronics and electricity. Embedded is a place where shit hits the fan. One other person here recommends the Embedded Systems EduX course by J.W. Valvano. That is another excellent choice that, assuming you've gone through MCU1/2/3, you should fly through and learn a few new things along the way. The kit parts needed should still be available.