diff --git a/docs/Dual_Carriage.md b/docs/Dual_Carriage.md index 98c9af2c8017..8464407bf728 100644 --- a/docs/Dual_Carriage.md +++ b/docs/Dual_Carriage.md @@ -28,6 +28,9 @@ relative to each other. Because Klipper configures this by the endstop position, you will need to calibrate your [rotation distance](Rotation_Distance.md) first. +For the finest accuracy, you should consider calibrating the homing +[endstop phase](endstop_phase.md) of your x axis motors. + ## Step 1 (~5mm) Start by literally eyeballing it. Put a piece of tape on your bed or use a line or other graphic already on your bed as a reference point. @@ -59,7 +62,11 @@ Note the lines should be colinear. If they are not, adjust your `position_endstop` setting as noted in step 1. Once they are visually aligned, proceed to step 3. -## Step 3 (~0.05mm) +At this point you should re-tune your mins and maxes for each axis when +the other is parked by issuing slow, small movements until they +collide. + +## Step 3 (~.1 - .025mm) While the measuring process of this step accounts for symmetric horizontal expansion, you will likely achieve better results by calibrating the flow, temperature, and pressure advance for the @@ -69,24 +76,49 @@ that can be printed without a heated bed. Use a slicer to generate g-code for the multi-part print found in [docs/prints/calibrate_idex.stl](prints/calibrate_idex.stl). -Align the slot down the middle with the axis of your `dual_carriage`. -Configure your slicer to print the 2 parts using extruders on opposite -carriages. I highly recommend using identical filaments printed with -the same temperature, etc. Nothing else matters as long as the wall -quality is smooth. Print the object. +Align the long direction of the print perpendicular to the axis of your +`dual_carriage`. Configure your slicer to print the upper part using +the right extruder. I highly recommend using identical filaments printed with +the same temperature, etc. Use a rather coarse layer height since you +have not yet calibrated your Z offset. Print the object. + +Use calipers or better, a micrometer to measure the 2 measureing points +(refer to the image below). Complete the following table: -Use calipers to measure the inner and outer distances as follows. -Average your inner and outer measurements, calculate the difference -from the nominal value (which is 40mm), and adjust your `position_endstop` -setting as noted in step 1. +| Part | Measurement | Calculation | +|:--:|:--:|:--:| +| Front | (mm) | 20 - (mm) | +| Back | (mm) | (mm) - 20 | +| Offset | | ^ Average ^ | ![measuring print](img/separation-block.png) -# Next steps -At this point you should re-tune your mins and maxes for each axis when -the other is parked by issuing slow, small movements until they -collide. +You should be left with the adjustment that should be made to compensate +for any alignment error. Save this to the printer by running: +``` +SET_SEPARATION X_ADJUST={your calculated value} +``` +If this sounds confusing, you can check your work with the following analysis: +if the front measurement is more than 20mm by more than the difference of the back +measurement and 20, the right extruder is printing too far to the right. The +`X_ADJUST` value should be negative because the offset needs to move to +the left, towards the origin (or negative if your origin is centered). + +Repeat this step if nessesary until you are happy with the alignment and with the Y axis if nessesary. + +## Step 4 (required for high quality printing) +To print with low layer thicknesses, you'll probably find that the error +between your nozzles in the Z axis is more than your layer height itself. +Start with a piece of paper and switch between the extruders until the pressure feels roughly the same on both extruders. Make sure you're testing the exact same point on +your bed. + +Prepare to print a square about 10x10x5mm. Slice the object twice with the only difference being which extruder is used. MAKE SURE IT IS IN THE SAME PLACE ON YOUR BED. + +Use calipers or better, a micrometer to measure the height of the two samples and +adjust the Z offset as nessesary. + +# Next steps Configure a homing override to make sure that the inactive carriage is fully parked in all scenarios. diff --git a/docs/img/separation-block.png b/docs/img/separation-block.png index 31a94ddffcef..e5b5c89360b9 100644 Binary files a/docs/img/separation-block.png and b/docs/img/separation-block.png differ diff --git a/docs/prints/calibrate_idex.stl b/docs/prints/calibrate_idex.stl index b5baa3f9842b..335cf28cbf0e 100644 Binary files a/docs/prints/calibrate_idex.stl and b/docs/prints/calibrate_idex.stl differ