Is your feature request related to a problem? Please describe.
Until now, manual toolchange was not possible in Marlin. The Toolchange command did not stop movement for manual tool exchange and repeated toolchanges to the same tool index were skipped.
Are you looking for hardware support?
- A toolhead that allows tools (hotends/nozzles, Laser, probe, machining tools for a spindle)
- a tool setter mounted to the frame or bed and connected to the CALIBRATION_PIN
Describe the feature you want
Support for manual toolchange. It should be possible to perform manual tool changes by initiating a tool change to any new tool with tool index i where 0 >= i < TOOLS, as well as by initiating repeated tool changes with the same tool index (e.g. repearted T1). It should be possible to initiate the tool change with G-code T or via the LCD display using MarlinUI. The machine should
- move to a defined tool change position
- wait for the user to acknowledge tool change is finished and continue
- if the new tool is a hotend, heat up, purge and whipe the nozzle according to configuration
- Move to the old position, respecting pre-configured tool length when simple tool length compensation (G43) or tool centerpoint control (G43.4) is active.
- It should be possible to perform automatic tool length measurement with G-code G425.
Additional context
In branch Marlin2ForPipetbot, I implemented this feature.
Use these config options:
#define NOZZLE_PARK_FEATURE
#define ADVANCED_PAUSE_FEATURE
#define HOST_ACTION_COMMANDS
#define EMERGENCY_PARSER
#define MANUAL_SWITCHING_TOOLHEAD
#define TOOLS 3 // T0: Empty (Master tool), T1: Machining tools, T2: Probing tool.
#define CALIBRATION_GCODE
#define HOTEND_OFFSET_Z {0.0, -10.0, -2.0}
#define SAFE_TOOLCHANGE_START_Z 100 // A safe hight for tool change
#define MAN_ST_EEPROM_STORAGE
With these setting, G-code T1 moves up a few mm and then moves the Z axis to SAFE_TOOLCHANGE_START_Z and waits for the user to continue. The user can continue by doing one of the following things:
- Send M108
- On the LCD display in Touch mode, go out of the menus to the main status screen, observe a message that asks whether the user wants to continue and select "Continue"
- On the LCD display in Marlin mode (with MarlinUI), press the rotary encoder button or the "OK" button of the LCD display module.
At that point, if a tool index i >= HOTENDS was selected, a message "cold extrusion prevented" appears on the LCD display in touch mode. Otherwise, the hotend heats up and when the target temperature is reached, it is purged with filament. Finally, the tool moves the old position. It respects pre-configured tool length, if G43 or G43.4 are active.
Using the LCD display in Marlin Mode to initiate tool change:
- User navigates back to the main status screen and touches the display for 5 seconds or presses the rotary encoder of the LCD for 5 seconds and selects Marlin mode
- In Marlin Mode, the user navigates to the LCD menu "Tool Change" -> "Tools" and selects the tool to change to. The user can choose to change to the current tool index or any other tool index.
- After selecting the desired tool, the machine moves up a few mm and then moves the Z axis to SAFE_TOOLCHANGE_START_Z.
- The machine waits until the user does one of the following things:
- Sends M108,
- changes to touch mode and selects "Continue" or
- presses the button on the rotary encoder of the LCD module or the "OK" button of the LCD module.
Is your feature request related to a problem? Please describe.
Until now, manual toolchange was not possible in Marlin. The Toolchange command did not stop movement for manual tool exchange and repeated toolchanges to the same tool index were skipped.
Are you looking for hardware support?
Describe the feature you want
Support for manual toolchange. It should be possible to perform manual tool changes by initiating a tool change to any new tool with tool index i where 0 >= i < TOOLS, as well as by initiating repeated tool changes with the same tool index (e.g. repearted T1). It should be possible to initiate the tool change with G-code T or via the LCD display using MarlinUI. The machine should
Additional context
In branch Marlin2ForPipetbot, I implemented this feature.
Use these config options:
With these setting, G-code T1 moves up a few mm and then moves the Z axis to SAFE_TOOLCHANGE_START_Z and waits for the user to continue. The user can continue by doing one of the following things:
At that point, if a tool index i >= HOTENDS was selected, a message "cold extrusion prevented" appears on the LCD display in touch mode. Otherwise, the hotend heats up and when the target temperature is reached, it is purged with filament. Finally, the tool moves the old position. It respects pre-configured tool length, if G43 or G43.4 are active.
Using the LCD display in Marlin Mode to initiate tool change: