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
Electronics Fundamentals
Module 1: Basic Electricity
- Voltage, Current and Resistance
- Ohm's Law: V = I × R
- Series and Parallel Resistance Circuits
- Kirchhoff's Voltage Law (KVL)
- Kirchhoff's Current Law (KCL)
- AC vs DC
- Frequency, Period and Waveform Basics
Module 2: Resistors
- Fixed and Variable Resistors
- Resistor Color Code
Module 3: Capacitors
- Types of Capacitors
- Time Constant
- Polarity in Electrolytic Capacitors
Module 4: Inductors
- Magnetic Field
- Time Constant
- Inductive Reactance
Module 5: Filters
- Low Pass Filter
- High Pass Filter
- Band Pass Filter
- Decoupling and Coupling Behaviour
- RLC Behaviour and Impedance
Module 6: Diodes
- Diode Symbol and LED
- Forward and Reverse Bias
- Zener Diode
- Rectifier Diode
Module 7: Transistors
- NPN and PNP Transistors
- Transistor as a Switch
- Transistor as an Amplifier
Module 8: MOSFETs
- N-Channel MOSFET
- P-Channel MOSFET
- Gate, Drain and Source
- MOSFET as a Switch
Module 9: Voltage Regulators
- Linear Regulators
- Switching Regulators
- 7805 Voltage Regulator
- AMS1117 Voltage Regulator
- LM2596 Buck Converter
Module 10: 555 Timer
- Astable Mode
- Bistable Mode
- Monostable Mode
Module 11: Real-Time Projects
- Hands-on Projects Using Electronic Components
- Circuit Design and Testing
- Hardware Debugging Techniques
- Practical Embedded Electronics Applications
PCB Design
Module 1: Introduction to PCB Design
- PCB basics and purpose of PCBs
- Types: single-layer, double-layer, multilayer, flexible
- Applications of PCBs
- Complete PCB design flow
Module 2: Electronic Components & Symbols
- Resistors, capacitors, inductors, diodes, transistors, ICs, connectors
- Reading datasheets
- THT and SMD packages
Module 3: Component Library Creation
- Creating schematic symbols
- Creating PCB footprints
- Linking symbols to footprints
- Library management
Module 4: Schematic Design
- Project creation and schematic capture
- Power symbols, net labels, buses
- Hierarchical sheets
- ERC (Electrical Rules Check)
Module 5: Component Selection
- Reading datasheets
- Voltage/current ratings
- Package selection and alternatives
- BOM preparation
Module 6: PCB Layout Fundamentals
- Board outline
- Importing schematic (netlist)
- Component placement
- Design rules, layers, keep-out zones
Module 7: PCB Layout & Routing
- Manual routing
- Power and signal routing
- Track width, vias
- Ground planes and copper pours
Module 8: Advanced PCB Design
- Decoupling capacitors
- EMI/EMC considerations
- Signal integrity
- Thermal management
- ESD protection
Module 9: Design Verification
- DRC (Design Rules Check)
- ERC review
- 3D inspection
- Clearance checking and final verification
Module 10: Gerber Generation
- Generating Gerber files
- Drill files
- BOM and pick-and-place files
- Verification
Module 11: JLCPCB Manufacturing
- Uploading Gerber files
- PCB specifications
- Cost estimation
- Ordering and PCBA process
Practical Projects
- LED Blinker
- STM32 Development Board
- ESP32 IoT Board
- Relay Controller
- RS485 Interface
- Motor Driver
- Industrial Sensor Interface
Level Details
Trainer: Jai
Duration: Approximately 6–8 weeks
Training: 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 C Programming
Module 1: C Programming Fundamentals
- Introduction to Embedded C Programming
- Development Environment & Compiler Setup
- Structure of a C Program
- Variables & Data Types
- Constants & Macros
- Arithmetic, Relational & Logical Operators
- Input and Output Functions
- Decision Making: if, else if, else
- Switch Case
Module 2: Loops, Functions & Program Flow
- For Loop
- While Loop
- Do While Loop
- Nested Loops
- Break & Continue
- Function Declaration & Definition
- Functions with Arguments
- Functions with Return Values
- Scope of Variables
- Storage Classes Basics
Module 3: Arrays, Strings & Pointers
- One-Dimensional Arrays
- Two-Dimensional Arrays
- Array-Based Applications
- String Fundamentals
- String Manipulation
- Pointers Fundamentals
- Pointer Arithmetic
- Call by Value & Call by Reference
- Pointers with Arrays
Module 4: Bitwise Programming
- Binary & Hexadecimal Number Systems
- Bitwise AND, OR, XOR & NOT
- Left Shift & Right Shift
- Setting, Clearing & Toggling Bits
- Bit Masking
- Register-Oriented Bit Manipulation
- Practical Bitwise Programming Tasks
Module 5: Structures & Advanced C Concepts
- Structures
- Unions
- Enumerations
- Typedef
- Preprocessor Directives
- Header Files
- Static & Extern Keywords
- Const & Volatile Keywords
Module 6: Practical Programming Exercises
- Star Pattern Program
- Armstrong Number Program
- Password Checking Application
- UART Data Handling Logic
- Bitwise Control Application
- Menu-Driven Embedded Application
Module 7: Main Project
- Requirement Analysis
- Program Flow Design
- Modular Code Development
- Debugging & Testing
- Hands-on Embedded C Programming Project
Embedded Systems & IoT
Embedded Introduction
- What is an embedded system?
- Classification of Embedded System
- Microprocessor and Microcontroller
- Intro to Arduino and ESP32
Software Installations
- Arduino IDE
- Node.js, Node-RED
I/O Programming
- What is digital and analog
- Intro to Digital and Analog I/Os
- LED and button interface — Why Pull-Down Resistor
- Demonstrate Digital and Analog I/Os
Communication Protocols
- WiFi and Bluetooth
- UART
- I2C
- SPI
Sensor Interfacing
- Intro to sensors and how they work
- Digital and analog sensors
- PIR, IR, Ultrasonic, DHT11, LDR, Soil Moisture sensors
- MPU-6050, Heart rate sensor
Motor Control
- Motor Control by L293D IC
- Servo Motors
Display Interface
- 7 Segment Displays
- Two 7 Segment Displays interference
- LCD and I2C interface
Timers and Interrupts
- Timer and interrupts concepts
- PWM concept
Introduction to IoT
- What is IoT and Cloud
Connect ESP32 with WiFi
- How to connect ESP32 via WiFi
- Demonstration
Cloud Connection
- Connect to ThingSpeak
- Data sending and receiving
- Connect to Firebase
- IFTTT
- Mini project: Weather monitoring
IoT Protocols
- WiFi
- HTTP
- UDP
- MQTT
- Hotspot access
IoT Automations (Projects)
- Automation using Blink
- Automation with Google Assistant
- How to make your own website using ESP32
- How to control LEDs using that website
Level Details
Trainer: Akash
Duration: Approximately 6–8 weeks
Requirement: Level 1 or assessment
Training: 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
- EXTI interrupt configuration
- Interrupt callbacks and debouncing
Module 3: Timers and PWM
- General-purpose timer configuration
- Timer interrupts and callbacks
- Input capture and output compare
- PWM generation
- Servo and DC motor control
Module 4: ADC and DMA
- ADC fundamentals and configuration
- Single and continuous conversion
- Multi-channel ADC scanning
- DMA fundamentals
- ADC with DMA data acquisition
Module 5: UART Communication
- Polling, interrupt and DMA modes
- Transmit and receive APIs
- Command parsing and ring buffers
- Serial debugging
- Error and timeout handling
Module 6: I2C and SPI
- I2C master communication
- Interfacing EEPROMs and sensors
- SPI master communication
- Interfacing displays and external devices
- Protocol debugging with a logic analyzer
Module 7: System Integration Project
- Reusable driver development
- Sensor, display and communication integration
- Non-blocking firmware design
- Debugging and validation
- Complete STM32 HAL application
STM32 Bare-Metal Programming
Module 1: STM32 Introduction & Development Setup
- Introduction to STM32 Microcontrollers
- ARM Cortex-M Architecture Basics
- STM32 Architecture & Features
- Datasheet & Reference Manual Analysis
- STM32 Custom Board Hardware Overview
- Development Software & Hardware
- Creating and Programming the First Project
Module 2: Registers & Programming Fundamentals
- What is a Register?
- Memory-Mapped Registers
- Bitwise Operators
- Register Access Methods
- Setting, Clearing & Reading Register Bits
- Peripheral Register Configuration
Module 3: Clock & System Configuration
- STM32 Clock System Basics
- HSI & HSE Clock Sources
- PLL Basics
- Peripheral Clock Configuration
- System Clock Configuration
Module 4: Debugging & Development Tools
- STM32 Debugging Fundamentals
- Breakpoints & Watch Variables
- Register-Level Debugging
- ST-Link Debugger
- Logic Analyzer / Digital Storage Oscilloscope (DSO)
Module 5: GPIO Programming
- GPIO Register Configuration
- Digital Input & Output
- LED Interfacing
- Push Button Interfacing
- Pull-up & Pull-down Configuration
- External Interrupts
Module 6: Interrupts & NVIC
- Interrupt Fundamentals
- NVIC Basics
- Interrupt Service Routine (ISR)
- External Interrupt Configuration
- Interrupt Priority Basics
Module 7: Timers & PWM
- Timer Fundamentals
- Timer Register Configuration
- Timer Interrupts
- ISR-Based Timers
- PWM Fundamentals
- PWM Generation
Module 8: Analog & ADC
- ADC Fundamentals
- ADC Register Configuration
- Reading Analog Inputs
- Potentiometer & Sensor Interfacing
Module 9: Communication Protocols
- UART Fundamentals
- UART Transmit & Receive
- SPI Fundamentals
- SPI Programming
- I2C Fundamentals
- I2C Programming
Module 10: Peripheral Interfacing
- Seven-Segment Display
- 16x2 LCD Interfacing
- Sensor Interfacing
- Motor & PWM Applications
Module 11: Mini Projects
- GPIO-Based Application
- Timer & PWM Application
- ADC Sensor Monitoring
- UART Communication Project
Module 12: Main Project
- Complete Bare-Metal STM32 Application
- Peripheral Integration
- Hardware Testing & Debugging
- Final Project Development
Level Details
Trainer: Lead Trainer
Duration: Approximately 8–10 weeks
Requirement: Level 2 or assessment
Training: 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 safely between tasks
- Producer-consumer design
- Queue sets overview
- ISR-to-task communication
Module 4: Semaphores and Mutexes
- Binary and counting semaphores
- Mutexes and shared-resource protection
- Priority inversion
- Priority inheritance
- Critical sections
Module 5: Event Groups and Notifications
- Event groups and synchronization
- Direct-to-task notifications
- Software timers
- Deferred interrupt processing
- Choosing the correct synchronization primitive
Module 6: Memory and Reliability
- Static and dynamic allocation
- FreeRTOS heap implementations
- Stack overflow detection
- Deadlock and race-condition prevention
- Watchdog integration and fault recovery
Module 7: FreeRTOS Project
- Multi-task sensor monitoring system
- UART logging task
- Peripheral resource sharing
- System timing analysis
- Testing and debugging with RTOS-aware tools
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
Trainer: DevaRajan
Duration: Approximately 6–8 weeks
Requirement: Level 3 or assessment
Training: Live mentoring and projects
Bootloader final project: Develop an STM32 UART bootloader in C and a Python application to upload and verify firmware.