ARM Cortex-M7 STM32F7 Bare-Metal Programming From Ground Up™ (Udemy.com)
No Libraries used, Professional CMSIS Standard, ARM Cortex, ADC,UART,TIMERS, GPIO,SPI,I2C etc.
Created by: Israel Gbati
Last updated February 2023
What you will learn
- Write firmware using only bare-metal embedded-c
- Understand the Cortex-M Architecture
- Write Bare-Metal ADC Drivers for the STM32F7 Microcontroller
- Write Bare-Metal TIMER Drivers for the STM32F7 Microcontroller
- Write Bare-Metal UART Drivers for the STM32F7 Microcontroller
- Write Bare-Metal INTERRUPT Drivers for the STM32F7 Microcontroller
- Write Bare-Metal GPIO Drivers for the STM32F7 Microcontroller
- Write Bare-Metal SPI Drivers for the STM32F7 Microcontroller
- Write Bare-Metal I2C Drivers for the STM32F7 Microcontroller
- Build every single line of code from scratch by writing to the microcontroller’s memory space directly.
- Use No third party libraries or header files
- Understand and write every single line of code yourself- no Copy/Paste
- Use the debugger effectively to analyze and resolve any bugs
How it compares
Against the other 295 rated Udemy courses in Arduino on CourseDuck:
- Rating4.7 out of 5higher than 90% of them
- Reviews176#142 of 296 by number of reviews
- Length11.5 hourslonger than 84% of them
- Last updatedFebruary 2023earlier than 53% of them
Course Description
Are you tired of Copying and Pasting code you don't understand?
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 STM32F7-NUCLEO which has an ARM Cortex-M7 microcontroller.
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 1st version (STM32F4) of the 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 :
"Extremly helpful to get to understand the uC programming deeper! For me it is much easier from now to develop code because I undertstand the base behind, so I'm more confident and more experienced to develop and debug the code. Really, this course is very useful to link the hardware knowledge with the coding skills. This fills the gap between them. Thanks for it! :)"
A third student :
"I am a professional semiconductor chipset application engineer with 30 years in global embedded product design in system applications. I can say this teacher is very straight forward by sharing his many years knowledge to the students with his true heart. Yes. I love his teaching pace and style!"
The First Version (STM32F4) is being Taken by 5000+ Students with 1000+ Reviews
If at least one of the following applies to you then keep reading if not then simply skip this course:
" Escape From "
Copying/Pasting code you don’t understand
Using third party libraries and header files like HAL, LL and StdPeriph
Experiencing bugs you don’t understand
Being afraid of technical documentations like the reference manual and datasheet of the chip
Imposter syndrome
" Arrive At "
Building every single line of code from scratch by writing to the microcontroller’s memory space directly.
Using No third party libraries or header files
Understanding and writing every single line of code yourself- no Copy/Paste
Using the debugger effectively to analyze and resolve any bugs
Developing proficiency in your embedded development skills and confidently take the next steps
So like I said, there’s more than just getting each piece of code to work.
Here’s an overview of what you’re getting...
Analyzing the chip documentations:
Before developing the firmware for any chip you have to learn how to read the documentation provided by the chip manufacturer.
Defining Peripheral address
All components on the microcontroller have an address range. To write to a component or read from a component you need to locate its address range in the documentation and properly define the addresses in your code.
Creating registers from the address:
The addresses in the address range of a component represent the registers of that component. To access these registers you have effectively typecast the addresses.
Understanding CMSIS:
Cortex-Microcontroller Interface Standard (CMSIS)CMSIS is a standard developed by Arm for all Cortex-Microcontrollers. This is the standard used in professional firmware development
But it gets better because you’re also getting…
Deep Lessons on Developing Peripheral Drivers
You will learn how to develop bare-metal drivers for the following peripherals :
Analog-to-Digital Converter (ADC)
Serial Peripheral Interface (SPI)
Inter-Integrated Circuit (I2C)
Nested Vector Interrupt Controller (NVIC)
General Purpose Timers (TIM)
System Tick Timer (SysTick)
General Purpose Input/Output (GPIO)
Specially Designed For People Who Hate Copy/Paste
Listen. If you don’t like “Copy/Paste” you’re not alone. I can’t stand it either. I’d literally rather have a piece of code that I wrote from scratch that doesn’t work than someone else’s working code I copied and pasted.
And that’s why I’ve spent months designing and recording this course in which I show you how to locate every single register used and the meaning of every hexadecimal value written into the register.
Also it comes with a money back guarantee so you have nothing to lose.
Instructor Details
- 4.7 Rating
176 Reviews
Israel Gbati
Author of Bare-Metal Embedded C Programming: Develop High-Performance Embedded Systems with C for Arm Microcontrollers.
With extensive experience in embedded firmware development, I specialize in real-time systems, low-level programming, medical device architecture, embedded signal processing, and embedded AI. My professional journey has been centered around Arm Cortex-Microcontrollers, delivering robust solutions used in cutting-edge industries.
Passionate about simplifying complex concepts.
More courses by Israel Gbati
Embedded Systems Bare-Metal Programming Ground Up™ (STM32) (2023)
4.6 (3,916 Reviews)
Provider: Udemy
Time: 24.6h
$99.99
x86 Assembly Language Programming From Ground Up™ (2025)
4.6 (1,715 Reviews)
Provider: Udemy
Time: 14.1h
$10.99
Build Your Own RealTime OS (RTOS) From Ground Up™ on ARM 1 (2023)
4.3 (1,180 Reviews)
Provider: Udemy
Time: 9.3h
$74.99
FreeRTOS From Ground Up™ on ARM Processors (REVISED) (2023)
4.4 (994 Reviews)
Provider: Udemy
Time: 23.5h
$69.99
Introduction to ARM Cortex-M Assembly Programming (FREE) (2020)
4.4 (967 Reviews)
Provider: Udemy
Time: 4.2h
Free
ARM Cortex-M : Modular Embedded Systems Design (FREE!) (2019)
4.5 (935 Reviews)
Provider: Udemy
Time: 7.6h
Free
More Arduino courses
Learn to Build a Computer (PC) in 2026 - all types!
4.9 (245 Reviews)
Provider: Udemy
Time: 6.1h
$74.99
Raspberry Pi For Beginners - 2026 Complete Course
4.8 (3,105 Reviews)
Provider: Udemy
Time: 10.6h
$89.99
Ultimate Guide to Raspberry Pi : Tips, Tricks and Hacks (2023)
4.8 (2,363 Reviews)
Provider: Udemy
Time: 5.2h
$69.99
Mastering Microcontroller: STM32-LTDC, LCD-TFT, LVGL (MCU3) (2026)
4.8 (487 Reviews)
Provider: Udemy
Time: 8.1h
$79.99
Arduino Step by Step: Getting Started (2024)
4.7 (8,714 Reviews)
Provider: Udemy
Time: 21.4h
$159.99
Reviews
By Imrich on 6/6/2026
This is the first time when I relay understand how embedded microelectronics works? exactly the curse what i looking for with excellent teacher. Thank You Israel You are THE MAN! :-)
By Uzan Moshé on 1/2/2025
This course is incredibly detailed and well-structured. However, it lacks an exploratory component, which turns the experience into more of a guided coding session. What’s missing are introductory videos at the beginning of each section where the instructor navigates the documentation and demonstrates how to extract the necessary elements for independent problem-solving. This would greatly enhance understanding and foster autonomy, instead of just following step-by-step instructions without fully grasping the reasoning behind each step or how to find them independently. That said, this is still an excellent course, and I highly recommend it!
By Anas Talib on 8/14/2023
The course is good for "general" baremetal programming , it is indeed very informative but could be better if more cases are covered for each peripheral in a detailed manner for example how to use priority level for interrupts .
By Celio Nobre de Araujo on 4/16/2023
Excellent course. Very enlightening on documentation analysis (reference manual and datasheet) and programming using register manipulation. Useful for beginners in programming ARM microcontrollers.
By Josef Neto on 2/3/2023
hey this is a great course. one thing that can be improved is to add more notes and I can see that we have the files for the entire course in lesson 13 but it should be good if you could provide them after each lesson and also add some quizzes so we can check our understanding.
By Peter Berger on 11/29/2022
Excellent course to get into microcontroller programming. I loved the thorough introduction to registers, UART, ADC, timers, and interrupts. Choose this course if you want to get started with microcontrollers. The I2C and SPI modules were a bit too short. I would have preferred to learn more about that, for example, I still don't know why I need to activate the pull-down resistors. Additionally, the lack of source code made it hard to find errors in you own code. I would recommend taking this class to quickly get started with microcontrollers and deepen your knowledge with another class.
By Ali Akgöz on 11/9/2022
I almost envy this course from all other people, had to convince myself to write this comment :) . This is a real gem in all internet, Israel Gbati is very cautious and thorough. You won't regret.
By Divyashree Rao on 7/16/2022
It was very good, concepts were explained well. But I wish, SPI and I2C were explained in more detail and also an example driver code containing all the SPI lines like MOSI, MISO, Clk, slave select for communication.
By Jainil Patel on 5/27/2022
The course is presented well. I learned all the concepts and applied on my work project based on this course. I think PWM and frequency output should be added to GPIO section.
By Ilya E. Sheykhon on 12/10/2021
Finally some quality content that goes in enough detail on register level. I was inspired by it and read datasheet and reference manual on my own and started to write my own drivers by myself. Big inspiration. Thanks!
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 94 / 100












