Hacking

Legacy documentation that focuses on extending the Arduino hardware and software, mainly for classic AVR-based boards such as the UNO and Mega.

Software

Bootloader

The bootloader is a small piece of software that allows uploading of sketches onto the Arduino board. It comes preprogrammed on the microcontrollers on Arduino boards.

Updating the Atmega8U2 and 16U2 on an Uno or Mega2560 Using DFU

Upgrading the firmware of the Atmega8U2 chip on an Uno or Mega2560. This chip acts as the usb-to-serial converter and can be updated via USB.

Firmata Library

The Firmata library implements the Firmata protocol for communicating with software on the host computer.

Arduino Libraries

Libraries are files which provide your sketches with extra functionality.

MIDI Note Player using the MIDI firmware for the 8U2 (Uno and Mega2560 only)

This tutorial shows how to play MIDI notes from an Arduino programmed to appear as a general MIDI device.

Bootload the Arduino Mini

The bootloader is a small piece of software that allows uploading of sketches onto the Arduino board. This document explains how to bootload an Arduino Mini

Arduino - PortManipulation

Learn how to control pins on an Arduino through three different registers (DDR, PORT, PIN).

Arduino Preferences

The Arduino preferences file contains many options for customizing the way Arduino compiles and upload sketches.

Burning sketches to the Arduino board with an external programmer

How to use the Arduino software with a hardware programmer (eliminating the need for the bootloader and saving program space on the chip).

Upgrading the WiFi Shield Firmware

Learn how to upgrade the firmware for your Arduino WiFi Shield.

Hardware

ATmega328P Pin Mapping

The pinout for the ATmega328P, the microcontroller used for Arduino UNO.

ATmega168-Arduino Pin Mapping

A diagram showing the correspondence between the pins on an Arduino board and those of the ATmega168 microcontroller.

Upgrading an Arduino NG to Auto-Reset

This page will show you how to upgrade your Arduino NG to auto-reset when powered or uploaded to.

Parallel Port Programmer

Instructions for making a cheap piece of hardware that lets you burn the bootloader to an Arduino board or upload sketches to a board with no bootloader.

ATmega8-Arduino Pin Mapping

A diagram showing the correspondence between the pins on an Arduino board and those of the ATmega8 microcontroller.

ATmega168/328P-Arduino Pin Mapping

a diagram showing the correspondence between the pins on an Arduino board and those of the ATmega168/328P microcontroller.

ATmega2560-Arduino Pin Mapping

A diagram showing the correspondence between the pins on an Arduino board and those of the ATmega2560 microcontroller.

ATmega32U4-Arduino Pin Mapping

A diagram showing the correspondence between the pins on an Arduino board and those of the ATmega32U4 microcontroller.

SAM3X-Arduino Pin Mapping

a diagram showing the correspondence between the pins on an Arduino board and those of the SAM3X microcontroller.

Standalone Assembly

Instructions for replicating the circuit of an Arduino board on a breadboard.

Building an Arduino on a Breadboard

This tutorial shows you how to build an Arduino compatible breadboard with an Atmel Atmega8/168/328 AVR microcontroller and FTDI FT232 breakout board from SparkFun.