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
- GATT server on Pi Pico W
- GATT client on Pi Pico W
- Connecting to WiFi with the Pi Pico W
- UDP communication from Pico W to PC
- Custom serial bootloader for RP2040
- Worm-like serial bootloader for RP2040
Bruce (RP2040 and RP2350)
- Start-up message and compile info
- 16-color VGA and Joystick on RP2040
- Random number generation
- 8-bit VGA
- Wifi setup considerations
- Making a clean serial command user interface
- UDP networking with Pico W
- NTP to RTC
- Web server access point
- Interfacing with external memory
- SD card interface with FAT/FS
- USB host with keyboard, mouse, and flash drive
- IIR filter designer
- FIR filter designer
- Fixed point experimentation on RP2040
- DMA computing machine
- Lattice-Boltzmann on RP2040
- Micropython experimentation on RP2040
- MBED for RP2040 (+steppers, NTSC video, DLA, FFT, Specra)
- Expanding i/o for the RP2040/2350
- VGA 16 640x480 3D perspective polygon render
- NTP on both RP2040 and RP2350
- FFT, signal processing, IFFT while minimizing framing discontinuities
- Partial differential equation string synthesis on RP2350
- Gravity particle simulation on RP2350
- SD card reader for RP2350
Hunter (PIC32)
Bruce (PIC32)
Teaching staff
- Anne Liu (ayl47)
- Vicky Le (vml37)
- Paige Shelton (pes99)
- Sam Belliveau (srb343)
- Daniel Wahab (dow26)
- Henry Calderon (hcc54)
Lecture and lab schedule
Lecture recordings
Course policy, grading, and lab report expectations
Previous course webpage (PIC32)
Canvas site
In the news!