Most engineers cringe when they see an Arduino in my toolbox because it's often seen as being too easy to use or not feasible. For the most part, they are correct, but that's not what I'm here to debate about. What these people don't realize is the powerful “shape shifting” tool that this low cost development board is. Here are three commonly overlooked uses for an Arduino:
Open Source Logic Sniffer (OLS) is a simple software tool that implements features of a digital logic analyzer (Figure 1). The OLS client is Java based, which allows it to run happily on most operating systems. Due to its simple serial protocol, many open source tools like Bus Pirate, Logic Pirate, and of course Arduino have basic support for OLS. With zero external components (wires not included), and Andrew Gillham's open source code, you can program your Arduino UNO to become a digital logic analyzer.
Figure 1: Open Source Logic Sniffer is a simple software tool that implements features of a digital logic analyzer.
Here's a list of some of the features available to you when using an ATmega328based Arduino:
It might not have blazing specs, but sometimes it's just enough to get you by in a squeeze. I often find myself using either the Arduino or FPGA implementation to verify proper communication protocol while bit-banging code.
Like many college students, money is often a deal breaker for most of my decisions. In this particular case I am referring to the overhead cost of purchasing an in-system programmer for micro controller design. Perhaps you want to make one of your projects permanent on a PCB, or are just curious to see how to “manually” program an AVR. Whatever the case maybe, this amazing implementation of the Arduino, in my opinion, takes the cake.
The process is quite simple. In fact the sketch is now included with all new versions of the Arduino IDE. To begin:
Once completed, you can now use the Arduino pins 10, 11, 12, and 13 as RESET, MOSI, MISO, and SCK accordingly to program your target AVR device. The only thing left to do is to add these flags to your makefile or avrdude command line:
-P -c avrisp -b 19200
I know it seems kind of obvious, but the Arduino has a built in FTDI USART-to-USB chip. For those Arduino products that have through hole style MCU’s such as the Arduino UNO R3, If you carefully pry out the ATmega DIP chip from its socket, you can free up the serial pins (RX and TX) for other cool uses. I find myself doing this a lot since I like to program informative menus into my micro controller programs. Sometimes a simple interface to let you change the mode or request data of something at runtime can help save you hours of debugging time. Figure 2 is an excellent example of one of these menus that I made while designing a bus-tracking system for my campus bus route.
Figure 2: Custom menus for a bus-tracking system.
There you have it. Who knew the Arduino could be as versatile as a Swiss army knife? I hope I have encouraged you to dust off your Arduino and begin exploring new areas of the wonderful world of electronics. If you made something cool using one of these tools, I'd love to hear about it in the comments.
Daniel is a Computer Engineering student at Penn State University. He enjoys embedded systems design, and fault testing digital logic. He is currently working on hardware for an open source home automation system focused around security and portability.