RepRapPro Multimaterials

From RepRap
Revision as of 14:04, 25 March 2013 by Adrianbowyer (talk | contribs) (Hints and tips for multimaterial printing)
Jump to: navigation, search

Introduction | Frame assembly | Y axis assembly | X axis assembly | Z axis assembly | Heated bed assembly | Extruder drive assembly | Hot end assembly | Power supply | Wiring | Commissioning | Printing | Multi‑colour/multi‑materials | Colour Printing - Slic3r | Colour Printing - RepRapPro Slicer | Maintenance | Troubleshooting | Improvements

A notice about these instructions!

Since 1st April 2013, the RepRapPro Mendel has been superseded by the RepRapPro Tricolour and Mono Mendel.
If you are building the new machine, use the official, and most up to date, instructions on the RepRapPro wiki here


Introduction

This page describes the steps you need to take to build the multi-material and multi-colour version of RepRapPro Ltd's version of RepRap Mendel.

If you need the multi-colour/multi-materials slicer software, follow this link.

For the most part, the construction is the same as for the single-colour machine, and you should follow the instructions for that through to the end and get your machine working with a single colour/extruder before starting the work on this page. If you are upgrading an existing Mendel to colour, still read through the single-colour instructions - at various points there are extra tasks that you need to do for the colour upgrade. These sections are highlighted in green on the relevant pages.

When you have followed the single-colour machine instructions through to the end, then start...

Step 1 - Installing the slave electronics

...here.

Reprappro-multi-materials-slave-controller-parts.jpg
Hardware Quantity
Slave controller board 1
10-way pin header 2
Printed PCB clips 3
M3 nuts 3
M3 washers 6
25mm M3 screws 3
3mm I.D. poly tube 15mm
Crimp shell connectors 6
3-way shells 2
3-way ribbon cable 700mm

Reprappro-mendel-bed-ribbon-marking.jpg

Remember to disconnect both the power and the USB before making any electrical changes to your RepRap.

Run the tip of a felt pen along between two of the wires in the ribbon cable so you can tell which is which from either end. (This is a generic picture; the actual ribbon you want is 3 way.)

If the 10-way header pins are not already soldered into their locations in your Melzi master and slave controllers:

Reprappro-multi-materials-10-way-header.jpg

Solder them in now. You will find this easier if the circuit boards are not mounted on the machine.

The slave controller is mounted in exactly the same way as the master controller, but on the opposite side of the machine. Mount it with the screw connectors at the back, and the USB connector at the front and the bottom.

Reprappro-multi-materials-slave-mounted.jpg

Take the insulating tape off the power wires and connect them to the slave controller. Make sure to get the polarity right.

The Extruder 1 should already be wired into the master controller from when you got the machine working in single-colour mode.

Wire the other two extruders to the slave controller.

Extruder 2's motor goes to the X motor output of the slave, and its head goes to the slave's extruder heater and extruder thermistor connectors.

Extruder 3's motor goes to the Y motor output of the slave, and its head goes to the slave's bed heater and bed thermistor connectors.

Reprappro-multi-materials-master-slave-wire.jpg

Finally, put two three-way shell connectors on either end of a 660mm length of 3-way ribbon cable to connect the master controller to the slave:

  1. Rx on the master goes to Tx on the slave,
  2. Tx on the master goes to Rx on the slave, and
  3. SCL on the master goes to SCL on the slave.

Run the three wires across the bars at the front of the machine where no other wires run to minimise interference.

You will get the neatest result if you make the wire slightly too long, connect one end, run it and cable-tie it round the frame, then cut it to length and fit the connector at the other end.

Important: In the future, if you upgrade the firmware in either the master or the slave controller (details of how here), you must first disconnect one end of this 3-way wire. Reconnect it when you have finished reloading the firmware.

Step 2 - Check

Use your multimeter to check that the resistance between the case of the SD card holder on the slave controller and the outer metal shell of the XLR power input plug at the back of the machine is 0 ohms.

Check that the resistance between the + power input screw connection on the slave controller (the wire with no stripe) and the + power input screw connection on the master controller is 0 ohms.

Measure the resistance between the two screws on the power connector of the slave. This may start low and then rise. (This is the capacitors in the circuit charging up with the tiny current from the meter.) It should level out at a few hundred ohms.

Measure the resistance between the two screws on the bed power connector of the slave. This should be about 3 ohms.

Measure the resistance between the two screws on the hot-end heater resistor connector of the slave. This should be about 3 ohms.

Check the heated bed temperature sensor connector of the slave. The resistance should be about 10 kilohms. This is not just the resistance of the sensor. Other parts of the circuit on the controller board are in parallel with it.

Check the hot-end temperature sensor connector of the slave. The resistance should be about 10 kilohms. This is not just the resistance of the sensor. Other parts of the circuit on the controller board are in parallel with it.

Step 3 - Test that everything is working

If you are upgrading an existing RepRapPro Mendel then you will need to upgrade its firmware in its master controller. There are instructions here. If you have got a new Mendel together with the colour upgrade your new master controller should have the correct firmware already. Similarly a new slave controller will have its correct firmware.

Plug in the power and USB, and turn your RepRap on.

Run Pronterface and connect it to your RepRap.

Move the axes by a few millimeters in the + direction to make sure that they are still all working, and turn on the bed and check that it starts to warm up. Turn the bed off again.

Now home the X, Y, and Z axes, then raise Z by 10mm.

In Pronterface's "Send" window (bottom right) that allows you to transmit G Codes directly to your RepRap type in and send the following three commands:

G10 P0 X0 Y0 Z0 S100 R80
G10 P1 X-34 Y4 Z0 S100 R80
G10 P2 X-11 Y51 Z0 S100 R80

Nothing should happen.

The P numbers are the numbers of each extruder. The G10 command sets distance offsets in X, Y and Z for the numbered extruder and the working (S) and standby (R) temperatures it will use.

None of these settings have any effect until the given extruder is selected.

Move X and Y to (100, 100).

Select the third extruder (numbering starts at 0):

T2

(The "T" stands for "tool" - a G Code standard.) You should see its temperature start to rise. When it reaches its target temperature the X and Y axes will move to place it roughly where Extruder 0 was (that was the X-11 Y51 in the G10 command).

Select T1 and the same should happen.

Select T0 and the same should happen.

Send an M0 (switch motors and heaters off until they get another request) command.

Repeat the input of the G10 codes above with higher temperatures:

G10 P0 X0 Y0 Z0 S205 R160
G10 P1 X-34 Y4 Z0 S205 R160
G10 P2 X-11 Y51 Z0 S205 R160

Select "Motors Off" (top left in Pronterface).

Insert three different coloured filaments into the three extruder drives and feed them forward by hand turning the big gears until they are just visible in the PTFE tubes that lead to the hot ends.

Select each extruder in turn using the T commands described above, wait till it gets to temperature, and then drive the filament forward down the PTFE tube until it enters the nozzle (you can do this quite fast - say at 800 mm/min - but make sure you don't hit the hot end at that speed). Select a slower speed (200 mm/min for an 0.5mm nozzle; 80 mm/min for an 0.3mm nozzle) and drive the filament forward to extrude it and check that extrusion is working.

At the end of each test of each extruder, reverse a 5mm length of filament to reduce the pressure in its hot end (it's a good idea to get into a habit of doing this whenever you test an extruder by hand).

Find a pair of tweezers or a fine pair of needle-nosed pliers.

Send an M0 command and watch the temperatures drop. When they get to around 120 oC any plastic still on the ends of the nozzles will be sticky enough to pull it all away in one piece with the tweezers.

Carefully clean the nozzles of any plastic on their outsides.

Send the carriage and bed to X=100mm, Y=100mm. Then zero Z.

You should have left the second and third nozzles very slightly higher than the first on the X carriage when you put the hot ends on it. Now adjust the heights of the second and third nozzles so that they are at the same level above the glass as the first.


Step 4 - Your first multi-colour print!

Reprappro-multi-materials-example-print-2.jpg

Download the colour test object three-colour-testblock.rfo from our Github repository here. Don't worry if your test colour filaments are not white, red and green as in the picture above. You will still be able to print it in whatever three colours you have.

Then go to the RepRapPro Slicer page to find out how to slice it to G Codes and then print it, but before you do read the next section on registration.

Step 5 - Registration

Reprappro-multi-materials-registration.jpg

Stop your print after it has finished the first layer (press the reset buttons on the master and slave controllers, then move the X carriage to one side by hand to stop the nozzle sticking to the print).

The result will probably look something like the above picture. The rectangle at the front is the shield structure the software builds to keep the nozzles clean (which is why it is so dirty).

But as you can see, also the heads are not quite in registration. Use digital callipers to measure the X and Y errors (dx and dy) for each colour (purple and red here) relative to the plastic from Extruder 0 in the machine (white here).

When you first ran the slicer software it will have created a sub-directory in your home directory called .reprap (you will have to enable the viewing of hidden files to see it). In that directory there is another called Mendel-0.5mm (colour Mendel with 0.5mm nozzles). And in that directory there is a file called prologue.gcode that looks like this:

M110
G21
; Low temps so we don't wait for them
G10 P0 X0 Y0 Z0 S25.0 R25
G10 P1 X-33.7 Y3.2 Z0 S25.0 R25
G10 P2 X-12.6 Y49.4 Z0 S25.0 R25
G91
G1 Z5 F200
G90
; Make sure we are zeroing and offsetting relative to T0
T0 
M83
G92 E0
G28 X0
G28 Y0
G1 X100.0 Y100.0 F15000.0
G10 P0 X0 Y0 Z0 S205.0 R140.0
G10 P1 X-33.7 Y3.2 Z0 S205.0 R140.0
G10 P2 X-12.6 Y49.4 Z0 S205.0 R140.0
G28 Z0

This file is automatically added at the start of each print by the slicer program, and it sets the machine up. You can find out what all the G Codes mean here, but for the moment we are only concerned with the second three G10 lines.

These lines set the working (205oC) and standby (140oC) temperatures for each extruder, and its X, Y and Z offsets from Extruder 0 (which you will see has 0 offsets in the file).

If Extruder 0's offsets are 0 and Extruder 0 is the currently active extruder, the precise meaning of the X, Y (and Z) values is: "move this extruder by this much to place it where Extruder 0 is". As you can see, in the picture the red extruder (Extruder 2) is too far in +X and too far in +Y.

This means that the dx and dy values you measured have to be subtracted from the X and Y values on the G10 P2 line.

Open the file prologue.gcode using a text editor and make the changes.

You should never have to change the Z values from 0, incidentally. If you do the heads will collide with your print. (They are just there for completeness.) You should always adjust the Z offsets by using the nuts on the screws on the X carriage.

You may find it convenient to create a small G Code file on the SD card of your machine called, say, setup.g that contains the lines above (with your offsets in, obviously) except for the final G28 Z0. You can then simply run that file at any time to put your machine in a sensible state. Leaving the final G28 Z0 Z zero off will leave the heads in the air, which is probably the best place for them when you are not actually printing.

Hints and tips for multimaterial printing

  1. Make sure that you have the Watch or Monitor Printer checkbox in Pronterface unchecked when using the multicolour machine. Continually bombarding it with requests for its temperature (especially during a print) can occasionally cause trouble with the communications between the Master and the Slave controllers. (The problem occurs when the Master has requested the slave for its temperature as part of its internal operation, and Pronterface then coincidentally asks for that temperature again before the Slave has had a chance to reply to the first request.) You can click the Check temp button occasionally if you want - the probability of the problem occurring with just one click is vanishingly small.
  2. If you are running Pronterface and you press the reset button on the Master or Slave controllers, give things about 10 seconds after the controllers have rebooted themselves before you ask them to do anything.
  3. Accurately setting the number of stepper steps per millimetre of filament fed for a single-material machine is described here. Unfortunately Marlin can't handle different numbers of steps per millimetre for multiple extruders. The way to get round this is to set the value right for Extruder 0, and then to make small adjustments to the value of Extruder1_ExtrudeRatio (and Extruder 2 as well) in the RepRapPro Slicer software. For example, for Extruder 1 if you extrude 100mm of filament and you get 98 mm of filament, set the value of Extruder1_ExtrudeRatio to 1.0204 (= 100/98).