2025-07-08 1:41 AM
Hello ST Community,
I’m a student with a strong interest in embedded systems, particularly with STM32 microcontrollers. I aspire to become a driver developer for STM32 platforms and would like to learn how to write peripheral drivers from scratch by deeply understanding STM32 datasheets, reference manuals, and hardware architecture.
I’m looking for recommendations on:
Training institutes (preferably in India) that provide in-depth, hands-on training on low-level driver development for STM32 (not just application-level programming).
Online platforms or courses (paid or free) that focus on writing bare-metal STM32 drivers using CMSIS or directly accessing registers.
Any structured learning paths, books, or resources you personally found valuable on this journey.
If anyone has gone through this learning process or knows mentors or institutions offering such training, your guidance would be highly appreciated.
Thank you in advance for your support.
2025-07-08 2:34 AM - edited 2025-07-08 3:05 AM
> I aspire to become a driver developer for STM32 platforms
This surely is a dead end in your career.
Anyway... Learn modern programming languages (Rust, Mojo) and AI assisted development, learn RTOSes (because the "drivers" must interact with RTOSes). If you study hardware - get to know FPGAs and NPUs.
Learning processes and courses from 5-10 years ago are not fit for tomorrow.
2025-07-08 2:39 AM
None of this would be specific to STM32 - the same techniques of reading, understanding, and applying technical documentation would apply to any microcontroller.
As @Pavel A. said, this would be a pretty niche career option. Wider options would be in application development - that's where the real value is added.
That's why companies like ST give away stuff like HAL for free.
2025-07-08 3:25 AM
I would agree to Pavel's and Andrew's points.
And, I might add, being able to read and comprehend the manuals ("datasheets" and "reference manuals" in ST lingo) is a very important skill.
It is essential for implementing or understanding respective code, especially when you leave the beaten paths of manufacturer-specific environments and their examples.
2025-07-08 3:31 AM
@Embed_life wrote:I’m a student
What are you currently studying?
Are there not tutors/counsellors at your current institution who can give guidance ?
2025-07-08 4:56 AM
Hello mr @Pavel A. @Ozone @Andrew Neil
I'm truly thankful to all of you for giving your valuable time and guidance.
I’ve completed my Bachelor of Technology in (Electronics And Communication Engineering ) from a regular college where, unfortunately, embedded systems and low-level programming weren’t taught in depth. However, I took the initiative to self-learn core concepts through YouTube tutorials and hands-on practice.
During college, I developed a good foundation in C, C++, Embedded C, Linux basics, and got exposure to RTOS fundamentals, TCP/UDP protocols, and STM32 microcontrollers while working on my mini and major projects. This sparked a deep interest in driver development for STM32 (and potentially other microcontrollers).
@Andrew Neil asked: "Are there tutors or counselors who can guide you?"
No sir, I come from a very small tribal city, and there’s no one locally with expertise in this domain. I’ve largely depended on online content and communities to guide my learning journey .
AI-assisted embedded development
RTOS development and integration with drivers.
And driver devolopmet.
Thank you once again for your support!
2025-07-08 5:51 AM
> I’ve completed my Bachelor of Technology in (Electronics And Communication Engineering ) from a regular college where, unfortunately, embedded systems and low-level programming weren’t taught in depth.
More often than not, this is the usual state of affairs.
When institutions offer courses more specialized on (lower-level) embedded development, it is often at the initiative of the lecturer doing the course. And they usually don't delve too deep into it either.
While it was decades ago (early '90s), my own IT / computer science education was a joke judged by modern standards. Almost all I know now I learned myself, barely escaping Fortran at the university ...
What you should have learned is the scientific base (math, physics, electrical engineering), structured thinking, and problem solving skills, and a willingness to learn.
Apply these to your field, and your will be fine.
> No sir, I come from a very small tribal city, and there’s no one locally with expertise in this domain. ...
I have no knowledge about the situation in India, or related experience. Probably very few here do.
But ST has a lot of online courses (YT video tutorials) for certain topics, which might be helpful.
And in your situation, I would check out other vendors (NXP, TI, etc.) which have similiar environments and tutorials.
2025-07-08 7:27 AM
The reference manual should be all you need, provided you are already a programmer.
> Training institutes (preferably in India) that provide in-depth, hands-on training on low-level driver development for STM32 (not just application-level programming).
I think you overestimate the demand for such a service.
2025-07-08 8:10 AM
Here is my STM32C0 register level guide https://github.com/FrankBau/stm32c0 which can serve as a starting point.
hth
KnarfB
2025-07-08 7:25 PM
On AI-assisted development: see this, for example: 5 AI Technologies Every Embedded Developer Should Know & Use Now
On RTOS integration... in bare-metal world they often call a driver a software module for managing a flash chip or a sensor and so on. This is fine enough. Drivers designed for a proper OS such as Linux or Zephyr need to interact with the OS and applications. For example they can send signals to applications, move data using services provided by the OS, such as queues, ring buffers. All this is funny and exciting to learn and play with - but few years after you'll see all that investment churned and a dead end in front of you.