Program Brain Academy

Embedded Engineer Career Path

Find your current skill level and continue your embedded-learning journey through structured live training and practical projects.

Colorful embedded systems career roadmap from C programming through Arduino, IoT, STM32, FreeRTOS and Bootloader

Topics Covered

C Programming
Module 1: C Programming Fundamentals
  • Introduction to Embedded C Programming
  • Development Environment & Compiler Setup
  • Structure of a C Program
  • Variables & Data Types
Module 2: Operators & Conditional Statements
  • Arithmetic, Relational & Logical Operators
  • Input and Output Functions
  • Decision Making: if, else if, else
  • Continue
  • Switch Case
  • Break
Mini Project: Using Module 1 and Module 2
  • Apply programming fundamentals, operators and conditional statements in a practical mini project
Module 3: Loops
  • For Loop
  • Nested Loops
  • Star Pattern Program
  • While Loop
  • Armstrong Number Program
  • Do While Loop
Module 4: Functions
  • Scope of Variable
  • Function and its Types
  • Function Declaration & Definition
  • Functions with Arguments
  • Functions with Return Values
Module 5: Arrays
  • One-Dimensional Arrays
  • Two-Dimensional Arrays
  • Array-Based Applications
Module 6: Strings
  • String Fundamentals
  • String Manipulation
Module 7: Pointers
  • Pointer Fundamentals
  • Pointer Arithmetic
  • Call by Value & Call by Reference
  • Pointers with Arrays
Module 8: Structures & Advanced C Concepts
  • Structures
  • Unions
  • Enumerations
  • Typedef
  • Preprocessor Directives
  • Header Files
  • Static & Extern Keywords
  • Const & Volatile Keywords
Module 9: Bitwise Programming for Embedded Systems
  • Binary & Hexadecimal Number Systems
  • Bitwise AND, OR, XOR & NOT
  • Left Shift & Right Shift
  • Setting, Clearing & Toggling Bits
  • GPIO Bit Setting and Clearing Concepts
Main Project
  • Build a complete Embedded C application by combining the concepts covered throughout the course

Level Details

Duration: Approximately 2.5 weeks

Mode: Live online classes

Suitable for: Complete beginners

Mini and main projects: Complete a mini project and a main project during this level to apply what you learn.

Topics Covered

Embedded and IoT
Module 1: Embedded Systems and Arduino Fundamentals
  • What is an Embedded System?
  • Embedded System Classification and Applications
  • Microprocessor vs Microcontroller
  • Arduino Board Architecture and Pinout
  • Arduino IDE Installation and Project Setup
  • Writing, Compiling and Uploading the First Sketch
Module 2: Digital Input and Output
  • Digital I/O Concepts
  • LED Interfacing and Control
  • Push-Button Interfacing
  • Pull-Up and Pull-Down Resistors
  • Debouncing Techniques
Module 3: Analog Input and PWM
  • Analog and Digital Signals
  • Arduino ADC and Analog Sensor Reading
  • PWM Fundamentals and Output Control
  • LED Brightness and Motor-Speed Control
Module 4: Sensor Interfacing
  • Digital and Analog Sensors
  • PIR, IR and Ultrasonic Sensors
  • DHT11, LDR and Soil-Moisture Sensors
  • MPU-6050 and Heart-Rate Sensor
  • Sensor Calibration and Data Processing
Module 5: Displays and Actuators
  • 16x2 LCD and I2C LCD Interfacing
  • Servo Motor Control
  • DC Motor Control Using L293D
  • Relay Interfacing and Safety Basics
Module 6: Communication Protocols
  • Serial Communication and UART
  • I2C Communication
  • SPI Communication
  • Interfacing External Modules and Devices
Module 7: Timers and Interrupts
  • Timer Concepts
  • External and Timer Interrupts
  • Interrupt Service Routines
  • Non-Blocking Timing with millis()
  • Practical PWM Applications
Module 8: Arduino Projects
  • Sensor Monitoring System
  • Automatic Light Controller
  • Obstacle-Detection Application
  • Motor and Display Control Project
  • Final Arduino-Based Embedded Project
Module 9: Introduction to IoT
  • What is IoT?
  • What is Cloud?
  • IoT Applications
Module 10: ESP32 Wi-Fi
  • Connect ESP32 to Wi-Fi
  • Wi-Fi Station Mode
  • Wi-Fi Hotspot Mode
Module 11: IoT Protocols
  • Wi-Fi
  • HTTP
  • UDP
  • MQTT
Module 12: Cloud Connection
  • ThingSpeak
  • Send Data to Cloud
  • Read Data from Cloud
  • Firebase
  • Firebase Realtime Database
Module 13: Node-RED
  • Introduction to Node-RED
  • ESP32 with Node-RED
  • Send and Receive Data
  • Dashboard
Module 14: IoT Automation
  • Blynk Automation
  • IFTTT
  • Google Assistant
  • Device Control
Module 15: ESP32 Web Server
  • Create Web Page using ESP32
  • Control LED from Web Page
  • Read Sensor Data from Web Page
Module 16: Port Forwarding
  • Local IP and Public IP
  • Port Forwarding
  • Remote Access
Mini Project
  • Weather Monitoring System

Level Details

Duration: Approximately ~1 month

Requirement: Level 1

Mode: Live practical classes

Mini and main projects: Complete a mini project and a main project during this level to apply what you learn.

Topics Covered

STM32 HAL Programming
Module 1: STM32 and STM32CubeIDE Setup
  • STM32 family and Cortex-M overview
  • STM32CubeIDE installation and project creation
  • CubeMX pinout and clock configuration
  • ST-Link programming and debugging
  • Reading datasheets and reference manuals
Module 2: HAL GPIO and External Interrupts
  • HAL driver structure and generated code
  • GPIO input and output configuration
  • Push-button and LED interfacing
  • External Interrupts using button and LED
STM32 Bare-Metal Programming
Module 1: STM32 Introduction
  • Introduction to STM32 Microcontrollers
  • ARM Cortex-M Architecture Basics
  • STM32 Architecture & Features
Module 2: Development Setup
  • Development Software & Hardware
  • STM32 Custom Board Hardware Overview
  • Creating and Programming the First Project
Module 3: Datasheet & Reference Manual
  • Datasheet Analysis
  • Reference Manual Analysis
Module 4: Registers & Programming Fundamentals
  • What is a Register?
  • Memory-Mapped Registers
  • Register Access Methods
  • Peripheral Register Configuration
Module 5: Bitwise Programming
  • Bitwise Operators
  • Setting Register Bits
  • Clearing Register Bits
  • Reading Register Bits
Module 6: Clock Configuration
  • STM32 Clock System Basics
  • HSI & HSE Clock Sources
  • PLL Basics
  • Peripheral Clock Configuration
  • System Clock Configuration
Module 7: GPIO Programming
  • GPIO Register Configuration
  • Digital Input & Output
  • LED Interfacing
  • Push Button Interfacing
  • Pull-up & Pull-down Configuration
Module 8: Debugging & Development Tools
  • STM32 Debugging Fundamentals
  • Breakpoints & Watch Variables
  • Register-Level Debugging
  • ST-Link Debugger
  • Logic Analyzer
Module 9: Interrupts & NVIC
  • Interrupt Fundamentals
  • NVIC Basics
  • Interrupt Service Routine (ISR)
  • External Interrupt Configuration
  • Interrupt Priority Basics
Module 10: Timers
  • Timer Fundamentals
  • Timer Register Configuration
  • Timer Interrupts
  • ISR-Based Timers
Module 11: PWM Programming
  • PWM Fundamentals
  • PWM Generation
Module 12: ADC Programming
  • ADC Fundamentals
  • ADC Register Configuration
  • Reading Analog Inputs
  • Potentiometer & Sensor Interfacing
Module 13: DMA Programming
  • DMA Programming
Module 14: UART Communication
  • UART Fundamentals
  • UART Transmit & Receive
  • GPS Format
Module 15: SPI Communication
  • SPI Fundamentals
  • SPI Programming
  • DOT Matrix
Module 16: I2C Communication
  • I2C Fundamentals
  • I2C Programming
  • RTC Module
Mini Projects
    Main Project

      Level Details

      Duration: Approximately ~1 month

      Requirement: Level 2

      Mode: Live hands-on classes

      Mini and main projects: Complete a mini project and a main project during this level to apply what you learn.

      Topics Covered

      STM32 FreeRTOS
      Module 1: RTOS Foundations
      • Super-loop Limitations
      • Real-Time System Concepts
      • Scheduler, Kernel and Context Switching
      • Hard and Soft Real-Time Requirements
      • FreeRTOS Integration with STM32CubeIDE
      Module 2: Tasks and Scheduling
      • Task Creation and Deletion
      • Task States and Priorities
      • Pre-emptive and Cooperative Scheduling
      • Delays and Periodic Execution
      • Stack Sizing and Runtime Statistics
      Module 3: Queues and Task Communication
      • Queue Creation and Operation
      • Passing Data Between Tasks
      • Producer-Consumer Design
      • Queue Sets Overview
      • ISR-to-Task Communication
      Module 4: Semaphores and Mutexes
      • Binary Semaphores
      • Counting Semaphores
      • Mutexes
      • Shared Resource Protection
      • Priority Inversion
      • Priority Inheritance
      • Critical Sections
      Module 5: Event Groups and Notifications
      • Event Groups
      • Task Synchronization
      • Direct-to-Task Notifications
      • Software Timers
      • Choosing the Correct Synchronization Method
      Module 6: Interrupts with FreeRTOS
      • Interrupt Handling in FreeRTOS
      • ISR Safe API Functions
      • FromISR Functions
      • Interrupt Priority Configuration
      • Deferred Interrupt Processing
      • ISR-to-Task Synchronization
      Module 7: Memory Management
      • Static and Dynamic Allocation
      • FreeRTOS Heap Implementations
      • Heap Monitoring
      • Stack Overflow Detection
      • Memory Optimization
      Module 8: Task Synchronization Issues
      • Race Conditions
      • Deadlocks
      • Starvation
      • Priority Inversion
      • Shared Resource Management
      Module 9: FreeRTOS with STM32 Peripherals
      • GPIO with FreeRTOS
      • UART with FreeRTOS
      • ADC with FreeRTOS
      • Timers with FreeRTOS
      • DMA with FreeRTOS
      Module 10: Debugging and Performance
      • RTOS-Aware Debugging
      • Task Runtime Statistics
      • CPU Usage Monitoring
      • Stack Usage Monitoring
      • Timing Analysis
      Module 11: Reliability and Watchdog
      • Watchdog Integration
      • Task Health Monitoring
      • Fault Detection
      • Fault Recovery
      • System Recovery Strategy
      Module 12: Low Power with FreeRTOS
      • Idle Task
      • Tickless Idle
      • Low-Power Modes
      • Power-Aware Task Design
      Module 13: FreeRTOS Project
      • Multi-Task Sensor Monitoring System
      • UART Logging Task
      • Peripheral Resource Sharing
      • System Timing Analysis
      • Testing and Debugging
      STM32 Bootloader
      Tools and Communication
      • STM32 Bootloader: C Programming
      • Firmware Flasher: Python + PySerial
      • Communication: UART
      Module 1: Bootloader Basics
      • Bootloader working principle
      • STM32 startup process
      • Bootloader and application structure
      Module 2: Flash Memory
      • STM32 memory map
      • Bootloader and application partitions
      • Application start address
      Module 3: UART Protocol
      • Bootloader commands
      • Firmware packet structure
      • ACK, NACK and timeout handling
      Module 4: Python Flasher
      • Selecting the .bin file
      • Serial-port communication
      • Sending firmware packets
      • Upload progress and error handling
      Module 5: Flash Programming
      • Flash erase and write
      • Firmware verification
      • Flash protection basics
      Module 6: Application Jump
      • Vector-table relocation
      • Application validation
      • Jumping from bootloader to application
      Module 7: Firmware Integrity
      • Checksum/CRC
      • Detecting corrupted firmware
      • Handling failed updates
      Final Project
      • Develop an STM32 UART bootloader in C and a Python application to upload and verify firmware.

      Level Details

      Duration: Approximately ~1 month

      Requirement: Level 3

      Mode: Live mentoring and projects

      Bootloader final project: Develop an STM32 UART bootloader in C and a Python application to upload and verify firmware.
      Specialized Course Path

      Topics Covered

      Power Electronics
      Module 1: Introduction to Power Electronics
      • Introduction to Power Electronics
      • Switching vs Linear Operation
      • Overview of Power Semiconductor Devices
      Module 2: Power Diode Fundamentals
      • Power Diode Fundamentals
      • PN Diode
      • Fast Recovery Diode
      • Schottky Diode
      • Zener Diode
      Module 3: Diode Protection Devices
      • Diode Characteristics and Applications
      • TL431 Voltage Reference Regulator
      • TVS Diode Selection
      • ESD Protection
      • MOV Selection
      Module 4: BJT Fundamentals
      • BJT Construction and Working
      • BJT Configurations
      Module 5: Power MOSFET
      • Power MOSFET Construction and Working
      • MOSFET Selection Parameters
      • MOSFET Switching Characteristics
      Module 6: IGBT
      • IGBT Construction and Working
      • IGBT Selection
      • Conduction Losses
      • Switching Losses
      Module 7: Gate Driver Fundamentals
      • Gate Driver Fundamentals
      • High-Side Gate Driver
      • Low-Side Gate Driver
      Module 8: Gate Driver Protection
      • Bootstrap Technique
      • Dead Time
      • Shoot-Through Protection
      Module 9: Thyristor Devices
      • SCR Fundamentals
      • TRIAC Fundamentals
      • DIAC Fundamentals
      • Thyristor Triggering Methods
      Module 10: Operational Amplifier Fundamentals
      • Operational Amplifier Fundamentals
      • Operational Amplifier Selection
      • Voltage Follower
      Module 11: Op-Amp Applications
      • Inverting Amplifier
      • Non-Inverting Amplifier
      • Summing Amplifier
      • Differential Amplifier
      • Comparator Applications
      Module 12: Protection Circuits
      • Reverse Polarity Protection
      Module 13: Rectifier Circuits
      • Half-Wave Rectifier
      • Full-Wave Rectifier
      • Bridge Rectifier
      • Controlled Rectifiers
      • Uncontrolled Rectifiers
      Module 14: Voltage Regulation
      • LDO Fundamentals
      • DC-DC Converter Fundamentals
      Module 15: Buck Converter
      • Buck Converter
      Module 16: Boost Converter
      • Boost Converter
      Module 17: Buck-Boost Converter
      • Buck-Boost Converter
      Module 18: Projects

      Level Details

      Duration: ~1 month

      Mode : Live practical classes

      Topics Covered

      PCB Design
      Module 1: PCB Design Fundamentals
      • PCB structure, materials and manufacturing process
      • Complete PCB design workflow
      • Two-layer and multilayer PCB introduction
      Module 2: Project Setup
      • Tools and project organization
      • Schematic and PCB editor configuration
      • Grid, units and project settings
      Module 3: Component Library Creation
      • Custom schematic-symbol creation
      • Custom footprint creation
      • Datasheet-based component development
      Module 4: Advanced Schematic Design
      • Hierarchical sheets, buses and net labels
      • Power supply and protection circuits
      • Decoupling and filtering components
      Module 5: Schematic Verification
      • Component annotation and footprint assignment
      • Electrical Rules Check
      • Bill of Materials preparation
      Module 6: Board Setup and Design Rules
      • Board outline and layer configuration
      • Net classes, trace width and clearance
      • Via size and design-rule setup
      Module 7: Component Placement
      • Functional block-based placement
      • Connector and mechanical-component placement
      • Decoupling capacitor and power-section placement
      Module 8: PCB Routing
      • Signal, power and ground routing
      • Via selection and routing optimization
      • Return-current path considerations
      Module 9: Ground and Power Design
      • Ground planes and copper pours
      • Analog and digital ground considerations
      • Thermal relief and current-handling techniques
      Module 10: PCB Validation
      • Design Rules Check
      • Connectivity and mechanical verification
      • 3D-view inspection and final design review
      Module 11: Manufacturing Output
      • Gerber and drill-file generation
      • BOM and pick-and-place files
      • Fabrication and assembly documentation
      Module 12: Practical PCB Project

      Level Details

      Duration: ~1 month

      Mode : Live practical classes