Arduino Due Based Electronics

From RepRap
Revision as of 12:48, 10 September 2019 by MrAlvin (talk | contribs) (Solutions available or in design: added RAMPS 1.4.4)
Jump to: navigation, search


Arduino Dueis an Arduino board that is using an ARM Cortex M3 CPU.

AVR variants of Arduino are widely used by RepRap electronics, but the new Arduino Due is not compatible with AVR chips, partly because the Atmel SAM3X8E chip used on the Due operates at 3.3V and is not compatible with 5V, and also the Due requires firmware compiled for ARM Cortex.

RAMPS for Arduino Mega is a popular platform, but RAMPS is not compatible with Arduino Due, mainly because the Due is 3.3V based and not 5V compatible. Worse, applying 5V to the Due's inputs will likely damage the chip.

Therefore there are several possibilities:

  1. create a new RAMPS variant which is compatible with the Due. Possibly could also be made backwards compatible with Mega.
  2. create a RAMPS Interface Board (RIB) to sit between Due and RAMPS to perform level-shifting, and any other needed functions.

Solutions available or in design


RADDS is a version of RAMPS designed for Due.

I don't know much about this, apart from the web page RADDS für den Arduino Due.

RADDS documentation page



RAMPS 1.7 can be used with either of Arduino Mega or Arduino DUE

RAMPS 1.4.4

RAMPS_1.4.4 can be used with Arduino DUE. As well as Arduino Mega, Re-ARM and Adafruit Grand Central M4


RAMPS-FD is another version of RAMPS for Due.

RAMPS Interface Board (RIB)

See page RAMPS_Interface_Board


SMART_RAMPS another version of RAMPS for Due & MEGA2560

Notes for developers

Useful resources

Significant differences between Arduino Mega and Arduino Due

  • CPU operates at 3.3V
  • High-current IO pins are capable of 15 mA source, 9 mA sink
  • Low-current IO pins capable of 3 mA source, 6 mA sink
  • CPU package has an absolute max of 130mA
  • The Due has 1 dedicated SPI port, and 4 multipurpose USART/SPI ports. The SPI port is only routed to the 6 pin header used for ICSP on Mega, but this is not used for ICSP on Due.
  • The Due does not have any EEPROM

Hardware issues

  • MOSFETs need to be compatible with threshold voltage of 3.3V or better have a gate driver which allows any MOSFET to be used
  • Expansion pins need to be level-translated, but this depends on how they are used
    • Add ons: SD card, thermocouple drivers, LCD boards
  • Is heat dissipation of Due ok with RAMPS shield over it?
  • Some opto-endstops need 5V power, and return 5V on signal
  • (AUX-3) The SPI pins on the Mega (mapped to pins D50-52) are not SPI pins on Due

Hardware features known to be compatible

  • The Allegro stepper drivers will run with VDD = 3.3V and the logic signals compatible with 3.3V. This should apply to all the Pololu style drivers.
  • Servos "should" be able to operate with +5V power and a PWM signal of 3.3V
  • Thermistors will operate at 3.3V but the Analog Ref is also 3.3V, so no changes should be necessary
  • Mechanical endstops should be OK, if they do not use external pullup to 5V

Add-on compatibility

  • Sdramps (AUX-3 SPI connector) This board has a 5->3.3 voltage regulator and a level translator. I think it will work and be compatible if powered from 5V, but will not work if powered at 3.3V, because the input to the regulator is too low.

Possible improvements

  • Move connectors near to board edge
  • Allow for latching or screw terminals

Firmware changes

  • Firmware needs to be compiled with ARM compiler (gcc)
  • Arduino libraries may be compatible
  • Any references to AVR CPU peripherals, AVR include files or AVR compiler features need to be ported
  • There is no EEPROM on the SAM3X.

Arduino Due Compatible Boards

  • Duet - all in one board with same CPU as Arduino Due