I'm Ryan Waggoner. I build things. I blog about how to work harder and smarter to build the life you want. You should subscribe.

Damn you, Arduino! I have no free time for this!!

Posted in Development, Inspiration, Misc, Personal, Posts, Science, Technology by

My First Arduino Circuit!

As a kid, I was fascinated by electronics and I used to take apart pretty much anything that used electricity, from blenders to VCRs to calculators. To my parents credit, they they weren’t really upset about the taking things apart, though sometimes my inability to put things back together annoyed them. At any rate, just like with programming, I kind of forgot about this through high school and college.

Well, I recently decided to play around with some electronics again, because I’m interested in how I might be able to leverage my programming skills in the “real world”. So I started poking around online trying to figure out where to start. I know almost nothing about this world anymore, but I quickly became aware of a popular, neat little programmable microcontroller called the Arduino.

Basically, this is a small device a few inches square that you can plug into your computer and program in a language very similar to C. The board has a bunch of Input / Output pins that you can use to read data off of, or control devices and components. So for a very simple example, you could use a pin with a light sensor to measure when it gets dark, and then use another pin to control a light that starts blinking once it’s dark.

Anyway, I found this little Arduino kit from the awesome folks at Sparkfun, so I went ahead and ordered it. Today, I spent about an hour playing with it and writing my first tiny program, which makes an LED fade in and out in a loop.

What’s bizarre is that it’s so much fun. I mean, I’ve built large, complex websites with tens of thousands of lines of code that use a dozen different languages, frameworks, and technologies. So how come writing 6 lines of code to make a stupid little LED blink makes me grin like an idiot?

UPDATE: It’s been brought to my attention that this post is disappointingly light on content and substance, and after some careful reflection, I agree. So here’s a more in-depth review of the Arduino Inventor’s Kit from Sparkfun. This is intended largely for technical people who haven’t played with electronics much, but are interested in getting started. Let me know if there’s other things I can cover in more depth.

What the kit comes with

The box that came in the mail from Sparkfun was small, but there’s quite an array of components in there to play with. You can find a complete list here, but it basically includes everything you need to start creating digital circuits and programming them with your computer. They’ve included a variety of sensors, LEDs, a motor, a buzzer, etc. And of course, once you learn how to control all these components, you can start swapping them out for the more interesting components available out there, like LCDs, GPS units, wireless transceivers, cameras, etc.

The heart of the kit is the Arduino Uno itself, along with a breadboard that you use to prototype your circuits. So if you’re worried because you don’t know how to solder, don’t be (though it’s a good skill to have for more advanced projects). There’s a handy plastic base to stick both the breadboard and Arduino to, which makes it a lot easier to run jumpers back and forth without pulling them out accidentally.

Most importantly, the kit comes with a 36-page guide with about a dozen introductory projects you can create. Each project includes step-by-step instructions, circuit and breadboard diagrams, a list of troubleshooting tips, and some variations you can try out. As far as I can tell, they make no assumptions about previous knowledge, so it’s pretty easy to jump in and start building.

How you use it

If you’ve never built any electronics projects before, it might seem intimidating, but it’s actually pretty straightforward (largely thanks to the folks who put this kit together). Building the circuits consists of identifying the proper components and wiring everything up with the included jumpers (wires) and breadboard. Once you have everything plugged in, it’s time for the fun part: controlling it with code.

The Arduino comes with a USB port so you can just plug it directly into your computer, which is also how it draws its power (it’s also got a power port). The Arduino folks have provided a simple IDE that runs on Windows, OS X, and Linux, and lets your write, compile and upload your programs to the board. The language used is a variant of Wiring, and is similar to C++. I didn’t have any issues modifying and extending the example code without looking up a reference. I’m sure more complex programs will change that, but it’s hardly intimidating.

Once you’ve written your program and compiled it without getting any errors, it’s time to upload to the board. Just hit the upload button and wait a few seconds. The TX/RX lights on the board will flash, and then if you’ve done everything correctly, the board will start running your program. Arduino programs run in a loop until the power to the board is removed, so you can be mesmerized by your LED fading in and out for hours :)

What you can do with it

What can’t you make with it? The Arduino might seem like a toy, but it’s actually a pretty powerful little chip and I was surprised at the depth of some of the projects out there. Everything from UAVs to robots to weather stations to breathalyzers. For more inspiration, check out these links.

What I plan to make

That’s half the fun: I don’t know yet! I definitely want to try playing with some little robotics projects, maybe create a rolling robot with collision avoidance, line following, etc. Another thing that I’d absolutely love to explore is the quadcopter thing; there are some quad projects out there that leverage the Arduino, so I think that’d be a good place to start. I’d love to play with more automation stuff though, like autopilot, navigation, etc. I’d really like to play with some more advanced things like room mapping, voice and face recognition, etc. But I suspect a lot of that will require more power than the Arduino can handle. That’s ok; it’s a great place to start dipping my toes into electronics. I can build Johnny-5 later.

I hope this review was useful to you, and if you have any curiosity or interest in electronics and programmable microcontrollers, I encourage you to check out the Sparkfun Inventor’s Kit for Arduino. It’s the most fun I’ve had programming in awhile.

You should subscribe and follow me on Twitter here.

  • Jerry K

    Putting together tangible, physical objects that have behaviors in the real world, rather than copying crud from one place in memory to another and leaving artifacts of that in log files, however glorified, does have a certain rush and charm to it… I wonder how many software people at any given moment are ripe to (re)discover this sort of fun…

    Things like Arduino and the NerdKits materials make a nice bridge from software back into the blinking, moving real world.

  • _Jon

    For the same reason that when you select "Eject" on a CD drive in Windows Explorer it makes you grin when the drive tray actually pop out. You've make a physical change through software. Very fun.

  • Dave B

    You've explained the essence of the desire and satisfaction that comes from building. Something that seems so complex, is really quite logical, once you understand some of the basics. It's unfortunate with all of the focus on web technologies, that we seem to be losing the art of understanding the machine. As painful as it sounds, we should be teaching digital logic in middle and high school. The Arduino and other similar devices may bring that back for the coming generations. I hope it does.

  • http://www.hashref.com Xavier Noria

    It could also be the case that if you made a living out of electronics and they were your loved routine, you'd grin at the power of writing a simple CGI script and that your browser executes just to see the output of Time.now.

    That's why programming is so addictive for some, it is as magic as that led to the non-initiated.

  • jazzo

    Dear ryan, I understand you. I'm in the same situation: I'm developing websites while I think to arduino!

  • Phil

    It's the sort of thing girls don't understand and scoff at.

    • Janice

      Um. Wait a second. As a woman with a computer engineering degree, I am going to have to take offense at this comment. I was actually reading Ryan's post remembering that I too had bought an Arduino board not too long ago, but that life had just gotten away from me and I had, regretfully, not had a chance to work on it yet. Now, as a woman, what *would* motivate me to play with it much sooner would be to have someone to do it with, but there is absolutely nothing that says that women can't get just as much enjoyment out of cool toys like this. Clearly you just don't have the right attitude to find them…:P On another note, I'm actually working on creating a 2-day hands-on tech workshop for teen girls to combat the idea that girls don't/can't get this kind of thing (www.chicktech.org…check it out in about 3 weeks ;) ). I think you should do penance by volunteering to help figure out a workshop around arduino or something related. :D

  • Ross

    Are you crazy ! Stop ! Stop now ! two words: SKY NET

  • allen

    have you tried looking into FPGA development? its quite an interesting change from microcontrollers because it really gets you involved with hardware

  • http://twitter.com/techninja42 @techninja42

    I've been in the same boat my whole life, tinkering, then website dev, now hardware. Hardware hacking is properly tangible, whereas website dev and software is basically invisible 1s and 0s on some spinning hard drive platter that at best, allow for representations of themselves be reproduced on screens as light, or printed out onto paper.

    The incredible satisfaction you get from hardware hacking, no matter how sleight, never seems to go away, as one of the best things you can do is show your friends or loved ones your -real- accomplishments! Getting out and actually doing something you can touch and see enlightens far beyond any software dev I've ever done.

    I'm such an evangelist of making and hacking, I make a youtube show with my 9 year old daughter, and we recently made an episode called Super Simple Arduino (http://youtu.be/3xCY2K9kQz4). We do two very simple projects with super low part counts that a beginner can pick up and implement easily. We wrote the code and released it open source at github so all the easy tweaking variables can be messed with and hacked immediately and even merged back with the public branch. I encourage everyone to check it out even if you don't have an Arduino. Check out the other vids we've done @ http://tn42.com/maker-show

  • Max

    Hi Ryan, thanks for this post. I've been wanting to get into electronics but know very little. I come from a dev background(know C well enough to be dangerous), but have always been intimidated by ohms, amps, volts, transistors, and all that other wonderful stuff. Would you recommend I start with this or is there anything else I should do first? Cheers, Max.

  • bmoran

    I like the Arduino because it's getting folks interested in playing with hardware. I don't like the Arduino because it's yet another specialized language, and for all the hype, isn't that different from what's already been available.

    For some alternatives using a programming language that you might know:
    programming in BASIC? try a BASIC STAMP from parallax, or some of the work-alikes.
    programming in C? You have a LOT of choices. Microchip, Atmel, TI … nearly everyone supports a C compiler for their chips nowadays. Many of them are even based on GCC.
    programming in assembler (there's a real skill!) – all of them
    Or, if you want something really interesting, get an FPGA board from XESS (xess.com), and then play with implementing your own microprocessor using VHDL or Verilog. If you need an example, there's a 6502 (same processor in original Apple I and II) 'core' in VHDL referenced from the 6502.org website. With the XESS board, one could likely implement an entire Apple II right on their $199 board (it's got a port for VGA, keyboard input…)

    Want to try messing with an embedded device and programming embedded hardware, but also need to put it on the internet? Check out modtronix's microchip based SBC65EC web server.

    • http://rancidbacon.com Philip

      > it's yet another specialized language

      It's not really, it's a documented subset of C++ with some supporting libraries. gcc compiles it all in the end. To me it's one of the great things about it. From the code that's written in the IDE function declarations are auto-generated, a main loop is added and then it's linked with the libraries.

      Originally it was promoted as a "simple language" so as to not scare people away with calling it C/C++.

    • http://twitter.com/iso_gee @iso_gee

      If you don't like Arduino IDE (meaning it feels too simple), you can also program it with Eclipse IDE with AVR-plugins. More info here: http://www.arduino.cc/playground/Code/Eclipse

  • hwfun


    note the price. They tend to be backordered for a few weeks though.

  • http://lvl1.org Brian Wagner

    Find a hackerspace to hang out at. Lots of arduino players there. Here is a workshop I put together for my hackerspace, LVL1…lots of code and blinking lights

  • ElPolloLoco

    Note that an Arduino is just an (expensive) Atmel AVR development board. You don’t have to use their IDE or custom language — plain old GCC works great on these chips. Windows developers can download a turnkey package ( http://winavr.sourceforge.net/ ) that supports all AVR/ATmega chips including the ones used on the Arduino and Arduino Mega boards.

  • http://www.facebook.com/hogstad Tom Øyvind Hogstad

    Got my first aArduino this week. Love IT. I have dabbled witvh Microcontrollers for a decade but I never really get the hardware working. This time I got all the tools and materials lined up. So it WILL move by itself this weekend!

  • http://twitter.com/sudarshanp @sudarshanp

    http://www.physorg.com/news/2010-10-robotic-gripp… I guess you should definitely try to make a robot gripper like that. It truly amazed me when I made a crude replica using just syringe+coffee powder+latex balloon.

  • Mirko

    Ordered an Arduino a week ago and arrived just today! Looking forward for lot's of fun. Was studying electronics 10 years ago but wouldn't have thought I will have a demand to go back to it!

    Have fun!

  • http://www.louisvuitton8.com/ Louis Vuitton

    Today, with the development of science and technology, the internet is beginning to play a more and more important role in our life. More and more people are staring to use the intent. Thanks to the intent which make me lives so wonderful.

  • http://Website Ingmoru

    I spotted a niche site yesteday that looked much like this, are you positive another person isn’t replicating this specific website?

  • http://tronixstuff.com John Boxall

    If anyone is interested in Arduino I have written a series of free tutorials, please visit: http://tronixstuff.wordpress.com/tutorials

  • http://pilates-exercise.net/ steve

    Nice post, I was thinking of getting the sparkfun kit but I think I will now you've sold me on it. Been a long time since I did anything like that and my sons getting to the right age for introducing to electronics! :D

  • Aravind

    Oh, even though they call it opensource, You never get free arduinos. Kids like me can thus never get there hands on stuff lie this. :( .

  • jakdown

    The Diabetes Protocol: Dr. Kenneth Pullman Reveals His Breakthrough, Day-By-Day "Insulin Ignoring" System To Balance Blood Sugar Levels And Reverse Diabetes Right From Home…dr. kenneth pullman diabetes protocol guide reviews

  • jakdown

    Below you will find the important facts and figures I feel every consumer should know surrounding Anna Gibson-Steel's 60 Second Panic Solution book and complete guide to ending panic and anxiety attacks. how to handle a panic attack without medication

  • jakdown

    Girlfriend Activation System (GFAS): Christian H. Reveals His Weirdly Effective, 3-Step "Obsession Story" System For Attracting And Dating Amazing Women…wie Sie die pdf kaufen

Subscribe by email:
Connect With Me