• Basic C language
  • Basics of electronics (good to have but not mandatory)
  • No prior Internet of Things knowledge required

Course objectives

The second course in the three-course series at IoT node level covers topics on sensing. In order to get data from the real world, one of the key functionalities any embedded system should possess is the ability to sense.

This course starts with an introduction to software engineering for embedded systems and then covers concepts on concurrency, GPIOs, analog interfacing, timers, programming techniques for power-efficient computing, dynamic memory access (DMA), and most importantly, serial communication (UART, SPI, I2C, etc.) used for interfacing the controller with the sensors.

The remaining two courses in this series will cover “compute” (computation/processing functionality of IoT nodes) and “connect” (connectivity capability of IoT nodes).

Reasons to enroll

  • To learn designing and for developing devices at IoT node level
  • To employ software-engineering processes while building embedded systems
  • To understand concepts of concurrency
  • To work with GPIOs, timer modules, and serial communication
  • To apply programming techniques for power-efficient computing
  • To gain hands-on lab experience by executing the exercises on the hardware

Who can enroll?

  • New employees going through onboard training in embedded systems
  • Working professionals/software engineers having a keen interest to work on microcontrollers for IoT node–level development
  • Second- and third-year engineering students studying electronics/computer-science engineering or similar fields
  • Hobbyists looking to build applications at IoT node level

Outcomes of this course

This course will help the learners:

  • Understand and explain various software-engineering methodologies that are used while developing a software or system
  • Understand and explain concurrency and various scheduling concepts
  • Discuss concepts of GPIOs and its low-level drivers
  • Explain the concepts of analog to digital and digital to analog conversion and working of an ADC
  • Describe the working of timer modules and explain the interrupt timer and PWM
  • Understand serial communication and common protocols like UART, SPI, and I2C
  • Understand and discuss high-level and low-level techniques involved in programming for power-efficient computing


E-Learning modules course run time: 30 hours

  1. Software Engineering for Embedded Systems
  2. Concurrency
  3. General Purpose Input Output (GPIO)
  4. Analog Interfacing
  5. Timers
  6. Serial Communication
  7. DMA: Dynamic Memory Access
  8. Programming Techniques for Power efficient computing


Read the FAQs