Embedded System Design using UML State Machines


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


  • Basics of ‘C’ or ‘C++’ programming


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)


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. 16×2 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


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)

Who this course is for:

  • Anyone who wants to learn and explore embedded system programming
  • Students and working professionals

Download Tutotial


0 0 votes
Article Rating
Notify of
Inline Feedbacks
View all comments