Advanced Embedded Systems Bare-Metal Programming Ground Up™ (Udemy.com)
No libraries : RTC, IWDG, WWDG, DMA-ADC, DMA-I2C, DMA-SPI, DMA-UART, DMA-PWM, Standby, Wakeup
Created by: BHM Engineering Academy
Last updated December 2025
What you will learn
- Write advanced firmware using only bare-metal embedded-c
- Write bare-metal drivers for DMA Memory-to-Memory transfer
- Write DMA ADC drivers using bare-metal embedded-c
- Write DMA PWM drivers using bare-metal embedded-c
- Write DMA UART drivers using bare-metal embedded-c
- Write DMA SPI drivers using bare-metal embedded-c
- Write DMA I2C drivers using bare-metal embedded-c
- Develop proficiency in your embedded development skills and confidently take the next steps
- Write Realtime Clock (RTC) drivers using bare-metal embedded-c
- Write Watchdog Timer (IWDG and WWDG) drivers using bare-metal embedded-c
- Write bare-metal embedded-c drivers for entering Standby mode and Waking up
- Use the debugger effectively to analyze and resolve any bugs
- Understand and write every single line of code yourself- no Copy/Paste
How it compares
Against the other 518 rated Udemy courses in Software Development on CourseDuck:
- Rating4.3 out of 5higher than 17% of them
- Reviews251#310 of 519 by number of reviews
- Length22.6 hourslonger than 87% of them
- Last updatedDecember 2025more recently than 54% of them
Course Description
Are you tired of Copying and Pasting code you don't understand?
Here’s an overview of what you’re getting in this advanced level course...
Developing bare-metal DMA Drivers:
This course completely demystifies the Direct Memory Access (DMA) peripheral. Over 50% of the course is spent on this topic, so that by the end of this course you would have mastered the DMA peripheral.
We shall thoroughly look at developing the following bare-metal DMA drivers.
- Bare-Metal DMA Memory-to-Memory Transfer Driver
- Bare-Metal ADC DMA Regular Conversion Driver
- Bare-Metal ADC DMA Timer Triggered Conversion Driver
- Bare-Metal UART RX/TX DMA Driver
- Bare-Metal SPI RX/TX DMA Driver
- Bare-Metal I2C RX/TX DMA Driver
- Bare-Metal PWM DMA Driver
Developing bare-metal RTC Drivers:
The Realtime Clock (RTC) peripheral is another advanced peripheral demystified in this course. We shall study the theory of realtime clocks, take a look at the capabilies of the realtime clock on our microcontroller and then develop the following drivers for the realtime clock.
- Bare-Metal RTC Calendar Driver
- Bare-Metal RTC Alarm Driver
- Bare-Metal RTC Timestamp Driver
- Bare-Metal RTC Tamper Detection Driver
Developing bare-metal Watchdog Timer Drivers:
Watchdog Timers are an essential component of any robust embedded device. In my opinion, no embedded device should be released onto the market without the implementation of an Independent Watchdog Timer (IWDG). You will understand why I hold this opinion in the course.
In this course we shall develop the following Watchdog Timer drivers:
- Bare-Metal Independent Watchdog (IWDG) Timer Driver
- Bare-Metal Windowed Watchdog (WWDG) Timer Driver
Working with Standby Mode and Wakeup:
Knowing how to put your embedded devics into Low-power mode and coming out of it will greatly improve your ability to developer power efficient embedded solutions. This course will teach you how to put your device into Standby mode and come out of it using different methods.
Specifically, we shall develop the following drivers:
- Bare-Metal Standby Mode and Wakeup Pin Driver
- Bare-Metal Standby Mode and RTC Wakeup Timer Driver
The Art of Debugging :
Knowing how to properly debug your firmware will save you lots of time and money, and may even prolong your life because of the level of frustration and stress you will avoid.
In this course you shall grasp the theoretical aspects of debugging, understand the various types of debugging such functional debugging and performance debugging, and learn the various tools and methods used in different scenarios.
Some of the techniques we you will master include:
- Methods of identifying the cause of HardFault
- Catching anomalous results
- Measuring execution time of an algorithm using a Timer
- Measuring execution time of an algorithm using a Logic Analyzer
- Working with arrays dumps
- Debugging techniques for Timers
With a programming based approach, this course is designed to give you a solid foundation in bare-metal firmware development for ARM-based microcontrollers . The goal of this course is to teach you how to navigate the microcontroller reference manual and datasheet to extract the right information to professionally build peripheral drivers and firmware. To achieve this goal, no libraries are used in this course, purely bare-metal embedded-c and register manipulations.
Still keeping it simple, this course comes in different ARM Cortex-M development boards so that students can put the techniques to practice using an ARM Cortex-M development board of their choice. This version of the course uses the STMicroelectronics STM32F4-NUCLEO which has an ARM Cortex-M4 microcontoller.
This is the Advanced level course for the world famous Embedded Systems Bare-Metal Programming Ground Up™ (STM32). You have to take the Embedded Systems Bare-Metal Programming Ground Up™ (STM32) before taking this course
So with that understood, let me tell you…
Exactly What You’re Getting
This is dramatically different from any course you have ever taken because it’s more of a professional hands-on “field guide” to stm32 bare metal firmware development.
The reason why is because there’s no fluff or filler. It immediately gets down to the actual subject, showing you exactly what to do, how to do it, and why.
Plus, it’s easy.
And you’ll immediately “get” the entire mythology I personally use to build firmware for consumer devices in my professional life.
It's About MORE Than Just Getting the Code to Work
See, this course will change your professional life forever. Here is what one student had to say about the Embedded Systems Bare-Metal Programming Ground Up™ (STM32) course :
"I would suggest this course for all the beginners. The concepts have been covered in the right sequence.And also the best part of this lecture series is getting to know how to explore the reference manual and datasheets."
Here is what another student had to say :
Instructor Details
- 4.3 Rating
251 Reviews
BHM Engineering Academy
Bohobiom Engineering is a 21st century Computer Engineering online Academy based in London U.K.
We have experienced instructors in the areas of Assembly Programming, Hardware Engineering, Signal & Image Processing, Embedded Firmware Development, Deep Learning and other high demand 21st century skills.
As of today we have trained over 35,000 happy pupils. Please take a look at our available courses and message us if you have any questions.
More courses by BHM Engineering Academy
Mastering STM32CubeMX 5 and CubeIDE - Embedded Systems (2023)
4.3 (396 Reviews)
Provider: Udemy
Time: 10.1h
$69.99
Embedded Systems STM32 HAL APIs Driver Development (2023)
4.4 (353 Reviews)
Provider: Udemy
Time: 11.3h
$69.99
Embedded Systems STM32 Low-Layer APIs(LL) Driver Development (2023)
4.5 (127 Reviews)
Provider: Udemy
Time: 25.7h
$11.99
Embedded Bootloader Development from Ground Up™ (2023)
4.5 (121 Reviews)
Provider: Udemy
Time: 6.8h
$11.99
ARM GNU Assembly Programming From Ground Up™ (2023)
4.5 (117 Reviews)
Provider: Udemy
Time: 15.5h
$11.99
More Software Development courses
MATLAB Programming Simulink: Beginner to Pro with ChatGPT (2026)
5.0 (930 Reviews)
Provider: Udemy
Time: 9.6h
$10.99
Build Web Apps with Nuxt.js 3: Master TypeScript & API [New] (2026)
4.9 (635 Reviews)
Provider: Udemy
Time: 6.7h
$19.99
Terraform 101: The Ultimate Hands-On Guide [Azure Edition] (2025)
4.8 (1,975 Reviews)
Provider: Udemy
Time: 11.9h
$94.99
Reviews
By Michael Morozov on 6/25/2025
Promising start, but after some point basically nothing is taught. The instructor teaches you how to find some bits and the datasheet, and from then on its rinse and repeat. i.e. He reads some theory about a peripheral; gives you a cookbook of how to enable that peripheral, without explaining why he configures it in that specific method, and spends more than half the video looking at specific bit locations, THAT ARE ALREADY CONFIGURED FOR YOU IN THE CMSIS!! The written code is very univeristy level, i.e. code that will probably get you fired if you use it in a professional setting. Multiple times the instructor wrote very simple bugs that I have even identified 5 minutes before he debugged it (confusing true/false, forgetting to enable a peripheral). Things that could have been edited out. The audio is quite poor quality, and changes between 10% and 100% percent volume. For this asking price of a course, I would expect more attention for these details...
By Luis José Mora Díaz on 2/22/2025
It is a wonderful course, i really like the explanations of every line of the code. Only one thing i would suggest to improve is the upload of the codes to a platform like GitHub, because in my case i'm using a STM32F103C6T6 and i have to try to make the code to work on this chip. When i watched a lesson, if some errors appears, i have to view all te video again to check the code structure, i would appreciate if the code is uploaded so i can check my errors faster.
By Balanakakamal v on 1/13/2025
The Instructor Clearly Explains the DMA and Register Programming For UART. After Learning this,You will be expert in DMA Controller.
By Tomas Lillqvist on 12/30/2024
I recommend taking this course on a bigger screen, not mobile screen. On Mobile the details are difficult to see and the teacher doesn't describe everything being done in words. Sometimes he says ”like this” by which he refers to what is happening on screen with a small mouse pointer. In my opinion it would help if the teacher would repeat the verbal instructions a bit more.
By William DeHaven on 11/5/2024
So far so good. I have experience with microcontroller bare metal programming and am taking this course as a refresher before starting some ham radio projects.
By Derrick Smith on 9/4/2024
Course is going very well thus far. I learned something much easier with ITM than from other udemy instructors. Israel make is so much easier to perform.
By Karl Hörmann on 8/24/2024
Yes, the corse is very informative. Only the orientation is sometimes difficult to follow up when the author says "over here". It is unclear from where to start to goto "over here" which target to come to is ment.
By Nishikant Bilaskar on 5/12/2024
I think you will master DMA after completion of this course. I suggest other , before completing this course, complete pointer related course in c.
By Armin Jahanshahi on 11/14/2023
I have learned a lot from this and Israels other courses on udemy. Thank you for making this course! 10/10
By Tanner Moray on 8/20/2022
Ja, die Kurse von Herr Israel Gbati sind immer sehr hilfreich und gut zu verstehen.
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 86 / 100









![Build Web Apps with Nuxt.js 3: Master TypeScript & API [New]](/programming/software-development/images/6457785_5adc_4.jpg?v=1789443959)

![Terraform 101: The Ultimate Hands-On Guide [Azure Edition]](/programming/software-development/images/6208847_f60a_7.jpg?v=1791193600)
