Proposed Learning Outcomes

Based on efforts you put in (irrespective of what you already know and what grade you get), it is expected that you will learn the following:

  • Program microcontroller based systems (using embedded C)
  • Understand/Use several of microcontroller internal modules including Pulse Width Modulator (PWM), Timer, Counter, Analog-to-Digital Converter (ADC), Serial Port (UART), Memory (EEPROM, SRAM)
  • Learn to interface off-the-shelf external components with the microcontroller over multiple interfaces such as SPI, UART, GPIO, ADC
  • Develop their own simple hardware attachments for the microcontroller board by soldering the required components together. Debugging the hardware in the process will provide them with necessary skills around considerations required upfront while designing any hardware module.
  • Appreciate broader system constraints like power consumption, synchronization, scheduling that may arise when building a network of these embedded systems
  • Broad understanding of RTOS by actually implementing the code in the hardware above a RTOS
  • Acquire knowledge about recent work in the domain of Cyber Physical Systems
  • Learn about the challenges in real world deployment of the system through deploying an end-to-end system for interfacing multiple sensors and communicating the aggregated data to a central server as part of the course project. They will learn to think how to possibly extend the systems through hands-on experience of extending the system to provide additional functionality specific to their own project.
  • Evaluation

    • Hardware assignments – 10%
    • Mid Term Exam – 15% (Sample mid-sem) (Mid-sem-solutions)
    • Final Exam – 25%
    • Group Project - 35%
    • Class presentation - 10%
    • Summary reports for other specialization topics and research papers in Cyber Physical Systems - 5%
    CSE 337 and CSE 537 students will be evaluated separately. Class presentation will not be mandatory for CSE 337 students and will be compensated by 5% higher weight in summary reports and 2.5% higher weight each in Mid Term and Final Exam. Additionally, CSE537 students will be expected to do a bit more in their course project.

    Office Hours

    • Amarjeet Singh: Monday 1-2 pm (B302)
    • Nipun Batra: Tuesday 10 AM - 1 PM (Hardware Lab)
    • Arpan Jati: Thursday 2-4 PM (IS/DE M.Tech. Lab - 4th Floor)

    Please try to meet up only during the designated office orders and avoid interruptions otherwise it is really urgent.

    Lecture Slides

    Assignments

    The students are expected to complete the following assignments on their own (on-demand lab sessions will be organized as per the request of the students in the class):
    1. Understanding the Programming Environment (AVR32 Studio/ AVR Studio 5.0) and the EVK1100 Evaluation Kit: 
      1. Deadline: January 20
      2. Expected deliverable: 
        1. Make yourself familiar with the different on-board components of EVK1100
        2. Make yourself familiar with the programming environment (one of AVR32 Studio or AVR Studio 5.0)
        3. Look at the sample code from the tool but write the code from scratch to display your name on the LCD screen
        4. Familiarize yourself with how the code is operating, including the register and I/O settings that are being - what are the settings and where they are done.
    2. Interfacing external sensor with the microcontroller:
      1. Deadline: January 27
      2. Expected deliverable: 
        1. Purchase a contact sensor and header pins. Connect the header pins to some of the external pins of your EVK1100 board.
        2. Look at the existing "Control panel" program (that comes as sample code from Atmel) and any other reference you may like. Create your own code from scratch to collect the data from the sensor and display that data on a screen.
        3. You are expected to know what different register settings are happening; where they are happening and why they are happening
    3. Programming an external microcontroller over JTAG/ISP
      1. Deadline: February 3
      2. Expected deliverable: The student should be able to program a microcontroller on your EVK1100 board using the USB interface of another board (you can use either of EVK1100 or AVR Dragon as the primary board)
    4. Interfacing external memory with the microcontroller
      1. Deadline: February 10
      2. Expected deliverable: Make you own control panel program for the EVK1100 with following specifications:
        1. Collect the sensor data at 10 Hz (from all on-board sensors)
        2. Store the data in the Flash memory on-board EVK1100 (outside the microcontroller)
        3. Every 3 seconds, compute the average of the historical data (30 readings) and display it on the LCD
        4. For this you first have to burn the boot loader back into the board. This is a must and should be done by you before you can do this assignment [Download original EVK1100 hex file]
    Useful References:
    1. AVR Studio for download
      1. Use the inbuilt help files (under AVR Tools Help) to look at User Guide for AVR Dragon, AVR A1-Xplained and AVR EVK1100 Evaluation Kit
    2. EVK1100 Getting Started Guide
    3. EVK1100 Schematics
    4. Atmel Application Note for Programming the AVR UC3 Devices
    5. Atmel Application Note for getting started with AVR Software Framework
    6. Atmel Application Note for executing code from external SDRAM is available
    7. AVR32 Datasheet Summary
    8. AVR32 Long Datasheet
    9. Guide to program EVK1100 with AVR32 Studio

    Group Project

    Students are expected to make a group of 2 and do a group project on Building Monitoring System. RTOS based microcontroller platforms will be provided to each group which are to be installed in one of the hostel rooms. Each group should submit a project proposal by March 7, 2012. The proposal document should contain dates when each of the following outcomes will be achieved for the Phase-I of the project:
    1. Decide on one of the rooms where your system will be deployed. You should get a consent from me as well as the occupants of the room for installing system in their room. For the boys hostel, the rooms should be in the B-Wing on the first and second floor. Try to instrument all the rooms in at least one of the wings and then only start selecting rooms in another wing.
    2. Understand and test the wiring connections in your room - While the IT people were asked to put wires according to a specific layout, some rooms may have a different connectivity. You are required to test the continuity of the wires in your room for the sensor installation. Further test out the ethernet connectivity for your node in your room (work with IT people to get the MAC address registered and assigned an IP through DHCP)
    3. Understanding the flyport module hardware, microcontroller code for flyport and installation of the server side software on your machine to test the node sending data to your own server.  
    4. Actual installation of the core system in your chosen room with a subsystem of PIR sensor, temperature sensor, light sensor
    5. Collect good quality data (for at least 2 days) from your system at the server end - you may use either the server setup by MUC research group or the server setup on your own laptop
    6. Prepare the report with updates on Phase-I
    All of the above 5 activities should be spread in a way such that you complete all of them by March 31, 2012. 50% of the project evaluation will be based on your work in Phase-I. Thereafter, in Phase-II, you are supposed to extend the basic system. A list of projects for extending the existing system is available here. You can also suggest your own extension. You should append to the earlier submitted report the progress in Phase-II to create the final project report. Each group to submit a single report.

    Useful References:
    1. Guide to understand the Flyport code
    2. PIC Microcontroller Datasheet
    3. OpenPicus website - This has links to all the references related to the hardware. Specifically, following resources are must:
      1. API Quick Reference Guide
      2. Programmer's Guide
      3. IDE 2.2 - User Guide
    4. Link for Flyport Webinars
    5. Schematics and layout for Flyport Baseboard - You will be using it for programming (together with FTDI converter) and for adding any sensor (for this you have to add some header pins to the base board) if you want to debug the board or play with some sample codes
    6. Wiring layout of the rooms - Most of the rooms will be of type-II while you may find some rooms of Type-1 or even some rooms that may not conform with any of the two types. Those that do not conform with any of the room types, please create a similar diagram and let me know the room numbers.

    Class Presentations

    Those who are taking advanced level for this course (CSE537) are required to make class presentation on one of the following topics. For others, it is optional. Select your topic by February 18 and plan to prepare a 40 minutes presentation on your selected topic. Schedule for the topics will be posted after the topics have been selected by everyone. You should send the presentation slides at least 5 days before your presentation date for approval by me. Failure to get your presentation reviewed on time will incur you 30% penalty in your overall assessment in this category. For each topic, I will provide a base reference that everyone has to read. The summary is to be prepared for this base reference. Those presenting should read other relevant material on internet while preparing their slides.

    1. Modbus Protocol - Cover protocol specifications (similar to how protocols like 1-wire are discussed in the class), go in-depth on modbus RTU and modbus TCP, select one of the open source modbus protocol stack (e.g. pymodbus) and refer to the commands when explaining modbus. You can use this and this as base reference.
    2. BACnet Protocol - Explain working of BACnet protocol, specifically covering how BACnet-IP works. In particular explain how some open source stack can be used to talk to any commercial BACnet based controller. You can use tutorials from here as base reference.
    3. Power Line Communication - Explain what does PLC work and what are the problems in using PLC. Use this as base reference
    4. 6LowPAN: Explain different attributes of the 6LowPAN that extends IPv6 for low power wireless networks. Use this paper as base.
    5. COAP: Explain different attributes of COAP architecture that allows interactive connectivity of electronic devices using Internet. Use this paper as base
    6. Non-Intrusive Load Monitoring (NILM): Using meter level information to extract appliance level information is typically considered under NILM. You can use this paper as base.
    7. Plug Load Monitoring: Discusses controlling appliances that are plugged into wall socket for energy conservation. You can use this as base reference.
    8. Occupancy Detection: Detect occupancy for smarter decision making. You can use this as base reference.
    9. Non-intrusive water flow monitoring: Just use the following paper
      • Younghun Kim, Thomas Schmid, Zainul M Charbiwala, Jonathan Friedman, Mani B Srivastava, "NAWMS: Nonintrusive Autonomous Water Monitoring System," The 6th ACM Conference on Embedded Networked Sensor Systems (SenSys 2008), November 2008 PDF
    10. Clock Synchronization Using AC Power Lines: Just use the following paper
      • Anthony Rowe, Vikram Gupta, Raj Rajkumar, "Low-power Clock Synchronization using Electromagnetic Energy Radiating from AC Power Lines," 7th ACM Conference on Embedded Networked Sensor Systems (SenSys), November 2009. PDF
    11. Indirect occupancy detection: Use existing information to detect occupancy. You can use this as base reference.