Instructor: Nicholas DeMarinis
Email: ndemarinis at wpi dot edu
Phone: 401-484-1525
Office Hours: Tuesday 5-7pm, Wednesday 2-4pm, Thursday 5-7pm, AK113

Senior Tutor: Aakash Murugan
Email: amurugan at wpi dot edu
Office Hours: Monday 2-4pm, Friday 2-4pm, AK113

Lectures Tuesdays, 2:00-3:50pm, Thursdays, 12:00-1:50pm in AK219
Labs Thursdays, 2:00-3:50pm in AK113
4 labs + 1 short “lab”
All labs must be completed in order to pass the course!
Homework See Homework.
Exams 2 exams, see Schedule for details.
Office Hours Typical hours are listed above.
Please see the course calendar on Canvas for the most up to date schedule.

Course description

Embedded computers are literally everywhere in modern life. On any given day we interact with and depend on dozens of small computers to make coffee, run cell phones, take pictures, play music, control elevators, manage the emissions and antilock brakes in our automobile, control a home security system, and so on. Using popular everyday devices as case studies, students in this course are introduced to the unique computing and design challenges posed by embedded systems. Students will then solve real-world design problems using small, resource constrained (time/memory/power) computing platforms. The hardware and software structure of modern embedded devices and basic interactions between embedded computers and the physical world will also be covered in lecture and as part of laboratory experiments. In the laboratory, emphasis is placed on interfacing embedded processors with common sensors and devices (e.g. temperature sensors, keypads, LCD display, SPI ports, pulse width modulated motor controller outputs) while developing the skills needed to use embedded processors in systems design. This course is also appropriate for RBE and other engineering and CS students interested in learning about embedded system theory and design.

Recommended Background: While it is expected that you have experienced C programming prior to taking this class, you are not required to be fully comfortable with it. This course is designed to teach you embedded design while helping you build your programming skills and teaching you the relevant systems programming concepts along the way!

If you have questions about whether this course is a good fit for you, please feel free to contact the instructor.

Textbook and References

There is no required textbook for this course. Instead, you will be provided notes and shown how to find the information you need from online manuals, documentation, and datasheets related to our development platform.

A good reference text (which is not required) is “MSP430 Microcontroller Basics” by John H. Davies, which is available online from the WPI library. You can access the textbook by clicking here and selecting “Connect to E-book”.

It is also useful (though not required) to have a good reference on C programming. Any textbook from a systems programming course should be sufficient. If you are looking for an additional reference, my personal recommendation for a C programming reference is “The C programming language” by Brian Kernighan and Dennis Ritchie, 2nd edition, which is also available from the library here or can be purchased online at a low cost.

Documentation related to our development boards and environment can be found on the Resources page. Other online references can be found on the Links page.


During the course, we will be developing for the TI MSP430 architecture using a platform based on TI’s MSP430 Launchpad development board. At the beginning of term, you will be assigned a development board to use for your labs and homework assignments. Our development boards contain a TI Launchpad, an LCD display, and a custom hardware board developed at WPI with some peripherals for us to use.

At the end of term, you must return the board with all components (board, box, cables, etc.) in working condition. Until your board is returned, you will not receive a grade for the course!

General Grading Policies

All grades will be posted to WPI’s new course management system, Canvas.

Your grade will be computed as follows:

Lab assignments 55%
Exams (2) 30%
Homework 15%

You must receive a passing grade in the exam portion and make a good faith attempt on all lab assignments in order to receive a grade. For details on this requirement, please contact the course instructor.

Final grades will be determined as follows: a grade of A indicates exceeding the course requirements and expectations; a B indicates that the requirements and expectations have been successfully met; a C indicates that the requirements have been minimally met, but below expectations; an NR indicates that the course requirements have not been met.

Assignment Policies


Lab assignments are a key part of this course. Labs are typically conducted in teams of two, though you may work alone if you wish. Teams larger than two are not permitted.

Team members should contribute equally to the development of the lab. Both partners are responsible for understanding all components of the work you develop–be prepared to answer questions about your work at the end of your lab! In addition, both partners are expected to contribute to the lab report; it is not sufficient for one partner to do the lab and leave the other partner to write the report.

During lab, you are welcome to discuss the lab assignment with other teams as well as the course staff. However, the implementation for the lab developed by your team must be your own. Sharing of source code between teams or using source code from previous offerings of the course is considered a violation of the Academic Honesty policies and will be handled accordingly.

Your labs will require use of our MSP430 Development Board, which will be provided to you at the start of class. See Development Boards for more information on this. Your implementation for each lab must adhere to the Coding Standard defined for our course, which emphasizes good software engineering practices.

Each lab will require a short report explaining your implementation, results, and your conclusions about them to demonstrate your understanding of the lab goals. A grading rubric for these reports is available on the course website.


At the end of each lecture, a small homework-style problem may be assigned to be completed before the start of the next class. These problems are designed as short examples of lecture concepts to prepare you for further discussion in class. Assignments may be handwritten or typed, but must be completed neatly. Solutions to the problems will be developed during class, and will be posted with the day’s lecture notes. All assignments will be completed individually, though you are welcome to collaborate with your peers.

The goal of these short problems is to encourage you to engate with the material frequently, rather than to get you to develop totally-correct solutions. Problems will be graded with this in mind, with the majority of points given to submissions that utilize the appropriate techniques and methods for the problem.

For more details see Homework.

Class Attendance

Due to the compact nature of our course schedule, it is strongly recommended that all students attend all classes. In case of a planned or unplanned absence, please notify the instructor via email as soon as possible.

We will be testing using class capture to record lectures this term. However, this is not an online class: lectures are designed to be interactive and will contain many live demos–merely watching a lecture video is not a good substitute for attending class. Finally, lecture capture is provided as a best effort service: the instructor can make no guarantee that the system will accurately capture the lecture content on a given day, or function at all.

Late Policies

In general, late homework cannot be accepted without prior arrangements since the solutions will be posted immediately. Lab signoffs and reports may be submitted up to one week late for a 10% grade penalty.

Otherwise, since our course is small, our schedule and due dates can be flexible to a degree—requests for extensions on deadlines can be made by contacting the course instructor. I will be reasonable as long as you are.

Academic Honesty Policies

For all portions of this course, full adherence to WPI’s and the ECE Department’s Academic Honesty policies is expected. Failure to follow these policies will result in at least a grade of zero on the pertaining assignments.

On homeworks and labs, you are welcome (and encouraged!) to discuss the assignments with other students in the class and the course staff in order to determine how to approach the assignment. However, the solution you use in your work must be your own. Sharing of source code or homework solutions between students, or using other students’ solutions from previous course offerings is not permitted. Please consult the course staff if you have questions on this policy.

Once submitted, your labs and assignments may be compared against other submissions, including those from previous course offerings, to detect similarity with other work.

Exams are a strictly individual effort. Copying or otherwise cheating on an exam is a violation of the academic honesty policies and will be handled accordingly.

More general informaton on academic honesty and campus processes regarding it, see WPI’s Academic Ingegrity resources page.

Course Repeat Policy

If you have taken ECE2049 before, welcome back! We are glad to have you here.

The most important skills gained in this class are developed while working on lab assignments. For this reason, re-use of labs or other assignments from previous offerings of ECE2049 is not generally permitted. Exceptions to this policy may be made in certain circumstances on a per-assignment basis, but only with explicit permission from the instructor before the assignment is submitted. Submitting work used in a prior version of the course without prior permission is considered a violation of the Academic Honesty policy.

Please contact the instructor for more details on this policy.

Students with Disabilities

Students with disabilities, who believe that they may need accommodations in this class, are encouraged to contact the Disability Services Office (DSO), as soon as possible to ensure that such accommodations are implemented in a timely fashion. The DSO is located in West St. House (157 West St.) 508-831-4908. Please then make an appointment with me to discuss the accommodations or any important medical information you believe you should share with me.

Announcements and Communication

Announcements regarding assignments, exams, and policies will be sent to the class mailing list. Students are responsible for checking their email regularly to ensure they stay up to date. Summaries of upcoming deadlines and announcements will usually be included in lecture notes and posted on the website, where applicable.

Course Feedback

Students are encouraged to submit feedback about any aspect of the course. If you find something broken or unclear in the lab instructions, think an assignment was too difficult or unclear, or have an idea on how lecture can be improved, please submit feedback! Your responses are very important for helping to improve this course and future courses.

You can submit your feedback using the survey form available here.

The survey is hosted by the WPI Qualtrics platform. From the instructor’s perspective, your responses are anonymous unless you choose to include your contact information.

Policy Updates

All course policies and the schedule are subject to change at the discretion of the instructor. Once the course has begun, all changes will be listed in this section.