Skip to content
UdemyArduinoPaid courseAll LevelsCertificate

Embedded System Design using UML State Machines (Udemy.com)

Learn to implement event-driven embedded applications using simple and hierarchical UML state machine approach

Created by: FastBit Embedded Brain Academy

Last updated August 2026

icon
What you will learn

  • Event driven programming paradigm
  • Flat and hierarchical state machines (Simple FSMs and H-FSMs)
  • UML state machine semantics and state chart drawing
  • Converting UML statecharts into executable C/C++ code
  • Action objects design approach
  • Different state machine implementation strategies
  • Nested switch implementation of state machines
  • State table approach to implementing the state machines
  • State-Handler approach to implementing the state machines
  • Usage of function pointers in 'C'
  • Hands-on projects using simple FSM and HSMs
  • Step by step code development
  • Graphically modeling event-driven embedded application using UML statecharts modeler tools
  • Working with QP™ embedded real-time framework and QM™ tool of Quantum Leaps, LLC to draw and implement the HSMs

icon
Course Description

Learn the fundamentals of simple and hierarchical UML state machines in easy steps

The course emphasizes project-based learning, learning by doing.

The goal of this course is to introduce an event-driven programming paradigm using simple and hierarchical state machines.

After going through this course, you will be trained to apply the state machine approach to solve your complex embedded systems projects.

Some of the highlights of this course are as below

you will learn,

1) UML(Unified Modeling Language) state machine semantics like simple/composite states, events, signals, transitions, entry/exit actions, guards, pseudo-states, etc

2) Drawing UML state machines using graphical modeling tools such as Astah and QM™ modeling tool

3) Implementing embedded applications using Hierarchical state machines and Active objects design approach

4) Using QP™ real-time embedded framework and QP™-Nano Arduino library in your embedded projects

5) Active objects

6) Hands-on event-driven project implementation and testing on Arduino UNO board (Please check the preview videos)


Hardware:

If you want to test the code developed on the target hardware, you need the below-mentioned boards and components

1. Arduino UNO(1)

2. 16x2 character LCD (1)

3. Pushbuttons (3)

4. 10KΩ resistors (3)

5 . 220Ω resistor (3)

6. 100KΩ Potentiometer (1)

7. Arduino buzzer (1)

8. Jumper wires-M2M


Software:

Installation procedure for important software are covered in this course

1. Arduino IDE (Free and Open source )

2. Microsoft visual code (Free)

3. PlatformIO VS code extension(Free and Open source )

4. QM™ modeling tool by Quantum Leaps, LLC (Free GPL version)

5. Astah by Change Vision, Inc.(Trial version)


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) Mastering Microcontroller: STM32-LTDC, LCD-TFT, LVGL(MCU3)

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

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

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

9) STM32Fx Microcontroller Custom Bootloader Development(Bootloader)

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

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


Other programming courses

1) Master The Rust Programming Language : Beginner To Advanced

icon
Udemy Discount

The discount is applied through our link. Open the course from here and Udemy's current promotional price is applied at checkout on most courses, no code to type.

Some courses are excluded from Udemy's promotions. If the price does not drop, clear your browser cookies and use the button again.

icon
Instructor Details

FastBit Embedded Brain Academy

Best selling microcontroller programming and RTOS course creators having over 65,000+ active students and dedicated co-instructor team to help you in your embedded programming journey.

We have published courses on embedded C, microcontroller programming, RTOS programming, embedded Linux, and Linux device driver development.

If you are starting your career in the domain of embedded programming or if you want to learn how to program the microcontroller and its peripherals coding from scratch, then you are at the right place.

Enroll in the courses created by us, and we hope you will not be disappointed.

What we do?

We leverage the power of the internet to bring online courses at your fingertip in the domain of embedded systems and programming, microcontrollers, real-time operating systems, firmware development, embedded Linux, and device drivers. Thanks to Udemy.

Our primary goal is to teach embedded systems enjoyably with examples and lots of animations, which help our students excel in this field.

We have carefully crafted all these online courses to help students access industry-standard professional training with a very low price tag, thus saving your time, effort, and money.

Try our courses, and we are sure that the courses will make you feel you made the right choice.

icon
More courses by FastBit Embedded Brain Academy

$15.99

$14.99

$14.99

$79.99

$11.99

$99.99

icon
More Arduino courses

Free

$74.99

$89.99

$69.99

$79.99

$159.99

icon
Reviews

4.5

848 ratings on Udemy

Select a bar to show only those reviews.Select the bar again to show every rating.

By Saheed Azeez on 7/12/2026

A fantastic entry point into event-driven embedded design using UML state machines. The course covers statechart fundamentals, flat FSMs vs HSMs, and practical use of the QP framework with the QM tool and its code generation workflow. Everything is tied together with a real hardware project, which makes the concepts stick in a way theoretical content never could. Teaching style is clear and well-paced. To go deeper after this course, I recommend reading "Practical UML Statecharts in C/C++" by Miro Samek and watching his "Modern Embedded Systems Programming" YouTube series. Both will solidify everything you learn here at a much deeper level. Highly recommended for embedded engineers wanting to move beyond super-loops into cleaner, scalable event-driven architecture.

By RAMNATH R on 4/8/2025

Kiran’s course is top-notch—well-structured, starting from basic flat FSMs to advanced Active Objects. It’s a must for anyone working on safety-critical systems. The progression is smooth, practical, and full of insights. Looking forward to future updates covering topics like history states, temporal events, and model-based testing. Thanks for sharing your expertise!

By Seyed Mohsen Anvari on 9/21/2024

The special thing I want to mention about this course is the use of a demo video before starting the exercise. Not only is it beneficial for understanding the question, but it also allows me to try solving and implementing the code before watching the solution.

By Christopher Hamilton on 7/16/2024

I really enjoyed this course and have taken a number of Fastbit's courses up to this point. I think in the beginning of the course it would be nice to have some more context at the beginning of the course on why we should use state machines in embedded systems development. I also found in exercise 007 that there was some code that we were expected write that wasn't prompted by the instructor leading to some brief confusion.

By Miguel Angel Vicens Oviedo on 5/13/2024

El curso esta muy bien te enseña como se hacen maquinas de estado de diferentes maneras, veo que si sabes usar este programa pueden salir programas muy interesantes. Peroo no me ha gustado que empiece el programa QM con un programa tan complejo como el reloj( esta super bien para aprender porque toca todo) porque te pierdes un poco , solo copias y pegas y no logras a entender que esta haciendo, para mi hubiera estado bien hacer programas simples y luego ir complicando el sistema. Como por ejemplo, en los ejercicios de Moore y Mealy, lo encender un led con diferentes intensidades pulsando un botón era simple y no había un montón de funciones que hacen cosas y te tienes que parar a ver que hacen las funciones para entender realmente como funciona el reloj. Yo propondría que si hay un próximo curso se hagan ejercicios simples donde sentar las bases del programa y luego abordar problemas mas complejos. En general estoy contento con el curso!.

By Nebojša Jeličić SYRMIA doo, Industrijska on 3/29/2024

The course is pretty well done, I learned many things about UML state machines and the tools used were interesting to see. A couple of small things I didn't like was that in some cases, there was code repetition (while the point was to avoid that, e.g. when setting the time on the alarm clock) and I hoped there was going to be more focus on good design (e.g. not only how do you do something, but also what is the best way to do it and why). But the course does cover what is stated quite well, hence the rating. I like that it was a practical application and not some invented problem because it shows how you need think when something comes up that you didn't think about.

By Fernando Mercado Salinas on 7/25/2023

The course is Excellent, I really enjoyed it, and, of course, I learned new things about Arduino. My goal was to learn about State Machines relating to Embedded System and this course does with that, however I really would like and appreciate so much if you can apply the same examples o just one example but using a STM32 with Cube-IDE. Thanks.

By Ran on 12/25/2022

Actually, I wasn't sure what rating to give. On the one hand, the course is well structured and explained; on the other hand, it relies too much on the QM. QM is good software, but it also costs quite a lot, and not every company is using it. I would expect at least some implementation of HSM without QM. That being said, I learned quite a lot, and I am happy to have taken the course.

By Arun Sharma on 4/19/2022

First of all, thank you very much for this course. I purchased this course because I wanted to get started with QP Framework, and couldn't get a proper starting point that could help me in getting started quickly. I am assuming that there will be a few more lectures that the instructor will add in the future because he mentioned "See you in the Next Lecture" ;-) Just Kidding. This is not a small field, but the instructor has provided a very good starting point, and now based on the knowledge gained here and with the book "Practical UML Statecharts", I will proceed further for more detailed learnings. It would be really nice if the instructor can prepare/provide some simple and then move ahead to the real-world project using this approach (apart from the one present in example folders). This will help us in learning with reference. Thank You very Much.

By Kamil Adamczuk on 1/22/2022

I am really impressed. This guy has good tutor skills, he uses C language like a programmer with few years of experience. The UML 2.5 State Machines covered in this course can make embedded systems easier to design, troubleshoot and maintain. If you don't want to use UML and/or expensive tools - this course shows/explains few interesting design patterns which I had to painfully "(re)invent" during my career (15+ years of programming). This course from this tutor is a "must have" course if you work with embedded systems, but you are not using state machines "standarized" with UML yet.

Showing all 10 reviews on CourseDuck

Read all 848 reviews on Udemy

icon
Quality Score

No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.

Content Quality
/
Video Quality
/
Qualified Instructor
/
Course Pace
/
Course Depth & Coverage
/

Overall Score : 90 / 100