Arduino, the microcontroller opens up
Casey Hare- July 25, 2012It just seemed fitting to start Open Sourced with the Arduino microcontroller. Arduino is an open-source microcontroller and development environment. It was originally for the hobbyist market, but as time has passed it’s gotten better. Arduino has now become a credible microcontroller solution and it’s vibrant user community has generated a wealth of add-ons, source code and tutorials.
It use to be that if I wanted to do anything involving microcontrollers I either had to buy expensive development boards and programming tools or I had to wire up my own board with oscillators and power supplies. Before I’d even started on my test and measurement project I was 10 hours in and had likely spent at least a few hundred dollars. The lack of a simple platform made even easy embedded tasks hard.
Arduino is certainly not the most powerful or flexible embedded platform, but it’s easy, cheap and ready to go. Armed with an Arduino board and a USB cable, you can download the Arduino program and you’re ready to program. It really is that easy. There are loads of examples, so many people usually start from the broad library of sample files.
The latest board, the Arduino Uno, runs on a 16 MHz Atmel ATmega328 micro and has 6 12-bits analog to digital converters, 14 digital I/O pins (6 of which will do hardware PWM) and has 32kb of Flash, 2kb of RAM and 1kb EEPROM. It’s certainly not the biggest or fastest chip in the market, but considering that the entire board sells for less than $30 and the development tools are integrated and free this is the best way yet I’ve found to do the quick and easy stuff. I’ve been told it’s easy to punch through the Arduino environment and work in with the native Atmel tools, but I have yet to find a need to do it.
Beyond just the board, there are add-ons as well. These are boards that have other interface or signal conditioning electronics and plug right on top of the Arduino. Examples of these boards include motor driver circuits, Ethernet, and wireless. If you look a little farther to 3rd party boards there are a ton more, such as lithium-ion battery packs, USB hosts and LCD drivers.
Of course, like any technologies, it’s not all good news. To try make the Arduino more accessible to hobbyists, there is a weird lingo in use here, for example, boards are called “shields” and programs are called “sketches.” I’m not sure why that’s better for beginners, but it is what it is.
Arduino also lacks any real debug tools such as in-circuit debug, watch registers, break points or the ability to step through programs. That means we have to debug the old-fashioned way, with LEDs, LCD screens, serial writes and delays. I haven’t seen any evidence that debug tools are making their way into the development environment, but I strongly believe that open source will eventually deliver the features that users want, and sometimes it happens faster than you’d expect
So, what part of this is open source? All of it. Well, all of it except the proprietary chips on the board. That means the schematics, layout files and source code for the development tools are all freely available. It also means that any number of vendors sell the various Arduino boards for cheap, typically less than $30 for the introductory Arduino Uno board.
For more information on all things Arduino, including different boards, downloads, the language reference and where to buy boards, check out http://arduino.cc. If you’ve used this tool for your test and measurement needs, if you’ve got a cool project to share or if you have something more to add, please post below with your thoughts.