Guide.ArduinoDue History

Hide minor edits - Show changes to markup

March 08, 2014, at 09:46 AM by Scott Fitzgerald -
Added lines 9-10:

You must use Arduino IDE 1.5 or later to program the Due.

January 09, 2014, at 01:29 PM by Roberto Guido - corrected order of steps. Thanks Joe Hoffbeck for report
Added line 87:
  • Right click on the “Arduino Due Prog. Port” and choose “Update Driver Software”.
Deleted line 88:
  • Right click on the “Arduino Due Prog. Port” and choose “Update Driver Software”. Descriptive text
September 30, 2013, at 08:49 PM by Roberto Guido - todo's corrections
Changed lines 11-12 from:

Differences from ATMEGA based boards

to:

Differences from ATMEGA based boards

Changed lines 17-18 from:

Voltage

to:

Voltage

Changed lines 25-26 from:

Serial ports on the Due

to:

Serial ports on the Due

Changed lines 35-36 from:

Automatic (Software) Reset

to:

Automatic (Software) Reset

Changed lines 60-61 from:

USB Host

to:

USB Host

Changed lines 66-67 from:

ADC and PWM resolutions

to:

ADC and PWM resolutions

Changed lines 70-71 from:

Expanded SPI functionality

to:

Expanded SPI functionality

Changed lines 74-76 from:

Installing Drivers for the Due

OSX

to:

Installing Drivers for the Due

OSX

Changed lines 79-80 from:

Windows (tested on XP and 7)

to:

Windows (tested on XP and 7)

Changed line 94 from:

Linux

to:

Linux

Changed lines 97-98 from:

Uploading Code to the Due

to:

Uploading Code to the Due

July 26, 2013, at 10:26 AM by Federico -
Changed line 77 from:
  • No driver installation is necessary on OSX. Depending on the version of the OS you're running, you may get a dialog box asking you if you wish to open the “Network Preferences”. Click the "Network Preferences..." button, then click "Apply". The Uno will show up as “Not Configured”, but it is still working. You can quit the System Preferences.
to:
  • No driver installation is necessary on OSX. Depending on the version of the OS you're running, you may get a dialog box asking you if you wish to open the “Network Preferences”. Click the "Network Preferences..." button, then click "Apply". The Due will show up as “Not Configured”, but it is still working. You can quit the System Preferences.
December 17, 2012, at 03:43 PM by Alessandro Argenio -
October 22, 2012, at 02:24 PM by Scott Fitzgerald -
Added lines 7-8:

The Due has a dedicated forum for discussing the board.

Changed lines 19-20 from:

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.

to:

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.

October 20, 2012, at 03:18 AM by Scott Fitzgerald -
Changed lines 79-83 from:
  • Descriptive text
  • Descriptive text
  • Descriptive text
  • Descriptive text
to:
  • Download the Windows version of the Arduino software. When the download finishes, unzip the downloaded file. Make sure to preserve the folder structure.
  • Connect the Due to your computer with a USB cable via the Programming port.
  • Windows should initiate its driver installation process once the board is plugged in, but it won't be able to find the driver on its own. You'll have to tell it where the driver is.
  • Click on the Start Menu and open the Control Panel
  • Navigate to “System and Security”. Click on System, and open the Device Manager.
  • Look for the listing named “Ports (COM & LPT)”. You should see an open port named “Arduino Due Prog. Port”.
  • Select the “Browse my computer for Driver software” option.
  • Right click on the “Arduino Due Prog. Port” and choose “Update Driver Software”. Descriptive text
  • Navigate to the folder with the Arduino IDE you downloaded and unzipped earlier. Locate and select the “Drivers” folder in the main Arduino folder (not the “FTDI USB Drivers” sub-directory). Press “OK” and “Next” to proceed.
  • If you are prompted with a warning dialog about not passing Windows Logo testing, click “Continue Anyway”.
  • Windows now will take over the driver installation.
  • You have installed the driver on your computer. In the Device Manager, you should now see a port listing similar to “Arduino Due Programming Port (COM4)”.
October 20, 2012, at 01:23 AM by Scott Fitzgerald -
Changed lines 79-83 from:
to:
  • Descriptive text
  • Descriptive text
  • Descriptive text
  • Descriptive text
October 20, 2012, at 01:20 AM by Scott Fitzgerald -
Added line 78:
October 20, 2012, at 01:20 AM by Scott Fitzgerald -
Changed lines 75-76 from:
to:
  • No driver installation is necessary on OSX. Depending on the version of the OS you're running, you may get a dialog box asking you if you wish to open the “Network Preferences”. Click the "Network Preferences..." button, then click "Apply". The Uno will show up as “Not Configured”, but it is still working. You can quit the System Preferences.
Changed lines 78-82 from:
to:
Changed lines 84-85 from:
to:
  • No driver installation is necessary for Linux.
October 17, 2012, at 03:41 PM by Scott Fitzgerald -
Added lines 25-26:
October 17, 2012, at 12:50 AM by Scott Fitzgerald - Grammatical corrections
Changed lines 3-4 from:

To connect the Arduino Due to your computer, you'll need a Micro-B USB cable. For getting started connect the USB micro side of the USB cable to the Arduino Due Programming port and the other side to the the USB port of your computer. The USB cable provides power supply and data to the board. In order to upload a sketch to the Due, you must choose Arduino Due (Programming port) from the Tools > Board menu in the Arduino IDE. Also, choose the correct serial port associated from the Tools > Serial Port menu in the Arduino IDE.

to:

To connect the Arduino Due to your computer, you'll need a Micro-B USB cable. The USB cable will provide power and allow you to program the board.

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.

Changed lines 11-12 from:

In general, you program and use the Due as you would other Arduino boards. There are, a few important differences and functional extensions.

to:

In general, you program and use the Due as you would other Arduino boards. There are, however, a few important differences and functional extensions.

Changed lines 19-22 from:

The board takes 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 to be 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, the external power from the DC plug is required.

to:

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.

Changed lines 25-32 from:

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 USB connector of the other port called Programming port is connected to an ATMEL 16U2 which acts as a USB-to-Serial converter. This USB 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 are 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 (such as acting as a mouse or a keyboard connected to the computer) or like an USB host device where client USB devices can be connected to the Due(for example reading a mouse or a keyboard outputs or communicating with an Android phone). In addition this port can be used as a virtual serial port using the "SerialUSB" object in the Arduino programming language.

to:

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.

Changed lines 33-37 from:

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:

to:

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:

Changed lines 39-40 from:

Opening and closing the native port at the magic baud rate of 1200bps trigger the “soft erase” procedure: the flash memory is erased and the board is restarted with 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. Opening and closing the native port at a different baudrate will not reset the SAM3X. This means that when you want to use the serial monitor and you want to see what your sketch does from the beginning you need to add few lines of code inside the setup() in order to say to the SAM3X to wait for the SerialUSB port opening to execute the sketch:

to:

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:

Changed lines 46-47 from:

Pressing the Reset button on the Due cause 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.

to:

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.

Changed lines 50-54 from:

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 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.

The Programming port in addition to being called "Serial" that makes it compatible with all of the examples of sketch that uses the serial communication based on the Uno board, it behaves like the Arduino Uno serial port because has the USB-to-Serial chip that reset the board each time you open the serial monitor (or any other serial communication).

to:

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).

Changed lines 54-55 from:

Pressing the Reset button on the Programming port also doesn't close the USB communication with the compurer because only the SAM3X is reset leaving open the communication established by USB-to-Serial chip

to:

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.

Changed lines 68-69 from:

The Due has expanded functionality on its SPI bus, useful for communicating with multiple devices that speak at different speeds. This is on the Due extended SPI library usage page.

to:

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.

Changed lines 82-91 from:

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:

  • Connect your board to the computer
  • Open the Arduino IDE and in the "Tools" menu choose "Serial Port" and select the serial port of the Due Programming port
  • On the "Tools > Boards" menu select "Arduino Due (Programming port)"

And you are ready to upload sketches on your Arduino Due.

to:

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:

  • Connect your board to the computer by attaching the USB cable to the Due's Programming port (this is the port closer to the DC power connector).
  • Open the Arduino IDE.
  • In the "Tools" menu choose "Serial Port" and select the serial port of the Due
  • Under the "Tools > Boards" menu select "Arduino Due (Programming port)"

You are now ready to upload sketches to your Arduino Due.

October 16, 2012, at 08:50 PM by Federico -
Changed lines 3-4 from:

To connect the Arduino Due to your computer, you'll need a Micro-B USB cable. This USB cable provides power and data to the board. When programming the Due, you must choose Arduino Due from the Tools > Board menu in the Arduino IDE.

to:

To connect the Arduino Due to your computer, you'll need a Micro-B USB cable. For getting started connect the USB micro side of the USB cable to the Arduino Due Programming port and the other side to the the USB port of your computer. The USB cable provides power supply and data to the board. In order to upload a sketch to the Due, you must choose Arduino Due (Programming port) from the Tools > Board menu in the Arduino IDE. Also, choose the correct serial port associated from the Tools > Serial Port menu in the Arduino IDE.

Changed lines 19-20 from:

The Arduino Due has an efficient switching voltage regulator to be compliant with the USB host specification. If the SerialUSB 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, the external power from the DC plug is required.

to:

The Arduino Due has an efficient switching voltage regulator to be 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, the external power from the DC plug is required.

Changed lines 23-24 from:

The Arduino Due has two USB ports available. The Native USB port, also called SerialUSB for serial communication is connected directly to the SAM3X MCU. The USB connector of the other port called Programming port is connected to an ATMEL 16U2 which acts as a USB-to-Serial converter. This USB port is the default for uploading sketches and communicating with the Arduino.

to:

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 USB connector of the other port called Programming port is connected to an ATMEL 16U2 which acts as a USB-to-Serial converter. This USB port is the default for uploading sketches and communicating with the Arduino.

Changed line 41 from:
to:

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. Opening and closing the native port at a different baudrate will not reset the SAM3X. This means that when you want to use the serial monitor and you want to see what your sketch does from the beginning you need to add few lines of code inside the setup() in order to say to the SAM3X to wait for the SerialUSB port opening to execute the sketch:

October 16, 2012, at 06:07 PM by Federico -
Changed lines 19-20 from:

The Arduino Due has an efficient switching voltage regulator to be compliant with the USB host specification. If the USBSerial 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, the external power from the DC plug is required.

to:

The Arduino Due has an efficient switching voltage regulator to be compliant with the USB host specification. If the SerialUSB 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, the external power from the DC plug is required.

Changed lines 23-29 from:

The Arduino Due has two USB ports available. The USBSerial port is connected directly to the SAM3x MCU. The other port is connected to an ATMEL 16U2 wich acts as a USB-to-Serial converter. This second port is the default for uploading sketches and communicating with the Arduino.

The port connected to the SAM3x handles USB communication using a driver that is loaded together with a sketch. It's possible to communicate over this port using the “SerialXXX” object in the Arduino programming language.

The USB-to-serial port is connected to the first UART of the MCU. It's possible to communicate over this port using the “Serial” object in the Arduino programming language.

The Due Board doesn’t auto-reset the sketch when the serial port is opened: this means that data sent at the beginning of a sketch would not be displayed if the serial monitor were opened after the program started. If you are using the USBSerial port you can add the following line in the setup():

to:
Changed lines 44-47 from:

which forces the MCU to wait until the port is opened with the serial monitor or some other serial connection. If you are using the Serial port you can simply push the reset button after opening the serial monitor, and it will behave like other Arduino models such as the Uno.

When the reset button on the Due is pressed, the MCU is 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.

to:

Pressing the Reset button on the Due cause 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.

Programming port

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 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.

The Programming port in addition to being called "Serial" that makes it compatible with all of the examples of sketch that uses the serial communication based on the Uno board, it behaves like the Arduino Uno serial port because has the USB-to-Serial chip that reset the board each time you open the serial monitor (or any other serial communication).

Pressing the Reset button on the Programming port also doesn't close the USB communication with the compurer because only the SAM3X is reset leaving open the communication established by USB-to-Serial chip

Changed lines 59-60 from:

The Due has the ability to act as a USB host for peripherals connected to the USBSerial port. For additional information and examples, see the USB host reference page.

to:

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.

Changed lines 83-86 from:

The uploading process on the Arduino Due works the same as other boards from a user's standpoint. It is recommended to use the Serial port for programming, though you can upload sketches on either of the USB ports. Each will automatically manage the erasing of the flash memory and resetting the MCU before beginning the upload process.

Uploading via the Serial port will erase and reset the board through hardware via the 16u2 USB-to-Serial converter. Uploading via the USBSerial port will execute the procedure with a software module handled inside the SAM3X.

to:

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:

  • Connect your board to the computer
  • Open the Arduino IDE and in the "Tools" menu choose "Serial Port" and select the serial port of the Due Programming port
  • On the "Tools > Boards" menu select "Arduino Due (Programming port)"

And you are ready to upload sketches on your Arduino Due.

October 05, 2012, at 04:11 PM by Scott Fitzgerald -
Changed lines 19-20 from:

The Arduino Due has an efficient switching voltage regulator to be compliant with the USB host specification. If the USB native 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, the external power from the DC plug is required.

to:

The Arduino Due has an efficient switching voltage regulator to be compliant with the USB host specification. If the USBSerial 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, the external power from the DC plug is required.

Changed lines 23-29 from:

The Arduino Due has two USB ports available. One port (the one adjacent to the reset button) is connected directly to the SAM3x MCU. The other port is connected to an ATMEL 16U2 wich acts as a USB-to-Serial converter. This second port, the SerialUSB, is the default for uploading sketches and communicating with the Arduino.

The port connected to the SAM3x handles USB communication using a driver that is loaded together with a sketch. It's possible to communicate over this port using the “Serial” object in the Arduino programming language.

The USB-to-serial port is connected to the first UART of the MCU. It's possible to communicate over this port using the “Serial1” object in the Arduino programming language.

The Due Board doesn’t auto-reset the sketch when the serial port is opened: this means that data sent at the beginning of a sketch would not be displayed if the serial monitor were opened after the program started. If you are using the native port you can add the following line in the setup():

to:

The Arduino Due has two USB ports available. The USBSerial port is connected directly to the SAM3x MCU. The other port is connected to an ATMEL 16U2 wich acts as a USB-to-Serial converter. This second port is the default for uploading sketches and communicating with the Arduino.

The port connected to the SAM3x handles USB communication using a driver that is loaded together with a sketch. It's possible to communicate over this port using the “SerialXXX” object in the Arduino programming language.

The USB-to-serial port is connected to the first UART of the MCU. It's possible to communicate over this port using the “Serial” object in the Arduino programming language.

The Due Board doesn’t auto-reset the sketch when the serial port is opened: this means that data sent at the beginning of a sketch would not be displayed if the serial monitor were opened after the program started. If you are using the USBSerial port you can add the following line in the setup():

Changed lines 33-35 from:

which forces the MCU to wait until the port is opened with the serial monitor or some other serial connection. If you are using the debug port you can simply push the reset button after opening the serial monitor, and it will behave like Arduino models like the Uno.

How the Due writes firmware

to:

which forces the MCU to wait until the port is opened with the serial monitor or some other serial connection. If you are using the Serial port you can simply push the reset button after opening the serial monitor, and it will behave like other Arduino models such as the Uno.

Deleted lines 36-41:

Opening and closing the native port at 1200bps triggers the '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 didn’t work since its done entirely in software by the MCU itself.

The USB-to-serial chip has two pins connected to the Reset and Erase pins of the MCU.

Opening and closing the ‘debug’ serial port at 1200bps triggers a “hard erase” procedure of the SAM3x chip that is completed through activating the Erase and Reset pins. This procedure is more reliable than the "soft erase" mentioned above, and should work even if the main MCU has crashed.

Changed lines 39-43 from:

The Due has the ability to act as a USB host to connected peripherals. 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 something is attached.

to:

The Due has the ability to act as a USB host for peripherals connected to the USBSerial 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.

Changed lines 63-66 from:

The uploading process on the Arduino Due works the same as other boards from a user's standpoint. You can upload sketches from either of the USB ports on the Due. Each will automatically manage the erasing of the flash memory and resetting the MCU before beginning the upload process.

Uploading via the native USB port will execute the procedure with a software module handled inside the IDE instead, uploading via the USB debug port will erase and reset the board through hardware via the 16u2 USB-to-Serial converter.

to:

The uploading process on the Arduino Due works the same as other boards from a user's standpoint. It is recommended to use the Serial port for programming, though you can upload sketches on either of the USB ports. Each will automatically manage the erasing of the flash memory and resetting the MCU before beginning the upload process.

Uploading via the Serial port will erase and reset the board through hardware via the 16u2 USB-to-Serial converter. Uploading via the USBSerial port will execute the procedure with a software module handled inside the SAM3X.

September 26, 2012, at 04:43 PM by Scott Fitzgerald -
Changed line 35 from:

to:

How the Due writes firmware

September 26, 2012, at 04:42 PM by Scott Fitzgerald -
Deleted lines 20-23:

USB communication.

The Due differs from previous Arduino boards in that it uses a single microcontroller with an 32-bit ARM Cortex M3 core to both run your sketches and for USB communication with the computer. In addition, the Due has a second USB port for debugging purposes that uses a separate microcontroller. The chip on the debug port is similar to that on the Uno; the USB connection to the computer will remain established regardless of the state of the main microcontroller.

Changed lines 23-32 from:

The Arduino Due has two USB ports available. One port is connected directly to the SAM3x MCU, this is the ‘native’ port. The other port is connected to a USB-to-serial converter and called the ‘debug’ port.

The native port handles USB communication using a driver that is loaded together with the user sketch. It's possible to communicate over this port using the “Serial” object in the Arduino programming language. When the reset button on the Due is pressed, the MCU is 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.

Opening and closing the native port at 1200bps triggers the '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 didn’t work since its done entirely in software by the MCU itself.

The debug port uses a USB-to-serial chip connected to the first UART of the MCU. It's possible to communicate over this port using the “Serial1” object in the Arduino programming language. The USB-to-serial chip has two pins connected to the Reset and Erase pins of the MCU.

Opening and closing the ‘debug’ serial port at 1200bps triggers a “hard erase” procedure of the SAM3x chip that is completed through activating the Erase and Reset pins. This procedure is more reliable than the "soft erase" mentioned above, and should work even if the main MCU has crashed.

to:

The Arduino Due has two USB ports available. One port (the one adjacent to the reset button) is connected directly to the SAM3x MCU. The other port is connected to an ATMEL 16U2 wich acts as a USB-to-Serial converter. This second port, the SerialUSB, is the default for uploading sketches and communicating with the Arduino.

The port connected to the SAM3x handles USB communication using a driver that is loaded together with a sketch. It's possible to communicate over this port using the “Serial” object in the Arduino programming language.

The USB-to-serial port is connected to the first UART of the MCU. It's possible to communicate over this port using the “Serial1” object in the Arduino programming language.

Added lines 35-43:

When the reset button on the Due is pressed, the MCU is 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.

Opening and closing the native port at 1200bps triggers the '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 didn’t work since its done entirely in software by the MCU itself.

The USB-to-serial chip has two pins connected to the Reset and Erase pins of the MCU.

Opening and closing the ‘debug’ serial port at 1200bps triggers a “hard erase” procedure of the SAM3x chip that is completed through activating the Erase and Reset pins. This procedure is more reliable than the "soft erase" mentioned above, and should work even if the main MCU has crashed.

Changed lines 73-74 from:

Uploading via the native USB port will execute the procedure with a software module handled inside the IDE instead, uploading via the USB debug port will erase and reset the board through hardware via the 16U2 USB-to-Serial converter.

to:

Uploading via the native USB port will execute the procedure with a software module handled inside the IDE instead, uploading via the USB debug port will erase and reset the board through hardware via the 16u2 USB-to-Serial converter.

September 26, 2012, at 04:44 AM by Scott Fitzgerald - editied the Serial notes, general cleanup
Changed lines 17-20 from:

The board takes the power supply from the USB connectors or from the DC plug, supplying a voltage between 7V and 12V.

The Arduino Due has an efficient switching voltage regulator to be compliant with the USB host specification. If the USB native port is used as host attaching a USB device to the mirco-A usb connector, such as a smartphone or a usb mouse, the board will provide the power to the device. When the board is used as a usb host, the external power supply connected to the DC plug is required.

to:

The board takes 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 to be compliant with the USB host specification. If the USB native 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, the external power from the DC plug is required.

Changed lines 23-39 from:
to:
Changed lines 41-42 from:
to:

which forces the MCU to wait until the port is opened with the serial monitor or some other serial connection. If you are using the debug port you can simply push the reset button after opening the serial monitor, and it will behave like Arduino models like the Uno.

Changed lines 47-49 from:
to:

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 something is attached.

Added lines 60-67:

OSX

Windows (tested on XP and 7)

Linux

Changed lines 70-108 from:
to:

The uploading process on the Arduino Due works the same as other boards from a user's standpoint. You can upload sketches from either of the USB ports on the Due. Each will automatically manage the erasing of the flash memory and resetting the MCU before beginning the upload process.

Uploading via the native USB port will execute the procedure with a software module handled inside the IDE instead, uploading via the USB debug port will erase and reset the board through hardware via the 16U2 USB-to-Serial converter.

September 24, 2012, at 06:52 PM by Scott Fitzgerald -
Changed lines 7-10 from:

Differences from the Arduino Uno

In general, you program and use the Due as you would other Arduino boards. There are, a few important differences and functional extensions. The Due has the same footprint as the Mega 2560.

to:

Differences from ATMEGA based boards

In general, you program and use the Due as you would other Arduino boards. There are, a few important differences and functional extensions.

The Due has the same footprint as the Mega 2560.

Changed lines 15-16 from:

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 boards will damage the board.

to:

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.

Changed lines 19-24 from:

The Arduino Due has an efficient switching voltage regulator to be compliant with the USB host specification. If the USB native port is used as host attaching a USB device to the mirco-A usb connector, such as a smartphone or a usb mouse, the board have to provide the power supply to it. When the board is used with the usb host, the external power supply connected to the DC plug is required.

Single processor for sketches and USB communication.

The Due differs from previous Arduino boards in that it uses a single microcontroller with an 32-bit ARM Cortex M3 core to both run your sketches and for USB communication with the computer. In addition has a second USB port for debugging purpose that use a separate microcontroller like on the Uno and other boards attacched to one of the available serial ports (UART0), meaning that the USB connection to the computer remains established regardless of the state of the main microcontroller. By combining these two functions onto a single processor, the Due allows for more flexibility in its communication with the computer.

to:

The Arduino Due has an efficient switching voltage regulator to be compliant with the USB host specification. If the USB native port is used as host attaching a USB device to the mirco-A usb connector, such as a smartphone or a usb mouse, the board will provide the power to the device. When the board is used as a usb host, the external power supply connected to the DC plug is required.

USB communication.

The Due differs from previous Arduino boards in that it uses a single microcontroller with an 32-bit ARM Cortex M3 core to both run your sketches and for USB communication with the computer. In addition, the Due has a second USB port for debugging purpose that use a separate microcontroller. like on the Uno and other boards attacched to one of the available serial ports (UART0), meaning that the USB connection to the computer remains established regardless of the state of the main microcontroller.

Changed lines 42-46 from:

Keyboard and mouse emulation.

Audio

to:

USB Host

The Due has the ability to act as a USB host to connected peripherals. For additional information and examples, see the USB host reference page.

Deleted lines 56-81:

OSX

  • The first time you plug a Due into a Mac, the "Keyboard Setup Assistant" will launch. There's nothing to configure with the Due, so you can close this dialogue by clicking the red button in the top left of the window.

Windows (tested on XP and 7)

The process for Windows XP and Windows 7 is similar. These screenshots are from an XP installation.

  • Plug in your board and wait for Windows to begin its driver installation process. If the installer does not launch automatically, Navigate to the Windows Device Manager (Start>Control Panel>Hardware) and find the Arduino Due listing. Right click and choose Update driver.
  • If prompted to search for drivers online, choose "No, not this time". And click Next
  • When asked to install automatically or from a specific location, select "Install from a list or specific location" and press Next
  • Choose "Search for the best driver in these locations", and check the box "incude this location in the search". Click the Browse button and navigate to your Arduino 1.0.1 or later installation. Select the drivers folder an click OK

Attach:LeonardWindowsDrivers3.png Δ

  • Click Next
  • You will receive a notification that the Due has not passed Windows Logo testing. Click on the button Continue Anyway
  • After a few moments, a window will tell you the wizard has finished installing software for Arduino Due. Press the Finish button

Linux

There is no need to install drivers for Ubuntu 10.0.4

Deleted lines 76-77:

A word of caution on using the Due as a Mouse or Keyboard: if the Mouse or Keyboard library is constantly running, it will be difficult to program your board. Functions such as Mouse.move() and Keyboard.print() will move your cursor or send keystrokes to a connected computer and should only be called when you are ready to handle them. It is recommended to use a control system to turn this functionality on, like a physical switch or only responding to specific input you can control. When using the Mouse or Keyboard library, it may be best to test your output first using Serial.print(). This way, you can be sure you know what values are being reported. Refer to the Mouse and Keyboard examples for some ways to handle this.

Changed line 98 from:

For more details on the Arduino Due, see the hardware page and the Mouse and Keyboard reference pages.

to:

For more details on the Arduino Due, see the hardware page.

September 24, 2012, at 05:51 PM by Federico -
Changed lines 83-88 from:

To program the Due, you'll need to take a few additional steps not required on the Uno. Open the Arduino software, and choose choose Arduino Due from the Tools > Board menu.

Attach the Due to your computer with a USB cable. When powered on, press the "Erase" button on the board. This erases the current sketch and activates the bootloader.

Press the "Reset" button on the board, the Due is now ready to be programmed.

to:

The uploading process on the Arduino Due is completely transparent for the end user because works like on the other boards but, you may want to know that the uploading procedure on an ARM processor is different from the other boards like the Uno, because the flash memory on the Due need to be erased before uploading the new code.

You can upload sketches from both the USB ports on the Arduino Due, each one will execute the procedure of erasing the flash memory then resetting the MCU before start the upload process. All managed automatically.

Uploading via the native USB port will execute the procedure with a software module handled inside the IDE instead, uploading via the USB debug port will erase and reset the board acting directly to the apposite pins on the MCU managed connected to the 16U2 USB-to-Serial converter.

Procedure for uploading a sketch:

Open the Arduino software, and choose Arduino Due from the Tools > Board menu.

Attach the Due to your computer with a USB cable.

Changed lines 97-98 from:

Once you've uploaded the code with no errors, press the "Reset" button to run the sketch.

to:

Once you've uploaded the code with no errors, the Arduino IDE will notice you with a message "Done Uploading".

September 24, 2012, at 05:02 PM by Federico -
Added lines 13-18:

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 boards will damage the board.

The board takes the power supply from the USB connectors or from the DC plug, supplying a voltage between 7V and 12V.

The Arduino Due has an efficient switching voltage regulator to be compliant with the USB host specification. If the USB native port is used as host attaching a USB device to the mirco-A usb connector, such as a smartphone or a usb mouse, the board have to provide the power supply to it. When the board is used with the usb host, the external power supply connected to the DC plug is required.

September 24, 2012, at 01:14 PM by Federico -
Changed lines 15-16 from:

The Leonardo differs from previous Arduino boards in that it uses a single microcontroller to both run your sketches and for USB communication with the computer. The Uno and other boards use separate microcontrollers for these two functions, meaning that the USB connection to the computer remains established regardless of the state of the main microcontroller. By combining these two functions onto a single processor, the Leonardo allows for more flexibility in its communication with the computer. It also helps to lower the cost of the board by removing the need for an additional processor.

to:

The Due differs from previous Arduino boards in that it uses a single microcontroller with an 32-bit ARM Cortex M3 core to both run your sketches and for USB communication with the computer. In addition has a second USB port for debugging purpose that use a separate microcontroller like on the Uno and other boards attacched to one of the available serial ports (UART0), meaning that the USB connection to the computer remains established regardless of the state of the main microcontroller. By combining these two functions onto a single processor, the Due allows for more flexibility in its communication with the computer.

Changed lines 19-22 from:

Since the Leonardo does not have a dedicated chip to handle serial communication, it means that the serial port is virtual -- it's a software routine, both on your operating system, and on the Leonardo itself. Just as your computer creates an instance of the serial port driver when you plug in any Arduino, the Leonardo creates a serial instance whenever it runs its bootloader. The Leonardo is an instance of USB's Connected Device Class (CDC) driver.

This means that every time you reset the board, the Leonardo's USB serial connection will be broken and re-established. The Leonardo will disappear from the list of serial ports, and the list will re-enumerate. Any program that has an open serial connection to the Leonardo will lose its connection. This is in contrast to the Arduino Uno, with which you can reset the main processor (the ATmega328P) without closing the USB connection (which is maintained by the secondary ATmega8U2 or ATmega16U2 processor). This difference has implications for driver installation, uploading, and communication; these are discussed below.

to:

Since the Due does not have a dedicated chip to handle serial communication, it means that the serial port is virtual -- it's a software routine, both on your operating system, and on the Due itself. Just as your computer creates an instance of the serial port driver when you plug in any Arduino, the Due creates a serial instance whenever it runs its bootloader. The Due is an instance of USB's Connected Device Class (CDC) driver.

This means that every time you reset the board, the Due's USB serial connection will be broken and re-established. The Due will disappear from the list of serial ports, and the list will re-enumerate. Any program that has an open serial connection to the Due will lose its connection. This is in contrast to the Arduino Uno, with which you can reset the main processor (the ATmega328P) without closing the USB connection (which is maintained by the secondary ATmega8U2 or ATmega16U2 processor). This difference has implications for driver installation, uploading, and communication; these are discussed below.

Changed lines 25-26 from:

Unlike the Arduino Uno, the Leonardo doesn't restart your sketch when you open its serial port on the computer. That means you won't see serial data that's already been sent to the computer by the board, including, for example, most data sent in the setup() function.

to:

Unlike the Arduino Uno, the Due doesn't restart your sketch when you open its serial port on the computer. That means you won't see serial data that's already been sent to the computer by the board, including, for example, most data sent in the setup() function.

Changed lines 50-51 from:
  • The first time you plug a Leonardo into a Mac, the "Keyboard Setup Assistant" will launch. There's nothing to configure with the Leonardo, so you can close this dialogue by clicking the red button in the top left of the window.
to:
  • The first time you plug a Due into a Mac, the "Keyboard Setup Assistant" will launch. There's nothing to configure with the Due, so you can close this dialogue by clicking the red button in the top left of the window.
Changed line 58 from:
  • Plug in your board and wait for Windows to begin its driver installation process. If the installer does not launch automatically, Navigate to the Windows Device Manager (Start>Control Panel>Hardware) and find the Arduino Leonardo listing. Right click and choose Update driver.
to:
  • Plug in your board and wait for Windows to begin its driver installation process. If the installer does not launch automatically, Navigate to the Windows Device Manager (Start>Control Panel>Hardware) and find the Arduino Due listing. Right click and choose Update driver.
Changed line 64 from:
to:
Changed line 66 from:
  • You will receive a notification that the Leonardo has not passed Windows Logo testing. Click on the button Continue Anyway
to:
  • You will receive a notification that the Due has not passed Windows Logo testing. Click on the button Continue Anyway
Changed lines 68-69 from:
 *After a few moments, a window will tell you the wizard has finished installing software for Arduino Leonardo. Press the Finish button
to:
 *After a few moments, a window will tell you the wizard has finished installing software for Arduino Due. Press the Finish button
Changed lines 87-92 from:

Good Coding Practice With the Leonardo

A word of caution on using the Leonardo as a Mouse or Keyboard: if the Mouse or Keyboard library is constantly running, it will be difficult to program your board. Functions such as Mouse.move() and Keyboard.print() will move your cursor or send keystrokes to a connected computer and should only be called when you are ready to handle them. It is recommended to use a control system to turn this functionality on, like a physical switch or only responding to specific input you can control. When using the Mouse or Keyboard library, it may be best to test your output first using Serial.print(). This way, you can be sure you know what values are being reported. Refer to the Mouse and Keyboard examples for some ways to handle this.

Using the serial monitor effectively: Since serial is going through only one processor on the Leonardo, the board is capable of filling your computer's serial buffer faster than the Uno or earlier boards. You may notice that if you send serial continually, for example like this:

to:

Good Coding Practice With the Due

A word of caution on using the Due as a Mouse or Keyboard: if the Mouse or Keyboard library is constantly running, it will be difficult to program your board. Functions such as Mouse.move() and Keyboard.print() will move your cursor or send keystrokes to a connected computer and should only be called when you are ready to handle them. It is recommended to use a control system to turn this functionality on, like a physical switch or only responding to specific input you can control. When using the Mouse or Keyboard library, it may be best to test your output first using Serial.print(). This way, you can be sure you know what values are being reported. Refer to the Mouse and Keyboard examples for some ways to handle this.

Using the serial monitor effectively: Since serial is going through only one processor on the Due, the board is capable of filling your computer's serial buffer faster than the Uno or earlier boards. You may notice that if you send serial continually, for example like this:

Changed line 112 from:

For more details on the Arduino Leonardo, see the hardware page and the Mouse and Keyboard reference pages.

to:

For more details on the Arduino Due, see the hardware page and the Mouse and Keyboard reference pages.

September 10, 2012, at 05:41 PM by Scott Fitzgerald -
Added lines 11-12:

Voltage

Changed lines 77-82 from:

In general, you upload code to the Leonardo as you would with the Uno or other Arduino boards. Click the upload button in the Arduino software and your sketch will be automatically uploaded onto the Leonardo and then started. This works more or less the same way as with the Uno: the Arduino software initiates a reset of the Leonardo, launching the bootloader - which is responsible for receiving, storing, and starting the new sketch.

However, because the Leonardo's serial port is virtual, it disappears when the boards resets, the Arduino software uses a different strategy for timing the upload than with the Uno and other boards. In particular, after initiating the auto-reset of the Leonardo (using the serial port selected in the Tools > Serial Port menu), the Arduino software waits for a new virtual (CDC) serial / COM port to appear - one that it assumes represents the Leonardo bootloader. It then performs the upload on this newly-appeared port.

These differences affect the way you use the physical reset button to perform an upload if the auto-reset isn't working. Press and hold the reset button on the Leonardo, then hit the upload button in the Arduino software. Only release the reset button after you see the message "Uploading..." appear in the software's status bar. When you do so, the bootloader will start, creating a new virtual (CDC) serial port on the computer. The software will see that port appear and perform the upload using it. Again, this is only necessary if the normal upload process (i.e. just pressing the uploading button) doesn't work. (Note that the auto-reset is initiated when the computer opens the Leonardo's serial port at 1200 baud and then closes it; this won't work if something interferes with the board's USB communication - e.g. disabling interrupts.)

to:

To program the Due, you'll need to take a few additional steps not required on the Uno. Open the Arduino software, and choose choose Arduino Due from the Tools > Board menu.

Attach the Due to your computer with a USB cable. When powered on, press the "Erase" button on the board. This erases the current sketch and activates the bootloader.

Press the "Reset" button on the board, the Due is now ready to be programmed.

Before uploading your code, make sure you have the correct serial port selected in the Tools > Serial Port menu.

Once you've uploaded the code with no errors, press the "Reset" button to run the sketch.

September 10, 2012, at 05:30 PM by Scott Fitzgerald -
Added lines 1-108:

Share