Back to Tools

Arduino in a Nutshell

Downloaded over 80,000 times!

The Arduino is a family of microcontroller boards to simplify electronic design, prototyping and experimenting for artists, hackers, hobbyists, but also many professionals.

This little booklet, written by Prof. Jan Borchers, introduces you to using an Arduino. It comes with shopping tips and a SparkFun online wish list to get the parts you'll need.

Book size is 8 x 6 inches. Print at original size (100% scale!) onto larger paper and cut to size outside the cropmarks on the cover. The size is also perfect for reading on an iPad.

The latest version is 1.13, from Jun 26, 2015. It covers the latest beginner-friendly board, the Arduino Uno R3, and the latest version of the Arduino IDE at that time, 1.6.5. See the last page in the book for a version history.

Click on the cover image to download the PDF:

Creative Commons License
Arduino in a Nutshell by Jan Borchers is licensed under a
Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.
Permissions beyond the scope of this license may be available by contacting the author at

Support this booklet

If you like this book, you can donate a micropayment via Flattr:

Flattr this

About this booklet

I've been teaching Arduino classes since 2008, mostly to CS students, and in 2012 I spent one evening introducing two friends to it again. Being on sabbatical and all, I couldn't keep myself from just writing through the rest of that night and adding some Fritzing diagrams the next morning, and the result was a short little booklet introducing Arduino basics. Since then, I've kept updating and debugging it, and adding a bit more polish.

Yet another introductory book, you say? Yes - because the Arduino boards and IDE change so frequently that first-step tutorials and books are bound to become outdated after just a few months. I wanted something that got people started with the latest stable "beginner's" board and IDE. I have kept updating it as new versions of the board and IDE have come out, and intend to continue doing so. If the board changes, I'll keep a version for the older board online too in case you start out with one of those.

I'm forcing myself to keep it to one book page per experiment wherever possible - as I add information, I tighten up my writing to stay within that limit. Helps keep me from rambling on.

I also wanted to capture the fun of our hands-on learning session, with very little overhead. It's written for people who've done a bit of programming at some point in their lives, but are new to electronics, and all experiments together can be completed in a long-ish night.

Finally, I wanted something that doesn't take up your laptop screen while you're working in the Arduino IDE, so it's a PDF you can print 2-up on 8.5x11" US Letter paper, fold in half and staple into a booklet. That also happens to be close to the screen size of an iPad. :)

Feel free to use this for yourself, with your friends, or in your classes, and let me know how it goes! See the license for details. A request: instead of hosting a local copy of the PDF on your servers, simply link to That way we can make sure everybody always gets the latest version, instead of old copies floating around. I'll archive older versions here too. Thanks!

-- Jan Borchers


Version 1.13:
No known errors.

Version 1.9:
  • FIXED in 1.10 - p.4: The USB port names should list examples for Windows too.
  • FIXED in 1.10 - p.9: The code example should explain what exactly to put inside curly braces instead of using an ellipsis

Version 1.8:
  • FIXED in 1.9 - In Chapter II ("Getting Started"), Mac OS X 10.10 "Yosemite" users should be warned that they may need to install Java manually, using, e.g., Apple's JRE6 installer.
  • FIXED in 1.9 - In Chapters VI ("Digital Input") and VII ("Internal Pullup Resistors"), the variable "button" should be called "pushbutton" throughout the code examples.

Version 1.6:
  • FIXED in 1.7 - Page 9: pinmode(...); should read pinMode(...); (Thanks to Simon Vogl for reporting!)


  • Dr. Gerald Ardito covers Arduino in a Nutshell in his Inventing Learning blog. (Aug 15, 2012)

Teaching with this booklet

  • The material in this book is based on a (long) evening of introducing some friends with a technical background to Arduino.
  • I used it to teach a 3.5-hour Arduino workshop at UCSD in September 2012, covering everything in the book as of version 1.5. Below is our schedule, which worked out pretty well.
  • At GUI&DESIGN 2014, with a more homogeneous developer audience and 16 boards, we were able to complete all experiments (Chapters I-XI), and briefly touch upon shields (XII) and next steps (XIII), in 2.5 hours.
  • In 2015, when I sat down to test version 1.9 of the booklet in a one-on-one with a friend and experienced developer who had already taken the initial version of the course, we were able to shoot through installation and all experiments within 45 minutes, but without time for reflection.
  • Expect to spend some time for the initial software installation. In a class in 2015 with about 30 participants, getting everybody to the end of Chapter 2 ("blink") took 30 minutes because of the unavoidable installation issues, but we still completed experiment 6 before an hour was over. I bring USB sticks with the software for all platforms (and Java) for everybody to speed up installation and avoid internet congestion issues.
  • Having one or two knowledgeable friends walk around and help debugging participants' circuits helps greatly. It's also helpful to create teams of two per board and laptop that include at least one person with some previous programming experience.

Time Topic Book Chapter
1000 Warmup, welcome
1015 Lab overview
1030 Intro, use in research 1
1040 Installation
1050 Blink 2
1100 9v battery 3
1110 LED 4
1120 Resistor, breadboard 5
1140 Button 6
1200 Lunch
1300 Pullups 7
1310 Force sensor 8
1330 Serial 9
1350 PWM 10
1410 Servos 11
1430 Shields 12
1450 Next steps 13
1500 Wrap up, official end
1510 Open Dorkbot-style show and tell
1700 End

Advanced Arduino resources

Back to Tools

Created by jon. Last Modification: Friday 21 of August, 2015 16:05:37 by borchers.

Media Computing Group at RWTH Aachen