Show minor edits - Show changes to markup
The Arduino Due is designed to be compatible with most shields designed for the Uno, Diecimila or Duemilanove. Digital pins 0 to 13 (and the adjacent AREF and GND pins), analog inputs 0 to 5, the power header, and "ICSP" (SPI) header are all in equivalent locations. Further the main UART (serial port) is located on the same pins (0 and 1). Please note that I2C is not located on the same pins on the Due (20 and 21) as the Duemilanove / Diecimila (analog inputs 4 and 5).
The Arduino Due is designed to be compatible with most shields designed for the Uno, Diecimila or Duemilanove. Digital pins 0 to 13 (and the adjacent AREF and GND pins), analog inputs 0 to 5, the power header, and "ICSP" (SPI) header are all in equivalent locations. Further the main UART (serial port) is located on the same pins (0 and 1). Please note that I2C is not located on the same pins on the Due (20 and 21) as the Duemilanove / Diecimila (analog inputs 4 and 5).
(:div id='commentsbox':)
The board contains everything needed to support the microcontroller; simply connect it to a computer with a USB cable or power it with a AC-to-DC adapter or battery to get started. The Due is compatible with all Arduino shields that work at 3.3V and are compliant with the 1.0 Arduino pinout.
The board contains everything needed to support the microcontroller; simply connect it to a computer with a micro-USB cable or power it with a AC-to-DC adapter or battery to get started. The Due is compatible with all Arduino shields that work at 3.3V and are compliant with the 1.0 Arduino pinout.
The Arduino Due is designed to be compatible with most shields designed for the Uno, Diecimila or Duemilanove. Digital pins 0 to 13 (and the adjacent AREF and GND pins), analog inputs 0 to 5, the power header, and "ICSP" (SPI) header are all in equivalent locations. Further the main UART (serial port) is located on the same pins (0 and 1), as are external interrupts 0 and 1 (pins 2 and 3 respectively). Please note that I2C is not located on the same pins on the Due (20 and 21) as the Duemilanove / Diecimila (analog inputs 4 and 5).
The Arduino Due is designed to be compatible with most shields designed for the Uno, Diecimila or Duemilanove. Digital pins 0 to 13 (and the adjacent AREF and GND pins), analog inputs 0 to 5, the power header, and "ICSP" (SPI) header are all in equivalent locations. Further the main UART (serial port) is located on the same pins (0 and 1). Please note that I2C is not located on the same pins on the Due (20 and 21) as the Duemilanove / Diecimila (analog inputs 4 and 5).
The Native USB port allows for serial (CDC) communication over USB. This provides a serial connection to the Serial Monitor or other applications on your computer. It also enables the Due to emulate a USB mouse or keyboard to an attached computer. To use these features, see the Mouse and Keyboard library reference pages.
The Native USB port is connected to the SAM3X. It allows for serial (CDC) communication over USB. This provides a serial connection to the Serial Monitor or other applications on your computer. It also enables the Due to emulate a USB mouse or keyboard to an attached computer. To use these features, see the Mouse and Keyboard library reference pages.
The Due has a dedicated forum for discussing the board.
The Arduino Due can be programmed with the Arduino software (download). For details, see the reference and tutorials.
(:cell:)
(:cell:)
The Native USB port allows for serial (CDC) communication over USB. This enables the Due to emulate a USB mouse or keyboard to an attached computer. To use these features, see the Mouse and Keyboard library reference pages.
The Native USB port allows for serial (CDC) communication over USB. This provides a serial connection to the Serial Monitor or other applications on your computer. It also enables the Due to emulate a USB mouse or keyboard to an attached computer. To use these features, see the Mouse and Keyboard library reference pages.
The ATmega16U2 firmware source code is available in the Arduino repository. You can use the ISP header with an external programmer (overwriting the DFU bootloader). See this user-contributed tutorial for more information.

Unlike other Arduino boards which use avrdude for uploading, the Due relies on bossac.
The ATmega16U2 firmware source code is available in the Arduino repository. You can use the ISP header with an external programmer (overwriting the DFU bootloader). See this user-contributed tutorial for more information.
The Native USB port has the ability to operate as a USB-CDC connection. That is, the Due can emulate a USB mouse or keyboard to an attached computer. To use these features, see the Mouse and Keyboard library reference pages.
The Native USB port allows for serial (CDC) communication over USB. This enables the Due to emulate a USB mouse or keyboard to an attached computer. To use these features, see the Mouse and Keyboard library reference pages.
The Native USB port has the ability to operate as a USB-CDC connection. That is, the Due can emulate a USB mouse or keyboard to an attached computer.
The Native USB port has the ability to operate as a USB-CDC connection. That is, the Due can emulate a USB mouse or keyboard to an attached computer. To use these features, see the Mouse and Keyboard library reference pages.
The Arduino Due is designed to be compatible with most shields designed for the Uno, Diecimila or Duemilanove. Digital pins 0 to 13 (and the adjacent AREF and GND pins), analog inputs 0 to 5, the power header, and "ICSP" (SPI) header are all in equivalent locations. Further the main UART (serial port) is located on the same pins (0 and 1), as are external interrupts 0 and 1 (pins 2 and 3 respectively). Please note that I2C is not located on the same pins on the Due (20 and 21) as the Duemilanove / Diecimila (analog inputs 4 and 5).
The Arduino Due is designed to be compatible with most shields designed for the Uno, Diecimila or Duemilanove. Digital pins 0 to 13 (and the adjacent AREF and GND pins), analog inputs 0 to 5, the power header, and "ICSP" (SPI) header are all in equivalent locations. Further the main UART (serial port) is located on the same pins (0 and 1), as are external interrupts 0 and 1 (pins 2 and 3 respectively). Please note that I2C is not located on the same pins on the Due (20 and 21) as the Duemilanove / Diecimila (analog inputs 4 and 5).
This is the recommended port for programming the Due. It is more reliable than the "soft erase" that occurs on the Native port, and it should work even if the main MCU has crashed.
The Arduino Due has a number of facilities for communicating with a computer, another Arduino or other microcontrollers and different devices like phones, tablets, cameras and so on. The SAM3X provides one hardware UART, connected to one of the onboard USB connectors (USBSerial), and three hardware USARTs for TTL (3.3V) serial communication. Serial on pins RX0 and TX0 provides Serial-to-USB communication used for programming the board through the ATmega16U2 microcontroller. The 16U2 provides a virtual COM port to software on the computer (Windows machines will need a .inf file, but OSX and Linux machines will recognize the board as a COM port automatically). The Arduino software includes a serial monitor which allows simple textual data to be sent to and from the board. The RX and TX LEDs on the board will flash when data is being transmitted via the ATmega16U2 chip and USB connection to the computer (but not for serial communication on pins 0 and 1).
The USBSerial port connected to the SAM3X can operate as a USB-CDC connection. That is, the Due can act as a USB host for connected peripherals such as mice, keyboards, and smartphones. To use these features, see the USBHost reference pages.
The Arduino Due has a number of facilities for communicating with a computer, another Arduino or other microcontrollers, and different devices like phones, tablets, cameras and so on. The SAM3X provides one hardware UART and three hardware USARTs for TTL (3.3V) serial communication.
The Programming port is connected to an ATmega16U2, which provides a virtual COM port to software on a connected computer (To recognize the device, Windows machines will need a .inf file, but OSX and Linux machines will recognize the board as a COM port automatically.). The 16U2 is also connected to the SAM3X hardware UART. Serial on pins RX0 and TX0 provides Serial-to-USB communication for programming the board through the ATmega16U2 microcontroller. The Arduino software includes a serial monitor which allows simple textual data to be sent to and from the board. The RX and TX LEDs on the board will flash when data is being transmitted via the ATmega16U2 chip and USB connection to the computer (but not for serial communication on pins 0 and 1).
The Native USB port has the ability to operate as a USB-CDC connection. That is, the Due can emulate a USB mouse or keyboard to an attached computer.
The Native USB port can also act as a USB host for connected peripherals such as mice, keyboards, and smartphones. To use these features, see the USBHost reference pages.
Opening and closing the USBSerial at 1200bps triggers a 'soft erase' procedure: the flash memory is erased and the board is restarted with the bootloader. If the MCU crashed for some reason it is likely that the soft erase procedure won't work as this procedure happens entirely in software on the SAM3X.
Opening and closing the Serial port connected to the 16u2 at 1200bps triggers a “hard erase” procedure of the SAM3x chip, activating the Erase and Reset pins on the SAM3X. This procedure is more reliable than the "soft erase" mentioned above, and should work even if the main MCU has crashed.
The SAM3X microcontroller is different from AVR microcontroller because the flash memory need to be erased before being re-programmed. So this means that if you should do this procedure manually, before pressing the upload button on the IDE you should hold the erase button on the board for a second and then the reset, after that uploading a sketch will be done succesfully.
Because this procedure is repetitive, this task is managed automatically from both the USB ports, in two different ways:
This procedure is much more reliable and it should work even if the main MCU has crashed.
Rather then requiring a physical press of the reset button before an upload, the Arduino Due is designed in a way that allows it to be reset by software running on a connected computer.
Uploading sketches to the SAM3X is different than the AVR microcontrollers found in other Arduino boards because the flash memory needs to be erased before being re-programmed. Upload to the chip is managed by ROM on the SAM3X, which is run only when the chip's flash memory is empty.
Either of the USB ports can be used for programming the board, though it is recommended to use the Programming port due to the way the erasing of the chip is handled :
This is the recommended port for programming the Due. It is more reliable than the "soft erase" that occurs on the Native port, and it should work even if the main MCU has crashed.
The Arduino Due is designed to be compatible with most shields designed for the Uno, Diecimila or Duemilanove. Digital pins 0 to 13 (and the adjacent AREF and GND pins), analog inputs 0 to 5, the power header, and "ICSP" (SPI) header are all in equivalent locations. Further the main UART (serial port) is located on the same pins (0 and 1), as are external interrupts 0 and 1 (pins 2 and 3 respectively). Please note that I2C is not located on the same pins on the Due (20 and 21) as the Duemilanove / Diecimila (analog inputs 4 and 5).
The Arduino Due is designed to be compatible with most shields designed for the Uno, Diecimila or Duemilanove. Digital pins 0 to 13 (and the adjacent AREF and GND pins), analog inputs 0 to 5, the power header, and "ICSP" (SPI) header are all in equivalent locations. Further the main UART (serial port) is located on the same pins (0 and 1), as are external interrupts 0 and 1 (pins 2 and 3 respectively). Please note that I2C is not located on the same pins on the Due (20 and 21) as the Duemilanove / Diecimila (analog inputs 4 and 5).
It is possible to erase the Flash memory with the onboard erase button. This will remove the currently loaded sketch from the SAM3X.
[MISSING: erase button that erase the flash memory]
It is possible to erase the Flash memory of the SAM3X with the onboard erase button. This will remove the currently loaded sketch from the MCU. To erase, press and hold the Erase button for a few seconds while the board is powered.
the bootloader, but if the MCU crashed for some reason it is likely that the soft erase procedure didn’t work since its done entirely in software by the MCU itself.
the Reset and Erase pins of the SAM3X and when you open this serial port the USB-to-Serial ectivate the Erase and Reset sequence before start to talk with the UART of the SAM3X.
Warning: Unlike other Arduino boards, the Arduino Due board runs at 3.3V. The maximum voltage that the I/O pins can tolerate is 3.3V. Providing higher voltages, like 5V to an I/O pin could damage the board.
Warning: Unlike other Arduino boards, the Arduino Due board runs at 3.3V. The maximum voltage that the I/O pins can tolerate is 3.3V. Providing higher voltages, like 5V to an I/O pin could damage the board.
[MISSING: describe here the automatic 'erase' procedure]
The SAM3X microcontroller is different from AVR microcontroller because the flash memory need to be erased before being re-programmed. So this means that if you should do this procedure manually, before pressing the upload button on the IDE you should hold the erase button on the board for a second and then the reset, after that uploading a sketch will be done succesfully.
Because this procedure is repetitive, this task is managed automatically from both the USB ports, in two different ways:
the bootloader, but if the MCU crashed for some reason it is likely that the soft erase procedure didn’t work since its done entirely in software by the MCU itself.
the Reset and Erase pins of the SAM3X and when you open this serial port the USB-to-Serial ectivate the Erase and Reset sequence before start to talk with the UART of the SAM3X. This procedure is much more reliable and it should work even if the main MCU has crashed.
[MISSING: describe here that the board doesn't automatically restart the sketch if you open the serial monitor like on the Uno]
The Due has 12 analog inputs, each of which can provide 12 bits of resolution (i.e. 4096 different values). By default, the resolution of the readings is set at 10 bits, for compatibility with other Arduino boards. It is possible to change the resolution of the ADC with analogReadResolution(). The Due's analog inputs pins measure from ground to a maximum value of 3.3V, though it is possible to set a lower analog reference value through the AREF pin and the analogReference() function.
The Due has 12 analog inputs, each of which can provide 12 bits of resolution (i.e. 4096 different values). By default, the resolution of the readings is set at 10 bits, for compatibility with other Arduino boards. It is possible to change the resolution of the ADC with analogReadResolution(). The Due's analog inputs pins measure from ground to a maximum value of 3.3V. The analogReference() function is ignored on the Due.
Opening and closing the USBSerial at 1200bps triggers a 'soft erase' procedure: the flash memory is erased and the board is restarted with the bootloader. If the MCU crashed for some reason it is likely that the soft erase procedure won't work as this procedure happens entirely in software on the SAM3X.
Opening and closing the Serial port connected to the 16u2 at 1200bps triggers a “hard erase” procedure of the SAM3x chip, activating the Erase and Reset pins on the SAM3X. This procedure is more reliable than the "soft erase" mentioned above, and should work even if the main MCU has crashed.
When programming the Due with the default port through the USB-Serial connection (adjacent to the power jack), the 16u2 acts as an intermediary, doing a hardware erase and reset of the SAM3X chip. If using the USBSerial connection for
The Due has 12 analog inputs, each of which can provide 12 bits of resolution (i.e. 4096 different values). By default, the resolution of the readings is set at 10 bits, for compatibility with other Arduino boards. It is possible to change the resolution of the ADC with analogReadResolution(). The Due's analog inputs pins measure from ground to 3.3 volts, though is it possible to change the upper end of their range using the AREF pin and analogReference() function.
The Due has 12 analog inputs, each of which can provide 12 bits of resolution (i.e. 4096 different values). By default, the resolution of the readings is set at 10 bits, for compatibility with other Arduino boards. It is possible to change the resolution of the ADC with analogReadResolution(). The Due's analog inputs pins measure from ground to a maximum value of 3.3V, though it is possible to set a lower analog reference value through the AREF pin and the analogReference() function.
The USBSerial port connected to the SAM3X can operate as a USB-CDC connection. That is, the Due can act as a USB host for connected peripherals such as mice, keyboards, and smartphones. To access these features, use the USBHost reference pages.
[MISSING: USB-CDC with SerialUSB]
The USBSerial port connected to the SAM3X can operate as a USB-CDC connection. That is, the Due can act as a USB host for connected peripherals such as mice, keyboards, and smartphones. To use these features, see the USBHost reference pages.
When programming the Due with the default port through the USB-Serial connection (adjacent to the power jack), the 16u2 acts as an intermediary, doing a hardware erase and reset of the SAM3X chip. If using the USBSerial connection for
Warning: differently from other Arduino boards, the Arduino Due board runs at 3.3V, therefore the maximum voltage that the I/O pins can tolerate is 3.3V. Providing higher voltages, like 5V to an I/O pin could damage the board.
Warning: Unlike other Arduino boards, the Arduino Due board runs at 3.3V. The maximum voltage that the I/O pins can tolerate is 3.3V. Providing higher voltages, like 5V to an I/O pin could damage the board.
Pin Mapping: PinMapSAM3X page
Pin Mapping: SAM3X Pin Mapping page
It is possible to erase the Flash memory with the onboard erase button. This will remove the currently loaded sketch from the SAM3X.
Used to receive (RX) and transmit (TX) TTL serial data (with 3.3 V level). Pins 0 and 1 are also connected to the corresponding pins of the ATmega16U2 USB-to-TTL Serial chip.
Used to receive (RX) and transmit (TX) TTL serial data (with 3.3 V level). Pins 0 and 1 are connected to the corresponding pins of the ATmega16U2 USB-to-TTL Serial chip.
The Arduino Due has a number of facilities for communicating with a computer, another Arduino or other microcontrollers and different devices like phones, tablets, cameras and so on. The SAM3X provides one hardware UART, connected to RX0 and TX0, and three hardware USARTs for TTL (3.3V) serial communication. Serial on pins RX0 and TX0 also provides the Serial-to-USB communication used for programming the board through the ATmega16U2 microcontroller that provides a virtual COM port to software on the computer (Windows machines will need a .inf file, but OSX and Linux machines will recognize the board as a COM port automatically). The Arduino software includes a serial monitor which allows simple textual data to be sent to and from the board. The RX and TX LEDs on the board will flash when data is being transmitted via the ATmega16U2 chip and USB connection to the computer (but not for serial communication on pins 0 and 1).
The Arduino Due has a number of facilities for communicating with a computer, another Arduino or other microcontrollers and different devices like phones, tablets, cameras and so on. The SAM3X provides one hardware UART, connected to one of the onboard USB connectors (USBSerial), and three hardware USARTs for TTL (3.3V) serial communication. Serial on pins RX0 and TX0 provides Serial-to-USB communication used for programming the board through the ATmega16U2 microcontroller. The 16U2 provides a virtual COM port to software on the computer (Windows machines will need a .inf file, but OSX and Linux machines will recognize the board as a COM port automatically). The Arduino software includes a serial monitor which allows simple textual data to be sent to and from the board. The RX and TX LEDs on the board will flash when data is being transmitted via the ATmega16U2 chip and USB connection to the computer (but not for serial communication on pins 0 and 1).
The USBSerial port connected to the SAM3X can operate as a USB-CDC connection. That is, the Due can act as a USB host for connected peripherals such as mice, keyboards, and smartphones. To access these features, use the USBHost reference pages.
The SAM3X also supports TWI and SPI communication. The Arduino software includes a Wire library to simplify use of the TWI bus; see the documentation for details. For SPI communication, use the SPI library.
The SAM3X also supports TWI and SPI communication. The Arduino software includes a Wire library to simplify use of the TWI bus; see the documentation for details. For SPI communication, use the SPI library.
The Arduino Due is designed to be compatible with most shields designed for the Uno, Diecimila or Duemilanove. Digital pins 0 to 13 (and the adjacent AREF and GND pins), analog inputs 0 to 5, the power header, and "ICSP" (SPI) header are all in equivalent locations. Further the main UART (serial port) is located on the same pins (0 and 1), as are external interrupts 0 and 1 (pins 2 and 3 respectively). Please note that I2C is not located on the same pins on the Due (20 and 21) as the Duemilanove / Diecimila (analog inputs 4 and 5).
The Arduino Due is designed to be compatible with most shields designed for the Uno, Diecimila or Duemilanove. Digital pins 0 to 13 (and the adjacent AREF and GND pins), analog inputs 0 to 5, the power header, and "ICSP" (SPI) header are all in equivalent locations. Further the main UART (serial port) is located on the same pins (0 and 1), as are external interrupts 0 and 1 (pins 2 and 3 respectively). Please note that I2C is not located on the same pins on the Due (20 and 21) as the Duemilanove / Diecimila (analog inputs 4 and 5).
[MISSING: erase button that erase the flash memory]
The Arduino Due has a number of facilities for communicating with a computer, another Arduino or other microcontrollers and different devices like phones, tablets, cameras and so on. The SAM3X provides one hardware UART, connected to RX0 and TX0, and three hardware USARTs for TTL (3.3V) serial communication. Serial0 on pins RX0 and TX0 also provides the Serial-to-USB communication used for programming the board through the ATmega16U2 microcontroller that provides a virtual COM port to software on the computer (Windows machines will need a .inf file, but OSX and Linux machines will recognize the board as a COM port automatically.) The Arduino software includes a serial monitor which allows simple textual data to be sent to and from the board. The RX and TX LEDs on the board will flash when data is being transmitted via the ATmega16U2 chip and USB connection to the computer (but not for serial communication on pins 0 and 1).
The Arduino Due has a number of facilities for communicating with a computer, another Arduino or other microcontrollers and different devices like phones, tablets, cameras and so on. The SAM3X provides one hardware UART, connected to RX0 and TX0, and three hardware USARTs for TTL (3.3V) serial communication. Serial on pins RX0 and TX0 also provides the Serial-to-USB communication used for programming the board through the ATmega16U2 microcontroller that provides a virtual COM port to software on the computer (Windows machines will need a .inf file, but OSX and Linux machines will recognize the board as a COM port automatically). The Arduino software includes a serial monitor which allows simple textual data to be sent to and from the board. The RX and TX LEDs on the board will flash when data is being transmitted via the ATmega16U2 chip and USB connection to the computer (but not for serial communication on pins 0 and 1).
[MISSING: USB-CDC with SerialUSB]
The ATmega16U2 firmware source code is available in the Arduino repository. The ATmega16U2/8U2 is loaded with a DFU bootloader, which can be activated by:
The ATmega16U2 firmware source code is available in the Arduino repository. You can use the ISP header with an external programmer (overwriting the DFU bootloader). See this user-contributed tutorial for more information.
Rather then requiring a physical press of the reset button before an upload, the Arduino Due is designed in a way that allows it to be reset by software running on a connected computer. One of the hardware flow control lines (DTR) of the ATmega16U2 is connected to the reset line of the Due via a 100 nanofarad capacitor. When this line is asserted (taken low), the reset line drops long enough to reset the chip. The Arduino software uses this capability to allow you to upload code by simply pressing the upload button in the Arduino environment. This setup has other implications. When the SAM3X is connected to either a computer running Mac OS X or Linux, it resets each time a connection is made to it from software (via USB). For the following half-second or so, the bootloader is running on the SAM3X. While it is programmed to ignore malformed data (i.e. anything besides an upload of new code), it will intercept the first few bytes of data sent to the board after a connection is opened. If a sketch running on the board receives one-time configuration or other data when it first starts, make sure that the software with which it communicates waits a second after opening the connection and before sending this data.
The Due contains a trace that can be cut to disable the auto-reset. The pads on either side of the trace can be soldered together to re-enable it. It's labeled "RESET-EN". You may also be able to disable the auto-reset by connecting a 110 ohm resistor from 5V to the reset line; see this forum thread for details.
[MISSING: describe here the automatic 'erase' procedure]
[MISSING: describe here that the board doesn't automatically restart the sketch if you open the serial monitor like on the Uno]
Rather then requiring a physical press of the reset button before an upload, the Arduino Due is designed in a way that allows it to be reset by software running on a connected computer.
The Arduino Due is designed to be compatible with most shields designed for the Uno, Diecimila or Duemilanove. Digital pins 0 to 13 (and the adjacent AREF and GND pins), analog inputs 0 to 5, the power header, and ICSP header are all in equivalent locations. Further the main UART (serial port) is located on the same pins (0 and 1), as are external interrupts 0 and 1 (pins 2 and 3 respectively). SPI is available through the ICSP header on both the Mega2560 and Duemilanove / Diecimila. Please note that I2C is not located on the same pins on the Mega (20 and 21) as the Duemilanove / Diecimila (analog inputs 4 and 5).
The Arduino Due is designed to be compatible with most shields designed for the Uno, Diecimila or Duemilanove. Digital pins 0 to 13 (and the adjacent AREF and GND pins), analog inputs 0 to 5, the power header, and "ICSP" (SPI) header are all in equivalent locations. Further the main UART (serial port) is located on the same pins (0 and 1), as are external interrupts 0 and 1 (pins 2 and 3 respectively). Please note that I2C is not located on the same pins on the Due (20 and 21) as the Duemilanove / Diecimila (analog inputs 4 and 5).
The Arduino Due is a microcontroller board based on the Atmel SAM3X8E ARM Cortex-M3 CPU (datasheet). It has 54 digital input/output pins (of which 16 can be used as PWM outputs), 12 analog inputs, 4 UARTs (hardware serial ports), a 84 MHz crystal oscillator, two USB connections, a power jack, an ICSP header, a JTAG header, and a reset button. The maximum voltage that the I/O pins can provide or tolerate is 3.3V. Providing higher voltages, like 5V to an input pin could damage the board.
It contains everything needed to support the microcontroller; simply connect it to a computer with a USB cable or power it with a AC-to-DC adapter or battery to get started. The Due is compatible with all Arduino shields that work at 3.3V and are compliant with the 1.0 Arduino pinout.
The Due has the 1.0 pinout :
The Arduino Due is a microcontroller board based on the Atmel SAM3X8E ARM Cortex-M3 CPU (datasheet). It is the first Arduino board based on a 32-bit ARM core microcontroller. It has 54 digital input/output pins (of which 12 can be used as PWM outputs), 12 analog inputs, 4 UARTs (hardware serial ports), a 84 MHz clock, an USB OTG capable connection, 2 DAC (digital to analog), 2 TWI, a power jack, an SPI header, a JTAG header, a reset button and an erase button.
Warning: differently from other Arduino boards, the Arduino Due board runs at 3.3V, therefore the maximum voltage that the I/O pins can tolerate is 3.3V. Providing higher voltages, like 5V to an I/O pin could damage the board.
The board contains everything needed to support the microcontroller; simply connect it to a computer with a USB cable or power it with a AC-to-DC adapter or battery to get started. The Due is compatible with all Arduino shields that work at 3.3V and are compliant with the 1.0 Arduino pinout.
The Due follows the 1.0 pinout:
The Due is the first Arduino board based on a 32-bit ARM core microcontroller.
The Due has a 32-bit ARM core and so "int" is 32-bits. On the AVRs on other Arduino boards, an int is 16 bits. For further information see the int type page.
The Due has a 32-bit ARM core that can outperform typical 8-bit microcontroller boards. The most significant differences are:
| Microcontroller | AT91SAM3X8E |
| Operating Voltage | 3.3V |
| Input Voltage (recommended) | 7-12V |
| Input Voltage (limits) | 6-20V |
| Digital I/O Pins | 54 (of which 16 provide PWM output) |
| Analog Input Pins | 12 |
| Analog Outputs Pins | 2 (DAC) |
| Total DC Output Current on all I/O lines | 130 mA |
| DC Current for 3.3V Pin | 800 mA |
| DC Current for 5V Pin | theoretical 1A, realistic 800 mA |
| Flash Memory | 512 KB all available for the user applications |
| SRAM | 96 KB (64 + 32 KB) |
| DataFlash | 2 Mbit (250 KB) |
| Clock Speed | 84 MHz |
| Microcontroller | AT91SAM3X8E | |
| Operating Voltage | 3.3V | |
| Input Voltage (recommended) | 7-12V | |
| Input Voltage (limits) | 6-20V | |
| Digital I/O Pins | 54 (of which 12 provide PWM output) | |
| Analog Input Pins | 12 | |
| Analog Outputs Pins | 2 (DAC) | |
| Total DC Output Current on all I/O lines | 130 mA | |
| DC Current for 3.3V Pin | 800 mA | |
| DC Current for 5V Pin | 800 mA | |
| Flash Memory | 512 KB all available for the user applications | |
| SRAM | 96 KB (two banks: 64KB and 32KB) | |
| Clock Speed | 84 MHz |
The Arduino Due can be powered via the USB connection or with an external power supply. The power source is selected automatically.
External (non-USB) power can come either from an AC-to-DC adapter (wall-wart) or battery. The adapter can be connected by plugging a 2.1mm center-positive plug into the board's power jack. Leads from a battery can be inserted in the Gnd and Vin pin headers of the POWER connector.
The board can operate on an external supply of 6 to 20 volts. If supplied with less than 7V, however, the 5V pin may supply less than five volts and the board may be unstable. If using more than 12V, the voltage regulator may overheat and damage the board. The recommended range is 7 to 12 volts.
The Arduino Due can be powered via the USB connector or with an external power supply. The power source is selected automatically.
External (non-USB) power can come either from an AC-to-DC adapter (wall-wart) or battery. The adapter can be connected by plugging a 2.1mm center-positive plug into the board's power jack. Leads from a battery can be inserted in the Gnd and Vin pin headers of the POWER connector.
The board can operate on an external supply of 6 to 20 volts. If supplied with less than 7V, however, the 5V pin may supply less than five volts and the board may be unstable. If using more than 12V, the voltage regulator may overheat and damage the board. The recommended range is 7 to 12 volts.
The SAM3X has 512 KB (2 blocks of 256 KB) of flash memory for storing code. The bootloader is preburned in factory from Atmel and is stored in a dedicate ROM memory. The available SRAM is 98 KB (64 + 32 KB). For saving data or variables to maintain when the Due is powered off there is a 2Mbit (250 Kbyte) external DataFlash accessible via SPI or with the LIBRARY.
The SAM3X has 512 KB (2 blocks of 256 KB) of flash memory for storing code. The bootloader is preburned in factory from Atmel and is stored in a dedicated ROM memory. The available SRAM is 96 KB in two contiguous bank of 64 KB and 32 KB. All the available memory (Flash, RAM and ROM) can be accessed directly as a flat addressing space.
Each of the 54 digital pins on the Due can be used as an input or output, using pinMode(), digitalWrite(), and digitalRead() functions. They operate at 3.3 volts. Each pin can provide (source) a current between 3 and 15 mA or receive (sink) a current between 6 and 9 mA. They also have an internal pull-up resistor (disconnected by default) of 50-150 kohm, typically 100 kohm. In addition, some pins have specialized functions:
The Due has 12 analog inputs, each of which provide 12 bits of resolution (i.e. 4096 different values). By default the resolution of the readings is set at 10 bits, for compatibility with other Arduino boards. It is possible to change the resolution of the ADC with analogReadResolution(). The Due's analog inputs pins measure from ground to 3.3 volts, though is it possible to change the upper end of their range using the AREF pin and analogReference() function.
The SAM3X contains a trace that can be cut to disable the auto-reset. The pads on either side of the trace can be soldered together to re-enable it. It's labeled "RESET-EN". You may also be able to disable the auto-reset by connecting a 110 ohm resistor from 5V to the reset line; see this forum thread for details.
The Due contains a trace that can be cut to disable the auto-reset. The pads on either side of the trace can be soldered together to re-enable it. It's labeled "RESET-EN". You may also be able to disable the auto-reset by connecting a 110 ohm resistor from 5V to the reset line; see this forum thread for details.
The Due has a 32-bit ARM core and so "int" is 32-bits. On the AVRs on other Arduino boards, an int is 16 bits. For further information see the int type page.
The Arduino Due is a microcontroller board based on the Atmel SAM3X8E ARM Cortex-M3 CPU (datasheet). It has 54 digital input/output pins (of which 16 can be used as PWM outputs), 12 analog inputs, 4 UARTs (hardware serial ports), a 84 MHz crystal oscillator, two USB connections, a power jack, an ICSP header, a JTAG header, and a reset button. The maximum voltage that the I/O pins can provide or tolerate is 3.3V. Providing higher voltages, like 5V to an input pin could damage the board. It contains everything needed to support the microcontroller; simply connect it to a computer with a USB cable or power it with a AC-to-DC adapter or battery to get started. The Due is compatible with all the shields that can work at 3.3V and are compliant with the 1.0 Arduino pinout. Most of them are designed for the other Arduino boards, especially for the Uno.
The Due has the 1.0 pinout, which consist in:
The Arduino Due is a microcontroller board based on the Atmel SAM3X8E ARM Cortex-M3 CPU (datasheet). It has 54 digital input/output pins (of which 16 can be used as PWM outputs), 12 analog inputs, 4 UARTs (hardware serial ports), a 84 MHz crystal oscillator, two USB connections, a power jack, an ICSP header, a JTAG header, and a reset button. The maximum voltage that the I/O pins can provide or tolerate is 3.3V. Providing higher voltages, like 5V to an input pin could damage the board.
It contains everything needed to support the microcontroller; simply connect it to a computer with a USB cable or power it with a AC-to-DC adapter or battery to get started. The Due is compatible with all Arduino shields that work at 3.3V and are compliant with the 1.0 Arduino pinout.
The Due has the 1.0 pinout :
Each of the 54 digital pins on the Due can be used as an input or output, using pinMode(), digitalWrite(), and digitalRead() functions. They operate at 3.3 volts. Each pin can provide (source) a current between 3 and 15 mA or receive (sink) a current between 6 and 9 mA and they have an internal pull-up resistor (disconnected by default) of 50-150 kohm, typical 100 kohm. In addition, some pins have specialized functions:
Each of the 54 digital pins on the Due can be used as an input or output, using pinMode(), digitalWrite(), and digitalRead() functions. They operate at 3.3 volts. Each pin can provide (source) a current between 3 and 15 mA or receive (sink) a current between 6 and 9 mA. They also have an internal pull-up resistor (disconnected by default) of 50-150 kohm, typically 100 kohm. In addition, some pins have specialized functions:
The Due has 12 analog inputs, each of which provide 12 bits of resolution (i.e. 4096 different values). By default the resolution of the readings is set at 10 bits, agreeing with the other Arduino boards. Analog inputs pins measure from ground to 3.3 volts, though is it possible to change the upper end of their range using the AREF pin and analogReference() function.
There are a couple of other pins on the board:
The Due has 12 analog inputs, each of which provide 12 bits of resolution (i.e. 4096 different values). By default the resolution of the readings is set at 10 bits, for compatibility with other Arduino boards. It is possible to change the resolution of the ADC with analogReadResolution(). The Due's analog inputs pins measure from ground to 3.3 volts, though is it possible to change the upper end of their range using the AREF pin and analogReference() function.
Other pins on the board:
The Arduino Due has a number of facilities for communicating with a computer, another Arduino or other microcontrollers and other different devices like phones, tablets, cameras and so on. The SAM3X provides one hardware UART, connected to RX0 and TX0, and three hardware USARTs for TTL (3.3V) serial communication. The Serial0 on pins RX0 and TX0 also provide the Serial to USB communication used for programming the board through the ATmega16U2 microcontrolle that provides a virtual com port to software on the computer (Windows machines will need a .inf file, but OSX and Linux machines will recognize the board as a COM port automatically. The Arduino software includes a serial monitor which allows simple textual data to be sent to and from the board. The RX and TX LEDs on the board will flash when data is being transmitted via the ATmega8U2/ATmega16U2 chip and USB connection to the computer (but not for serial communication on pins 0 and 1).
The Arduino Due has a number of facilities for communicating with a computer, another Arduino or other microcontrollers and different devices like phones, tablets, cameras and so on. The SAM3X provides one hardware UART, connected to RX0 and TX0, and three hardware USARTs for TTL (3.3V) serial communication. Serial0 on pins RX0 and TX0 also provides the Serial-to-USB communication used for programming the board through the ATmega16U2 microcontroller that provides a virtual COM port to software on the computer (Windows machines will need a .inf file, but OSX and Linux machines will recognize the board as a COM port automatically.) The Arduino software includes a serial monitor which allows simple textual data to be sent to and from the board. The RX and TX LEDs on the board will flash when data is being transmitted via the ATmega16U2 chip and USB connection to the computer (but not for serial communication on pins 0 and 1).
| DataFlash | 2 Mbit (250 KB) |
The SAM3X has 512 KB (2 blocks of 256 KB) of flash memory for storing code. The bootloader is preburned in factory from Atmel and is stored in a dedicate ROM memory. The available SRAM is 98 KB (64 + 32 KB).
The SAM3X has 512 KB (2 blocks of 256 KB) of flash memory for storing code. The bootloader is preburned in factory from Atmel and is stored in a dedicate ROM memory. The available SRAM is 98 KB (64 + 32 KB). For saving data or variables to maintain when the Due is powered off there is a 2Mbit (250 Kbyte) external DataFlash accessible via SPI or with the LIBRARY.
The Arduino Due is a microcontroller board based on the Atmel SAM3X8E ARM Cortex-M3 CPU (datasheet). It has 54 digital input/output pins (of which 16 can be used as PWM outputs), 12 analog inputs, 4 UARTs (hardware serial ports), a 84 MHz crystal oscillator, a USB connection, a power jack, an ICSP header, a JTAG header, and a reset button. It contains everything needed to support the microcontroller; simply connect it to a computer with a USB cable or power it with a AC-to-DC adapter or battery to get started. The Due is compatible with most shields designed for the other Arduino boards, especially for the Uno, or previous ones.
The Arduino Due is a microcontroller board based on the Atmel SAM3X8E ARM Cortex-M3 CPU (datasheet). It has 54 digital input/output pins (of which 16 can be used as PWM outputs), 12 analog inputs, 4 UARTs (hardware serial ports), a 84 MHz crystal oscillator, two USB connections, a power jack, an ICSP header, a JTAG header, and a reset button. The maximum voltage that the I/O pins can provide or tolerate is 3.3V. Providing higher voltages, like 5V to an input pin could damage the board. It contains everything needed to support the microcontroller; simply connect it to a computer with a USB cable or power it with a AC-to-DC adapter or battery to get started. The Due is compatible with all the shields that can work at 3.3V and are compliant with the 1.0 Arduino pinout. Most of them are designed for the other Arduino boards, especially for the Uno.
The Due has the 1.0 pinout, which consist in:
| Analog Outputs Pins | 2 (DAC) |
| Analog Outputs Pins | 2 (DAC) |
The Due has the 1.0 pinout, which consist in:
(:cell:) Arduino Due Front (:cell:) Arduino Due Back
The Arduino Due is a microcontroller board based on a 32 bit ARM architecture (datasheet). It has 54 digital input/output pins (of which 14 can be used as PWM outputs), 12 analog inputs, a 84 MHz crystal oscillator, a micro USB connection, a power jack, an ICSP header, and a reset button. It contains everything needed to support the microcontroller; simply connect it to a computer with a USB cable or power it with a AC-to-DC adapter or battery to get started.
//////////////
The Uno differs from all preceding boards in that it does not use the FTDI USB-to-serial driver chip. Instead, it features the Atmega16U2 (Atmega8U2 up to version R2) programmed as a USB-to-serial converter.
Revision 2 of the Uno board has a resistor pulling the 8U2 HWB line to ground, making it easier to put into DFU mode.
Revision 3 of the board has the following new features:
"Uno" means one in Italian and is named to mark the upcoming release of Arduino 1.0. The Uno and version 1.0 will be the reference versions of Arduino, moving forward. The Uno is the latest in a series of USB Arduino boards, and the reference model for the Arduino platform; for a comparison with previous versions, see the index of Arduino boards.
The Arduino Due is a microcontroller board based on the Atmel SAM3X8E ARM Cortex-M3 CPU (datasheet). It has 54 digital input/output pins (of which 16 can be used as PWM outputs), 12 analog inputs, 4 UARTs (hardware serial ports), a 84 MHz crystal oscillator, a USB connection, a power jack, an ICSP header, a JTAG header, and a reset button. It contains everything needed to support the microcontroller; simply connect it to a computer with a USB cable or power it with a AC-to-DC adapter or battery to get started. The Due is compatible with most shields designed for the other Arduino boards, especially for the Uno, or previous ones.
The Due is the first Arduino board based on a 32-bit ARM core microcontroller.
EAGLE files: arduino-Due-reference-design.zip
Schematic: arduino-Due-schematic.pdf
Pin Mapping: PinMapSAM3X page
| Microcontroller | ATmega328 |
| Operating Voltage | 5V |
| Microcontroller | AT91SAM3X8E |
| Operating Voltage | 3.3V |
| Digital I/O Pins | 14 (of which 6 provide PWM output) |
| Analog Input Pins | 6 |
| DC Current per I/O Pin | 40 mA |
| DC Current for 3.3V Pin | 50 mA |
| Flash Memory | 32 KB (ATmega328) of which 0.5 KB used by bootloader |
| SRAM | 2 KB (ATmega328) |
| EEPROM | 1 KB (ATmega328) |
| Clock Speed | 16 MHz |
EAGLE files: arduino-uno-Rev3-reference-design.zip (NOTE: works with Eagle 6.0 and newer)
Schematic: arduino-uno-Rev3-schematic.pdf
Note: The Arduino reference design can use an Atmega8, 168, or 328, Current models use an ATmega328, but an Atmega8 is shown in the schematic for reference. The pin configuration is identical on all three processors.
| Digital I/O Pins | 54 (of which 16 provide PWM output) |
| Analog Input Pins | 12 |
| Analog Outputs Pins | 2 (DAC) |
| Total DC Output Current on all I/O lines | 130 mA |
| DC Current for 3.3V Pin | 800 mA |
| DC Current for 5V Pin | theoretical 1A, realistic 800 mA |
| Flash Memory | 512 KB all available for the user applications |
| SRAM | 96 KB (64 + 32 KB) |
| Clock Speed | 84 MHz |
The Arduino Uno can be powered via the USB connection or with an external power supply. The power source is selected automatically.
The Arduino Due can be powered via the USB connection or with an external power supply. The power source is selected automatically.
The Due has the 1.0 pinout, which consist in:
The ATmega328 has 32 KB (with 0.5 KB used for the bootloader). It also has 2 KB of SRAM and 1 KB of EEPROM (which can be read and written with the EEPROM library).
The SAM3X has 512 KB (2 blocks of 256 KB) of flash memory for storing code. The bootloader is preburned in factory from Atmel and is stored in a dedicate ROM memory. The available SRAM is 98 KB (64 + 32 KB).
Each of the 14 digital pins on the Uno can be used as an input or output, using pinMode(), digitalWrite(), and digitalRead() functions. They operate at 5 volts. Each pin can provide or receive a maximum of 40 mA and has an internal pull-up resistor (disconnected by default) of 20-50 kOhms. In addition, some pins have specialized functions:
The Uno has 6 analog inputs, labeled A0 through A5, each of which provide 10 bits of resolution (i.e. 1024 different values). By default they measure from ground to 5 volts, though is it possible to change the upper end of their range using the AREF pin and the analogReference() function. Additionally, some pins have specialized functionality:
Each of the 54 digital pins on the Due can be used as an input or output, using pinMode(), digitalWrite(), and digitalRead() functions. They operate at 3.3 volts. Each pin can provide (source) a current between 3 and 15 mA or receive (sink) a current between 6 and 9 mA and they have an internal pull-up resistor (disconnected by default) of 50-150 kohm, typical 100 kohm. In addition, some pins have specialized functions:
(:if false:)
(:ifend:)
The Due has 12 analog inputs, each of which provide 12 bits of resolution (i.e. 4096 different values). By default the resolution of the readings is set at 10 bits, agreeing with the other Arduino boards. Analog inputs pins measure from ground to 3.3 volts, though is it possible to change the upper end of their range using the AREF pin and analogReference() function.
See also the mapping between Arduino pins and ATmega328 ports. The mapping for the Atmega8, 168, and 328 is identical.
The Arduino Uno has a number of facilities for communicating with a computer, another Arduino, or other microcontrollers. The ATmega328 provides UART TTL (5V) serial communication, which is available on digital pins 0 (RX) and 1 (TX). An ATmega16U2 on the board channels this serial communication over USB and appears as a virtual com port to software on the computer. The '16U2 firmware uses the standard USB COM drivers, and no external driver is needed. However, on Windows, a .inf file is required. The Arduino software includes a serial monitor which allows simple textual data to be sent to and from the Arduino board. The RX and TX LEDs on the board will flash when data is being transmitted via the USB-to-serial chip and USB connection to the computer (but not for serial communication on pins 0 and 1).
A SoftwareSerial library allows for serial communication on any of the Uno's digital pins.
The ATmega328 also supports I2C (TWI) and SPI communication. The Arduino software includes a Wire library to simplify use of the I2C bus; see the documentation for details. For SPI communication, use the SPI library.
The Arduino Due has a number of facilities for communicating with a computer, another Arduino or other microcontrollers and other different devices like phones, tablets, cameras and so on. The SAM3X provides one hardware UART, connected to RX0 and TX0, and three hardware USARTs for TTL (3.3V) serial communication. The Serial0 on pins RX0 and TX0 also provide the Serial to USB communication used for programming the board through the ATmega16U2 microcontrolle that provides a virtual com port to software on the computer (Windows machines will need a .inf file, but OSX and Linux machines will recognize the board as a COM port automatically. The Arduino software includes a serial monitor which allows simple textual data to be sent to and from the board. The RX and TX LEDs on the board will flash when data is being transmitted via the ATmega8U2/ATmega16U2 chip and USB connection to the computer (but not for serial communication on pins 0 and 1).
The SAM3X also supports TWI and SPI communication. The Arduino software includes a Wire library to simplify use of the TWI bus; see the documentation for details. For SPI communication, use the SPI library.
The Arduino Uno can be programmed with the Arduino software (download). Select "Arduino Uno from the Tools > Board menu (according to the microcontroller on your board). For details, see the reference and tutorials.
The ATmega328 on the Arduino Uno comes preburned with a bootloader that allows you to upload new code to it without the use of an external hardware programmer. It communicates using the original STK500 protocol (reference, C header files).
You can also bypass the bootloader and program the microcontroller through the ICSP (In-Circuit Serial Programming) header; see these instructions for details.
The ATmega16U2 (or 8U2 in the rev1 and rev2 boards) firmware source code is available . The ATmega16U2/8U2 is loaded with a DFU bootloader, which can be activated by:
The Arduino Due can be programmed with the Arduino software (download). For details, see the reference and tutorials.
The ATmega16U2 firmware source code is available in the Arduino repository. The ATmega16U2/8U2 is loaded with a DFU bootloader, which can be activated by:
You can then use Atmel's FLIP software (Windows) or the DFU programmer (Mac OS X and Linux) to load a new firmware. Or you can use the ISP header with an external programmer (overwriting the DFU bootloader). See this user-contributed tutorial for more information.
Rather than requiring a physical press of the reset button before an upload, the Arduino Uno is designed in a way that allows it to be reset by software running on a connected computer. One of the hardware flow control lines (DTR) of the ATmega8U2/16U2 is connected to the reset line of the ATmega328 via a 100 nanofarad capacitor. When this line is asserted (taken low), the reset line drops long enough to reset the chip. The Arduino software uses this capability to allow you to upload code by simply pressing the upload button in the Arduino environment. This means that the bootloader can have a shorter timeout, as the lowering of DTR can be well-coordinated with the start of the upload.
This setup has other implications. When the Uno is connected to either a computer running Mac OS X or Linux, it resets each time a connection is made to it from software (via USB). For the following half-second or so, the bootloader is running on the Uno. While it is programmed to ignore malformed data (i.e. anything besides an upload of new code), it will intercept the first few bytes of data sent to the board after a connection is opened. If a sketch running on the board receives one-time configuration or other data when it first starts, make sure that the software with which it communicates waits a second after opening the connection and before sending this data.
The Uno contains a trace that can be cut to disable the auto-reset. The pads on either side of the trace can be soldered together to re-enable it. It's labeled "RESET-EN". You may also be able to disable the auto-reset by connecting a 110 ohm resistor from 5V to the reset line; see this forum thread for details.
Rather then requiring a physical press of the reset button before an upload, the Arduino Due is designed in a way that allows it to be reset by software running on a connected computer. One of the hardware flow control lines (DTR) of the ATmega16U2 is connected to the reset line of the Due via a 100 nanofarad capacitor. When this line is asserted (taken low), the reset line drops long enough to reset the chip. The Arduino software uses this capability to allow you to upload code by simply pressing the upload button in the Arduino environment. This setup has other implications. When the SAM3X is connected to either a computer running Mac OS X or Linux, it resets each time a connection is made to it from software (via USB). For the following half-second or so, the bootloader is running on the SAM3X. While it is programmed to ignore malformed data (i.e. anything besides an upload of new code), it will intercept the first few bytes of data sent to the board after a connection is opened. If a sketch running on the board receives one-time configuration or other data when it first starts, make sure that the software with which it communicates waits a second after opening the connection and before sending this data.
The SAM3X contains a trace that can be cut to disable the auto-reset. The pads on either side of the trace can be soldered together to re-enable it. It's labeled "RESET-EN". You may also be able to disable the auto-reset by connecting a 110 ohm resistor from 5V to the reset line; see this forum thread for details.
The Arduino Uno has a resettable polyfuse that protects your computer's USB ports from shorts and overcurrent. Although most computers provide their own internal protection, the fuse provides an extra layer of protection. If more than 500 mA is applied to the USB port, the fuse will automatically break the connection until the short or overload is removed.
The maximum length and width of the Uno PCB are 2.7 and 2.1 inches respectively, with the USB connector and power jack extending beyond the former dimension. Four screw holes allow the board to be attached to a surface or case. Note that the distance between digital pins 7 and 8 is 160 mil (0.16"), not an even multiple of the 100 mil spacing of the other pins.
The Arduino Due has a resettable polyfuse that protects your computer's USB ports from shorts and overcurrent. Although most computers provide their own internal protection, the fuse provides an extra layer of protection. If more than 500 mA is applied to the USB port, the fuse will automatically break the connection until the short or overload is removed.
The maximum length and width of the Arduino Due PCB are 4 and 2.1 inches respectively, with the USB connectors and power jack extending beyond the former dimension. Three screw holes allow the board to be attached to a surface or case. Note that the distance between digital pins 7 and 8 is 160 mil (0.16"), not an even multiple of the 100 mil spacing of the other pins.
The Arduino Due is designed to be compatible with most shields designed for the Uno, Diecimila or Duemilanove. Digital pins 0 to 13 (and the adjacent AREF and GND pins), analog inputs 0 to 5, the power header, and ICSP header are all in equivalent locations. Further the main UART (serial port) is located on the same pins (0 and 1), as are external interrupts 0 and 1 (pins 2 and 3 respectively). SPI is available through the ICSP header on both the Mega2560 and Duemilanove / Diecimila. Please note that I2C is not located on the same pins on the Mega (20 and 21) as the Duemilanove / Diecimila (analog inputs 4 and 5).
(:table border=0 align=center:)
(:cellnr colspan=2:)
(:cell colspan=2:)
(:cellnr colspan=2:) Arduino Due Front
(:cell colspan=2:) Arduino Due Back
(:cell:) Arduino Due Front (:cell:) Arduino Due Back
(:tableend:)
(:table border = 0 :)
(:cell:)
(:cell:)
(:tableend:)
The Arduino Due is a microcontroller board based on a 32 bit ARM architecture (datasheet). It has 54 digital input/output pins (of which 14 can be used as PWM outputs), 12 analog inputs, a 84 MHz crystal oscillator, a micro USB connection, a power jack, an ICSP header, and a reset button. It contains everything needed to support the microcontroller; simply connect it to a computer with a USB cable or power it with a AC-to-DC adapter or battery to get started.
//////////////
The Uno differs from all preceding boards in that it does not use the FTDI USB-to-serial driver chip. Instead, it features the Atmega16U2 (Atmega8U2 up to version R2) programmed as a USB-to-serial converter.
Revision 2 of the Uno board has a resistor pulling the 8U2 HWB line to ground, making it easier to put into DFU mode.
Revision 3 of the board has the following new features:
"Uno" means one in Italian and is named to mark the upcoming release of Arduino 1.0. The Uno and version 1.0 will be the reference versions of Arduino, moving forward. The Uno is the latest in a series of USB Arduino boards, and the reference model for the Arduino platform; for a comparison with previous versions, see the index of Arduino boards.
| Microcontroller | ATmega328 |
| Operating Voltage | 5V |
| Input Voltage (recommended) | 7-12V |
| Input Voltage (limits) | 6-20V |
| Digital I/O Pins | 14 (of which 6 provide PWM output) |
| Analog Input Pins | 6 |
| DC Current per I/O Pin | 40 mA |
| DC Current for 3.3V Pin | 50 mA |
| Flash Memory | 32 KB (ATmega328) of which 0.5 KB used by bootloader |
| SRAM | 2 KB (ATmega328) |
| EEPROM | 1 KB (ATmega328) |
| Clock Speed | 16 MHz |
EAGLE files: arduino-uno-Rev3-reference-design.zip (NOTE: works with Eagle 6.0 and newer)
Schematic: arduino-uno-Rev3-schematic.pdf
Note: The Arduino reference design can use an Atmega8, 168, or 328, Current models use an ATmega328, but an Atmega8 is shown in the schematic for reference. The pin configuration is identical on all three processors.
The Arduino Uno can be powered via the USB connection or with an external power supply. The power source is selected automatically.
External (non-USB) power can come either from an AC-to-DC adapter (wall-wart) or battery. The adapter can be connected by plugging a 2.1mm center-positive plug into the board's power jack. Leads from a battery can be inserted in the Gnd and Vin pin headers of the POWER connector.
The board can operate on an external supply of 6 to 20 volts. If supplied with less than 7V, however, the 5V pin may supply less than five volts and the board may be unstable. If using more than 12V, the voltage regulator may overheat and damage the board. The recommended range is 7 to 12 volts.
The power pins are as follows:
The ATmega328 has 32 KB (with 0.5 KB used for the bootloader). It also has 2 KB of SRAM and 1 KB of EEPROM (which can be read and written with the EEPROM library).
Each of the 14 digital pins on the Uno can be used as an input or output, using pinMode(), digitalWrite(), and digitalRead() functions. They operate at 5 volts. Each pin can provide or receive a maximum of 40 mA and has an internal pull-up resistor (disconnected by default) of 20-50 kOhms. In addition, some pins have specialized functions:
The Uno has 6 analog inputs, labeled A0 through A5, each of which provide 10 bits of resolution (i.e. 1024 different values). By default they measure from ground to 5 volts, though is it possible to change the upper end of their range using the AREF pin and the analogReference() function. Additionally, some pins have specialized functionality:
There are a couple of other pins on the board:
See also the mapping between Arduino pins and ATmega328 ports. The mapping for the Atmega8, 168, and 328 is identical.
The Arduino Uno has a number of facilities for communicating with a computer, another Arduino, or other microcontrollers. The ATmega328 provides UART TTL (5V) serialese instructions]] for details.
The ATmega16U2 (or 8U2 in the rev1 and rev2 boards) firmware source code is available . The ATmega16U2/8U2 is loaded with a DFU bootloader, which can be activated by:
You can then use Atmel's FLIP software (Windows) or the DFU programmer (Mac OS X and Linux) to load a new firmware. Or you can use the ISP header with an external programmer (overwriting the DFU bootloader). See this user-contributed tutorial for more information.
Rather than requiring a physical press of the reset button before an upload, the Arduino Uno is designed in a way that allows it to be reset by software running on a connected computer. One of the hardware flow control lines (DTR) of the ATmega8U2/16U2 is connected to the reset line of the ATmega328 via a 100 nanofarad capacitor. When this line is asserted (taken low), the reset line drops long enough to reset the chip. The Arduino software uses this capability to allow you to upload code by simply pressing the upload button in the Arduino environment. This means that the bootloader can have a shorter timeout, as the lowering of DTR can be well-coordinated with the start of the upload.
This setup has other implications. When the Uno is connected to either a computer running Mac OS X or Linux, it resets each time a connection is made to it from software (via USB). For the following half-second or so, the bootloader is running on the Uno. While it is programmed to ignore malformed data (i.e. anything besides an upload of new code), it will intercept the first few bytes of data sent to the board after a connection is opened. If a sketch running on the board receives one-time configuration or other data when it first starts, make sure that the software with which it communicates waits a second after opening the connection and before sending this data.
The Uno contains a trace that can be cut to disable the auto-reset. The pads on either side of the trace can be soldered together to re-enable it. It's labeled "RESET-EN". You may also be able to disable the auto-reset by connecting a 110 ohm resistor from 5V to the reset line; see this forum thread for details.
The Arduino Uno has a resettable polyfuse that protects your computer's USB ports from shorts and overcurrent. Although most computers provide their own internal protection, the fuse provides an extra layer of protection. If more than 500 mA is applied to the USB port, the fuse will automatically break the connection until the short or overload is removed.
The maximum length and width of the Uno PCB are 2.7 and 2.1 inches respectively, with the USB connector and power jack extending beyond the former dimension. Four screw holes allow the board to be attached to a surface or case. Note that the distance between digital pins 7 and 8 is 160 mil (0.16"), not an even multiple of the 100 mil spacing of the other pins.