Category: Hacking/Making

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.

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).

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.

This is the pinout information for rebuilding a Wanhao Duplicator i3 Plus using a RAMPS control board. My printer is actually a Monoprice Maker Select Plus, but it is manufactured by Wanhao who seems to make printers for many brands. Therefore, I have decided to start referring to this printer as a Wanhao machine in hopes that others who have various rebranded printers will be able to get the help they need.

Communication from the control board underneath the printer to the small daughter board behind the actual print head is done through a 16-pin ribbon cable. I had to figure out which of the sensors and actuators in the daughter (or breakout) board corresponded with the ribbon cable pins.

In the end I eliminated the ribbon cable because I did not trust the breakout board behind the print head. This is the part that visibly failed when the motherboard on my printer died. Even though I did an attempt to fix it, I am not certain that all the wiring works as expected. I will explain at the end how I did my own wiring.

Following is an explanation of my original plan, which is probably what you want to do, even though it is more complicated. Then at the end I will tell you how I actually did my wiring. Much simpler. Much more logical. More work. Much uglier.

The Original Plan

This is the best way I could figure out how to explain the ribbon cable that made sense to me. If you discover that any of this information is incorrect, I would greatly appreciate you letting me know. This all seemed to work for me until the voltage regulator in my Arduino burned out. It was at that point I started doubting the breakout board and ended up replacing all the wiring from the print head down to the new RAMPS control board which I explain in the lower part of this post.

Ribbon Cable Pinout

Above is a drawing of the output of the cable underneath the print bed. You need to patch into this cable and connect the various pins to the RAMPS control module.

Here is what I have figured out each of these pins do.

Pins 1-4: Heater Ground

Pins 5-8: Heater Voltage, Hotend Fan Voltage, PWM Fan Voltage

Pins 9, 11, 13, 15: Extruder Motor

Pin 10: PWM Fan Ground

Pin 12: Thermistor Voltage

Pin 14: X-axis Limit Switch

Pin 16: Signal for Hotend Fan, X-axis Switch and Thermistor

Pin 16

I used DuPont cables to plug into the ribbon cable and then out to the RAMPS module. I made them into blocks of cables (1X2 and 1X4) as much as was possible. This keeps you from accidentally switching around the wiring.

The complicated one was the wire coming out of pin 16. It needed to split three ways into the RAMPS board. One wire needed to go into 1 of the 2 inputs of the x-axis limit switch. Another wire for the hotend fan. Finally a wire for the hotend thermistor. You can see in the picture below how I split that out.

What I don’t show in the picture above is how those are all connected together. The black wire is coming out of pin 16 of the ribbon cable (using a male DuPont connector). I then cut that wire and soldered 3 wires with female connectors onto it. This gives me the three outputs needed for the x-axis switch, thermistor and fan.

Blocks of 1-4 and 5-8

I used wires (18 AWG) from a computer power supply for the next part. These were to form the blocks of wires that are needed to plug into multiple pins but go out to a single wires.

For pins 1-4 strip back between 1/4″ and 1/2″ of insulation of one of the 18 gauge wires. I used black since this was ground. Then split the bundle of stranded wire in half. Crimp a male DuPont connector onto half the wires and another one onto the other half so that you use up all the strands split evenly between the two DuPont connectors. These two connectors can plug into pins 1 and 2 or 1 and 3 on the ribbon cable. It does not matter which way you do it.

Do the same thing with another (black) wire. This one will plug into the other two pins in the ribbon cable you have not used out of pins 1-4. My package of DuPont connectors did not come with any 2X2 blocks. So I made them into two 1X2 blocks for this. But you can do a single block for both wires.

Pins 5-8 are done exactly the same. This time I used a yellow wire. You can see the blocks of wires I made for these 8 pins in the pictures above.

The two black wires (pins 1-4) can be soldered together and plugged into the negative terminal of D10 on RAMPS. The two yellow wires go into the positive terminal of D10. It actually does not matter for the purpose of the heater which wires go to the positive and negative power blocks, but it is important for the fan inputs which are also tied to that 5-8 block

Other Pins

A single 1X4 block can be made with pins 9, 11, 13, and 15. Keep them in order and connect them to the E0 four-pin set on the RAMPS board.

For pins 10, 12 and 14 I used 3 individual DuPont jumpers to go to the appropriate pins on the RAMPS board (the other thermistor pin, and the other x-axis switch pin into set 1 of the limit switch pins).

Untested: Proceed With Caution

This is where I ended up deciding to go a different route on the wiring. What you are missing in my instructions above is the wiring for the print cooling fan. Pin 10 on the ribbon cable is the print cooling fan (called PWM fan on the breakout board up top). That fan would normally plug into the D09 connector of the RAMPS board. It is polarity sensitive.

The problem is that the wiring on the ribbon cable takes half of the fan wiring through pin 10 and the other half through pins 5-8. I think what this means is that you plug pin 10 into the negative side of D09 on RAMPS. Then you don’t do anything with the positive side of D09 since the fan is already being fed with pins 5-8 on the ribbon cable and is already connected.

It won’t hurt anything to give this a try. Logic tells me this should be the way the print cooling fan works. And if it doesn’t, you’ve not hooked up anything that is dangerous.

Wiring: Not Part of the Ribbon Cable

The non-ribbon cable wiring will be hooked up logically. This is all the stuff that hooked up to the original board directly. The heated bed goes to D08. The 4 motors plug into the X, Y and Z1 and Z2 of RAMPS. The bed thermistor will go into its place next to the hotend thermistor. The y-and z-axis switches plug into the 3rd and 5th set of limit switch pins.

What I Actually Did

After watching a video (below) of Tom Sanladerer talking about printer wiring, I decided to go with 2 stranded network cables. That gave me 16 wires to cover 14 inputs from RAMPS to the sensors and actuators up top.

I simply crimped on male DuPont pins at top and female ones at the bottom. Some of the ones at the bottom I plugged directly into RAMPS, some I used other DuPont jumpers to give me a little more length to reach other parts of RAMPS.

It should not matter which wires you use for each connection, but watch the video and see the tips Tom gives. Keep the twisted pairs together for the various connections. I did put the 4 heater connections on one LAN cable and the motor on another. I figured these were the biggest power users and it might help to separate them.

My setup isn’t elegant and I may find a better way to clean up the wiring. The network cables I choose (based on availability in my junk drawer) are not the most flexible. But this setup works well and is much simpler to figure out than using the ribbon cable with the original breakout board.

If I do make a change to this in any way, here are the two ways I would consider doing it:

Just use the original ribbon cable. My concern is that the breakout board used extra wires for the heater. Is this really necessary? Is the ribbon cable stout enough for that? Probably so and it would look much better than what I have.

Use 3 flexible USB cables. That only gives me 12 wires (instead of the needed 14). But currently I’m not actually using all 14. I replaced my thermistor with one that had a wire long enough to go all the way to the control board underneath. So I just left it that way. Concern: the same as for the ribbon cable, are the wire rated for the amperage needed.

If you have not already bought your RAMPS board, please read through this whole post before purchasing. After reading you can make a better choice and save a little work by buying the right one.

Also, don’t power up the RAMPS board until you have completed all the steps in this post. In a later post I will show you how to wire everything up. It is probably best to wait until you get to that point before applying power.

Choosing a RAMPS Board

You should assume that your RAMPS board is designed to work with 12V. They do make boards that can accept both 12 and 24 volts, and you might want to buy one, but it is best to assume your board is 12V and confirm that it will work with 24 before plugging in the higher voltage to test.

The cost of a 12 volt RAMPS setup with stepper drivers and LCD screen is the same as a 12-24V RAMPS board by itself. All the 12-24V boards that I found had the Arduino Mega integrated into the same board as the Pololu shield. I personally like discrete components (as much as is practical) so that if one part dies it can be replaced without having to replace the whole system.

Therefore, my preference was to buy a $40 kit that included the Arduino, Pololu shield, stepper drivers and LCD that needed to be modified for 24V. As opposed to $40 just for the Arduino/Pololu integrated system without drivers and LCD but was already setup for 24V. You will have to decide that on your own. If you buy the 24V setup, then you can completely skip this step. But you will have to figure out the LCD and stepper drivers on your own. Also, I found out in the end of this conversion, the wider boards can’t be housed underneath the printer like the original board was. You will have to build a separate enclosure for it.

For the rest of this step, I assume you have a 12V RAMPS board. You can get them at the supplier of your choice: Amazon, eBay, dx.com, AliExpress or Gearbest. There are many other places to get them, but that should get you started. I chose Amazon for this because I wanted it quickly and for RAMPS, stepper drivers and LCD in one package buying from the Chinese shippers and waiting up to 2 months was not much cheaper (if at all).

Capacitors, Fuses and Diode

Assuming you have a 12V RAMPS board, there are three types of components to check or modify to make it work with the higher voltage supply: capacitors, fuses and diode.

In the image above (you can click it to get a larger image), you will see various components highlighted with circles and arrows. Refer to this image in the explanation below.

Capacitors

There are two different sets of large, electrolytic capacitors. They are physically different sizes which should make it easier for you to identify. In the image above the capacitors circled in yellow are the ones you need to be concerned about. The 3 circled in green should not need to be checked or modified in any way for working with 24 volts.

The 6 yellow-circled capacitors should be rated at 35V or higher. Your’s may say something like 36V, 100V or some other cryptic code for the voltage rating. If these capacitors are less than 36V you really should replace them. If your capacitors are 24V or less, you can expect it to not work at all, or very unreliably until it fails. To make it easy try to buy a board with the right capacitors so you don’t have to replace them.

The reason we don’t have to worry about the green-circled capacitors and their lower rating is they are not using the 12 or 24 volts from our power supply. That segment of the board is stepped down to 5 volts. Therefore, whatever the manufacturer originally installed for that section of the board should be sufficient.

Diode

The diode (pointed at by the pink arrow) is the path through which electricity goes into the Arduino and powers it. Since most Arduinos are rated for up to 12V of power, we don’t want to feed 24V into it. By getting rid of this diode then we stop the 24V from going through the Pololu shield and into the Arduino. That means that after this step is complete we need to find a way to power the Arduino separately with 12V.

Removing the Diode

You can remove the pink-arrow-highlighted diode by snipping the wires on either side of it or by desoldering it. It would be very hard to get a pair of wire cutters in the space to snip the wires on the diode, but it is possible. I chose to desolder mine. You can watch a video or read an Instructable about desoldering components if you don’t know how.

There is another diode next to the poly fuses. You should leave this one in place. Only disable the one indicated by the pink arrow.

Supplying 12V to the Arduino

Now you have to power the Arduino in some way. The way I chose to do it, and the way I recommend, is to use a step down power converter. Also called a DC-DC or buck converter. What this does is take the 24V from the main power supply and converts it (steps it down) to 12V that can be used for the Arduino (and cool looking 12V LEDs). I had already installed one of these in my printer for the purpose of powering LEDs. So this was an easy route for me.

Just because something is easy, doesn’t mean it is best. However, in this case, I think this is the best way to go about powering your Arduino. The other option is to have an external 12V source for the Arduino. It can be a battery (which could leave you with a dead Arduino in the middle of a print) or it could be a second supply plugged into the wall (which is an extra external component). In either case, you need to tie the ground of the battery or secondary supply to the ground of the 24V supply. Too much work.

Use a Step-Down / DC-DC / Buck Converter

A small buck converter will take the 24 volts from our current supply and easily convert it to usable 12 volts. That is what it is designed to do.

My converter (shown above) can take up to 32 volts as input. Then there is a screw adjustment to dial in the output voltage. The one I am using is a buck and boost converter which means that it can also take a lower voltage and boost it to a higher voltage at the cost of amperage. I only used this because I have some sitting around. But if you are buying one for this project a simple buck converter will be fine.

Tie Into the Power Supply

I soldered wires from the IN+ and IN- side of the buck converter and ran those to the extra screw terminals on the power supply. Wasn’t it nice of Wanhao to leave an open spot for us to use? Make sure the IN+ goes to the +V terminal and the IN- goes to the -V of the power supply. The following picture shows where I tied in my buck converter. The first and fourth screw terminals (from the left) on my power supply were empty. These were the ones I used.

Turn the adjustment screw on the buck converter (actually a multi-turn potentiometer) on the buck converter until your volt meter reads 12V as output voltage on the other side of the DC-DC converter. That is where you will get the 12V that will be fed into your Arduino’s barrel jack. I soldered a short pigtail from the +/- OUT on the buck converter to a barrel plug appropriate for input into the Arduino. The center pin should be positive on the plug.

Protect From Shorts

I printed a small sled for the converter to sit on and then hot glued the converter to the sled and the sled to the frame of the printer. (This was when my printer still worked.) For the time being, you can just put tape on the bottom of the buck converter to keep any solder joints from shorting out until you can print an insulating sled.

With the diode removed no voltage will pass from the Pololu shield to the Arduino. The Arduino will get all it’s power from the 12 volts of the buck converter. Since it is all tied into the same power supply, when you turn on the printer it will turn on all the different components like it did originally. The only difference is that part of the system is getting 24 volts and part is only getting 12 volts.

Fuses

You need to check that the fuses on your RAMPS board are capable of handling the higher voltage. The fuses are indicated with the red arrow in the picture above. One of these fuses on my board (the one closest to the power plug) needed to be replaced. It can be replaced with another resettable fuse of an appropriate capacity, or a different fuse type altogether. In my case I chose to use a fuse made for car applications.

The original fuse on my board was an MF-R1100 poly fuse. It is rated at 16V and 11 amps. Because the voltage is lower than what we need, then this one must be replaced. The other poly fuse on my board is rated up to 30V; therefore, it does not need to be replaced.

I replaced mine by desoldering the current fuse and making a holder for an automotive fuse. I did this by soldering 2 wires (20 AWG or better) about 1-1/2 inches long (length is not critical) to the board. Then I soldered the other end of the wires to female spade connectors appropriately sized for my fuse. You will see in the picture above that I am using a 10A fuse. I don’t know for certain that this is the right amperage. 5A was not enough and 10A hasn’t blown out.

CLARIFICATION: The fuse should be more than 5A. When testing, I blew out the 5A fuse almost immediately. I have read that a heated bed will pull up to 13A at 12V. Theoretically, that says to me that we want a fuse that is 7.5 to 8 amps since we are powering the heated bed with 24V now. I will update this if I find out something different. But for now, I am sticking with a 10A fuse.

Conclusion

I said at the beginning of this post that after reading through this you will have a better idea of how to make a better RAMPS choice.

The cheap ones will have to be modified. But if you aren’t wanting to do that, then you are missing out on the fun.

Here is a good video that talks about some of the downsides of the RAMPS setup. But while Tom mentions all the things he doesn’t like about it, he concludes by saying his main printer runs RAMPS. At least as of 3 years ago. I know he has many commercially made printers now and probably does not run a RAMPS based printer as his daily driver anymore.

Other Resources

I was helped through this step by reading other forum questions and watching videos. The following video is one that made sense to me after I had done a lot of other reading. It doesn’t tell you everything you need to know, but it is a great start with this step.

You can also read this very detailed explanation. It gets into much of the theory as to why you would want to do the conversion. We already know we need to because our printer is already a 24V printer and we have a 24V power supply.

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.

Considerations

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

RAMPS

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.

RAMPS

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.

Wiring

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.

Firmware

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.

Ready?

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

A couple of months ago I posted about trying to get my Monoprice Maker Select Plus 3D printer replaced, or at least get a new main or breakout board for it. Ultimately they agreed to replace the whole printer. They don’t have any of the individual components to even repair the printer themselves. That is a shame since that means that otherwise perfectly good printers are sent back to the manufacturer (Wanhao) and never actually get repaired by Monoprice.

Monoprice’s Offer

Monoprice’s solution/agreement was that, yes the printer was poorly manufactured and that it is their fault that my printer does not work. However, because I installed firmware on it, they would no longer cover it under their normal warranty policy. I was welcome to send it back to them at my expense and they would replace it with a new machine.

There are two problems with that: at my expense and new machine. It would cost just over $70 to ship the printer back to them. I realize that if you are not interested in upgrading and modifying your own printer, $70 may seem like a good deal. However, I was probably going to replace all the logic parts on this printer in the future anyway. I like the design of the Maker Select Plus (though if you are doing this upgrade, the Maker Select v2 is the better choice at a cheaper price), but their motherboard and firmware are not the most friendly for hacking purposes. Since I already bought all the electronics to do the upgrade when they had originally convinced me that they would not consider replacement, I would rather move forward with that upgrade path.

The second problem I had with their offer is that they would completely replace the machine and not send me my old machine back. My machine is not perfect (print bed base is bent) but at least I know its quirks and have learned to work around them. I have also done some reversible mods, but I really don’t want to have to disassemble all of my LED and Z-axis upgrades and start over. I would rather have this same machine back.

Definite Main Board Problem

Up to the point of them agreeing to replace the machine, I wasn’t even certain which of the two boards was at fault on this printer. At first it seemed like it was the main board. Then I found a burned electrical trace on the small breakout board as well as a couple of bad solder joints. Since I decided that I would not have the machine replaced I launched into repairing the breakout board myself. I found that the printer still did not function properly after repair. It displayed the exact same symptoms. So the problem is definitely the main board which may have caused the breakout board to fail.

Installing RAMPS

Now I am in the process of installing a RAMPS board and getting it all wired up. (Here’s the board I bought. It seems the manufacturer/seller has some serious quality control issues. Spend more money for a better board if you are able to). Even though the original problem showed up 3 months ago, it took me a month to finally get Monoprice to answer emails and phone calls to come to the decision that I was going to keep it and not have it replaced. Then I began a busy time of work and travel that kept me from doing the upgrade. I am home for a few weeks and will get back to the RAMPS upgrade. I will document what I can here for others who want to convert their Maker Select Plus to an open source control board.

I have actually gotten far enough into the upgrade to be encouraged that this will work as well as I had hoped. I have been able to test most of the motors and sensors with the new board. I am now in the process of assembling the new wiring harness for the machine. I will probably break down the upgrade path into several blog posts. I hope it is a help to the next person who would like (or need) to do this conversion.

And for those who have the Maker Select v2 (or 2.1) or the Wanhao original version of the same thing, there is already a great tutorial on how to do the conversion. If you are looking for a base printer to convert, then the hardware on the $300 Monoprice v2 is almost identical to the $400 Plus (with the exception of the motherboard and control screen which get replaced in the conversion anyway). The Maker Select v2 is cheaper and easier to modify in this way.