Steps for configuring a new extruder onto a TapChanger v0.2.5
- Re-tighten your carriage screws, this can be a cause of non-repeatable homing.
- If you use sensorless homing: make sure there is no occasional skipping while either axis are being homed! This may cause misalignment. If that is the case, lower the
homing_speed
in your printer's[stepper_x]
/[stepper_y]
configs. - Check your homing routine, ensure it homes Y before X, otherwise you may accidentally bump into docked tools, or you may get interference from the Y tensionner if you home X too close to the front of the printer.
Start by manually installing the new extruder in the carriage for the first few steps, until the Z offset is correct.
Make sure the basic config is correct before doing anything else.
The basics:
- Check heater
- Check fans
- Check extruder motor direction
- Lift toolhead manually to test probe action
- Run
PROBE_ACCURACY
to ensure there's no issue with the tap mechanism
Follow the guide for calibrating your extruder motor's rotation_distance
:
https://docs.vorondesign.com/build/startup/#extruder-calibration-e-steps
Follow the guide to auto-tune your PID, and make sure to save the PID values to the correct extruder's config file: https://docs.vorondesign.com/build/startup/#pid-tune-bed--hotend
This step is important and needs to be done idependently of the tool offset. This configures the offset for your Tap so that you can home with the new extruder. Until this is done, homing with the new extruder will mess up your Z alignment and pickup/dropoffs may not work reliably.
You can find your offset in your preferred manner (just like a regular Voron Tap), but until the first print I usually just do the paper method:
- Home and QGL
- Move using
G0 Znnn
with an ever smallernnn
value until the nozzle barely touches - Get the current Z position with
M114
- Update
z_offset
in[tool_probe tN]
config section - Restart klipper, test your new offset by repeating all steps until G0 Z0 zeroes nozzle on the bed correctly
After this step is done, you should be able to home the printer with any tool, then switch to a different tool, and still have your nozzle perfectly aligned with the bed at Z=0. This is a good test to perform after you have set your docking location for the new tool.
At this point, you can also test your new extruder with a single-extruder test print if you want to confirm your Z offset is accurate enough for printing.
Before starting, make sure your tap's Z offset is correct (step 5), otherwise homing won't be repeatable between your different extruders, and the docking location you find with this step won't be reliable either.
-
Start by homing and QGL. If you need to restart klipper before these steps are complete, make sure to manually put the tool back into the carriage and start again from step 1 since home & QGL must be done to get the correct offset.
-
Clear out the g-code offset that may have been applied. This must be done after homing since the homing override applies the current extruder's tool offset by calling
KTCC_SET_GCODE_OFFSET_FOR_CURRENT_TOOL
.SET_GCODE_OFFSET X=0 Y=0 Z=0 MOVE=1
-
Manually push the plug up into the carriage from below, while lifting the toolhead until the plug is fully inserted and the toolhead is fully out.
-
Manually put the toolhead you just removed into its dock. The pivot should be tilted upwards when you insert the toolhead, so that the magnet is ready to receive the plug:
-
Manually align the plug (move it inside the carriage) so the top of the plug is flush with top of carriage
-
Jog the carriage towards the toolhead you want to pick up. Move it until the top of the plug is right below the MGN9 rail, the plug and the rail should be perfectly in line with each other.
-
Look from the front of the printer, below the dock and make sure the plug lines up with the magnetic pivot, and the gaps on either side of the carriage seem about the same.
-
Run
M114
, this is the tool's "park" offset.[tool 2] # ... park: 172.7, -7.5, 260
Later during the first print, pay close attention whether layers from the same toolhead properly align after a dropoff/pickup, misalignment may indicate some skipping. The skipping can be caused by the carriage bumping into the dock and getting shoved to one side. If that's the case, come back to this step and make sure the park offsets are correct. This can also have other causes, like non-repeatable homing. Pay attention to skipping noises when picking up/dropping off, come back to this step if necessary.
Now test your work! After this step is done, you should be able to issue T0
, T1
, etc. to pickup and dropoff your extruders. If this doesn't work reliably, figure our why before continuing.
What can you do if you think your offset has moved, or pickup isn't consistent anymore?
- Home and QGL before starting
- Get the configured
park
offset from your[tool N]
config. For this example my coordinates are172.7, -7.5, 260
- Manually dock the toolhead and put the plug in the carriage (same as steps 2 to 4 above).
- Make sure you use absolute coordinates for the next steps:
G90
- Move your toolhead away from the tools first:
G0 Y100
- Move the toolhead at the correct X and Z height:
G0 X172.7 Z260
- Move the toolhead forward in the Y direction slowly, it should move right into the dock without bumping into the sides
- If that's not the case, manually adjust the X direction and update the park offset as needed.
When docking or undocking doesn't work correctly and you emergency stop, you can leave the printer into a state where you cannot safely home, so it's impossible to move the toolhead via the UI.
One way to handle this safely, without losing any bearings:
- De-energize the motors
- Move the gantry away from the tools
- Manually insert the plug into the carriage (use a finger to keep the bearings in place)
- Undock one of the toolheads manually and insert it in the carriage. Insert the toolhead from above, while the plug is pushed down out of the carriage.
- Re-home and don't forget to QGL since your gantry probably shifted too.
- Build https://github.com/viesturz/NozzleAlign and follow the instructions for finding your offset from tool 0.
- Alternatively:
- Use the paper method to find your Z offset, by first homing with tool 0, then pickup tool N, then jog until
G0 Znnn
zeroes the nozzle correctly. - Use https://www.thingiverse.com/thing:5212783/files to calibrate your X and Y offsets.
- Use the paper method to find your Z offset, by first homing with tool 0, then pickup tool N, then jog until
If you have a multi-nozzle extruder (like E3D Revo), install: https://github.com/garethky/change-nozzle-klipper-extra and use macros like these to automatically apply the correct pressure advance value for whatever your are printing.
Follow the guide to find the pressure advance value for each extruder+nozzle combination: https://ellis3dp.com/Pressure_Linear_Advance_Tool/
If you are using the macro linked above, add the value to your config in the table in your Tn
macro:
[gcode_macro T0]
variable_pressure_advance_table: {
# nozzle_diameter: pressure_advance_value
0.4: 0.035,
}
gcode:
KTCC_T0
# set pressure advance from table, the macro will filter and set only the appropriate one
{% set tool = printer.tool_probe_endstop.active_tool_number %}
{% for nozzle_diameter in pressure_advance_table %}
SET_EXTRUDER_PA TOOL={ tool } NOZZLE={ nozzle_diameter } ADVANCE={ pressure_advance_table[nozzle_diameter] }
{% endfor %}
For each extruder follow https://github.com/Klipper3d/klipper/blob/master/docs/Resonance_Compensation.md
For each nozzle you have, follow https://ellis3dp.com/Print-Tuning-Guide/articles/determining_max_volumetric_flow_rate.html
Once you have a max value for a given nozzle, the best way to store the value is by creating a filament in your slicer. It looks like none of the major slicers currently have a way to set a max volumetric flow per extruder (even less per nozzle for Revo). The only ways to apply a volumetric flow limit is on the print setting, which apply to all extruders, or on the filament.
The best solution I found is creating one filament configuration per nozzle type you want to print with, and this is where you can set your max flow rate, extrusion multiplier, and even give an extra temperature boost to one extruder (but not others) if needed.