Arduino in a Nutshell

Downloaded over 200,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 of the book is 1.13, from Jun 26, 2015. It uses the Arduino Uno R3 throughout, which is still the perfect board to start with in 2023, because it has become the standard board in projects and other online resources. The development software covered in the book is the Arduino IDE 1.6.5. You'll find your way around the latest Arduino IDE 2.x easily enough with this booklet. If you prefer the instructions in the book to match what you see on screen pixel for pixel, get the latest 1.x build from instead. See the last page in the book for a version history.

Click on the cover image to download the PDF:

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

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.


TimeTopicBook 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

File Description File size Downloads Last modified
avrdude avrdude 5.11 for mac os x lion 383 kB 6043 2011-08-30 00:38
avrdude.conf avrdude.conf for avrdude 5.11 534 kB 32421 2011-08-30 00:40
Arduino in a Nutshell 1.2.pdf   15075 kB 28983 2012-08-15 10:28
Arduino In A Nutshell 1.3.pdf   15089 kB 17663 2012-08-16 01:24
Arduino In A Nutshell 1.5.pdf   15090 kB 11171 2012-08-18 05:48
Arduino In A Nutshell 1.6.pdf   15092 kB 32301 2013-01-24 23:38
Arduino In A Nutshell 1.7.pdf   15104 kB 8253 2013-07-31 12:51
Arduino In A Nutshell 1.8.pdf   15110 kB 50140 2013-08-05 12:28
Arduino In A Nutshell 1.9.pdf   13033 kB 7944 2015-03-19 03:20
Arduino In A Nutshell 1.10.pdf   13030 kB 10958 2015-03-19 06:37
Arduino In A Nutshell 1.13.pdf   13042 kB 48255 2015-06-26 17:51

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.