Course in the Embedded Interface Design Specialization

Instructor: Bruce Montgomery, Ph.D., Senior Instructor

This course is focused on connecting devices to each other and to the cloud to create prototypes and actual systems that flow data from devices to consumers. The class includes an introduction to M2M (Machine-to-Machine) and IoT (Internet of Things) concepts, using the cloud to develop IoT systems (specifically AWS (Amazon Web Services) and its IoT framework), a review of common communications protocols at every level of connected devices, and other IoT design concerns such as security, message queuing approaches, and the use and design of APIs and microservices.

The content ranges from general design best practices to specifics for select tools and methods, but all are presented to support developing embedded devices in IoT applications. The class includes practical projects that let you try some of standard methods in software development of prototype graphical user interfaces for devices using AWS, Python, and optionally Node.JS.

Prior knowledge needed: ECEA 5346 User Experience Interface Design for Embedded Systems, ECEA 5347 Rapid Prototyping of Embedded Interface Designs

Syllabus

Duration: 2 hours

This module will teach you how to define and assess the importance of M2M and IoT to modern development.

We will be creating Python and Node.JS code that will talk to AWS IoT services. This class does not directly teach Python or Node.JS programming, so if you have not coded in those languages before, you will want to make sure you have language environments you’re comfortable with available to you. All Python work will be done using a Python 3.x environment, not Python 2.x.

Duration: 3 hours

Review of key protocols and elements to build cloud-connected IoT systems, including the most common IoT application protocols that connect devices to the cloud - MQTT, CoAP, WebSockets. We then examine what cloud systems must provide to support IoT design, elements like over-the-air updates, digital twins, and serverless processes. Finally we review the make up of one of the most complete cloud environments, AWS, and also look specifically at how it provides a framework for IoT connected devices and systems. We also provide the first cloud-connected IoT coding exercise for the course.

Duration: 3 hours

This module focuses on connections between devices and the protocols that enable those connections at several levels. We start at the board level of devices, and then look at low-level communications with protocols such as I2C, SPI, and UART. We then move up into personal, local, and wide area network protocols, both wired and wireless: Ethernet, USB, WiFi, Zigbee, etc. Finally we look specifically at long distance protocols for devices that will run on batteries for over ten years - cellular protocols like LTE-M and NB-IoT, and non-cellular protocols such as LoRaWAN and SIGFOX. We'll also create a second program to extend the first coding exercise to explore other cloud services and APIs.

Duration: 3 hours

We will review the final elements that we will include in our tool sets for designing cloud-connected IoT systems. We will look at alternative cloud platforms to AWS, both commercial and open source. We consider cybersecurity issues for IoT devices and systems, ways to test, harden, and prepare our systems for public exposure. And we consider some underlying software technologies that enable the structure of an IoT system: message queuing, APIs, and microservices.  We will close with peer review of ours and other's coding exercises, and (optionally) prepare for the final exam.

Duration: 4 hours

This module contains materials for the proctored final exam for MS-EE degree students. If you've upgraded to the for-credit version of this course, please make sure you review the additional for-credit materials in the Introductory module and anywhere else they may be found.

To learn about ProctorU's exam proctoring, system test links, and privacy policy, visit www.colorado.edu/ecee/online-masters/current-students/proctoru.

Grading

Assignment
Percentage of Grade

Week 1: Quiz on M2M & IoT, Cloud Architecture, UML and Architecture Patterns

5%

Week 2: Quiz on IoT Application Protocols, Cloud for IoT, AWS, AWS IoT

5%

Peer Review: Project 1 – Simple AWS IoT Connection

15%

Week 3: Quiz on Low-Level Protocols, M2M Protocols, LPWANs for IoT

5%

Peer Review: Project 2 - Extended AWS IoT Connections

15%

Week 4: Quiz on AWS alternatives, IoT Security, Message Queuing, APIs, Microservices

5%

Peer Review: Peer review of prior programming projects

25%

Week 5: Final Exam

25%

Letter Grade Rubric

Letter Grade 
Minimum Percentage

A

93%

A-

90%

B+

87%

B

83%

B-

80%

C+

77%

C

73%

C-

70%

D+

67%

D

60%

F

0%