Assembling and configuring a RAMPS with Prusa i2 (more or less)

To get what I need out of my 3D printer it was clear that the Gen7 although a great board to build was not going to be suitable for every day use.

I got myself a RAMPS and assorted add-on boards:

  • RAMPS 1.4 shield & Arduino Mega
  • LCD, SD & Click encoder combo
  • Lots of new wiring
  • Bluetooth HC-06 module (already had this)


I bought all my wiring and connectors from We Do 3D Printing via eBay.
Excellent quality of cables and arrived quickly.

Step 1 – Rewiring

I use molex connectors to hook up to the motors, heaters and thermistors, so when replacing the cables for use with the RAMPS I bought some new wires and connectors that were suitable. The process of rewiring with the correct connectors which are fiddly little things is a journey I’ll leave to the imagination of the reader.

I wired a full set of cables for a RAMPS which includes:

  • Stepper motor cables, 4A, 4-wires, 3 in total (my z-axis splits at the molex)
  • Bed heater wiring, 20A x2
  • Bed thermometer wiring, 1A, 2-wires
  • Hot-end thermometer, 1A, 2-wires
  • Hot-end cartridge heater, 20A x2
  • End-stops 1A, 3-wires x3
  • Bluetooth wiring (simple level converter with 2 resistors)
  • EEPROM wiring (i2c port)

Step 2 – Programming the RAMPS

First you need to download the marlin firmware, after a bit of a straw poll it seems to be the preferred firmware for this combination of hardware.

git clone

I you haven’t already you’ll have to install Arduino to upload the program to the Arduino Mega. The Marlin firmware opens without much argument in the latest Arduino IDE.

Now we need to configure the firmware by editing the configurations.h for each setup it’s a bit different, my screen required a lot of messing around to get working uncommenting ulti-panel and SD and other parts of the support.

Setup the LCD and click encoder, I wasn’t sure exactly how to do this at first but after a little toying around it seemed to work.

Step 3 – Building a power supply

Unlike the Gen7 the RAMPS doesn’t have an ATX port. I built an adapter for a PC power supply for the job, this means wiring up the thick 20A cable, (black for zero, red for +12V – RAMPS is sensitive to polarity so lets not mix this up ;)). We’re also going to wire in the 5V permanently on so we can get the PSU to power up independently.

The 5V always on power will also drive our bluetooth adapter so we can power on the printer over bluetooth.

We need to make sure that the servo line has 5V power because later we’re going to investigate auto-bed-levelling.

Step 4 – Powering on and testing

It’s a simple matter of pairing with the bluetooth dongle (keycode 0000)and interacting with the appropriate serial port. Once connected you can use minicom to issue commands to the printer and test the x, y, z.

Step 5 – Calibration

Measuring how far the printer is out of alignment and multiplying the result is the easiest way I’ve found for getting the x and y calibrated. The Z requires at least a few test prints to get anything better than a good estimation.

Once the X,Y,Z is calibrated then it’s a good time to level the bed, if you’ve got servos set up for auto-bed levelling the RAMPS & Marlin will allow you to retain the values after the first calibration otherwise it’s a manual job.

The extruder requires some extra attention to get working at exactly the right pace. Which will wait until a few test prints are done, and the callipers come out to measure things exactly.

Calibration requires tweaking some values in the Marlin configuration.h, this is a fairly well documented process.