Skip to content
Andreas "Paul" Pauli edited this page May 28, 2015 · 15 revisions

Overview

The Arduino Due is one of the newest members of the Arduino family. It is the first ARM Cortex-M based board supported by Arduino, using the same pin layout and being mostly compatible to the existing shields (be careful for the changed pin voltage - 3V3 instead of 5V).

NOTE: In case you are wondering if flashing RIOT on your Arduino Due will overwrite the Arduino bootloader: you can be reassured. After flashing RIOT you can without any intermediate steps just go over to flashing Arduino sketches again.

Hardware

Arduino Due with RIOT pin names

MCU

MCU SAM3X8E
Family ARM Cortex-M3
Vendor Atmel
Package LQFP144
RAM 96Kb (64Kb + 32Kb)
Flash 512Kb
Frequency 84MHz
FPU no
Timers 3 (3x 32bit)
ADCs 1x 15 channel 6 to 12-bit
UARTs 5
SPIs 1
I2Cs 2 (called TWI)
Vcc 2.0V - 3.6V
Datasheet / Reference Manual Datasheet and Reference Manual
Board Manual Board Manual
Pins PINs

Pin mapping in RIOT

Please refer to this document for RIOTs static pin mapping chosen for this board. This mapping is completely arbitrary, it can be adjusted in boards/arduino-due/include/periph_conf.h

NOTE: If you install a GPIO interrupt on a pin, you can not use other pins on this GPIO-Bank and the board deadlocks if you try to.

Flashing RIOT

Flashing RIOT on the Arduino Due is quite straight forward, just connect your Arduino Due using the programming port to your host computer and type:

make flash

This should take care of everything!

RIOTs Makefile carries out a two step process for flashing the Arduino Due:

  1. the (serial) programming port is programmed to run at 1200bps. This will trigger the on-board ATMega to reset the SAM3X and boot it to the internal serial flash bootloader

  2. we use the open bossac tool to write the new code into the SAM3X's flash

NOTES:

  • if bossac fails to flash your Arduino Due and emits an error like 'Auto scan for device failed' or 'No device found on [serial port designation] ', try to press the ERASE button of your Arduino Due (during at least one second) before trying again to flash up RIOT.
  • once the flashing process of your Due is done, you have to press the RESET button to actually start RIOT.
Clone this wiki locally