EE 285/CS 241: Embedded Systems Workshop


Autumn Quarter, 2017
MW 10:30-12:20, Packard 064 (Lab64)
Instructor: Mark Horowitz
  • Office hours: TBD
  • Instructor: Philip Levis
  • Office hours: TBD
  • TA: Shane Leonard
  • Office hours: TBD, Lab64


  • EE285 (CS241) is a project-centric course for students who want to learn about building embedded systems. Over the quarter, each student builds a display for a bicycle wheel, which displays images or colorful patterns as the wheel turns. Students build the electrical system, enclosure, and LED strips along wheel spokes. They program an embedded computer to control the LEDs in desired patterns based on the wheel's rotational speed. Each student builds their own wheel display, but do so working together in teams throughout the quarter.

    The class is limited to 20 students. If it is significantly oversubscribed, we'll ask students to fill out a simple survey on the first day of class and select who can take the course based on background and preparedness. Since this (like most) embedded system involves a mix of hardware, software, and mechanical design, we will try to balance the course so each area has some students with that expertise.

    Course material includes:

    • Interrupts and concurrent programming
    • Deterministic timing and synchronization
    • State-based programming models
    • Filters, frequency response, and high-frequency signals
    • Low power operation and energy budgets
    • Bus protocols and tradeoffs
    • Operating systems
    • Part selection, hardware/software tradeoffs
    • System design, PCB design
    • 3D printing and mechanical design

    The prerequisite for the course is CS107 (or equivalent), that is, comfort with C. It is intended to be accessible to engineering students broadly from the entire school, including both undergraduates and graduate students. The course would count as a general CS elective. The course meets twice a week for 2-hour lab sessions in lab64 (the EE Maker lab).

    The educational goal of the course is for students to learn how to design, build, and test embedded systems from hardware to software. The wheel display uses a Teensy 3.6 as its core processor.