Wireless Embedded Systems

CSE190 A00 - Winter 2025

Lectures are M/W/F from 11:00am to 11:50am in Warren Lecture Halls (WLH) 2207
The instructor is Aaron Schulman (aka Aaron Shalev). Office hours: M/W from 3:00pm to 4:00pm in (CSE 3219).
The TA is Mohak Vaswani. Office hours: M 12:00-3:00pm Th 2:00:5:00pm

Wireless embedded systems bridge our physical world with powerful digital control systems and cloud data analytics. Applications range from medical devices such as Bluetooth-enabled blood glucose meters, to payment systems such as Near-Field Communication-based credit cards. In this class, students will learn about how an embedded system works from the ground up. The lectures will focus on the key enabling components of embedded systems, including: Clocks, GPIO, Interrupts, Busses, Amplifiers, Regulators, Power supplies, ADC/DAC, DMA, Storage, and Wireless communication. The goal of the class is to familiarize the students with these components so that they feel comfortable working on a team that is building a device that incorporates a wireless embedded system.

Prerequisites

CSE29 (CSE 120 recommended)

Materials

Reading

We will be supplementing the lectures with material from the following freely available sources:

Course management

We will manage discussions, grading, and announcements for this course with Piazza (see Canvas for link). All grades and project submissions will be on Gradescope. We will provide a course GitHub repo.

Grading Criteria and Late Policy

  • 80% - Four assignments
  • 20% - Midterm Exam
The late policy for the course is as follows: you are permitted three total days that you can submit any of the projects late. For example, you can be late one day (24 hours) on three of the projects, or late three days on one project.

Academic Integrity Guidelines

All programming assignments must be completed in your assigned groups. You and/or your partner must write all solutions and code that you submit, excepting any code that was provided to you as part of the assignment. You may discuss the assignments with others, but you may NOT make your code available to others or copy answers or code from another student--this includes GitHub repositories (or similar) for assignments from this or similar courses in previous terms at any university. You will be issued private GitHub repositories for use in this course; it is your responsibility to make sure your code stays private. Exams will be individual effort and closed book.

Large Language Model Guidelines

Your academic goal in this course is to learn how embedded systems work, and LLMs can absolutely support you in this endeavor. You are encouraged to use large language models (e.g., ChatGPT) to assist in understanding the concepts in the course, and to guide you to get around problems you encounter in your programming projects. The more you learn in this course, the better you will become at writing prompts that can produce functionally correct embedded systems firmware in C in your projects.

Relying entirely on LLMs on projects does present several risks (1) crafting LLM prompts that give you the correct implementation is extremely difficult in embedded programming without knowledge of the underlying concepts, and (2) even if you do learn to craft excellent prompts, you may not learn how wireless embedded systems work, which is the reason you are taking this course. This is why we will be testing your understanding of these concepts in the midterm and final.

Projects

  • Coming soon

Lectures

Day Topic Preparation for class
Week 1: Course introduction
Mon Jan 6 Introduction Lecture 1 Slides
Wed Jan 8 Intro to Project and MCUs ARM Cortex M for Beginners (pdf)
Lecture 2 Slides
Fri Jan 10 MCUs (cont) Lecture 3 Slides
Week 2: How to develop code for embedded systems
Mon Jan 13 I/O Overview Lecture 4 Slides
Wed Jan 15 GPIO and Time Lecture 5 Slides
Fri Jan 17 Time Lecture 6 Slides
Week 3: Event-driven firmware programming
Mon Jan 20 No class MLK day holiday
Wed Jan 22 Interrupts Lecture 7 Slides
Mon Jan 24 Interrupt and Debuggings Lecture 8 Slides
Week 4: Serial inter-device communication
Mon Jan 27 Intro to serial communication Lecture 9 Slides
Wed Jan 29 Intro to serial communication Lecture 10 Slides
Fri Jan 31 Serial busses Lecture 11 Slides
Week 5: Serial inter-device communication
Mon Feb 3 Intro to peripherals - Accelerometer Lecture 12 Slides
Wed Feb 5 Serial busses (cont.) Lecture 13 Slides
Fri Feb 7 Dynamic Memory Access Lecture 14 Slides
Week 6: Midterm Review
Mon Feb 10 Analog Sensing Lecture 15 Slides
Wed Feb 12 Analog Sensing Lecture 16 Slides
Fri Feb 14 Midterm Review Session
Week 7: Midterm Exam
Mon Feb 17 Presidents Day
Wed Feb 19 Midterm Exam
Fri Feb 21 Wireless communication Lecture 19 Slides
Week 8: Wireless and Power
Mon Feb 24 Wireless communication Lecture 20 Slides
Wed Feb 26 Wireless communication (continued) Lecture 21 Slides
Fri Feb 28 Intro to Power Lecture 22 Slides
Week 9: Power Management
Mon Mar 3 Power Management Lecture 23 Slides
Wed Mar 5 Power Management Lecture 24 Slides
Fri Mar 7 Hackathon in Lab!!!
Week 10: Low-power Hackathon!!!
Mon Mar 10 Hackathon in Lab
Wed Mar 12 Hackathon in Lab
Fri Mar 14 Final judging of low power