DSP PAW Offers a Hands-On Learning Approach for Digital Signal Processing
A hardware platform designed for ease of use and to help educate in the subject of DSP.
Digital signal processing (DSP) is a complex subject. To make matters worse, many people’s first encounter with DSP is through a mathematically rigorous engineering class which can leave students discouraged from pursuing the subject further. Although a complex topic, there is much to be discovered in the DSP world and many people lead very fulfilling careers as DSP engineers. To help spark interest and encourage further learning of DSP, Clyne Sullivan has created a hardware platform that offers an alternative hands-on approach to learning DSP.
The DSP PAW (Portable All-in-one Workstation) is a hardware platform that can connect to any computer through a USB connection. The hardware consists of an STMicroelectronic NUCLEO board as well as an additional custom board which connects to the NUCLEO’s headers. The specific STMicro board that is used and supported is the NUCLEO-L476RG, which is equipped with an Arm Cortex-M4 32-bit RISC core that can operate up to 80MHz and supports floating point single precision. The custom PCB that sits on top of the NUCLEO boasts additional circuitry that allows for generating and analyzing signals. Some features include status LEDs, potentiometers for making real time adjustments to signals, power circuitry for +/-3.3V signal level support, 3.5mm jacks for input and output signals, and 100mil headers that can also be used for signal input and output. The current version of the PCB was designed using EasyEDA and built with JLCPCB, although future versions of the schematic are planned to be implemented using KiCAD in an effort to make the project more accessible and open source.
In addition to the hardware, another key element of the project is the software. A custom IDE is available that allows for writing, compiling, uploading, executing, analyzing, and debugging DSP algorithms. The environment operates similar to the Arduino IDE and algorithms are written using C++. However, the IDE also provides an additional level of control and analysis of algorithms. The sample rate can be changed from 8kS/s to 96kS/s, buffer size that the algorithm works with can be changed from 100 samples to 4096 samples, and a signal can be generated through a variety of means such as a table of values, a mathematical formula, or a wave audio file. Features also exists for analyzing the algorithm such as a sample visualization tool and sample logging. Additionally, algorithm performance can be monitored. This includes execution time monitoring and something called disassembly. Disassembly enables a user to take their compiled code and view it as readable processor instructions. As a result, users can really look into the details of how the algorithm is operating and fine tune it as needed.
Sullivan's project is completely open source with firmware, software, schematics, and examples available through GitHub. Examples are also currently available which include basic DSP functions such as convolution, FIR filters, and IIR filters. With a simple platform to work with, the DSP PAW is looking to make DSP accessible to the everyone similar to the way the Arduino made microcontrollers accessible.