SainSmart 2-in-1 3D Printer Controller Board for RepRap Arduino Betterthan RAMPS

From SainSmart Wiki
Jump to: navigation, search

Sale Page

SainSmart Website


This board is the combination of Mega2560 R3 and ramps 1.4. In this case, you do not have any worries on the connection problems. It is compatible with A4988 and 8825 driver which is more flexible. In order to achieve better cooling, the board has the highest quality circuit board and MOSFET. What’s more, we use LM2576 ultra-wide power supply chip which supports 12v-24v power input. In this case, we can solve the heating problem of the Ramps. We will offer you a detailed tutorial including project introduction and their source code.


  • accept 24V power supply input
  • decrease 1/4 current of the heatbed to solve the heating problem of MOS
  • use Marlin software as Ramps 1.4
  • connect Ramps 1.4 LCD2004 and LCD12864 directly
  • reserve pulse motor and direction output ports to make it convenient to connect heavy current motor driver (eg. 2A/5A)
  • retain the Servos, AUX-1, AUX-2, AUX-3 ports, provide three 5V output ports and three 12V input ports

Package list

1X SainSmart Ramps 3D Printer Controller Panel Board For RepRap Arduino Ramps2in1.png 03.png

1. Power Supply (12v-24v)


For 12v supply ensure you use more than 10A otherwise the board may not function correctly. 16A-18A (500w-600w) is reccommended. For 24v a supply of 14A-18A (350w-450w) is reccommended. The -ve terminal is the one marked with the "GND" and the +ve is teh one marked "12/24v"

2. Fan Port

Be sure to use the correct voltage fan based on your voltage supply (12v or 24v).

3. Extruder Heater (ET1)

NOTE: Although this is labeled as the second extruder I found marlin treats it as the first, so be sure to check this if you heater is not powering up.

4. Extruder Heater (ET0)

NOTE: As stated above, I can only assume that this is extruder two. Not extruder one as labeled

Another user noticed that his parts fan wasn't turning on and that the LED for E0 would turn on as soon as his parts fan was supposed to turn on. For him, it turned out that E0 was the parts fan and E1 was Extruder 1. Fan didn't seem to do anything, but it could be assumed that this is Extruder 2. Long story short, do some experimenting with these ports before deciding what goes where.

Power Out.jpg

5. Buildplate Heater

Connect your heatbed here, and ensure you have setup the heatbed to the correct supply voltage of 12v or 24v. NOTE: Check connection polarity if your headbed has LED's. Otherwise -ve and +ve are not important.

6. 12v Power Ports

DC 12v output


7. 5v Power Ports

DC 5v output


8. Servo Ext Ports

Servo interface


9. Aux 1 Ports

As Labeled


10. Aux 2 Ports

As Labeled


11. LCD/SD Ports

E69caae591bde5908d-5-fw.png Qqe59bbee7898720150128143255.jpg Qqe688aae59bbe20150128143049.jpg

If you want to install an all in one LCD/SD module use the supplied adapter to ensure that the SD card reader works. If you only use the ribbon cabled plugged directly into the board it will not include the SD card pins (see point 12). If you do not care about the SD card reader you can plug the ribbon cables as shown in point 14.

12. SD Port


13. Thermistor Ports

Thermistor jumpers.jpg

On my marlin setup the pins are as follows, you will have to check your marlin setup to discover what goes where. NOTE: I use 100k thermistors, be sure to setup marlin to use the correct settings for your thermistor to avoid any damage to the control board.

t0 = Extruder 0 Temp Sensor

t1 = Heatbed Temp Sensor

t2 = Extruder 1 Temp Sensor

14. LCS Ports

14 LCD.png

Install the LCD directly to these ports if you have an external SD card or do not care to use the LCD onboard SD card if it has one. NOTE: Be sure to check that the correct cables go to the correct ports. See the above pics.

15. Limit Switch Ports


Rigidbot only really needs the x-,y-,z- switches but you can add more if you want to add the max switches as well. Be sure to update your marlin config. Test for proper operation with M119

16. Z Stepper Driver Connector

17. Y Stepper Driver Connector

18. X Stepper Driver Connector

19. Extruder 2 (E1) Stepper Driver Connector

20. Extruder 1 (E0) Stepper Driver Connector


WARNING: Ensure your stepper drivers are correctly install before powering on otherwise you will damage the controller board.

StepperDriverClose.jpg StepperMotorWiringDiagram.jpg

Configuring the Stepper's step size is dependant on driver board that you install. There are a number of jumper pins under the stepper module that need to be configured.

For the Rigidbot the default step sizes are as follows:

X Axis = 1/16 step

Y Axis = 1/8 step

Z Axis = 1/16 step

Extruder = 1/8 step

DRV8825 Stepper Driver

DRV8824 Wiring.jpg

The pin config chart for this driver is as follows


Note that the DRV8825 is pinout compatible, but is installed in the opposite orientation of the A4988. This shows the correct orientation of the DRV8825. Also note the YELLOW jumper in the foreground right next to the USB port is needed in order to flash the firmware.


Here is the DRV8825 jumper set for 1/16-microsteps (low, low, high, unused).

Note the jumper numbering - 1 on the left, 4 unused


Jumper assignment is the same as standard RAMPS for the A4988:

NOTE: The driver adjustment pot MUST face the rear of the board (away from power plug)


 jumper   Yes/No       step size
  ms1     ms2      ms3
  no      no       no    full step
  yes     no       no    half step
  no      yes      no    1/4  step
  yes     yes      no    1/8  step
  no      no       yes   1/16 step
  yes     no       yes   1/32 step
  no      yes      yes   1/32 step
  yes     yes      yes   1/32 step

Jumper assignment for DRV8825

NOTE: The driver adjustment pot MUST face the front of the board (towards power plug)

300px-DRV8824 Wiring.jpg

 jumper   Yes/No       step size
  ms1     ms2      ms3
  no      no       no    full step
  yes     no       no    half step
  no      yes      no    1/4  step
  yes     yes      no    1/8  step
  no      no       yes   1/16 step
  yes     no       yes   1/32 step
  no      yes      yes   1/32 step
  yes     yes      yes   1/32 step

Marlin Configuration.h

If you are using the Marlin based firmware be sure to go through the Rigidbot configuration.h and copy all the required parameters.

Set or leave the motherboard assignment as RAMPS_13_EEB in configuration.h

This tells it it's going to be Extruder Extruder and Heated Bed but we're going to trick it to include fan and correct the heaters pins as labeled, the rest is already correct for the board assignement:

The following will assign all pins correctly as they are labeled on the actual board.

in pins_RAMPS_13.h changed the following:

#if MB(RAMPS_13_EFF) to #if MB(RAMPS_13_EEB) // <--- EBB has 90% of the values we need, but 
we rename it EFF to EEB so that it keeps the fan assignment from EFF then change the pins on 
the  following lines to correspond.

#define FAN_PIN 7
#define HEATER_0_PIN 9
#define HEATER_1_PIN 10
#define HEATER_BED_PIN 8

or a link for the lazy pre-compiled, self-extracting RAR just change your own values in configuration.h:

Marlin 1.1.0 RC3 for Sainsmart 2-in-1

Original Discussion here:

Google+ Community Post

Quick Note to clear some confusion:

The extruder fans run off the + of the heater cartridge and the negative leg of the thermistor at all times.

That's how they stay running. There are no other leads for extruder fans. The heater cartridge is always on on the +Positive side, so you use the negative of the thermistor to return it and complete the circuit for the fan to always run. The parts fan is the one that is controllable by you or any interface you are running, you can set percentage/speed, when to turn it on/off by the interface of your choice (pronterface, octoprint, directly from cura, etc etc). The pins referenced above or the firmware for that matter, turn the correct interface into the controllable interface of the fan. So yes it is controllable using those assignments on the correct point on the board.

The Fan output on the board in the front next to the ET0, ET1 and BED connection is for a PARTS FAN for when you print with PLA or other materials.

If the fan on your extruder is not running while the machine is plugged in and idle, you have the fan - on the wrong side of the thermistor. If it doesn't : Your + heater will feed +24v then, when you tell it to heat up, the fan will finally turn on, but at that point you got +24v coming in and force feeding it backwards through a +5v line (thermistor) and your fan will run basically on 19v, but the excess will backfeed through your board and eventually kill your board.

All Board info provided by Sainsmart: RMAPS v2