CS664: IoT System Design (2018 Summer Semester)

The focus of this introductory course would be “the smart sensor node” with emphasis on design, requirement, data interfacing and capabilities. The course would cover engineering fundamentals, blended with good industrial practices, which lead to the first-time success of the design and development of sensor node. API development, cloud computing, and data analysis would also be covered in brief. Lab sessions and case studies will supplement the classroom interactions.

After completing this course, students will be in a position to understand various building blocks and working of state-of-the-art IoT systems. Students would also gain enough insights to conceive and build IoT systems on their own.

Code of Ethics

Any report/program/assignment you submit must clearly distinguish your contribution from others (webpages, softwares, report, discussions with other students). The penalty for copying in any form will be severe.


Topics Covered and Slides

Course Contents

The images/contents are used for teaching purpose and for fun. The copyright remains with the original creator. If you suspect a copyright violation, bring it to our notice and we will remove that image/content.

  1. Introduction & Motivation [slides] [Lecture 1 Reading Notes]
  2. IoT Around Us [slides] [Lecture 2 Reading/Video Notes]
  3. Sensors [slides] [Lecture 3 Reading Notes]
  4. Multi-sensor Systems and Calibration [slides] [Lecture 4 Reading Notes]
  5. IoT System Overview [slides]
  6. Power management & Batteries [slides] [Lecture 6 Reading Notes]
  7. Understanding Microprocessors [slides]
  8. Microprocessors for IoT Sensors: An Overview [slides] [Lecture 8 Reading Notes]
  9. Microcontrollers for IoT Sensors: Resources and Processes [slides] Clock Budgeting of an IoT Sensor Node [slides][Lecture 9 Reading Notes]
  10. Representation of Numbers [slides]
  11. Networking and IoT [slides][Lecture 11 Reading Notes]
  12. Design review of certain aspects of oblu[Lecture 12 Reading/Video Notes]
  13. Big Data [slides] [ Interacting with HDFS]
  14. Hadoop and MapReduce [slides]
  15. Revisiting Arduino [slides] [Lecture 15 Reading Notes]
  16. An Introduction to Rasbperry Pi [slides] [Lecture 16 Reading Notes]

Lab exercises

You are supposed to submit report on each lab experiment. The lab report must include answers to the questions asked at the end of every lab exercise.

  1. Lab exercise 1a (updated on June 11th, 2018; minor; updates highlighted in red.). Deadline: 15th June, 2018 . Submission through Canvas.
  2. Lab exercise 2 (updated on June 11th, 2018; minor; updated text in blue.). Deadline: 15th June, 2018 . Submission through Canvas.
  3. Lab exercise 3. Deadline: 22nd June, 2018 . Submission through Canvas.
  4. Lab exercise 4. Deadline: 11th July, 2018 . Submission through Canvas.

Hint for connecting oblu to WiFi network.

Overview of Atmel Studio Environment.

Sample calibration file.

Time differential demystified.


There will be short assignments to give you a chance to apply the lecture material. Assignments will have some programming tasks.

  1. Questions. Deadline: 30th May, 2018 . Submission through Canvas.
  2. Questions. Solution. Deadline: 18th June, 2018 . Submission through Canvas.


There will be short quizzes in classroom to encourage interaction.

  1. Quiz 1 with solution
  2. Quiz 2 and its solution

Endsemeter Exam

  1. Endsemester question paper

Course Project

Each group will be given one more WiFi enabled oblu board + battery + casing


Data fusion of dual foot-mounted INS to reduce the systematic heading drift by Prateek G V, Girisha R, K V S Hari and Peter Handel

Setting up WiFi (ESP8266) module

How to register on the AWS Educate program

Some help on creating account on AWS Educate AWS account creation guide and AWS Educate student setup guide

Evaluation Scheme


Assignments 20%
End semester exam 35%
Course Project 35%
Class Interaction 10%

Reading / Video Notes and References

Lecture 1

  1. Pedestrian Dead Reckoning Simplfied!
  2. Track my steps
  3. Continue tracking my steps
  4. oblu - A Shoe-Mounted Indoor Positioning System by Jeremy S. Cook
  5. The OpenShoe Project: Tracking each step for safety

Lecture 2

  1. Insurance Telemetics Video
  2. Smart Automotive

Lecture 3

  1. IoT, Sensors and Calibration - Whats the relation?

Lecture 4

  1. Smart Sensors Fulfilling the Promise of the IoT by Marcellino Gemelli
  2. IoT, Sensors and Calibration - Whats the relation? by A K Gupta and S Bose
  3. Story of a Shoe-mounted IoT Sensor Calibration by A K Gupta and S Bose
  4. Aligning the Forces - Eliminating the Misalignments in IMU Arrays by J Nilsson, I Skog, and P Handel
  5. Long-term Performance Evaluation of a Foot-mounted Pedestrian Navigation Device by A K Gupta, I Skog and P Handel
  6. An Open-source Multi Inertial Measurement Unit (MIMU) Platform by I Skog, J Nilsson and P Handel
  7. Datasheet of Invensense MPU-6500 6-axis IMU
  8. Positioning of surgical instrument with the array board (Video demo - 140 MB)
  9. Brochure of CODMAN ICP Sensor

Lecture 6

  1. Battery University

Lecture 8

  1. Microprocessor, Architecture, Programming, & Applications with the 8085 by Ramesh Gaonkar
  2. AT32UC3C: Detailed specifications
  3. AT32UC3C: Architecture document
  4. AT32UC3C: Technical reference manual
  5. AT32UC3C: Schematics (reference board design)

Lecture 9

  1. 8257 Programmable DMA Controller
  2. 8259 Programmable Interrupt Controller
  3. On the noise and power performance of a shoe-mounted multi-IMU inertial positioning system by S Bose, A K Gupta and P Handel
  4. How to select a microcontroller by J J Vaglica and P S Gilmour
  5. 10 steps to selecting a microcontroller by J Beningo

Lecture 11

  1. Python: File I/O, Exceptions, Modules
  2. Python: Classes and OOP (with example scripts)

Lecture 12

  1. Design reference (A project report submitted by students of SNU, Noida)
  2. Section I and II of Long-term Performance Evaluation of a Foot-mounted Pedestrian Navigation Device by A K Gupta, I Skog and P Handel
  3. Video demo: Robot pre-programmed with path to navigate
  4. Video demo: Robot path programmed by Android phone
  5. Video demo: Robot receiving path on-the-fly from another oblu attached to shoe

Lecture 15

  1. Official webpage of Arduino Mega 2560 Rev3
  2. Data sheet of ATmega2560
  3. Official webpage of ATmega2560

Lecture 16

  1. Official webpage of Raspberry Pi 3 Model B+
  2. Wikipedia entry of Raspberry Pi


There is no textbook for the course. The following material will be used for reference.

Take me to the Top