From RepRap
Jump to: navigation, search
Crystal Clear action run.png

Release status: Working

SMART RAMPS 1-4-1 fin.jpg
RepRap Arduino Due Pololu Shield Arduino Due based modular RepRap electronics.
CAD Models
External Link


In SMART RAMPS, the resistors and capacitors are now surface mount to fit more passive components. This does add another set of steps to assembly, but we stuck with larger sizes to make it fairly painless.

Ver 1.42

Ver 1.41

Reference board orientation is component side up, power inputs to the left.



Source Files

Ver1.42 is sold on Aliexpress. Have i2c eeprom on board, No micro stepping jumpers( if insert A4988 Microstepping is 1/16,if insert DRV8825 Microstepping is 1/32)

Note:SMART RAMPS + DUE only support SW SPI, SMART RAMPS + MEGA2560 support HW SPI.

Look at i2c:


Safety Tip


Once you start putting electricity into your RepRap - even at just 12 volts - you have to take basic, common sense precautions to avoid fires. Just in case these fail, test your workshop smoke detector. Got no smoke detector? Get one!

Firmware and Pin Assignments

Firmware For SMART RAMPS



Pin definitions

#if MOTHERBOARD == 408
#ifndef __SAM3X8E__
#error Oops!  Make sure you have 'Arduino Due' selected from the 'Tools -> Boards' menu.
* Arduino Due Pin Assignments
#define ORIG_X_STEP_PIN     54
#define ORIG_X_DIR_PIN      55
#define ORIG_X_MIN_PIN      3
#define ORIG_X_MAX_PIN      2
#define ORIG_X_ENABLE_PIN   38
#define ORIG_Y_STEP_PIN     60  
#define ORIG_Y_DIR_PIN      61
#define ORIG_Y_MIN_PIN      14
#define ORIG_Y_MAX_PIN      15
#define ORIG_Y_ENABLE_PIN   56
#define ORIG_Z_STEP_PIN     46
#define ORIG_Z_DIR_PIN      48
#define ORIG_Z_MIN_PIN      18
#define ORIG_Z_MAX_PIN      19
#define ORIG_Z_ENABLE_PIN   62
// Note that on the Due pin A0 on the board is channel 2 on the ARM chip
#define HEATER_0_PIN   10
#define TEMP_0_PIN     11  // Due analog pin #
#define HEATER_1_PIN   8
#define TEMP_1_PIN     12  // Due analog pin #
#define HEATER_2_PIN   9
#define TEMP_2_PIN     13  // Due analog pin #
#define ORIG_E0_STEP_PIN    26
#define ORIG_E0_DIR_PIN     28
#define ORIG_E0_ENABLE_PIN  24
#define ORIG_E1_STEP_PIN    36
#define ORIG_E1_DIR_PIN     34
#define ORIG_E1_ENABLE_PIN  30
#define SDPOWER   -1
#define SDSS   53 // 10 if using HW SPI. 53 if using SW SPI
#define LED_PIN   13
#define ORIG_FAN_PIN   9
#define PS_ON_PIN      12
#define KILL_PIN   -1
#define SUICIDE_PIN    -1  //PIN that has to be turned on right after start, to keep power flowing.


#define TWI_CLOCK_FREQ          100000
//	20 or 70
#define SDA_PIN 			20 
// 21 or 71
#define SCL_PIN 			21 

#define TWI_CLOCK_FREQ          400000
// see eeprom device data sheet for the following values, these are for 24xx256
#define EEPROM_SERIAL_ADDR      0x50   // 7 bit i2c address (without R/W bit)
#define EEPROM_PAGE_SIZE        64     // page write buffer size
#define EEPROM_PAGE_WRITE_TIME  7      // page write time in milliseconds (docs say 5ms but that is too short)
// TWI_MMR_IADRSZ_1_BYTE for 1 byte, or TWI_MMR_IADRSZ_2_BYTE for 2 byte

Final Setup

Pre-Flight Check

If you think you may have mistakes you can install only one stepper driver during initial testing and risk only one stepper driver.

The trimpot on the stepper drivers controls the current limit. Turn it all the way down (counter clock wise) and back up 25%. Be careful to not force the trimpot, it is delicate. You will need to fine tune the current limit later. Note that it is allways giving the motors that much power, even when not moving, so if your stepper motor drivers are getting hot, you may want to turn it down slightly.

Connect the minimum endstops for X,Y, and Z

Connect Motors (Do not disconnect or connect motors while powered; if the connection is loose, this will cause the motors to spazz and possibly kill your stepper driver.)

You may want to use this code to test all the electronics before installing any of the suggested firmwares.

Install firmware (More info below). Firmware flashing can be done without 12V power supply connected.


It is relatively simple to wire up the SMART RAMPS. Just add the extruder heating coil wire to D10, the thermistor to the two T0 pins on middle right right, and wire up the steppers and endstops. From left to right, wire all of the stepper motor's wires as red, blue, green, and black or red, green, yellow, blue into the pins next to the Pololus. When you connect the wires to the endstops (if you are using 3 endstops, plug them into the MIN (-) slots), make sure you match the labels.

SMART RAMPS wire.jpg

Note that Tesla & Tonok firmware use D9 and Sprinter, Marlin, and Johnny/Tonok use D10 for the extruder hot end.


Reversing +/- or otherwise incorrectly connecting power can destroy your electronics and cause fire hazard.

Incorrectly inserting stepper drivers will destroy your electronics and cause a fire risk. Always make sure power and USB is disconnected when removing or adjusting stepper drivers. Always make sure to insert drivers in correct orientation and in the socket correctly.

The endstop pins are Signal - GND - VCC, instead of the VCC - Sig - GND like the rest of RepRaps boards. Make sure to wire them correctly. This is done to allow squeezing fatter traces on the printable board.

DON'T secure Arduino/RAMPS with conductive screws through both mounting holes. The screw may cut into the positive trace creating a HIGH current short.

Connecting Power

Connect your 12V power supply to the RAMPS shield. Reversing +/- or otherwise incorrectly connecting power can destroy your electronics and cause fire hazard.

The bottom pair of connectors marked 5A power the stepper drivers and Extruder heater/fan (D9, D10). The source should be rated a minimum of 5A.

The pair of connectors above marked 11A power a Heated Bed, or other output (D8). The source should be rated a minimum 11A (if both power rails are connected to the same supply it should have a minimum rating of 16A).

BT Extension

#define BLUETOOTH_SERIAL   2                      // Port number (1..3) - For RADDS use 1 For SMART RAMPS 1.41 1.42 use 2
#define BLUETOOTH_BAUD     115200                 // communication speed