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 arduino.cc 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
http://hci.rwth-aachen.de/borchers.
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 http://hci.rwth-aachen.de/arduino. 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
Errata
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!)
Reviews
- 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 |
Back to Tools