Wanhao Duplicator i3 Plus Conversion: Firmware

For my Wanhao i3 Plus clone conversion to a RAMPS setup, I chose Marlin as my firmware. This is for practical reasons more than because I have a strong opinion one way or another. I have read much more about Marlin than any other firmware and I have a friend who runs a Marlin variant for his printer; therefore, I know I can lean on him for configuration help.

I will not go into every small step of setting up and configuring Marlin. There are plenty of guides online that can do a much better job. What I do want to cover are the configuration options that you need to know specifically for the Wanhao Duplicator i3 Plus and its various rebranded counterparts.

Basic Parameters

  • 200, 200, 180 mm build volume (X, Y and Z respectively)
  • Extruder steps per mm: 96
  • X steps per mm: 80.15
  • Y steps per mm: 80.15
  • Z steps per mm: 399.5

The steps per mm numbers above are what mine is currently set to. I am still doing some tuning to make things more precise, but this should get you started. I would assume that your numbers would be identical to mine assuming you still have the stock motors, belts and drive screws. However, other settings inside of Marlin could affect these numbers.

Configuration Changes

I will paste my full configuration.h file below, but here are the lines that I have changed. I will put the line number as it appears in the original Marlin 1.1.x configuration.h file. Listed below are what they were changed to for getting my printer working, but not necessarily perfect. I don’t anticipate that I will update this document with every little change I make in the future.

  • Line 275: #define TEMP_SENSOR_BED 1
  • Line 326: #define PID_AUTOTUNE_MENU
  • Line 339: #define DEFAULT_Kp 25.83
  • Line 340: #define DEFAULT_Ki 1.49
  • Line 341: #define DEFAULT_Kd 112.15
  • Line 475: #define X_MIN_ENDSTOP_INVERTING true
  • Line 476: #define Y_MIN_ENDSTOP_INVERTING true
  • Line 477: #define Z_MIN_ENDSTOP_INVERTING true
  • Line 512: #define DEFAULT_AXIS_STEPS_PER_UNIT { 80.15, 80.15, 399.5, 96 }
  • Line 527: #define DEFAULT_MAX_ACCELERATION { 3000, 2000, 100, 10000 }
  • Line 537: #define DEFAULT_ACCELERATION 1500
  • Line 764: #define Z_MAX_POS 180
  • Line 1231: #define ENCODER_PULSES_PER_STEP 2
  • Line 1237: #define ENCODER_STEPS_PER_MENU_ITEM 2
  • Line 1254: #define REVERSE_ENCODER_DIRECTION
  • Line 1262: #define REVERSE_MENU_DIRECTION

Configuration Details

Lines 1231 and down have to do with the particular LCD display that came with my RAMPS board. You will have to look around for the settings for the display you are using. Mine says “RepRapDiscount Full Graphic Smart Controller” below the LCD.

Line 275 sets the type of thermistor for the heated bed. I uncommented line 326. This was to turn on a PID autotune feature on the control unit. PID is set with lines 339-341. The endstops have to be switched to true because on the Wanhao printer they are wired NO (normally open) as opposed to NC (normally closed).

The DEFAULT_AXIS_STEPS_PER_UNIT on line 512 is to set the motor driver steps. This is a line that you will adjust to dial in how far each step on the motor actually is. You can read the long and detailed version of axis calibration at the RepRap Wiki or check out this Instructable about calibration to get you started.

527 and 537 were changes I made because I was getting a drastic y-axis shift. It turned out the shift was due to the motor driver overheating. With a fan blowing on my RAMPS board I no longer have that problem. I may change lines 527 and 537 back to the default numbers to get more speed out of the printer.

That should be enough information to get you up and running with Marlin. Then you can spend the next 3 years continuing to tweak these settings and many other parameters.

Wanhao / Monoprice Maker Select Plus RAMPS Upgrade: Considerations

This is the first in a series of posts about converting a Monoprice Maker Select Plus (which is a rebranded Wanhao Duplicator i3 Plus) to a RAMPS board. Here are some things you need to consider in doing this upgrade and why you may or may not want to go down this path.

The reason I started through this is that my Monoprice printer stopped working properly (was not getting information from the hotend thermistor). Monoprice ultimately agreed to replace it, but I would have to send it back at my expense (more than $70 in shipping costs). I decided to do this upgrade instead. If you are buying a printer for the purpose of doing this upgrade, then stick with the Maker Select v2 (Duplicator I3 v2 or 2.1). That machine is much easier to convert and there is already a great tutorial on how to do it. You end up with the same features but at $100 cheaper for the original machine.


Here are some of the things that need to be considered in this conversion. These may or may not be covered in this order. There is much more to the conversion, but these are some of the decisions you should be thinking about before even starting down this path.

  • My Credentials
  • 24 Volts
  • Wiring
  • Firmware

My Credentials

What is my authority for being your guide through this? Almost nothing other than I have done the conversion and my printer works at least as good as it did before. Therefore I don’t claim to be an authority on building and modifying 3D printers outside of my experience.

My first, and only, 3D printer is the Maker Select Plus by Monoprice (which is a rebranded Wanhao). I have no experience with any other printer. Mine worked fine for almost 4 months before it died and now I have successfully gotten it up and running again. I am a fan of open source software and hardware. While the Monoprice/Wanhao printer is not completely open source, it had enough modifiable components on it that I knew if it ever came to a dead printer that I could probably rebuild it using parts from Amazon and eBay.

As of the writing on this tutorial, I don’t have my printer working. I am documenting as I go. Hopefully, by the time most people read this, I will have my printer up and running and have corrected any documentation that I find did not lead me to a solution.

My printer is running well and I am pleased with the results of the conversion process. I don’t know that I would recommend undertaking this conversion unless your control board is unrepairable. In other words, I wouldn’t buy this printer for the sole purpose of swapping out the brains unless you got a good price on a non-working model.

I am open to any suggestions you may have on how to improve this information for the purpose of helping others. This certainly worked for me.


You will need a RAMPS board for this. RAMPS stands for RepRap Arduino Mega Pololu Shield. It is the basis for many RepRap designs, especially older ones. It is an open source design so that you could build your own, or buy one pre-built. There is a ton of information online about the board and you can get help with just about any aspect of configuration. There are newer control boards than RAMPS with more features, but I did not find any reason that made the newer boards superior for my purposes. Plus, the RAMPS board is so well documented and inexpensive that it is considerably more appealing to me.

Something else I discovered in the end of my conversion process is that the RAMPS board barely fits under the printer like the original mother board. Any of the other solutions would be too big to fit in the available space. You would have to build an external enclosure which defeats part of the purpose I had for buying the Plus version of this printer: the compactness compared to the original version.

You can get RAMPS kits from Amazon, eBay or one of the big Chinese shipping sites like dx.com, AliExpress or Gearbest. Where’s the best place to get one? I don’t know. I would recommend reading many reviews.

The one I bought on Amazon has not been overly impressive. There are some obvious quality control issues. After having it powered up for a few minutes the voltage regulator on the Arduino burned out. I was able to swap an AMS1117 5.0 regulator from another Arduino onto this board. Here’s my 3-star review of the product. (The seller has contacted me several times asking me to change the review to something better. Purchase at your own risk.)

You will probably want to get one of the kits with a screen, but it is not absolutely necessary if you are using an computer to be your print server. I am using a Raspberry Pi running OctoPi (OctoPrint). The cost is not that much more to get the screen and then you have the option to use the printer without a computer hooked up to it all the time.

You will also need an Arduino Mega which should come with a RAMPS kit. You can buy the shield without the Arduino, but unless you have one lying around unused, you should get a complete kit with one included.

24 Volts

The Maker Select Plus has a 24 volt power supply. It is supposed to be better for motor control. I’m sure it is, but it also adds to some of the complication of the conversion.

The Pololu shield (the PS of RAMPS) can work with 24V. But the Arduino (AM of RAMPS) cannot. You will need to supply the Arduino with 12V separately. You have to decide how you want to supply the two separate voltages. You will also need to modify the Pololu shield to make it work with 24V and not feed that 24V into the Arduino.

This is all explained in the next post.


This has been the tricky part of the conversion so far. The main issue is the breakout board and ribbon cable that come from just behind the print head. The ribbon cable is great in that it simplifies how many separate wires run from the print head to the control board underneath the printer. However, that also means we need to figure out which wires control which sensors and actuators. I have a wiring diagram that I included in a post about wiring.


There is a variety of firmware that you could use with RAMPS. In my build I am using Marlin. My choice is made on the fact that I have found quite a bit of information about Marlin and a friend who built his printer from scratch uses a Marlin variant. I can lean on him for configuration help. I may move to a different firmware in the future, but this is where I started and it is working for me.


So if you are ready to jump in then get started with the RAMPS information and move through the rebuild of your machine.