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,
and PHYSICS 23 (or equivalent), that is, understanding electricity and the basics
of electrical circuits.
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.
is the schematic for the printed circuit board.
To use the serial debuggers, connect the serial GND to Teensy
GND, and serial RX to Teensy TX (pin 1). You will need to
remove the jumper connecting the serial RX and TX pins. To
listen to serial output from the Teensy, plug the serial
dongle into your laptop, select the dongle in the VM
Devices/USB menu, and then run:
terminal. You should see output from the
made from within your code.
3D CAD models for enclosure
For those interested in viewing or modifying the
are the CAD models as STL (printable) and SLDPRT (SolidWorks).
Finishing cutting and soldering
For those students who did not finish cutting the
polycarbonate and/or soldering the LED strips, please come by
TA office hours this week. We will have the laser cutter
available during the Friday morning office hours. If you
would prefer to use scissors, here is the
drawing of the design--the strips are 10 inches tall and 1
Assignment 3: Animations (due Oct 23)
The instructions for Assignment 3 have been posted
Lab64 Safety and Access
If you haven't done so already, make sure to read the
Safety Slides ASAP and email the course staff with your name, student ID number,
and a question or comment that demonstrates you understand
the safety material. Always remember to work with a buddy and
turn off soldering irons!
Assignment 2: Animations (due Oct 16)
The instructions for Assignment 2 have been posted
Assignment 1: Getting started
The instructions for Assignment 1 have been posted
The first section is just installing the prerequisite software, so
you do not need to wait for a Teensy to complete the first portion of the