Introduction: How to Setup the RAMBo for Your 3D Printer

The RAMBo (RepRap Arduino-Mega Board) Controller Board for 3D
printers is an all-in-one electronics board for all your 3D printing needs. It is the successor of the popular RAMPS (RepRap Arduino-Mega Pololu Shield) shield used to control most RepRap 3D printers.

The RAMBo adds many improvements over the RAMPS by being a much more stable and robust controller, it also adds new easy to use connectors for motors, endstops, thermistors, heaters and power connectors. These connectors are keys, will insert easily and will clip into place.

RAMBo has three separate connectors for power and it allows you to power the motors, mosfets and heat-bed separately. It also has replaceable fuses that protect the board from over-current and allows you to replace them without any soldering required. The design of the RAMBo also allows it to act as a heat dissipater for the stepper motor drivers, which means that there is no need to install a heatsink on the stepper driver chips like many people did for the RAMPS. The design of the RAMBo also ensures that the stepper drivers will never fail and fry as was often the case with the RAMPS.

The RAMBo supports an input power voltage of 12V or 24V, and it has 6 mosfets for controlling 2 heaters, one heat-bed and up to 3 fans. It supports 6 motors with 5 integrated stepper drivers and digital potentiometer, one connector each for the X axis, Y axis, first and second extruders and two duplicated connectors for the Z axis. It also has connectors for up to 4 thermistors and 6 endstops. Plenty of headers are available for expansion, allowing you to connect an SD card reader, Smart LCD displays, I2C device, extra motors, etc..

On top of all these improvements over other RepRap electronic boards, the RAMBo also includes a digital potentiometer which can be used to calibrate your stepper motor's current. There is no more need to turning tiny knobs on your steppers to calibrate the current to the motors, you can now set the current directly in your firmware. You can also change the current dynamically by sending commands to your printer through Pronterface for example. This will allow for fine-tuning of the current and minimize the motor noise, motor heat and the risk of missing steps.

Step 1: Installing RAMBo Drivers

If you are using Linux or Mac OS X, then you do not need to install drivers as they will use the USB CDC interface which has hardware drivers built in the operating system.

If you are using a Windows Operating System, then you will need to install drivers for your RAMBo. When you first connect the board to your computer, it will not be recognized by the system.

To install the driver, simply download it from the following URL :

Extract the contents of the file, you will find it contains two files, and rambo.inf (see image)

Simply right click on the RAMBo.inf file (if your system does not show file extensions, it's the file with type "Setup Information" and an icon with a gear as seen in the picture below) and select the "Install" option (see image)

Once you click on the Install option, Windows should prompt a security warning asking you to approve the installation of the driver (see image)

Simply click Install to finish the installation of the driver for the RAMBo.

Once installed, remove the USB connector from the RAMBo and reconnect it. Windows should then display the successful detection and identification of your RAMBo (see image).

You have successfully installed your RAMBo drivers and you can now use it.

Step 2: Software Setup Introduction

Before using the RAMBo, you must first upload a firmware to it. RAMBo boards come pre-loaded with a default Marlin firmware, but you will almost certainly want to upload a firmware configured for your specific printer.

Since RAMBo is based on Arduino, we will use the Arduino IDE (Integrated Development Environment) to upload the firmware to it. The Arduino IDE will require modifications to take advantage of the full capabilities of the RAMBo, so we will copy some files to the Arduino installation directory to set it up for use with the RAMBo. This step is however optional but it will help unlock the full potential of the board.

Once the Arduino IDE is correctly set up, we will upload to it a compatible firmware set-up for your 3D printer and configured to use RAMBo.

Step 3: Arduino IDE Setup

We will first download the Arduino IDE from Arduino's website

available at the following address :

At the time of writing this Instructable, the latest version of the Arduino IDE is version 1.0.5.

The Arduino IDE has configuration files for various Arduino products. When you open the Arduino IDE, you can select the type of board you will use. In the case of the RAMBo, selecting the "Arduino Mega 2560 or Mega ADK", as seen in the image above, will work. However, this will not allow you to use extended features of your board, such as the LCD display.

In order to use the LCD and take advantage of the full capabilities of the RAMBo, we will install an Arduino Addon for RAMbo by downloading it from the following URL :

Once you extract the zip file of the Arduino Addon, you will find in it a directory named rambo, you will need to copy that directory to the hardware directory of the Arduino installation.

Notice on the left of the above image, the full path of the directory in which we copied the rambo directory from the Arduino_1.x.x. On your system, the path may be different, but it will often be :

C:\Program Files (x86)\Arduino\hardware

Once the rambo directory is copied, you can close the Arduino IDE and re-open it. You can now select RAMBo as a choice of board from the Tools menu (see image).

At this point, the Arduino IDE has been set-up to work with the RAMBo. You only need to select the Serial Port the RAMBo appears on.

Step 4: Firmware Configuration: Marlin

The next step is to setup your firmware. RAMBo is compatible with the Marlin firmware, as well as Repetier Firmware, however, we will show you here how to configure Marlin for use with the RAMBo.

You will also need to configure Marlin for your specific printer, such as print area, steps per mm for each axis, etc.. Those configuration options are outside the scope of this Instructable however, and we will only concentrate on the RAMBo specific parts of the Marlin configuration.

is very easy to configure Marlin to use with the RAMBo. Once you download Marlin (Click "Download ZIP" on the left side of the github page :, open the Marlin.ino file in the Arduino IDE, select the Configuration.h tab, and scroll down until you see the configuration option for the motherboard. In order to configure Marlin for RAMBo, simply set the motherboard configuration to '301' with the following line :

  #define MOTHERBOARD 301

See image above to see how it should look like.

Once you've set the Motherboard to 301 and configured your firmware for your 3D printer, you can click the Upload button, or select Upload from the File menu (see image).

This will compile the firmware and upload it to the RAMBo.

If you need to add support for an LCD display, such as the RepRapDiscount Smart LCD Controller, you will need to have your board type set to RAMBo and Arduino IDE configured correctly as explained in the previous step, then you will need to update some files from the Marlin firmware.

If you are using the latest git version (from the above link) or any version from August 4th 2013 and later, then you don't need to modify the Marlin firmware for using the LCD, if you use however an older version of the Marlin firmware and do not wish to update to a more recent one, or if you are simply unsure, then you will need to overwrite the fastio.h and pins.h files from the Marlin directory with the latest version of those files available from github :

Simply download those two files and copy them to the Marlin directory, overwriting the previous files.

You can now configure the Marlin firmware to use the LCD controller that you have and it will work with the RAMBo as long as it is wired correctly (See the relevant section of this manual for instructions on how to wire the LCD controller to the RAMBo).

Don't forget to install the U8glib library to the Arduino IDE installation directory if you use the Full Graphics Smart LCD Controller, as instructed in Marlin's Configuration.h file. To do so, copy the U8glib directory which you can find in the Marlin directory under the Marlin/ArduinoAddons/Arduino_1.x.x/libraries/ subdirectory into the Arduino's libraries directory (C:\Program Files (x86)\Arduino\libraries).

Step 5: Hardware Setup Introduction

Connecting the RAMBo to your 3d printer is relatively straightforward. You may need to prepare some of the wires with the provided housings prior to connecting them to the RAMBo. All of RAMBo's connectors are easy to use with a clipping system preventing the cables from falling and allowing you to remove them without effort by pressing lightly on the connector.

The accessories bag that comes with the RAMBo has a set of connector housings and female crimp pins that you can use to create RAMBo compatible wires for your motors, a set of wires for your thermistors and a set of endstops and a wire harness that are pre-crimped and ready to use. The accessories bag also contains 2-pin pluggable and 6-pin pluggable connectors for the mosfets and power input respectively as well as a USB cable. Depending on your source, it may also come with the SmartLCD Adapter.

Step 6: Stepper Motor Connector Preparation

Your stepper motors use four wires and will usually come with a 4 pin connector. It is possible that the 4 pin connector of your motors will fit in the RAMBo connectors, in which case you can choose to leave it as is or change the connector to the RAMBo supplied ones. It is also possible that the 4 pin connector of your motors will simply not fit in the RAMBo connectors, in which case you will need to change the connector of the motor's wires. Note however that if you leave the motor wire with its original connector, that the insertion and removal of the connector will not be as easy as if you used the RAMBo connectors.

See the image above for some examples of compatible and non-compatible stock motor connectors with a RAMBo connector for comparison.

If your motor doesn't come with 4 wires, but comes with 6 or 8 wires, you will need to find the two pairs of coils from your motor. You can refer to the Stepper Wiring wiki page or to this page : to figure out which pairs of wires to use then select the 4 wires (A, A-, B and B-) that you will use.

The crimp pins come in a pack. In order to detach one, you can simply bend it a couple of times until it comes loose (see image).

First, you need to detach a crimp pin from the supplied pack and inspect it, you should see two pairs of tabs at one end of the crimp pin, one pair slightly larger than the other. The tabs at the end of the pin are called insulation crimp and are used for stress relief by holding the insulation of the wire, while the larger tabs are called conductor crimp and are used for making contact with the wire itself. There will also be a locking tang that will hold the crimp in place inside the connector housing. Please familiarize yourself with the crimp pin before reading further (see image).

You can now cut the motor's wire just before the existing connector if there is one. Use a wire stripper to strip the end of the insulation and reveal the copper wires beneath. You should only strip about 3mm (1/8") off the end of the wire. Use one of the female crimp pins as reference for the length required, knowing that the wire shouldn't go much beyond the conductor crimp of the pin, and the insulation should fit on the insulation crimp (see image).

You will need a good crimp tool in order to crimp the wire to the pin, you can get one from Pololu's store, for example :

In the above link, you can also find instructions and links to two useful tutorial videos on how to crimp a wire with the tool. We would strongly suggest you read the instructions and watch those two videos in order to get familiar with the process : and

If you do not have a crimp tool and do not want to buy one, you can simply use needle-nose pliers, although the process will be slightly slower, more complicated and will not yield as good as a result as if you used a proper crimp tool. Use this video as a reference on how to crimp the pins with needle-nose pliers :

Insert your stripped wire into the crimp pin, making sure the insulation crimps are aligned with the insulation and the wire sits between the conductor crimps, then either use the crimp tool as explained in the above links, or, if you're using needle-nose pliers, push down on each tab individually until you crimp the wire into the pin (see image).

Make sure the wire is crimped securely to the pin and that it won't easily fall off.

After crimping all four wires of the motor to the pins, you will then insert each pin in its appropriate position on a 4x1 housing connector. Make sure the locking tang on the pin is aligned with the hole on the connector (see image)

The motor wires are color coded and must be inserted in the following order : blue - yellow - green - red if you have a motor using those wire colors. The blue wire goes into the slot of the housing where the circuit identifier is located (the little triangle on the top right of the housing in the above picture). If you are using a motor using a black wire instead of a yellow wire, then the order should be red - blue - green - black, where the red wire goes into the slot of the housing where the circuit identifier is located.

Use the following picture as a reference on which wire goes into which slot of the housing. Note the circuit identifier on the housing is where the blue wire is located. Make sure the wires are inserted in the right order as the connector is keyed and can only be inserted in one direction on the RAMBo (see image).

This was the most complicated part of the hardware preparation. Once you're done, take a break and look at your masterpiece.

Step 7: Power Input Preparation

The RAMBo can be powered by a 12V or a 24V power supply.

The power input connector is the 6 pin pluggable green (or black, depending on your source) connector (see image).

You must strip your power supply's wires then open the screws on top of the connector. When opening the screws, a metal plate will be lowered allowing you to insert the wire between the metal plate and the top part of the hole. Once you tighten the screw, the wire will be clamped to the metal plate.

The second picture above shows the right most hole of the connector with the metal plate lowered.

Once you insert the wire into the hole, tighten the screw to keep the wire in place (see image).

Make sure the wire is secured and no strands of the wire are floating around as it can cause shorts.

The connector takes 3 pairs of V+ and V- wires. Make sure not to invert the wires and use the fourth picture above as reference for where each wire goes.

You should double check your wire connections and make sure the polarities are not inverted by inserting the unpowered connector into the RAMBo and verifying the wires' polarities are aligned with the board's polarities (see image)

You can now connect your wires to the power supply, making sure that the polarities are not inverted.

Step 8: Power Output (mosfets) Preparation

The mosfet connectors are the 2 pin pluggable green connectors (see image)

Follow the same instructions for installing the wires on these connectors as for the power input connector, but pay close attention to the polarity on these connections (see images)

Step 9: Thermistors Preparation

The RAMBo comes with a pre-crimped wire harness for thermistors.

You can skip this step and connect the existing thermistor connector directly to the RAMBo if your thermistors are already soldered to a wire with a connector which fits into the RAMBo, note however than the insertion and removal of the connector will not be as easy as if you used the RAMBo connectors.

To use the RAMBo connectors, simply solder the wires to the thermistor to prepare it for the RAMBo. Colin Farrer from Makerfarm has a great video tutorial on how to wire a thermistor available here :

Step 10: Endstops Preparation

The RAMBo comes with a pre-crimped wire harness for endstops.

On one end of the wires, a RAMBo connector is available while the other end has a connector for the endstops.

You must connect the endstops to the wire harness. Note that there are two possible ways to connect the endstops to the wire harness. Both are valid, but the configuration of the firmware will vary depending on how you connected them.

The first configuration is when using the connectors on each side of the endstop. In this configuration, the ENDSTOP_INVERTING option in the Marlin firmware must be set to false (see second and third pictures).

The second configuration of the endstops is when using the middle connector with the connector below the trigger button of the switch. In this case, the ENDSTOP_INVERTING option in the Marlin firmware must be set to true (see fourth and fifth pictures).

Step 11: Connecting the RAMBo

Now that all your wires are prepared, connecting everything to the RAMBo will be easy and straightforward. Here is an overview of all of the connectors available on the RAMBo.

Step 12: Power Input

The RAMBo can be powered by a 12V or a 24V power supply.

The power connector is the green (or black) 6-pin connector on the right-hand side of the board with - and + polarities marked on the PCB (see image)

To connect power to the RAMBo, simply insert the 6-pin pluggable into the Power Input socket. As shown previously, make sure the polarity is not inverted.

Step 13: Power Input (mosfets)

To connect the heater, fans and heat-bed, insert the 2-pin pluggable in the appropriate mosfet connectors on the board. There is also a FAN-2 standard connector below the row of mosfet connectors which can be used to control a second fan.

Note that the Heat-0, Fan-0, Heat-1 and Heat2-Bed connectors use high capacity mosfets and are suitable for powering heaters, however, the Fan-1 and Fan-2 connectors use low capacity mosfets which are more suited for powering fans rather than heaters. It is not recommended to connect any electronics that drains more than 2A of current into the Fan-1 and Fan-2 connectors.

Step 14: Motors

Connect the motors to the motor connectors on the bottom of the board. The blue wire must be towards the right of the board (where the orientation of the board is with the 15A fuse holder on top and the USB connector to the left) (see image).

The motor connectors are marked with X, Y, Z, Z, E0 and E1 for the X, Y, Z (twice), first extruder and second extruder respectively. The Z motor has a duplicated connector for connecting two motors to be controlled by the same stepper driver.

If the motor is turning in the wrong direction, you can change it in software by changing the value of the INVERT_X_DIR, INVERT_Y_DIR, INVERT_Z_DIR, INVERT_E0_DIR or INVERT_E1_DIR from false to true or from true to false, depending on which motor's direction is wrong (see image).

Step 15: Endstops

Connect your endstops to the endstops connectors on the RAMBo board (below the USB connector). The top row is for the Min endstops while the bottom row is for the Max endstops. They are ordered from the left for the X, Y and Z endstops (see image).

The mechanical endstops need to be connected to the S and - pins of the connector. If you use an opto-endstop, then you will need to connect the S, - and + pins to the opto-endstop.

Warning: If you do not use the include endstop wire harness, you must make sure not to connect the mechanical endstop to the + and - pins of the board, as it will short-circuit the board.

Step 16: Thermistors

Your thermistor row is on the right of the board, next to the power input connector. Each thermistor connector is marked as either T0, T1, T2 or T3 (see image).

By default, in the Marlin firmware, T0 is the thermistor for the first extruder, T1 is the thermistor for the second extruder and T2 is the thermistor for the heat-bed while T3 is left unused.

Simply connect the thermistor to the appropriate connector.

Step 17: USB Cable

Once everything has been connected, you can then connect the USB cable to the board. The provided USB cable is a USB printer cable (USB-A to USB-B male-male).

Note the two LEDs next to the USB connectors representing the Power LED and Status LED, as well as the Reset button to cause the firmware to reset.

Step 18: Smart LCD Controller

If you have the Smart LCD Adapter, either as part of your accessories kit or bought separately, you can easily connect the SmartLCD to the RAMBo. First insert the LCD Adapter into the RAMBo by connecting it to the EXT-2, ICSP 2560 and SD/SPI connectors so the adapter is sitting above the Atmega2560 chip (see image).

You can then connect the ribbon cables (which should be provided with the LCD controller) to the EXP1 and EXP2 connectors on the Smart LCD Controller or on the Full Graphics LCD Controller (see images)

You can then connect the ribbon cables to the Smart LCD Controller on the RAMBo :

Note on the fourth picture the position of the ribbon cable's connector's key (the notch). It must align with the smaller white square on the adapter.

Once you connect the cables to the appropriate positions, the LCD adapter should then work once your firmware is configured properly. Note the red wire's position on the fifth picture.

If you do not have a Smart LCD Adapter, you can create your own wiring by following the tutorial available in the RepRap wiki :

Step 19: Conclusion

That's it! You're done setting up the software, and the hardware and connecting everything to your electronics and your 3D printer should be ready to run!

If you are interested in knowing more about your boards, such as details about the expansion headers, how to setup your servos for auto-bed-leveling, or how to replace the fuses, I suggest you read the full User Manual of the RAMBo board from RepRap Electro.

Step 20: Licensing Information

This Instructable and the RAMBo User Manual were written by Youness Alaoui (myself) for RepRap Electro with some images provided by Thomas Sanladerer.

This Instructable and User Manual are licensed under the GNU Free Documentation License v1.3.

   Copyright (C)  RepRap Electro

Permission is granted to copy, distribute and/or modify this document 

under the terms of the GNU Free Documentation License, Version 1.3 or 

any later version published by the Free Software Foundation;

with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
Formlabs Contest

Participated in the
Formlabs Contest

3D Design Contest

Participated in the
3D Design Contest