Save for later

Mastering Microcontroller and Embedded Driver Development

>> Your Search for an in-depth microcontroller programming course ends here . <<<

Course code: MCU1

Learn bare-metal driver development using Embedded C : Writing drivers for

Update 6 (Dec /2020) : videos are updated with latest

Update 4 (Nov/2018): Dedicated support team is assigned to address student's Q/A

Update 3 (Oct/2018) : English Closed captions are fixed

Update 2 (04/Dec/2017) : Added Bus matrix / memory map /vector table /interrupt design discussion with code examples.

Update 1 (26/sep/2017): Eclipse IDE setup for ARM Cortex M based MCUs added

The course is designed for beginners to advanced audiences.

Brief Description:

This course Demystifies the internal working of the Microcontroller and its Peripherals.

Coding for the Peripherals STEP-BY-STEP and Developing software drivers entirely from scratch by extracting maximum information from Datasheets, Reference manuals, specs, etc

Protocol Decoding Using logic analyzers, Debugging, Testing along with Hints and Tips.

Long Description:

Learning Embedded System Programming can be a challenge. Since it's a relatively complex field, there's no actual gold standard yet for how things are practiced, or taught, which can frustrate people who are just trying to learn new things and couldn't connect the dots.

This is the motivation behind creating this course to help engineers and students learn different aspects of embedded systems by providing high-quality advanced lectures at a relatively low price.

Master Behind the Scene working;

created this course because I believe your time is precious, and you shouldn't have to hunt around to get a practical foundation In Embedded System Programming. In this course, you will learn to write your peripheral driver for most commonly used peripherals such as GPIOs, and the exciting thing is that you will learn everything from scratch.

No 3rd party libraries.

No blind coding.

Write your driver APIs by dealing with the peripheral registers of the MCU.

Code and Implement APIs from scratch, diving into the datasheet and reference manual of the MCU. I will thoroughly explain how to extract the maximum information from datasheets, Technical Reference manuals to configure and handle peripherals. These techniques you can go and apply to any MCUs you have at your hand.

In this course, I will walk you through step-by-step procedures on configuring various Peripherals like GPIOs We will develop a fully working driver code, interrupt handlers, sample application everything from scratch to understand the big picture.

In each lecture, I assure you that you will learn something new to use in your work or projects. You'll find yourself handling these peripherals with much more clarity. You will be able to speculate and debug the problem quickly. I'll show you tricks and tips to debug the most common issues using debugging tools such as logic analyzers.

This is not the Arduino style of programming:

I believe Arduino is for quick prototyping of projects/products but not for mastering the working of micro-controllers and their peripherals. Unlike Arduino programming, where you develop a quick solution and prototyping of products using third-party libraries, this course is entirely different. In this course, no 3rd party libraries are used. Everything we will code by referring to the technical reference manual of the MCU and will create our own library. The Power of this approach is that you can quickly speculate problems and debug like a pro when things go wrong in your project due to bugs. If one thing me and my students are good at is "debugging,." To achieve good debugging skills, it's essential to code by understanding how things work behind the scene but not by blindly using some third-party libraries, and that's the biggest TAKE away from this course.

The course is designed and explained so that it is generic across any microcontroller. The code we develop can be used as templates to quickly build a peripheral driver for your MCUs on-chip peripherals.

Software/Hardware used:

In this course, the code is developed so that it can be ported to any MCU you have at your hand. If you need any help porting these codes to different MCUs, you can always reach out to me. The course is strictly not bound to any 1 type of MCU. So, if you already have any Development board that runs with an ARM-Cortex M3/M4 processor, I recommend you continue using it. But if you don't have any development boards, then check out the below Development boards.

1. I will personally answer your questions about this material, either privately or in a group discussion. If you are not satisfied, for any reason, you can get a full refund from Udemy within 30 days. No questions asked. But I am confident you won't need to. I stand behind this course 100% and am committed to helping you.

Learning order of FastBit Embedded Brain Academy Courses,

If you are a beginner in the field of embedded systems, then you can take our courses in the below-mentioned order.

This is just a recommendation from the instructor for beginners.

1) Microcontroller Embedded C Programming: absolute beginners(Embedded C)

2) Embedded Systems Programming on ARM Cortex-M3/M4 Processor(ARM Cortex M4 Processor specific)

3) Mastering Microcontroller with Embedded Driver Development(MCU1)

4) Mastering Microcontroller: TIMERS, PWM, CAN, RTC,LOW POWER(MCU2)

5) Embedded System Design using UML State Machines(State machine)

6) Mastering RTOS: Hands-on FreeRTOS and STM32Fx with Debugging(RTOS)

7) ARM Cortex M Microcontroller DMA Programming Demystified(DMA)

8) STM32Fx Microcontroller Custom Bootloader Development(Bootloader)

9) Embedded Linux Step by Step using Beaglebone Black(Linux)

10) Linux device driver programming using Beaglebone Black(LDD1)

Get Details and Enroll Now

OpenCourser is an affiliate partner of Udemy and may earn a commission when you buy through our links.

Get a Reminder

Send to:
Rating 4.4 based on 634 ratings
Length 28.5 total hours
Starts On Demand (Start anytime)
Cost $13
From Udemy
Instructors FastBit Embedded Brain Academy, Bharati Software, Kiran Nayak
Download Videos Only via the Udemy mobile app
Language English
Subjects IT & Networking
Tags IT & Software Hardware

Get a Reminder

Send to:

Similar Courses

What people are saying

embedded system

Best course for an embedded system engineer.

It's a very good course who are really interested for embedded system.

One of the excellent courses for both beginner and advanced embedded system programmers.

Very much informative.Please keep adding more courses.Already signed for your second course.It will great if you can come up with some courses like Cracking Embedded System Engineer Interviews.

It's one of the best online resources about embedded system development.

Most necessary concepts about embedded system are covered in this course.

I am trying to move into Embedded Systems arena and found it very useful.

One of the best course on Embedded Systems.

Gave very good insight about Embedded system programming.

As a graduate student carrying out research in embedded systems with no background at all, this course has offered me much of the prerequisites that I need to be able to carry on with my work, and even though I paid money in exchange for this, I am sill thankful that the teacher produced this in the first place.

I can see he tries to make all students knowing most of the embedded system by these videos.

Great course for deep understanding of embedded systems programming.

this tutorial series includes many details for embedded systems.

Read more

driver development

Best place to start learning embedded c and driver development If you know C concepts such as pointers ,macros , bit wise operations and structures then it will be an added advantage while programming.

Good course for those who want to get into low level driver development and Embedded Linux.

This is a review at 1/3 through the course as I just finished part I and starting part II on driver development.

All in all, I'm quite happy with the course so far and I think it's very reasonable to present only GPIO, SPI, I2C and UART as a first course on embedded driver development.

This is such a carefully instructed embedded driver development course.

According to me, you should take a course about c programming, especially about pointer and memory allocation since these concepts are widely used throughout the course but due to the purpose of the course only focusing on embedded driver development, those basic concepts of c programming is not carefully explained.

well explaining seems to be a very good course but there is something that is really bothering me, that it's that in driver development the professor just analyze the code previously written, for me this is not a good way to teach.

It was a great course and I will recommend it to anyone who is not lazy that really wants to learn the heart embedded driver development but I will recommend anyone who wants to take this course to have a good understanding of C programming language especially in structure, user defined data types (enum) and pointer.

By enrolling into this course I achieved deep knowledge of driver development and small detail to take care.

It was worth the price just for the first half of the course, going through the bare metal driver development.

my suggestions to improve this course: 1. compacting every topic or peripheral in 3 sections only (Basic concepts, driver development and testing application).

It is a good course to start learning about ARM-based Microcontrollers & their Driver Developments.

UPDATE: (After 1 month): Just started with GPIO Driver Development.

Driver development is explained in a detailed manner.

Read more

embedded systems

I'm a PhD student with an intermediate background in C and beginner background in embedded systems (8 bit PIC in University, lots of experience with Arduino as a hobby).

This course is pitched perfectly at my level; someone who has a good idea about embedded systems but no real professional experience.

Kiran takes a good amount of time and explains things in great detail, even as a newbie I could understand a detail on how embedded systems work and how a software programme should be developed.

The reponse on questions is good and quick So far, course is good for getting a basic foundation for understanding Embedded systems.

I will recommend udemy to all willing to take embedded systems as their profession in future.

Here are some points that I was not completely satisfied with: * Thorough discussion on enabling GPIO clocks comes way before the actual section in part I dedicated to GPIO * The instructor seems to assume that everybody working in or learning embedded systems has an electrical engineering formation: luckily I'd already encountered open-drain and push-pull before, because there is zero explanation on the electrical circuits given in the examples.

* You can't imagine how stressed I felt the first time I enrolled in an embedded systems course (another instructor) when I realized that Keil is used by every instructor but it's Windows-only.

This is Courses is great, but need little into electronic and embedded systems basics if your new bee, I am an IoT manager took this to recall my embedded skills as I am now working completely on the cloud from last 5 years.

If you are good in these areas, I bet you, you will flow and grasp the heart of programming embedded systems.

This is a extense course, you learn very good the microcontroller arquitecture and how to implement the peripheral drivers since C language, it's one of the best courses of embedded systems that I have done, for not to say it's the best of all.

Excellent course for people who are interested in learning about embedded systems and C programming.

Excellent Course, Excellent walk through the most important details of the embedded systems aspects.

The instructor puts together a great presentation and does a great job of expecting where to dig a little deeper to give a more fundamental understanding of embedded systems and programming.

The course is vast and would get anyone interested in the field of embedded systems.

Read more

step by step

step by step explanation for everything is provided.

Everything explained step by step in a clear manner.

The course will take you step by step to reach to destination.

It starts from basic concepts and takes you step by step towards understanding the Microcontroller.

Step by step.

I personally learnt a lot from this course but sometimes when i followed the exercises the content which he made in previous lecture is getting change entirely in next lecture, it is so sad after putting so much effort to stop the lectures and type the code step by step and in the next lecture we saw new things which didn't explained.

Amazing lectures ..Step by Step and Point to Point ...!

The course goes step by step and the concepts are explained with small, to the point examples right where they are needed.

Goes through everything step by step, with good explanations of how everything hangs together in the microcontroller.

Molto chiaro nelle spiegazioni; allo stesso tempo non pedante o eccessivamente statico da seguire He speaks clearly and goes step by step.

Very clear explanation for the beginners The instructor is excellent at step by step explanations.

step by step with nice illustrations PERCHE E' COMPETENTE.

Read more

highly recommend

Highly recommend.

Would highly recommend.

I highly recommend this course to be taken by students or employees in this field.

I have completed a total of 61 videos and have so far loved this course and would highly recommend everyone this course.

Highly recommend this course for everybody who has interest in electronics.

highly recommend.

I highly recommend it.

Read more

easy to follow

Very thorough explanations, easy to follow though quite dense.

The content and examples are detailed and easy to follow.

The instructor keeps an easy to follow pace, explaining all that needs to be explained and has organized the lecture in a meaningful way.

Instructions are very detailed and easy to follow.

It is easy to follow this course.

Very good lectures good one şuana kadar her şeyi adım asım anlatıyor ilerside iyi olur gibi duruyor Quality is good Well done, to the point and easy to follow.

The pace is easy to follow but not boring.

Thank you The course is clear and easy to follow.Great!!

Read more

from scratch

Great course for people who want to understand how drivers are developed from scratch.

Also, the teacher shows us a lot skills from scratch, which is very helpful to build up your foundation of knowledge.

I was sold when Kiran taught me to write header files from scratch.

This course taught me to write drivers from scratch and also made me comfortable in testing and debugging.

I appreciate that the instructor focuses on the use of datasheets and reference manuals a-lot and also that writing code from scratch is always the main priority, which was exactly the expectation and the main the reason for taking this course.

Instructor teach everything from scratch.

It would seem like a silly idea to rewrite header files from scratch.

I am enjoying learning everything about the drivers of STM32 MCU from scratch.

Thanks a lot...... Amazing course, u will learn how to build arm drivers from scratch, well understand of the arm architecture, buses, different communication protocols as well as interrupts I'm really very happy with this course.

Great to learn how to setup ARM-based tools from scratch.

Read more

so far so good

so far so good, but the accent makes it a tiny bit hard....but i like the detailed view :) Curso muito bom mesmo sem saber muito inglês da para aprender muito.

Yes great Alles Super yes So far so good Parlato molto chiaro e spiegazioni molto dettagliate.

So far so good but some times is not very clear your explanation.

excellent base So far so good, happy to continue.

Read more

arm cortex

These courses are phenomenal value, I've previously been on a 2 day ARM Cortex training course £500 more expensive in the UK and I've learnt more in this course.

I have two criticisms; one is that analog peripherals are not included (ADC or DAC), the other is that there is no mention of ARM Cortex M7, which is fairly more advanced than the M4 that is taught.

Kiran is a master of ARM Cortex M, I think he can do more courses in embedded systems like Embedded Linux, Embedded Android, Embedded CE and other related courses in Cortex A and Cortex R. thanks to this man!

It is a really good course for learning ARM Cortex-M from the beginning.

In overall, the course is a great course that can help you understand the behind the scene of not just ARM Cortex MCU but any MCU but the part I believe should be improved on is the code development and I believe showing the flow by doing not just populating even if it will be having the already written in keil and a fresh keil for the tutorial will help students follow the steps efficiently because I realized that everything was logically as to know when to call an API and what to do in the API.

The course uses development boards with core ARM Cortex M4 but mainly is focused to be used with any microcontroller and devlopment board, the concepts are valid for any embedded system and this is very very useful because your knowledge you can apply to your own embedded system with other arquitecture that you are using, now or in the future.

Excellent Course on Embedded Programming for ARM Cortex architecture supported MCU.

This is a great course for anyone who wants to understand internal drivers and workings of an ARM cortex M series microcontrollers.

It's one of the best course in udemy for ARM Cortex based Microcontroller.

It connects all the dots and gives you an in-depth understanding of how ARM Cortex-M microcontroller works.

bit difficult to understand how is nucleo related to ARM cortex MC Very clear and detailed information presented in a concise manner.

Read more

micro controller

Right place for students have programmed micro controllers only in Arduino IDE.

This course is very good for the beginners and for the people who want to learn Micro controller in depth .

The best thing about this course is that you can apply the knowledge gained through this course to any micro controller ever created.

This course is the best source to learn in detail about the peripheral driver development for micro controller .

I can apply the knowledge I have gained in this course for different micro controllers.

Although without experience with micro controllers I think I managed to figure out most of things.

I recommend the course for People who like to start their Career in this direction Great Explanation, not only micro controller programming but also electronic circuit.

This is one of the best courses on Micro controllers that I have ever taken.

Instructor is very clear on various micro controller topics like clocks, peripherals, using different tools and great explanation on micro controller working, configuring different registers, device drivers from scratch.

I would recommend this course for some one who wants to lean how micro controllers work under the hood.

Read more

till now

The content of lectures till now is at par with the driver development in industry.

Pros: Till now I got to learn a lot, very enlightening.

I have done 20% of the course till now and have never felt bored while watching the videos so I watch and learn with interest.

Most of this is already known to me till now.

clear explanations, interesting Course if very good so far Detailing is good its too interesant Great explanations bad Lots of materials on the subject from scratch very good course structure Explications claires Good till now all good superb very good explanation great good and better Great course.

Read more

rather than

Here you will learn how to write your own APIs rather than using built-in libraries.

You could also spend more time reinforcing how to create a new project, rather than me having to go back to a previous lesson to make sure I got the settings right.

Kiran, the instructor not only shows us the code but makes us understand and explores the concepts behind controllers which helps in retaining the knowledge rather than just mugging up.

In different words, I am expecting more explicit explanations from the teacher assistance rather than just posting a link.

Has focused too much on a product by a single manufacturer rather than teaching generalized concepts 2.

Read more


An overview of related careers and their average salaries in the US. Bars indicate income percentile.

Assistant Administrative Coordinator for Libraries $43k

Postdoctoral Associate UW Libraries $50k

Development Officer for the University Libraries $55k

Professor Emeritus, University Libraries $67k

Third Party Verifier $69k

QA Third Party $85k

Dean University Libraries $85k

Libraries - Web Specialist $94k

Web Developer with the UST Libraries $99k

Head, Engineering & Science Libraries $99k

Assistant Hesburgh Libraries $107k

Dean of Libraries and the Press $117k

Write a review

Your opinion matters. Tell us what you think.

Rating 4.4 based on 634 ratings
Length 28.5 total hours
Starts On Demand (Start anytime)
Cost $13
From Udemy
Instructors FastBit Embedded Brain Academy, Bharati Software, Kiran Nayak
Download Videos Only via the Udemy mobile app
Language English
Subjects IT & Networking
Tags IT & Software Hardware

Similar Courses

Sorted by relevance

Like this course?

Here's what to do next:

  • Save this course for later
  • Get more details from the course provider
  • Enroll in this course
Enroll Now