CMPE 480 Project - Info and Ideas

updated 2006-10-23

People have requested more challenging labs, and I'm willing to please.

You have the option to replace lab 3, lab 4 or both with a project, bearing the equivalent weight in the lab mark.  If you decide to do a project, expect to put in extra hours and experience frustration traveling uncharted waters.  The easiest and safest approach is work through the step by step labs.

Requirements and Marking

People working on projects should submit 2 copies of a one page proposal to you prof for approval.  Groups sizes are negotiable.

You will be required to submit a report (hard and soft copies), code and give a demonstration.

To compensate for the extra work, a 30% bonus will be applied (raw mark earned times 1.30, project marks >100% are possible).  I anticipate that a project with average effort would earn a raw mark of 70%, but I understand that most students electing to do a project won't be putting in just an average effort.

Tools

You will have access to advanced tools in the ETLC e5-013 lab.

You may wish to start by attempting a significant subset of the sessions in these tutorials prepared by Xilinx but run in CMPE 480 as self-paced exercises:

Digital Signal Processing Design Flow 
Use System Generator to design DSP datapaths.

Embedded Design with FPGAs
Configure and download microprocessors, peripherals, custom hardware and code to build a system on a chip.

Lab tutorials and additional information will be be made available.
As the work to do these lab tutorials is significant, it can be balanced off against a relatively simple but novel design using these tools.

Hardware

In addition to the regular lab FPGA boards, you will have access to the
XUP Vertex-II PRO boards

Project Ideas

Audio or Guitar Special Effects DSP System

Custom Coprocessor for an Embedded  Microprocessor

Custom Peripheral for an Embedded Microprocessor

Any Faculty of Engineering Student Project

University of Alberta Aerial Robotics Group - Aircraft Controller

The simplest project I can think of is a servo multiplexor that selects between autopilot and manual radio remote control, with outputs to the servos that control the flight control surfaces.  This can be expanded on:

  1. basic servo multiplexor
  2. parallel to pulse width modulated (PWM) servo controller
  3. add watchdog timer that puts plane into engine off shallow glide if autopilot crashes or misbehaves
  4. allow programming/storing of shallow glide flight settings provided by RC operator (add straight&level flight, turn right, turn left, if you like).
  5. interface digital magnetic compass and/or altimeter
  6. interface GPS
  7. implement primitive autopilot (we can probably skip gyros if we only allow very shallow turns).