ECEN 5823

Spring 2024

Internet of Things Embedded Firmware

University of Colorado,  Boulder

The objective of this course is to convey how wireless infrastructure, longevity, security, and the mission critical nature of the end application, affect the design architecture, the design considerations, and the design techniques used when developing IoT end-node devices. Through weekly programming assignments the course will explore event driven firmware design concepts, Bluetooth Low Energy (Bluetooth Smart), custom peripheral GATT services and profiles, as well as Bluetooth Mesh node implementations.

Class style: 3 credit hour lecture course with C programming assignments

Effort: Average of 15-20 hours per week

Last edited: December 19, 2023

Important: For on-campus students: Please plan to be on campus and ready to attend the first day of class in person. I distribute the development boards we use during the first week of class. Your ability to complete the first programming assignment in week 1 depends on having one of these development boards in your possession. A late arrival to campus is not allowed.

At the end of this course, students will be able to: 

Logistics

Prerequisite Knowledge

For this course, prerequisites are crucial to your sucess. This is not an introductory course. This is an advanced, and very cool, course. You will learn techniques that are used in industry to design and build embedded systems. Be cognizant of the hours of effort per week listed above. If you take this course plus another ESE core course plus work 1 or 2 jobs, you may struggle to keep up with completing the weekly programming assignments.

Recommended Prerequisite Courses

ECEN 5613 Embedded System Design (ESD) is highly recommended. This course is roughly 50% hardware focused and 50% software focused.

Either of the following courses are a good choice as a prerequisite, as both have a strong software focus. Select 1 of these as your prerequisite:

Having 2+ years of industry experience developing embedded systems is equivalent to the recommended prerequistes courses listed above.

Sometimes students wish to take ECEN 5823 simultaneously with one of these prerequisites courses. This is not recommended unless you have substantial C programming experience and/or industry experience. Please discuss this with your academic advisor prior to enrolling in both ECEN 5823 and one of these prerequisites. To be sucessful in this course, my recommendation is that you take ECEN 5823 in your second year so that you can build up your prerequisite knowledge and skills, as listed above. 

Course Expectations

Attendance

On campus students: Your best chance to "get in" is to enroll AND remain on the wait list. If you see a long wait list do not enroll in the distance section as this section is reserved for off-campus and specially designated students. If you are an on-campus student and you enroll in the distance section you will be administratively dropped - so stay on the wait list. Many students over-enroll and then later drop a class. This allows students on the wait list to naturally flow into the course in a fair and consistent manner. Attendance counts for 10% of your grade and starts on the first day of class.

Our policy is:

The course cap (number of enrolled students, on-campus and distance students) is fixed. Don't ask me to change the course cap.

Course Description and Topics covered

Additonally you will learn techniques for:

Course Materials

Course materials include textbooks, papers, lecture slides, project guides, and other online materials.


*  Developement boards will be provided to on-campus students in Boulder, and shipped to US-based (United States and Canada) distance students only (i.e. Professional Certificate students and Distance Degree students).

Grading

The course grade will be based on in-class participation, homework assignments, quizzes, course project, and 2 exams. The grade proportions are as follows:

Honor code

A complete description of the honor code can be found here: http://honorcode.colorado.edu/

To summarize: Violations of the Honor Code are acts of academic dishonesty and include but are not limited to plagiarism, cheating, fabrication, aid of academic dishonesty, lying to course instructors, lying to representatives of the Honor Code, bribery or threats pertaining to academic matters, or an attempt to do any of the aforementioned violations. Violations can result in disciplinary action up to and including expulsion from the University.

Note to students: In past semesters our ESE program had a significant issue with students copying work from other students and submitting that work as their own. This behavior will not be tolerated.