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.
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