CS 120B Laboratory Assignments (Intel Galileo Version)

Cincinnati                             Cincinnati

CS/EE 120B - Introduction to Embedded Systems

CS/EE 120B is a ten-week long upper-division course that introduces core embedded systems programming concepts: namely, design of embedded applications using concurrent synchronous finite state machines, and time-oriented programming. The course includes 3 hours of lecture and 3 hours of laboratory per week. The laboratory assignments were originally designed to use ATMEGA microcontrollers. With financial support provided by Intel, we have redesigned the laboratory portion of the course to use the Galileo microcontroller board featuring the IntelĀ® Quark SoC X1000 Application Processor. As part of the Intel University program, we are publicly releasing the Galileo-based laboratory assignments for use by the wider academic community. To reduce academic dishonesty, we are releasing only the laboratory project descriptions and demonstration videos that we have produced. We can and will provide source code to instructors and teaching assistants; please contact Dr. Brisk via email if you wish to obtain the source code to these projects.

The ten week course includes eight 1-week laboratory assignments, followed by a 2-week custom laboratory project. We encourage students to propose their own custom laboratory project ideas, which we help them refine. As the custom laboratory project varies from student-to-student, only the eight 1-week laboratory assignments are posted here. Each assignment includes a PDF description and a YouTube video illustrating correct operation of the different sub-problems.


Parts List

Laboratory Exercise 1 - Introduction (Part 1)


Laboratory Exercise 2 - Introduction (Part 2)


Laboratory Exercise 3 - State Machine and Synchronous State Machine Design using Buttons and LEDs


Laboratory Exercise 4 - LCD Display


Laboratory Exercise 5 - Concurrent Synchronous State Machine Design using a Speaker


Laboratory Exercise 6 - Analog to Digital Conversion (ADC) and Pulse Width Modulation (PWM)


Laboratory Exercise 7 - Keypad and Advanced LCD


Laboratory Exercise 8 - Simple Clap Detection using a Condenser Microphone


Custom Laboratory Project Example: LCD Racer

During the 5-week summer quarter, there is not enough time for students to design their own custom laboratory projects. Instead, we assign the students to implement this LCD-based racing game, which encompasses all of the requirements that we expect of a typical custom laboratory project while eschewing unnecessary complications. 

Andrew Nava-Juarez ported the laboratory exercises from the ATMEGA microcontrollers to the Intel Galileo platform and created each of the above videos shown above.

More Information

General Campus Information

University of California, Riverside
900 University Ave.
Riverside, CA 92521
Tel: (951) 827-1012

Career OpportunitiesUCR Libraries
Campus StatusDirections to UCR

College Information

Bourns College of Engineering
Bourns Hall

Tel: (951) 827-5190
Fax: (951) 827-3188
E-mail: systems@cs.ucr.edu

Related Links