Datasheet

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 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 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.
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 can be programmed with the Arduino software (download). For details, see
the reference and tutorials.
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 :
Programming port: To use this port, select "Arduino Due (Programming Port)" as your board
in the Arduino IDE. Connect the Due's programming port (the one closest to the DC power