Arduino Signal Processing
Arduino Signal Processing
Signal Processing
Clark Hochgraf 1
Abstract The Arduino microprocessor platform would seem to be an unlikely choice for teaching labs in Digital
Signal Processing (DSP), however, from an educational perspective it can work very well, particularly in a 10-week
introductory course. The Arduino platform is easy to get started with. It allows more time to be spent on teaching the
fundamentals of DSP, and less on learning the integrated development environment or configuring complex
hardware. The pros and cons of Arduino versus traditional DSP development kits are discussed, along with the
benefits of open source software community support.
Keywords: DSP, Arduino, open-source, laboratory.
INTRODUCTION
In 2011, a senior-level Digital Signal Processing (DSP) laboratory in the engineering technology department at the
Rochester Institute of Technology was changed so students would spend more time learning the practical aspects of
implementing DSP algorithms and less time dealing with the intricacies of setting up a particular manufacturers
DSP development system. The hardware platform was changed from a traditional high performance 32-bit digital
signal processing platform to the Arduino open source platform based on a low performance 8-bit microprocessor.
Many readers might reasonably question the change from high performance to low performance platform. However,
as will be described in this paper, simplifying the hardware platform and the reducing the complexity of the software
integrated development environment (IDE) created room for significant educational gains in other areas. Changing
the hardware/software platform allowed there to be fewer labs spent on gaining familiarity with the IDE and
hardware features. This freed up time for a final project that was motivating and manageable in scope. Each of the
labs leading up to the project was scaffolded to provide component skills or knowledge needed for the project. The
labs still addressed such universal implementation issues as memory usage, execution time, quantization noise, finite
precision effects, stability, and datatyping.
Norwich University
March 14-16, 2013
Topic
Weeks
3.5
3.5
Figure 1. Lecture topics covered in 10-week introduction to digital signal processing course.
Norwich University
March 14-16, 2013
In many ways, the existing DSP platform would be considered very appropriate for teaching classical DSP labs.
However, in practice, there were several deficiencies. The development environment was licensed software, which
meant students could only work in the laboratory. A special user account was required and license server issues
frequently arose at inconvenient times, resulting in lost class time and the need to reschedule labs. New versions of
the code development environment were incompatible with older hardware, requiring either the purchase of new
hardware or searching for workarounds. The end result was that less time was available for instruction and too much
time was being spent dealing with licensing and access issues unrelated to course content.
The full-featured development environment of the DSP previously used was very good, but had a definite learning
curve for students. As a result, several labs were consumed bringing students up to speed on the setup of the IDE
and use of IDE-specific features to compile, download and execute code. Learning these skills is useful, but there is
a tradeoff between time spent on processor/company specific syntax versus time spent on universal DSP
implementation issues, such as datatypes, efficient memory usage, and execution timing. A conscious decision was
made to spend less time on learning the syntax of a particular development system and more time on universal issues
in practical DSP system design.
The hardware cost of the high performance DSP development board was $400, making it impractical for students to
purchase the hardware and use it at home. As a result, students only had class time and lab hours to work through
issues, solve problems, and explore different ideas. Students could not afford to purchase a board to use in other
class projects, independent studies, or hobbies. Their use of the board ended with the end of DSP class.
Support for the IDE and processor was also a challenge because of the nature of the DSP boards themselves. The
number of users of such advanced DSP systems is limited. While DSP chip manufacturers often have on-line
forums, the number of active users and posts on these forums is far fewer than for microprocessor platforms, and
particularly compared to Arduino. Students who got stuck on some aspect of running the IDE and could not find a
solution in the forums or textbook were stalled until they could talk with the professor.
Norwich University
March 14-16, 2013
hardware designs, software and IDE are all open-source, allowing hobbyists to create new board designs and new
software features. The IDE is simple, but has sufficient functionality to edit, download and run code. Mac, PC, and
Linux versions of the IDE are available.
The Arduino is programmed in a C-like language. With very few lines of code, the system can perform A/D
conversions and create PWM outputs. C-code can be mixed with low-level calls to set bits in interrupt registers or
read PORTs, allowing deep dives into the microprocessor hardware peripherals or timers when needed, while hiding
this complexity for most users.
The performance specifications of the Arduino UNO board are very modest: 16 MHz 8-bit microprocessor, 14
digital I/O, 6 analog input channels with a 10-bit A/D converter, 32kB flash, 2kB SRAM. What really makes the
Arduino work is the depth, extent, and quality of its documentation and user support.
Support and documentation
Most microprocessors and DSP manufacturers have online documentation and support forums. For example, the
DSP support forums for the TIs C64x and C67x processors have around 3700 posts combined, while the forum for
the family of OMAP-L13x, AM1x and C674x processors have around 4500 posts as of Jan 2013. However these
numbers pale in comparison with the support available from the online Arduino community. The Arduino forum [3]
has over 1.1 million posts in 135,000 categories with typically 1000 users on line at a given time, asking and
answering questions. The posts cover a wide range of topics regarding hardware and software of the Arduino,
displays, audio, sensors, power, interfacing to PCs, etc. On the topic of programming alone there are 130,000 posts.
For students who are not expert C-programmers, and not experts with microprocessors or IDEs, having this level of
support is a game changer. Students can type in virtually any question they have, asked in almost any way and find
some existing post that addresses the issue. As a result, students can almost always find an immediate solution to
syntax questions or troubleshooting questions related to hardware, software or IDE. This creates a situation where
the students can work independently outside of class and feel fully supported. As a result, more class time is
available to spend on DSP algorithm-specific issues.
Opportunity for creativity and future projects outside of class
The popularity of the Arduino platform has contributed to the growth of a sizable ecosystem around Arduino.
Arduinos can be extended by stacking on peripheral boards called shields. The site (http://shieldlist.org/) lists the
pinouts and links to over 288 add-on boards, with another 368 shields that have yet to be cataloged.
Figure 3. An example of the ecosystem supporting Arduino (and other platforms). This figure shows the process
flow for Seeed studio (http://www.seeedstudio.com/depot/about_us.html) assisting individual designers in
manufacturing and bringing products to market. (illustration by Anton Maurovic)
Individuals who want to produce and sell Arduino boards can work with companies such as Seeed studio [5] that
provide a combination of contract manufacturing, on-line shop, and fulfillment services as shown in figure 3.
Norwich University
March 14-16, 2013
Kickstarter has also been used to crowdsource funding for Arduino projects. An interesting example is the Digispark
board, which is a project to produce a low-cost, small-footprint version of the Arduino. The project set a fund raising
goal of $5,000 but raised over $313,218 from nearly 6,000 different supporters [4].
ARDUINO HARDWARE
The hardware kit used in the DSP lab is shown in figure 4.
Figure 4. Arduino hardware kit and assembled system illustrating the simple hardware used for the project. Power is
provided by the USB cable and no external instrumentation (e.g. oscilloscope) or power supplies are required for the
labs. A temperature sensor (LM61C, not shown) is held in front of the nose or mouth using a pair of sunglasses.
Norwich University
March 14-16, 2013
Figure 5. Breathing rate monitor system overview. The signal from the temperature sensor is buried in quantization
noise until dithering and oversampling is used. The signal processing filters are able to recover a breathing signal,
which is evaluated for rate. While the hardware is simple, the signal processing issues are not, requiring a solid
understanding of quantization noise, dithering, averaging, memory limitations, finite precision effects, and execution
time limits to make the system work.
RESULTS
Given that students are constantly running into situations where their DSP filters actual outcomes are not the ideal
outcomes, having more time for debug outside of lab hours is very helpful. When surveyed, 75% of the students
(12/16) said that being able to access the DSP system outside of lab hours was important or very important as shown
in figure 6.
With the previous traditional DSP development kit, the revised lab and final project would not have been possible
due to the time that would have been spent bring students up to speed on the IDE and hardware and due to the fact
that students would have less access time for debugging their final project design.
Figure 6. Student survey results on the importance of 24-hour access to DSP platform. 75% of students (12/16) rated
24-hour access to hardware as either important or very important.
Norwich University
March 14-16, 2013
The low performance of the chip means that processing of video signals is not an option and high performance audio
applications cannot be done with Arduino. However, Arduino just released a new ARM cortex M3 based 80 MHz
32-bit processor version with 96 Kbytes SRAM that is compatible with the Arduino IDE. This board has greatly
expanded the performance capabilities of Arduino. It widens the range of DSP applications that can be covered, but
retains connection to the easy to use and well supported Arduino IDE.
CONCLUSIONS
This paper explored the pros and cons of using the Arduino microprocessor platform for teaching DSP. In a 10-week
course, a tradeoff was made to use a simpler, lower-performance hardware platform (Arduino) to gain access to
outstanding on-line support resources, a streamlined IDE and lower-cost hardware. This choice enabled the students
to have better access to hardware and for the course to spend less time teaching processor-specific IDEs, enabling
time for a final project. Success with the project required students to understand fundamental DSP principles utilize
universal implementation skills. The downside to the Arduino platform is that students do not learn one of industry
DSP IDEs or industry DSP chips, however, there is a tradeoff between time spent learning the DSP IDE and
learning universal DSP implementation skills.
REFERENCES
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
Buechley, Leah, Benjamin Mako Hill. (2010). LilyPad in the Wild: How Hardware s Long Tail is
Supporting New Engineering and Design Communities Proceedings of the Conference on Design of
Interactive Systems. Aarhus, Denmark.
Franke, N., von Hippel, E., & Schreier, M. (2006). Finding Commercially Attractive User Innovations: A
Test of Lead-User Theory. Journal of Product Innovation Management, 23(4), 301-315. doi: 10.1111/j.15405885.2006.00203.x
http://www.arduino.cc/
http://www.kickstarter.com/projects/digistump/digispark-the-tiny-arduino-enabled-usb-dev-board?ref=live
http://www.seeedstudio.com/depot/about_us.html
Mellis, D. and Buechley L. 2011. Scaffolding Creativity with Open-Source Hardware. In Creativity and
Cognition, 2011.
Mondragon, A. F., Becker-Gomez, A. AC 2012-4006: So many educational microprocessor platforms, so
little time! Proceedings of the 2012 ASEE Annual meeting. June 2012.
National Research Council. How People Learn: Brain, Mind, Experience, and School: Expanded Edition.
Washington, DC: The National Academies Press, 2000.
National Research Council. Rising Above the Gathering Storm: Developing Regional Innovation
Environments: A Workshop Summary. Washington, DC: The National Academies Press, 2012.
Von Hippel, E. (1976). The dominant role of users in the scientific instrument innovation process. Research
Policy, 5(3), 212-239. doi: 10.1016/0048-7333(76)90028-7.
Von Hippel, Eric A., Democratizing Innovation. MIT Press, Cambridge, MA, April 2005.
Wicks, C., "Lessons learned: teaching real-time signal processing [DSP Education]," Signal Processing
Magazine, IEEE, vol.26, no.6, pp.181-185, November 2009. doi: 10.1109/MSP.2009.934191.
Clark Hochgraf
Clark Hochgraf is an associate professor in the Department Electrical, Computer, Telecommunications Engineering
Technology, Rochester Institute of Technology . He earned his Ph.D. in electrical engineering from the University
of Wisconsin, Madison in 1997 and worked in industry for Westinghouse, Visteon, and General Motors before
joining RIT in 2008.
Norwich University
March 14-16, 2013