Basic Information

  • Course Code: CS 684
  • Course Name: Embedded Systems
  • Course Offered In: Spring 2023
  • Instructors: Prof. Paritosh K Pandya, Prof. Kavi Arya
  • Prerequisites: None, however concepts such as interrupts, timers and IO from EE 309 can be a big help, also PID line following from EE 324 can serve helpful.
  • Difficulty (on a scale of 5): 3

Course Content

  • Theory Aspect: The course starts off with some economics and general industry, technical terminology of embedded systems and their applications in the world today. Followed by introduction to FSMs, Statecharts, Automatons, and how any cyber physical system can be represented using them. Then model based FSM, Automaton design is introduced and why it is advantageous over the conventional embedded systems. The Lustre, heptagon/bzr language is introduced and gone over in depth including Synchronous Data Flow Programming, Higher Order Functions, Uni-Mode Controllers, Multi-Mode Controllers, Finite State Automaton, Concurrent Automata in quite detail till the midsem. After the midsem, a quick intro to topics like Device Drivers, Input/Output device Interfacing and Masking, Motor Interfacing and PWM, ADC Interfacing, White Line Following using PID Controller is taken by ERTS lab RAs to assist with the lab aspect of the course. Finally, the course concluded with concepts from Real Time Operating Systems and Scheduling Theory.

  • Lab Aspect: This course has an extremely heavy lab aspect which runs in parallel with the theory. Hardware kits are provided by ERTS lab such as Alphabot, sensors etc. It can be considered to equivalent in effort to an EE lab organised by WEL. At the start of the semester problem statements for the complete design of an autonomous cyber physical system is released, for us it was either a Valet Parking Robot or Search and Rescue bot which serves as a final course project. There are assignments irrelevant to this final project introduce the tools such as Yakindu Statecharts, heptagon/bzr, bare metal driver programming for sensors and actuators, RTOS etc, and there are labs relevant to the final project, where each part of the final project are tackled such as object detection, line following, PID. Finally all individual aspects are integrated to create the final bot which needs to perform the task in stipulated amount of time. Scores are provided for each step in the design process which carry significant weight in the final grade. You may have to spend countless hours with your teammates debugging and testing the bot in CSE building for which a dedicated room is provided. Each task requires taking a video and submitting the relevant source code.

Feedback on Lectures

Prof. Kavi Arya takes the introduction part and his lectures are insightful as they paint a picture of the entire embedded system industry. The lectures taken by Prof. Paritosh Pandya for heptagon and Scheduling Theory, which take up a significant portion of the course are well planned, exciting and the professor keeps you engaged and clears any doubts that you might have. The sessions on device drivers, peripherals taken by ERTS RAs can be a quick revision of EE309, EE324 for EE folks and are also well organised.

Feedback on Evaluations

Programming assignments are autograded, so there might be some issues with grading script, but cribs and suggestions are taken into account timely. The weightage for each portion is as follows

  • Quizzes : 5% (Some on SAFE, Moodle, Handwritten)
  • Assignments: 20%
  • Labs : 15%
  • Project : 30%
  • Midsem : 20%
  • Endsem : 10%

Study Material and Resources

The content is very specific to the course, reading the slides and attending lectures should be sufficient, heptagon language documentation can also be handy.

Most of the topics covered in Scheduling Theory were developed by the professor himself as part of his research and their papers may assist.

  • https://gitlab.inria.fr/synchrone/heptagon
  • https://cse-erts.github.io/cs684/

The datasheets of sensors, the microcontroller, actuators for practical aspect as you will have to write your own bare metal drivers for them

Follow-up Courses

None

Final Takeaway

The course gives an amazing introduction to model based embedded system design, it’s importance in model checking, formal verification, mission critical hardware such as aircraft controllers. Very practical and hands on course. Extremely rewarding from the tools that one explores in the course, exposure to hardware interfacing, device drivers. Extremely time demanding course, may have to spend many hours on design and debugging, but I feel it’s worth it.