RepRap Arduino-Due Driver Shield




This guide describes RADDS 1.2 and 1.5 (For the older RADDS 1.1 use the RADDS 1.1 guide)

The RADDS-Board provides the following connectivity’s:

  • 6 Steppers on-board : X,Y,Z, E0, E1, E2. (Sample: 3 axis and 3 extruders (Z-axis, and E3 extruder, comes with 2 pins strips for optional second stepper).
  • 6 Heavy duty MOSFET`s (Sample: 1 HeatBed, 3 HotEnds and 2 fans)
  • SD-Card (micro-SD-slot onboard, optional external SD-slot)
  • Standard LCD (5V) with 4×20 characters (HD44780 compatible)
  • Rotating encoder (on LCD panel)
  • 6 endstops (Xmin,Ymin,Zmin,Xmax,Ymax;Zmax)
  • 5 thermistors and an ADC
  • 3 servomotors
  • I2C, SPI, CAN, DAC, RS232 and 8 digital-pins available via pin strips

Additional Features:

  • Control-LEDs for loads and operation voltage
  • Catch-diodes on the MOSFET`s
  • Car-fuses instead of thermo fuses
  • Variable input voltage: can be supplied from 10V up to 25V
  • Heatbed electronic control supports up to15A without a heatsink
  • Premium screw terminals

12bit ADC (analog to digital converter) upgraded from 10 to 12 bit. Now temperature calculation is done on 4096 measure points instead of 1024, what give a read temperature with 4x better resolution. Combined to a new firmware algorithm that uses 660 measure points to extrapolate results,  a new level of accuracy is reached for reprap temperature control…


Version tracker


First edition 🙂 with 8-pin-SD-extern connector


2 pins for reset and back button (LCD) added (10-pin-SD-extern connector)


DC/DC converter added for 10 – 25 V power supply.


Several layout changes for more stable temperature reading:

  • Heated bed connection separated
  • Motor ground separated up to the green connector
  • Hotend ground separated up to the green connector
  • Better shielded coil at the DC/DC converter and coil moved away from ADC lines
  • 220 µF at 3,3 V line added for Due clones with unstable 3,3 V supply
  • 100 µF capacitors changed to 47 µF – better for RAPS128 and enough for POLOLUS
  • Better shielded coil at the DC/DC converter and coil moved away from ADC lines







Pin definitions and dimensions


RADDS Due pins


Stepper motor pins:



Set mocro stepping mode

When you use stepper drivers like the A4988, DRV8825 and RAPS128 (NOT WHEN USING EXTERNAL DRIVERS LIKE SILENCIOSO) you have to set the micro stepping mode using the dipswitches on the back of the RADDS board.





In the table, you find the different stepping modes for usual drivers.

When using the DRV8825 the combinations HLH, LHH and HHH all gives 1/32 STEP
Off = Logic low level (not connected or ground). On = logic high level(2-5V)

NOTE: you have to set the same stepping mode in the configuration.h file and update the controller software

When altering the stepping mode, you have to separate the RADDS board from the Arduino DUE/UDOO QUAD, because dipswitches are hidden under the RADDS board.


By using this tool, you can remove the RADDS board without making any damages.


Download STL and OpenSCAD files using this URL:


Micro stepping

A stepper motor always has a fixed number of steps. Micro stepping is a way of increasing the number of steps by sending a sine/cosine waveform to the coils inside the stepper motor. In most cases, micro stepping allows stepper motors to run smoother and more accurately.

Micro stepping between pole-positions is made with lower torque than with full stepping, but has much lower tendency for mechanical oscillation around the step-positions and you can drive with much higher frequencies.

If your motors are near to mechanical limitations and you have high friction or dynamics, micro steps do not give you much more accuracy over half-stepping. When your motors are ‘overpowered’ and/or you do not have much friction, then micro stepping can give you much higher accuracy over half-stepping. You can transfer the higher positioning accuracy to moving accuracy too

Source: http://www.reprap.org/wiki/Stepper_motor#Micro_stepping

If you want to alter the micro stepping value on one or more axis, you have to set the correct value. When using Silencioso, you set it using the dipswitches on the Silencioso and modify the values in the configuration.h file

Each time you increase the stepping one level (sample: from 1/16 to 1/32) you have to multiply the steps per unit value by two.

Sample – You are using 1/16 steps per unit and the value is 80 and want to use 1/32 steps per unit.

If your steps per unit value is 80, you have to multiply 80 by two (2×80).

New steps per unit value = 160

// #define DEFAULT_AXIS_STEPS_PER_UNIT   {78.7402,78.7402,200.0*8/3,760*1.1}  // default steps per unit for Ultimaker
//#define DEFAULT_AXIS_STEPS_PER_UNIT   {80,80,2560,107}  // default steps per unit for OrdBot 1/16
#define DEFAULT_AXIS_STEPS_PER_UNIT   {160,160,5120,214}  // default steps per unit for OrdBot 1/32

This code sample is from Marlin.

The “default steps per unit for OrdBot 1/16” gives you the values for 1/16 micro stepping.

80, 80, 2560, 107
X-Axis = 80 steps/mm
Y-Axis = 80 steps/mm
Z-Axis = 2560 steps/mm
Extruder motor = 107 steps/mm  (this is the setting for Bulldog Lite Extruder. You have to find the correct setting for the extruder you use)

In the next code line, you find “default steps per unit for OrdBot 1/32”. This is the settings when 1/32 micro stepping are used. Here all values have been multiplied with two.


Install stepper drivers like A4988, DRV8825 or Raps128

Before you install stepper drivers, you have to locate the stepper drivers DIR pin.



When you orientate the RAPS128 like in the image, the DIR pin is in the upper right corner



When you insert the stepper drivers, the drivers DIR pin have to point towards the DIR label on the RADDS driver socket.


Connect stepper motors


The Z and E3 axis comes with dual motor pin connections so you can connect an additional stepper easily on these axis..

NOTE: The pins where you connect Z, Y and X stepper motors are in the opposite direction compared to E1, E2 and E3


Sample: A setup where you use dual stepper motors for the Z-axis, X and Y-axis + one extruder.
This is a normal setup on many printers.
With this setup, you have two spare outputs, where E3 have pins for dual steppers in the same way as the Z-output.


Stepper motors

Before you can connect the stepper motor to RADDS, you need some information on the stepper motor you have.

Look at your motor, find its part number. Then Google it. Try to find a schematic or a data-sheet that will indicate which wire goes to which pole. Note the colors that correspond to each coil.


Wiring diagram for Wantai 42BYGHW609 stepper motor (from www.wantamotor.com).

If you can`t find the motor`s part number, you can use another method to find the motor`s pole pairs.

When two wires for a pole (A +C or B+D) touch together it makes a closed circuit for that pole and it gets harder to turn the stepper motor.

  1. Try to turn the motor when no cables touch together – it should turn freely.
  2. Touch two of the cables together – if the motor gets harder to turn, you have found a pole pair. If not, try to touch two other cables together until the motor gets harder to move.
  3. When you have two cables together that makes it harder to turn the motor, you have found a pole pair.

Note the colors for each pole pair (Pair 1 = BLK + GRN, Pair 2 = RED + BLU)

On the Wantai 42BYGHw609 the colors are:

11 = Black
12 = Green
21 = Blue
22 = Red

It does not matter if you swap the pole pairs. If the motor turns the wrong way, you can reverse it in the configuration file.


Connect end stops


NOTE: when using electronic endstops like the HALL-E end stop, only use endstops that have max 3,3V out on the signal pin.

Mechanical endstops: Connect the mechanical endstops to the GND and Signal pins so they are normally closed (push = open)


Extension board

Extension board

By using this board, you can get two extra stepper drivers.

More about the Extension board (Documentation -> Extension board)



Arduino DUE

The Due has a 32-bit ARM core that can outperform typical 8-bit microcontroller boards. The most significant differences are:

  • 32-bit core.
  • CPU Clock at 84 MHz.
  • 96 Kbytes of SRAM.
  • 512 Kbytes of Flash memory for code.



Mount the RADDS board on the top of the Arduino DUE.

Use the USB Programming port when connecting the DUE to a computer for software update or controlling the printer.



If you want more computer power, you can replace the Arduino DUE with an UDOO QUAD minicomputer. UDOO QUAD is a minicomputer that can run Linux or Android with an embedded Arduino DUE http://www.udoo.org/features/