The Arduino Due is a microcontroller board based on the Atmel SAM3X8E ARM Cortex-M3 CPU. It is the first Arduino board based on a 32-bit ARM core microcontroller.
The Arduino Due is programmed using the Arduino Software (IDE), our Integrated Development Environment common to all our boards and running both online and offline. For more information on how to get started with the Arduino Software visit the Getting Started page.
On this page... (hide)
All Arduino and Genuino boards, including this one, work out-of-the-box on the Arduino Web Editor, no need to install anything.
The Arduino Web Editor is hosted online, therefore it will always be up-to-date with the latest features and support for all boards. Follow this simple guide to start coding on the browser and upload your sketches onto your board.
If you want to program your Arduino Due while offline you need to install the Arduino Desktop IDE and add the Atmel SAMD Core to it. This simple procedure is done selecting Tools menu, then Boards and last Boards Manager, as documented in the Arduino Boards Manager page.
Attach the USB micro side of the USB cable to the Due's Programming port (this is the port closer to the DC power connector). To upload a sketch, choose Arduino Due (Programming port) from the Tools > Board menu in the Arduino IDE, and select the correct serial port from the Tools > Serial Port menu.
If you are using the Arduino IDE version 1.6.2 or newer you need to install the core that supports the Arduino Due. Please follow this guide to install the new core.
The uploading process on the Arduino Due works the same as other boards from a user's standpoint. It is recommended to use the Programming port for uploading sketches, though you can upload sketches on either of the USB ports.
For uploading with the Programming port follow this steps:
Everything is now ready to upload your first sketch. Go to File on the Arduino Software (IDE) and open the Examples tree; select 01. Basic and then Blink
This sketch just flashes the built in LED connected to Digital pin 13 at one second pace for on and off, but it is very useful to practice the loading of a sketch into the Arduino Software (IDE) and the Upload to the connected board.
Press the second round icon from left on the top bar of the Arduino Software (IDE) or press Ctrl+U or select the menu Sketch and then Upload.
See this tutorial for a generic guide on the Arduino IDE with a few more infos on the Preferences, the Board Manager, and the Library Manager.
You have successfully set up your 101 board and uploaded your first sketch. You are ready to move on with our tutorials and projects: choose your next destination below.
Now that you have set up and programmed your Due board, you may find inspiration in our Project Hub tutorial platform.
In general, you program and use the Due as you would other Arduino boards. There are, however, a few important differences and functional extensions.
The Due has the same footprint as the Mega 2560.
The microcontroller mounted on the Arduino Due runs at 3.3V, this means that you can power your sensors and drive your actuartors only with 3.3V. Connecting higher voltages, like the 5V commonly used with the other Arduino boards will damage the Due.
The board can take power from the USB connectors or the DC plug. If using the DC connector, supply a voltage between 7V and 12V.
The Arduino Due has an efficient switching voltage regulator, compliant with the USB host specification. If the Native USB port is used as host by attaching a USB device to the mirco-A usb connector, the board will provide the power to the device. When the board is used as a usb host, external power from the DC connector is required.
The Arduino Due has two USB ports available. The Native USB port (which supports CDC serial communication using the SerialUSB object) is connected directly to the SAM3X MCU. The other USB port is the Programming port. It is connected to an ATMEL 16U2 which acts as a USB-to-Serial converter. This Programming port is the default for uploading sketches and communicating with the Arduino.
The USB-to-serial converter of the Programming port is connected to the first UART of the SAM3X. It's possible to communicate over this port using the "Serial" object in the Arduino programming language.
The USB connector of the Native port is directly connected to the USB host pins of the SAM3X. Using the Native port enables you to use the Due as a client USB peripheral (acting as a mouse or a keyboard connected to the computer) or as a USB host device so that devices can be connected to the Due (like a mouse, keyboard, or an Android phone). This port can also be used as a virtual serial port using the "SerialUSB" object in the Arduino programming language.
The SAM3X microcontroller differs from AVR microcontrollers because the flash memory needs to be erased before being re-programmed. A manual procedure would involve holding the erase button for a second, pressing the upload button in the IDE, then the reset button.
Because a manual erase-flash procedure is repetitive, this is managed automatically by both USB ports, in two different ways:
Opening and closing the ''Native' port at the baud rate of 1200bps triggers a “soft erase” procedure: the flash memory is erased and the board is restarted with the bootloader. If, for some reason, the MCU were to crash during this process, it is likely that the soft erase procedure wouldn't work as it's done in software by the MCU itself.
Opening and closing the Native port at a baudrate other than 1200bps will not reset the SAM3X. To use the serial monitor, and see what your sketch does from the beginning, you'll need to add few lines of code inside the setup(). This will ensure the SAM3X will wait for the SerialUSB port to open before executing the sketch:
Pressing the Reset button on the Due causes the SAM3X reset as well as the USB communication. This interruption means that if the serial monitor is open, it's necessary to close and reopen it to restart the communication.
The Programming port uses a USB-to-serial chip connected to the first UART of the MCU (RX0 and TX0). The USB-to-serial chip has two pins connected to the Reset and Erase pins of the SAM3X. When you open this serial port, the USB-to-Serial activates the Erase and Reset sequence before it begins communicating with the UART of the SAM3X. This procedure is much more reliable and should work even if the main MCU has crashed.
To communicate serially with the Programming port, use the "Serial" object in the IDE. All existing sketches that use serial communication based on the Uno board should work similarly. The Programming port behaves like the Uno's serial port in that the USB-to-Serial chip resets the board each time you open the serial monitor (or any other serial communication).
Pressing the Reset button while communicating over the Programming port doesn't close a USB connection with the computer because only the SAM3X is reset.
The Due has the ability to act as a USB host for peripherals connected to the SerialUSB port. For additional information and examples, see the USB host reference page.
When using the Due as a host, it will be providing power to the attached device. It is strongly recommended to use the DC power connector when acting as a host.
The Due has the ability to change its default analog read and write resolutions (10-bits and 8-bits, respectively). It can support up to 12-bit ADC and PWM resolutions. See the analog write resolution and analog read resolution pages for information.
The Due has expanded functionality on its SPI bus, useful for communicating with multiple devices that speak at different speeds. See the Due extended SPI library usage page for more details.
For more details on the Arduino Due, see the hardware page.
Last revision2017/01/10 by SM
The text of the Arduino getting started guide is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the guide are released into the public domain.