Educational Signal Processing Platform


This project created a prototype, low-cost ($50) project board for use in undergraduate DSP courses. The platform is designed to provide an alternative to the relatively expensive ($400) Texas Instruments TMS320C6713 DSK boards currently used in the undergraduate DSP course at WPI. The board features Microchip's dsPIC33F microprocessor, an external audio ADC/DAC chip, and a DC-to-DC converter for optional battery power. The project team also developed a curriculum around the platform, including six laboratory assignments that cover topics such as FIR and IIR filter implementation, FFTs, and a simple pitch-shifting vocoder. The team designed and built a PCB of the final prototype.


The ECE department at WPI offers an undergraduate DSP course titled, "ECE 4703: Real-Time Digital Signal Processing." The students in ECE 4703 complete a series of laboratories in which they implement DSP algorithms (such as filtering, FFTs, etc.) in real time, primarily for audio signal processing. The course also introduces the students to practical considerations involved in DSP implementation, such as fixed-point and floating-point arithmetic, Direct-Form-II filter structures, assembly code optimization. The laboratories have used the Texas Instruments TMS320C6713 DSP Starter Kit (DSK) platforms for several years.

The goal of this project was to explore alternatives for updating the laboratories with a new hardware platform. In order for a new platform to be feasible, it must meet several requirements:

1. The new hardware must have sufficient flexibility and computational power to demonstrate all of the DSP techniques in the curriculum. The new hardware need not surpass the DSK in raw computational power. On the contrary, a more resource-constrained platform may be more effective and realistic in preparing students for jobs in industry because many embedded applications have tight computational requirements.

2. The new hardware platform must have some support for floating-point arithmetic (either dedicated hardware or software libraries). Students tend to find fixed-point more challenging than floating-point because they must manually perform scaling and rounding to avoid fixed-point overflow. It is much easier for students to first master the DSP algorithms in floating-point before attempting them with the added complexity of fixed-point.

3. A satisfactory set of development tools must be available for the new platform, such as a C compiler, an easy-to-use programmer, and a debugger. A UART interface for printing text to a terminal is also a helpful tool for debugging. The integrated development environment (IDE) should be simple and easy to use. Learning DSP algorithms is difficult enough without the added frustrations of wrestling with the development tools.

4. The new hardware should be inexpensive. One major disadvantage of the DSK is that it costs about $400. Since it would be unreasonable to expect all the students to spend this amount to purchase their own DSK boards, the ECE laboratory workstations are equipped with DSK boards for students to use. Unfortunately, the limited number of available DSKs restricts the number of students that can enroll in the course. If the hardware was less expensive, students could purchase their own boards, which would allow for larger class sizes. After the course, students would be able to keep their boards for possible use in future academic projects. The target cost of the new hardware is about $50, which is less than the price of a new textbook.

Component Selection

Here are the board's main components and a few rationales for selecting them:

Microchip dsPIC33FJ128GP802 - The dsPIC33F is a 16-bit, fixed-point microprocessor. It can operate at clock speeds up to 40 MHz and it has a single-cycle instruction set architecture (ISA) that is optimized for DSP. This particular dsPIC is available in a 28-pin package and contains many hardware peripherals (e.g., UART, SPI, timers, ADCs, DACs, etc.) that can be mapped to the I/O pins. This chip is also relatively inexpensive; all of this functionality and flexibility costs only about $5. Although the dsPIC does not contain any floating-point hardware, Microchip offers free floating-point software libraries which are sufficient for the floating-point activities in the ECE 4703 labs. The project team explored many microprocessor alternatives and ultimately found that the dsPIC33F offered an excellent compromise between cost, flexibility, complexity, and computational performance.

Texas Instruments TLV320AIC23 stereo audio codec - The AIC23 features ADCs and DACs for stereo line-in, line-out, headphone-out, and microphone-in audio signals. It also contains built-in anti-aliasing filters and comes in an simple, 28-pin package. This device was selected for its suitable balance between functionality and complexity. More importantly, since this is the same chip that is used on the DSK boards, the new board has the same analog I/O electrical characteristics, which allows for an easier migration from the old hardware. (Aside: The new board includes header connectors for adventurous students who want to try the dsPIC33F's internal ADC and DAC instead of the AIC23.)

Linear Tech LTC3400 step-up DC-to-DC converter - The new hardware platform can be powered either from the PIC programmer or from a pair of NiMH AA batteries. The LTC3400 is a simple, 6-pin DC-to-DC converter that provides the board's 3.3V supply. Battery power was a requirement for the new platform because it has several advantages over USB or wall power sources. First, a battery-powered board is more portable and therefore much more convenient for the course instructor to use in demonstrations. Battery power also allows many new topics for labs, including mobile applications, robotics, and efficient power consumption.

Computational Performance

The project team analyzed the performance to make sure the dsPIC33F had sufficient computational performance to handle the ECE 4703 lab assignments. The following benchmarks show the maximum numbers of coefficients that floating-point and fixed-point filters can accommodate while still running in real-time.

Largest possible floating-point FIR filter: 10 coefficients at 8 kHZ
(Using Microchip's floating-point libraries)

Largest possible fixed-point FIR filter: 4800 coefficients at 8 kHz
(Using the C compiler with all optimizations enabled)

Even though floating-point operations are much slower than fixed-point, the performance is acceptable for the floating-point sections of the ECE 4703 labs. The dsPIC33F has plenty of performance for the all of the fixed-point activities.

Laboratories and Documentation

The project team created six laboratory assignments for the new hardware platform. For each assignment, the team prepared a procedure document containing tutorials and exercises for the students. The lab activities are roughly based on the original DSK labs and are designed to achieve the same learning outcomes. The project team made a few major changes between the original and new labs in order to address the features and limitations of the new board. For example, Laboratory #6 has been changed from an adaptive filter activity to a pitch-shifting vocoder activity, which better suits the new microprocessor's fixed-point strengths. The ultimate test of the new platform's feasibility is the successful creation of these labs.

Summary of new laboratories:

1. MPLAB IDE, LEDs/DIPs, UART, Data Capture

2. Floating-point FIR and IIR

3. Fixed-point FIR and IIR

4. Assembly Optimization, Benchmarking

5. Fast Fourier Transform (FFT)

6. Vocoder

The project team also prepared several supporting materials for the labs. The team created a set of software libraries that greatly facilitate dsPIC33F and AIC23 register configuration. The source code and Doxygen HTML documentation for these libraries are provided to help the students learn how to configure the board. The project team also prepared a "Detailed Guide" document that explains all of the hardware details and is intended as a reference for inquisitive students.


The table below summarizes the cost of materials for one complete board:

Part Cost
PCB $32.67
dsPIC33F $5.13
AIC23 $6.64
LTC3400 $4.56
4 audio connectors $2.06
DIP switch $1.02
4 low-current LEDs $0.63
2 crystals $1.16
misc. passive parts $8.00
total: $61.87

Keep in mind that there is an additional hidden cost of $35 for the PIC programmer required to program the dsPIC33F.

Links and Files

The link for the project report (mirrored from the WPI e-Project website) is provided below. Please note that schematics have been updated significantly after the project report was published. The project report also does not include information about the PCB development, since the PCB development commenced after the report was published. The final schematics, PCB files, etc. are all available for download below. The slides from WPI's Project Presentation Day (22 April 2010), which summarize the major features of the board, are also provided.

Project report (published 22 December 2009)

Updated schematics, PCB files, presentation slides, etc.


The project was completed in 2009-2010 by two undergraduate students, Daniel Cullen and Jonathan DeFeo, for their undergraduate capstone design project (Major Qualifying Project, or MQP). The project was advised by Professor Brown.