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.
- Register on [CS664 Canvas]
- [Installation Manual] (updated on June 8th, 2018) to interface with Oblu from your Laptop
- [Installation Manual] (updated on June 11th, 2018) with minor updates based on interactions during lab sessions.
- Here is [your attendance]
- What comes below is a tentative plan for the course to help students to decide whether to take this course or not. Some changes are possible based on the (number of) students finally registered.
Topics Covered and Slides
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.
- Introduction & Motivation [slides] [Lecture 1 Reading Notes]
- IoT Around Us [slides] [Lecture 2 Reading/Video Notes]
- Sensors [slides] [Lecture 3 Reading Notes]
- Multi-sensor Systems and Calibration [slides] [Lecture 4 Reading Notes]
- IoT System Overview [slides]
- Power management & Batteries [slides] [Lecture 6 Reading Notes]
- Understanding Microprocessors [slides]
- Microprocessors for IoT Sensors: An Overview [slides] [Lecture 8 Reading Notes]
- Microcontrollers for IoT Sensors: Resources and Processes [slides]
Clock Budgeting of an IoT Sensor Node [slides][Lecture 9 Reading Notes]
- Representation of Numbers [slides]
- Networking and IoT [slides][Lecture 11 Reading Notes]
- Design review of certain aspects of oblu[Lecture 12 Reading/Video Notes]
- Pedestrian Dead Reckoning [slides]
- Case study: oblu's firmware design (framework only) [slides]
- Designing a non-standard communication i/f for an IoT sensor node [slides]
- oblu-Arduino based autonomous vehicle [slides]
- Big Data [slides] [ Interacting with HDFS]
- Hadoop and MapReduce [slides]
- Revisiting Arduino [slides] [Lecture 15 Reading Notes]
- An Introduction to Rasbperry Pi [slides] [Lecture 16 Reading Notes]
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.
- Lab exercise 1a (updated on June 11th, 2018; minor; updates highlighted in red.). Deadline: 15th June, 2018 . Submission through Canvas.
- Lab exercise 2 (updated on June 11th, 2018; minor; updated text in blue.). Deadline: 15th June, 2018 . Submission through Canvas.
- Lab exercise 3. Deadline: 22nd June, 2018 . Submission through Canvas.
- 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.
- Questions. Deadline: 30th May, 2018 . Submission through Canvas.
- Questions. Solution. Deadline: 18th June, 2018 . Submission through Canvas.
There will be short quizzes in classroom to encourage interaction.
- Quiz 1 with solution
- Quiz 2 and its solution
- Endsemester question paper
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
|End semester exam
Reading / Video Notes and References
- Pedestrian Dead Reckoning Simplfied!
- Track my steps
- Continue tracking my steps
- oblu - A Shoe-Mounted Indoor Positioning System by Jeremy S. Cook
- The OpenShoe Project: Tracking each step for safety
- Insurance Telemetics Video
- Smart Automotive
- IoT, Sensors and Calibration - Whats the relation?
- Smart Sensors Fulfilling the Promise of the IoT by Marcellino Gemelli
- IoT, Sensors and Calibration - Whats the relation? by A K Gupta and S Bose
- Story of a Shoe-mounted IoT Sensor Calibration by A K Gupta and S Bose
- Aligning the Forces - Eliminating the Misalignments in IMU Arrays by J Nilsson, I Skog, and P Handel
- Long-term Performance Evaluation of a Foot-mounted Pedestrian Navigation Device by A K Gupta, I Skog and P Handel
- An Open-source Multi Inertial Measurement Unit (MIMU) Platform by I Skog, J Nilsson and P Handel
- Datasheet of Invensense MPU-6500 6-axis IMU
- Positioning of surgical instrument with the array board (Video demo - 140 MB)
- Brochure of CODMAN ICP Sensor
- Battery University
- Microprocessor, Architecture, Programming, & Applications with the 8085 by Ramesh Gaonkar
- AT32UC3C: Detailed specifications
- AT32UC3C: Architecture document
- AT32UC3C: Technical reference manual
- AT32UC3C: Schematics (reference board design)
- 8257 Programmable DMA Controller
- 8259 Programmable Interrupt Controller
- On the noise and power performance of a shoe-mounted multi-IMU inertial positioning system by S Bose, A K Gupta and P Handel
- How to select a microcontroller by J J Vaglica and P S Gilmour
- 10 steps to selecting a microcontroller by J Beningo
- Python: File I/O, Exceptions, Modules
- Python: Classes and OOP (with example scripts)
- Design reference (A project report submitted by students of SNU, Noida)
- 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
- Video demo: Robot pre-programmed with path to navigate
- Video demo: Robot path programmed by Android phone
- Video demo: Robot receiving path on-the-fly from another oblu attached to shoe
- Official webpage of Arduino Mega 2560 Rev3
- Data sheet of ATmega2560
- Official webpage of ATmega2560
- Official webpage of Raspberry Pi 3 Model B+
- Wikipedia entry of Raspberry Pi
There is no textbook for the course. The following material will be used for reference.
Internet of Things: A Hands-on Approach, By Arshdeep Bahga and Vijay Madisetti
Introduction to Embedded Systems: A Cyber-Physical Systems Approach, By Edward Ashford Lee and Sanjit Arunkumar Seshia
Introduction to Computation and Programming using Python, by John Guttag
Python documentation: https://www.python.org/doc/
Android developer: https://developer.android.com/training/index.html
oblu - A Shoe Mounted Indoor GPS (A comprehensive note on oblu)
Recent publications for case studies
Take me to the Top