Design of real-time digital systems using microprocessor-based embedded controllers. Students working in groups of 2-3 design, debug, and construct several systems that illustrate and employ the techniques of digital system design acquired in previous courses. The content focuses on laboratory work. The lectures are used primarily for the introduction of examples, description of specific modules to be designed, and instruction in the hardware and high-level design tools to be employed.
This is a Cumulative Design Experience (CDE) course. As such, lab exercises in this course will draw upon and synthesize as much material from the undergraduate electrical and computer engineering curriculum as possible. Students will implement concepts from differential equations, physics, a variety of coding classes, digital signal processing, analog circuits, control theory, computer graphics, robotics/mechatronics, and more in real, physical projects.
The course is taught by Hunter Adams, who is a staff member in Electrical and Computer Engineering. The course is currently taught using the RP2040 microcontroller on the Raspberry Pi Pico development board.
Please note that this is the new course webpage. If you are looking for the previous one, click here.
Hunter (RP2040)
- CAN driver implemented with PIO on RP2040
- UDP ethernet transmitter implemented with PIO on RP2040
- Stepper motor driver for RP2040
- VGA driver for RP2040 (+Mandelbrot, Barnsley, Game of Life)
- Audio FFT to VGA on RP2040
- Resistive touchscreen to VGA display
- Direct Digital Synthesis (DDS) via timer interrupt
- Dual-core Direct Digital Synthesis (DDS) via timer interrupts
- Simple DMA example
- PWM-based AM transmitter
Bruce (RP2040)
- DMA computing machine
- Lattice-Boltzmann on RP2040
- Micropython experimentation on RP2040
- Fixed point experimentation on RP2040
- 16-color VGA and Joystick on RP2040
- MBED for RP2040 (+steppers, NTSC video, DLA, FFT, Specra)
- Random number generation
- 8-bit VGA
- UDP networking with Pico W
- NTP to RTC
- Web server access point
- Interfacing with external memory
Hunter (PIC32)
Bruce (PIC32)
Teaching staff
- Sarah Ellenbogen (sje57)
- Alex Scotte (ajs667)
- Nikhil Satheesh Pillai (ns594)
- Mahmoud Elsharawy (mse63)
Lecture and lab schedule
Lecture recordings
Course policy, grading, and lab report expectations
Previous course webpage (PIC32)
Canvas site
In the news!