Arduino Uno Hardware Manual Web Links

On this page are web links from the Arduino Uno Hardware Manual for easy access to referenced websites. Find the main Arduino website at

Newer Book Available

The Arduino Uno Hardware Manual has been replaced by the newer full color revised and updated Ultimate Arduino Uno Hardware Manual. This page has been left to support those readers who bought the older book, which is no longer available.

Scroll down to find the chapter and section that contains the link that you are looking for, or use the links directly below to jump to the desired chapter on this page.

Chapter 1 | Chapter 2 | Chapter 3 | Chapter 4 | Chapter 5 | Chapter 6 | Chapter 7 | Chapter 8

Chapter 1

1.1.3 Uses of the Arduino Uno

Wiring project

Arduino Project Hub ICSP Header

Those readers interested in learning the C language to program Arduino boards may be interested in the book C Programming with Arduino ISBN 978-1-907920-46-2

1.1.5 Programming

The Arduino IDE is free to download from Custom PCB

KiCad ( is an open-source EDA (Electronic Design Automation) software package that can be used to draw circuit diagrams and lay out PCBs.

1.1.7 Open-Source and Licensing

See for more information on the various Creative Commons licenses.

For more details, see the page on the Arduino website.

1.1.8 Third Party Compatible Boards

For more information on the various spin-off boards including official boards, clones, derivatives, compatibles and even counterfeits, see the article on the Arduino blog.

1.1.9 Build Quality, Warranty and Safety

A full list of official Arduino boards can be found at on the Arduino website.

For more information on Arduino board compliance and for the warranty statement, see

1.2.1 USB Bridge Firmware

The ATmega16U2 microcontroller and its firmware replaces the FT232RL USB to UART bridge chip from FTDI ( found on older Arduino boards (the Arduino Duemilanove for example).

1.4 Arduino Uno History and Revisions

Readers who would like more information, see for a full list of the differences between R1, R2 and R3 Arduino Uno boards.

1.6.1 Installing Software

Help documentation on installing the Arduino IDE software is available for Windows, MAC OS X and Linux. Follow the links below for your operating system. Windows MAC OS X Linux

1.6.2 Getting Started, Examples and Reference

Getting started guides, examples and a software reference are all available on the Arduino website. Getting started guides and examples are a great way for new Arduino users to learn about building projects with Arduino and learning to write sketches. Getting Started Guides

Links to getting started guides for any Arduino board can be found at:

Arduino Uno specific getting started guide: Arduino Examples and Tutorials

An index to tutorials and examples at on the Arduino website provides links to various categories. Building Breadboard Circuits

A tutorial series at shows how to build breadboard circuits with some Arduino examples. Arduino Software Reference

Arduino language and library reference:

1.6.3 Getting Help

Find the Arduino FAQ (Frequently Asked Questions) Update: FAQ now redirects to the support web page

Problems and solutions can be found on the Arduino Troubleshooting page at
Updated link, troubleshooting now redirects to support page:

The Arduino wiki at is a user contributed collection of documentation and other useful information.

The Arduino Forum at is a place where anyone can post a question that will be answered by community members. The forum can also be searched for other user’s questions which may already have answers. It is also a place where more experienced Arduino users can help others by answering questions.

1.6.4 Related Open-Source Projects Fritzing

Fritzing, found at on the web, provide a software package that can be used to draw Arduino breadboard circuits and then turn them into custom made printed circuit boards or PCBs. Wiring

Find the Wiring project at on the web. Processing

Processing, found at on the web, is a programming language based on Java, and a software package for developing applications on a computer.


For more information, see on the Arduino website.

1.6.5 Arduino Uno Boards on the Web

Links to the web pages on the Arduino website for the Arduino Uno and Arduino Uno SMD boards follow. Arduino Uno Web Page

Find the Arduino Uno web page at which includes basic technical information and links to the circuit diagram and board build files in electronic format. Arduino Uno SMD Web Page

Go to for the newest information on the Arduino Uno SMD, or to for the Arduino Uno SMD board page on the Arduino website. An electronic copy of the circuit diagram for the Arduino Uno SMD can be found here as well as the build files.

Chapter 2

2.2 Atmel, Microchip and AVR

Microchip ( EEPROM Programming

Refer to the library reference for more information on using the EEPROM in sketches. SD Cards (SPI Interface)

See for more information on the Arduino SD card library. SPI Devices

See the library reference for more information on the SPI library. TWI and I²C Devices

See the library reference for more information on the Wire library. Analog In Example Sketch

The corresponding tutorial page for the AnalogReadSerial example sketch can be found at on the Arduino website, which shows how to connect a potentiometer to A0 to vary the voltage on this pin.

2.7.6 AREF Pin

For more information on the analogReference() function, see

2.8.3 ATmega16u2 ICSP Header

More information on DFU programming can be found at on the Arduino website and in section 5.1 of chapter 5 of this book.

2.8.4 ICSP Programming Resources

The following links provide more information on the AVRISP mkII, Atmel Studio and C programming of Arduino boards using Atmel Studio. Also see chapter 5.


Atmel Studio – Update: Atmel Stduio has been replaced by Microchip Studio – Old versions of Atmel Studio can be found at –

C Programming –

2.8.5 Using an Arduino as an In-System Programmer

Find more information on the Arduino website at

Chapter 3

3.2.2 ATmega328P Alternate Pin Functions

More information on each pin function can be found in the ATmega328 datasheet from the page on the Microchip website. Pins as Outputs
Switching Heavier Loads with Transistors and Relays

For more details on interfacing Arduino boards and microcontrollers, refer to the appropriate texts or other sources such as the Interfacing With Hardware page in the playground area on the Arduino website. Pins as Inputs
Pull-down Resistor

Find the tutorial page at on the Arduino website. Accessing TWI Devices in Software

This means including the Wire.h header file in a sketch and using the Wire library object and functions found in the reference on the Arduino website. Accessing SPI Devices in Software

Use the SPI object and functions from – the SPI reference page on the Arduino website. Accessing SD Cards in Software

Go to to find the SD card reference on the Arduino website. Hardware Serial Port

Go to for the serial port library reference. Software Serial Port

Go to on the Arduino website for more information on the SoftwareSerial library.

3.7 Finding the Datasheets

3.7.1 ATmega328P Datasheet

Find the ATmega328P datasheet at on the Microchip website.

3.7.2 ATmega16U2 Datasheet

Go to to find the datasheet for the ATmega16u2 microcontroller used as the USB to serial bridge chip on Arduino Uno boards.

Chapter 4

No links.

Chapter 5

5.1 Updating the USB to Serial Bridge Firmware using DFU

For Windows computers, download the FLIP (Flexible In-system Programmer) software from Microchip at

For additional information on Arduino DFU programming and for DFU programming using Linux and Mac, see on the Arduino website.

5.2 Atmel Studio

Table 5.1: Microchip USB Programmers for AVR Microcontrollers
USB ProgrammerPart NumberWeb Page

To install Atmel Studio... Update: Atmel Studio has been replaced by Microchip Studio on the Microchip website. For old versions of Atmel Studio, go to:


Go to for instructions with screen captures that shows how to install Atmel Studio in detail.

5.3.2 DFU Bootloader Firmware

At GitHub is the link to the same source code.

5.3.3 USB to Serial Bridge Firmware

The same source code and HEX files can be found on GitHub at which contains the latest version of this code and HEX files.

5.4.2 Optiboot Bootloader Firmware

The same files can be found at on GitHub.

The Optiboot project on GitHub is at

Optiboot wiki can be found at

See for more details.

5.6 Alternative Firmware Programming Methods

Alternative methods for programming the bootloader to an Arduino Uno can be found at at the Arduino playground under the Bootloader section.

Using an Arduino as an ISP (In-system programmer) is also described on the Arduino website at

Refer to for additional information on DFU programming the ATmega16u2.

Chapter 6

6.4 Getting an Electronic Copy of the Circuit Diagram

Find the circuit diagram in PDF format, and the circuit diagram and PCB design file in Eagle format at for the Arduino Uno. Look under the DOCUMENTATION tab for these files.

To view the files in Eagle format, the Eagle EDA software package will need to be downloaded from and installed.

Chapter 7

7.4 Waveform Patterns and Measurement

PicoScope 2000 series digital PC oscilloscope, model number 2205A used for oscilloscope measurements.

Chapter 8

8.7 Using Strip-board as a Shield

See for an example of fitting a piece of strip-board to an Arduino Uno using only three of the header sockets on the Arduino. An example project that uses the strip-board shield can be found at

8.8 Drill Template and KiCad Template

The drill template file as well as the KiCad template file can be found on the Resources page of this website.

The KiCad software package can be found at where it can be downloaded free of charge and unrestricted.