-
-
Notifications
You must be signed in to change notification settings - Fork 5.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Retroactively signing off some commits of mine. This squash consists of: commit 9831cf20d4cc08731e6d3d24989293e1085a74d1 Author: Charles Pickering <17918019+charlespick@users.noreply.github.com> Date: Mon Oct 4 14:56:17 2021 -0700 white space and fans commit d1c1d90 Author: Charles Pickering <17918019+charlespick@users.noreply.github.com> Date: Fri Sep 17 17:58:04 2021 -0700 minor changes todo: [fan] section commit f6eac58 Author: Charles Pickering <17918019+charlespick@users.noreply.github.com> Date: Fri Sep 17 17:20:53 2021 -0700 update docs commit 2bf1f8f Merge: 414e2d7 5fc73e3 Author: Charles Pickering <17918019+charlespick@users.noreply.github.com> Date: Fri Sep 17 16:26:49 2021 -0700 Merge remote-tracking branch 'origin/work-dual-car-docs-20210721' into work-dual-car-docs-20210721 commit 414e2d7 Author: Charles Pickering <17918019+charlespick@users.noreply.github.com> Date: Fri Sep 17 16:22:24 2021 -0700 update toolchange macros with offset management syste commit 5fc73e3 Merge: a3ee140 46167ca Author: charlespick <17918019+charlespick@users.noreply.github.com> Date: Thu Sep 16 13:30:47 2021 -0700 Merge branch 'master' into work-dual-car-docs-20210721 commit 46167ca Author: Kevin O'Connor <kevin@koconnor.net> Date: Sat Sep 4 14:20:24 2021 -0400 configfile: Add support for reporting deprecated options Add a new printer.configfile.warnings with a list of config features that are deprecated. Signed-off-by: Kevin O'Connor <kevin@koconnor.net> commit c89db24 Author: Kevin O'Connor <kevin@koconnor.net> Date: Sat Sep 4 13:25:11 2021 -0400 configfile: Setup get_status() results after check_unused_options() Signed-off-by: Kevin O'Connor <kevin@koconnor.net> commit 9d11b18 Author: truckershitch <10182029+truckershitch@users.noreply.github.com> Date: Wed Sep 15 18:58:30 2021 -0400 config: Document motor_power pin in skr2 config (#4677) This is just a short inline comment about Bigtreetech's implementation of the "anti-reversal stepper protection" and the way it should be handled in the Klipper printer configuration. Signed-off-by: Jerry Chapman <truckershitch@hambone.e4ward.com> commit 4b5d1c8 Author: Vladimir Serov <me@cab404.ru> Date: Thu Sep 16 01:31:47 2021 +0300 update_chitu: generating update uuid based on file hash (#4663) This makes update_chitu a pure function: same file in — same file out. That's something I need to make Nix builds for firmware itself reproducible. Signed-off-by: Vladimir Serov <me@cab404.ru> commit 8cf1b51 Author: Kevin O'Connor <kevin@koconnor.net> Date: Wed Sep 15 11:06:10 2021 -0400 linux: Support spidev4 through spidev7 The rpi4 has additional spi devices. Signed-off-by: Kevin O'Connor <kevin@koconnor.net> commit a3ee140 Author: charlespick <17918019+charlespick@users.noreply.github.com> Date: Tue Jul 27 11:22:29 2021 -0700 well that didn't go as expected Signed-off-by: Charles Pickering <charles.pickering@live.com> commit 4c73e6d Author: charlespick <17918019+charlespick@users.noreply.github.com> Date: Tue Jul 27 10:53:22 2021 -0700 changes_1 Signed-off-by: Charles Pickering <charles.pickering@live.com> commit 9d43291 Author: charlespick <17918019+charlespick@users.noreply.github.com> Date: Wed Jul 21 14:17:45 2021 -0700 docs: dual_carriage Added an STL for calibration, some gcode macros to the sample idex config, and an entire document on configuring an idex printer. Signed-off-by: Charles Pickering <charles.pickering@live.com> Signed-off-by: Charles Pickering <charles.pickering@live.com>
- Loading branch information
1 parent
c84956b
commit f2928f6
Showing
7 changed files
with
314 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,135 @@ | ||
This document provides **general** information on configuring and | ||
calibrating a standard IDEX printer. Klipper has support for very | ||
complex IDEX configurations, with multiple hotends and extruders on a | ||
single carriage, independent or grouped cooling fans, and much more, | ||
which are not covered in this document. | ||
|
||
# General configuration | ||
Start with studying, and possibly using parts of the [example config](../config/sample-idex.cfg) | ||
for IDEX printers. It has some distinct items that you may or may not | ||
wish to use. | ||
* Definition for `dual_carriage` on the X-axis, which you can change to | ||
be on the Y axis if that is how your printer is configured. | ||
* Sample macros for parking and switching toolheads. You should check | ||
these to make sure they make sense for your setup and update the | ||
position values with those that match your printer | ||
* Fan configurations mentioned later. | ||
* A macro for calibrating carriage separation described later in this | ||
document. | ||
|
||
# Tuning | ||
If you want to use both extruders to print different features of a | ||
single object, Klipper will need to know the positions of the extruders | ||
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 dual_carraige 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. | ||
|
||
Move the first carriage to this point and note it's position. Then, | ||
park carriage 1, and move carriage 2 to the same physical position. | ||
Note it's position (where Klipper "thinks" it is) and calculate the | ||
difference. | ||
|
||
In a standard setup where the carriages home to the sides with the | ||
primary on the left, you move the logical coordinate system for the | ||
secondary extruder to the right by lowering it's `position_endstop` | ||
value. | ||
|
||
Run `SET_SEPARATION Y={your calculated value}` to set the Y offset. | ||
|
||
Once you are within a few mm of accuracy, proceed to step 2 | ||
|
||
## Step 2 (~1mm) | ||
Configure the `calibrate_separation` macro in [the sample config](../config/sample-idex.cfg) | ||
for your bed size and dual_carriage axis, and add heating commands to | ||
it for the filament you'll be using. | ||
|
||
Load filament in both extruders, and run the macro. | ||
|
||
The test with the standard axis configuration should look as follows: | ||
|
||
![measuring print](img/separation-lines.png) | ||
|
||
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. | ||
|
||
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 | ||
filament you'll be using first. You'll also do better with a filament | ||
that is known to have better dimensional stability. Look for filaments | ||
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 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: | ||
|
||
| Part | Measurement | Calculation | | ||
|:--:|:--:|:--:| | ||
| Front | (mm) | 20 - (mm) | | ||
| Back | (mm) | (mm) - 20 | | ||
| Offset | | ^ Average ^ | | ||
|
||
![measuring print](img/separation-block.png) | ||
|
||
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} | ||
``` | ||
|
||
Repeat this step if nessesary until you are happy with the alignment. Rotate | ||
the object 90 degrees and repeat with the Y axis. | ||
|
||
## 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. | ||
|
||
If you want to use [input shaping](Resonance_compensation.md), | ||
calibrate the input shaper for each carriage separately and add g-code | ||
to your `T0` and `T1` etc commands to configure the input shaper when | ||
the active carriage changes. | ||
|
||
For support with Fluidd, SuperSlicer, consider overriding the `ACTIVATE_EXTRUDER` | ||
command to run T0, T1. | ||
|
||
If your printer has multiple part cooling fans, create `[fan_generic]` sections | ||
for each of them. For support with Klipper's default LCD resdout, consider using the | ||
`[fan]` section and macro elements in the sample. Otherwise, write your own M106 | ||
and M107 macros. | ||
|
||
Print a few objects to ensure everything is working as expected! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.