ECE/CS 152: Introduction to Programming 2 w/ Embedded Lab

Legacy Course: Do NOT Use!

ECE152 (combined with CS151) covers the entry level CS course requirements for the CS and ECE degree programs at Oregon State University. Alternatively students may take the CS161/162 sequence to meet this requirement.
ECE/CS 151 focuses on programming from the point of view of an embedded programmer working on low resource systems. This approach builds from the ‘bottom up’ rather than working from the ‘top down’ where large code bases can be used to do advanced functions quickly. The initial CS151 course covers the basics of C and its use on a light weight embedded platform. CS152 continues expanding experience in C and adds an object oriented language element to introduce higher level concepts. The motivation for the object orientated programing is based on usability rather than learning object orientated concepts for their own sake.

The Wunderboard Board

Hardware Used

Software Used

Useful Tutorials

Important Documents

AT90USB647 Datasheet


Lab Manual

Lab 1 - Installing Tool Chains

This lab covers the basics of getting the 'software tool' chain setup on a computer. Once the tool chain is in place, a simple Java program is written and submitted.

Lab 2 - Debugging and Serial Interfaces

In this lab, you will be enabling a ‘serial debugging terminal’ that you will be using in all later labs. To enable the serial port (USART1) on the AT90USB chip on the Wunderboard, you will need to read and understand the datasheet section about the USART.

Lab 3 - Serial and Timers: Datalogging

This 2 week lab will have you creating a program that can take acceleration measurements and transmit them to a PC using serial.

Lab 4 - Data Logging and Timer Interrupts

Using interrupts allows for microprocessors and microcontrollers to handle events as they happen without wasting time always 'looking' for them (polling). In this lab we will be revising lab 3 to use interrupts for the timer.

Lab 5 - Simple C++ Terminal

In this two week lab, you will create a simple C++ based serial terminal that allows you to talk to your Wunderboard. Your C++ program must be robust and catch errors. You will need to setup the C++ serial classes for your operating systems and create a number to ASCII conversion system on the Wunderboard. You will be using the basic 'stream' functionality of C++.

Final Project

The final project for the course is decided on by you the student. You can work in groups of two if you would like, but if you have a group of two, two Wunderboard are required. All projects must also involve a Java based PC application. Below is a list of some interesting projects, but don’t feel limited by this list.

  • Security System
  • Beat Box
  • Remote Controlled TekBot
  • Autonomous TekBot
  • Persistence of vision display for bicycle with Java download tool
  • Sophisticated Data Logger