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
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
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.
5 thoughts on “Wanhao Duplicator i3 Plus: Ribbon Cable Pinout”
amazing work !!!. I regret that you have no further comments and appreciation for this.
a detail that I think I find, when you say Pin 14: X-axis Limit Switch
, you mean the z axis sensor signal ???
currently I have broken the Interface Board that goes on the X carriage and I think knowing this could bridge a sensor without using the resistance and transistor of this board (thus avoiding having to change it)
thank you very much for this great guide that you have done
It would have to be the X axis switch. That is the only one on the gantry. The Z axis switch is on the left tower and is the one that gets triggered when the gantry comes down close to the bed for homing.
Thanks for the comment. I hope you get yours up and running well.
Very useful. Was able to get my Cocoon Create Touch up and running again. Did jumper wires on pin 16
Thanks for the writeup! My understanding is that the reason why you would use multiple wires to deliver the same signal is to distribute the load and thus reduce the amperage through each one. This reduces the heat and fire risk.
I bought a 16-pin 3 meter long ribbon cable and put dupont connectors on one end and connected them to the MKS Gen 1.4. This seems to have worked out so far. I have just done some preliminary tests to make sure signals get where they should. One interesting thing is that the voltage is constant, but the grounds are variable. This means the ground location is critical. In some designs, ground is ground. However the way these boards are set up, you need to ground very carefully or else things won’t work or could fry. I ended up stripping the 4 ground wires and connecting them to the Hotend connector and 4 power wires went to the positive side. This meant that some of the components that would normally have 2 or 3 connections only have 1. For instance the x-axis end stop just has one connector going to D3.
Thank you for your comments Matt.
I’m 2 years into this conversion and it is still working well for me. I’m helping a friend rebuild a much older printer (2013 production, not an i3 design) and this series of posts has been a help.