We are proudly celebrating Arduino Day, a global event that showcases a decade of success for the Atmel-powered boards! To mark the event, we’d like to take a closer look at the Arduino Due. Powered by Atmel’s versatile SAM3X8E ARM Cortex-M3 CPU, the board hit the streets back in October 2012.
The very first Arduino board based on a 32-bit ARM core microcontroller features 54 digital input/output pins (of which 12 can be used as PWM outputs), 12 analog inputs, 4 UARTs (hardware serial ports), an 84 MHz clock, USB OTG capable connection, 2 DAC (digital to analog), 2 TWI, power jack, SPI header, JTAG header, a reset button and an erase button.
Additional key specs include:
- 32-bit core allows operations on 4 bytes wide data within a single CPU clock.
- 96 KBytes of SRAM.
- 512 KBytes of Flash memory for code.
- A DMA controller capable of sharing memory intensive tasks with the CPU.
“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,” an Arduino rep explained on the product’s official page.
“The Due is compatible with all Arduino shields that work at 3.3V and are compliant with the 1.0 Arduino pinout. [However], 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 Arduino Due can be programmed with the Arduino software. However, the process of uploading sketches to the SAM3X is somewhat different than with other AVR-based Arduino boards, as the flash memory needs to be erased before being re-programmed. Uploads to the chip are managed by ROM on the SAM3X, which is run only when the chip’s flash memory is empty. Unlike other Arduino boards which use avrdude for uploading, the Due relies on bossac.
More specifically, either of the USB ports can be used for programming the board, though Arduino officially recommends using the programming port due to the way the erasing of the chip is handled.
The maximum length and width of the Arduino Due PCB measures 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.
Last, but certainly not least, 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. In addition, the main UART (serial port) is located on the same pins (0 and 1). Nevertheless, it should be noted that I2C is not located on the same pins on the Due (20 and 21) as the Duemilanove / Diecimila (analog inputs 4 and 5).