Saturday, June 4, 2011

Arduino, Open Source Sexyness!

I just got my Arduino Uno board in the mail this week and I am pumped. Why would a guy whose designed embedded platforms around a dozen or so different micros be interested in a "Beginner" Atmel AVR platform. Other than it's cool.... I've been looking for a new embedded platform for my home/hobby projects. 

Back 8 years ago or so I fell in love with the Zilog Z8 microcontroller it had a ton of application notes and software code samples which made hobby projects a ton easier to implement. I have always considered myself a Hardware guy, but I can blink LEDs, light up Character Displays, and talk to SPI and I2C peripherals without too much trouble. But I always love it when I have a really well written software oriented app note to help me along. I started to steer away from Zilog, because even though they were great for my "hobby" projects I didn't see myself using these parts in a commercial product, for my day job.

Then back in 2006 or so I managed to get my hands on one of these cute dev kits, Silicon Labs C8051F300 Toolstick.
This was one of the first USB based Devkits that I noticed on the market, I am pretty sure it even came out before the TI MSP430 one. I loved the concept of an extremely low cost dev kit to get me started. Silicon Labs has a reasonably good IDE and a Keil 4KB code limited version of the 8051 compiler to get you started. The 4KB limit bugged me because I had 8KB of Flash to use up, so I quickly switched over to the open source SDCC 8051 compiler and even though the code wasn't compiling near as tight I was happy. But then Silicon labs forgot about the hobbyists and discontinued the PDIP package version of the parts and left me with the QFN/"Belly" pad commercial parts.... this sucked! I have relatively good soldering skills and even though I have successfully soldered these types of parts on boards hundreds of times.... I just didn't want to screw around with that anymore.

I came late to the Cypress PSoC party; these parts were already being used in a ton of commercial products and almost every other Circuit Cellar article used a PSoC as well. The IDE was free, the Imagecraft M8C compiler was essentially free, and best of all they still offered the parts in PDIP and non-belly pad SMT versions.... thank you Cypress!!!! I have used PSoC's in a half a dozen or so commercial products and just as many small hobby projects. There is a bit of a front-end loaded learning curve with the PSoC, but that is compensated by the huge app note offering and public support in the forums. The thing I love about PsoC is how configurable it is, the thing I hate about PSoC is how configurable it is.... most times I don't need 12 configurable analog blocks and a butt load of digital blocks, I need a simple 8-bit micro to bang out commands out of a serial port or toggle a few GPIOs.... so the PSoC is a bit of over kill for most of my hobby projects.

The Arduino is an open source hardware platform based off the Atmel 8-bit AVR Microcontroller. The micro has a Serial (USB Device) based boot-loader pre-installed in the AVR, so no external programmer/debugger is needed to program the device. The Arduino team (a handful of Italian dudes) also created an open source IDE that makes use of the GCC AVR compiler. The cool thing is this IDE & Compiler runs perfectly on Windows or Linux...... So I am programing an open source hardware platform, using an open source IDE & compiler, that is running on my open source Ubuntu Linux distribution; now that is sexy!!!!


Now open source is cool, but how well does it work? All I can say is within 5 mins of pulling my Arduino Uno out of the package I downloaded one of the example "Blinky" light projects (Sketch) and had a blinky LED going. Within 15mins I had a Parallax Serial 16x2 LCD up and going.... I remember spending most of my Christmas vacation getting a character LCD lite up on an MC68HC11 eval board in college. To be honest it took me longer to find the Parallax Serial LCD command to turn off the blinking cursor than it did for me to get the Arduino running. The IDE is very intuitive and there are a ton of forums and resources for this platform.


I think I've been converted and the Arduino will be my hardware platform of choice for fun side projects.


Some great Arduino resources are listed below:
http://www.arduino.cc/
http://jeremyblum.com/category/arduino-tutorials/ 
http://www.adafruit.com/ 
http://www.sparkfun.com/

No comments:

Post a Comment