Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
b899a96
Update tool_change.cpp
RFBomb Feb 20, 2021
2a66a05
misc. updates
thinkyhead Feb 21, 2021
ae9c4c5
Create tool_change_Revised.cpp
RFBomb Mar 23, 2021
4718c3d
Merge remote-tracking branch 'upstream/bugfix-2.0.x' into pr/21142
thinkyhead Mar 23, 2021
f61f033
Merge remote-tracking branch 'upstream/bugfix-2.0.x' into pr/21142
thinkyhead Mar 24, 2021
0a55679
Merge remote-tracking branch 'github-desktop-rfbomb/Update_ToolChange…
thinkyhead Mar 24, 2021
cf1128f
Merge remote-tracking branch 'upstream/bugfix-2.0.x' into pr/21142
thinkyhead May 11, 2021
8f50fd3
Merge branch 'Update_ToolChange_Retraction' of https://github.com/RFB…
thinkyhead May 11, 2021
c0c9558
post-merge cleanup
thinkyhead May 11, 2021
0261d64
Merge branch 'bugfix-2.0.x' into pr/21142
thinkyhead Jan 25, 2022
4a5c3b7
Fix redundant PID case
thinkyhead Feb 10, 2022
f3ec875
Merge branch 'bugfix-2.0.x' into pr/21142
thinkyhead Feb 10, 2022
d5c29ab
Update tool_change_Revised.cpp
thinkyhead Feb 10, 2022
f9ca895
Merge 'bugfix-2.0.x' into pr/21142
thinkyhead Feb 22, 2022
539e984
Cutting Recover Method
RFBomb Mar 27, 2022
3dc8552
Intermediate Commit
RFBomb Mar 27, 2022
10593e8
extruder_cutting_recover() && too_cold() Methods
RFBomb Mar 28, 2022
d579d2d
Extract new method to prime extruder
RFBomb Mar 28, 2022
baed265
Readability
RFBomb Mar 28, 2022
210587e
Relocate static variable declarations
RFBomb Mar 28, 2022
a5e0c71
Update Extruder_prime for SingleNozzle
RFBomb Mar 28, 2022
58cdf9d
Delete tool_change_Revised.cpp
RFBomb Mar 28, 2022
40be4eb
Modify Declarations
RFBomb Mar 28, 2022
a633fdf
Echo Debug for FIlament Swap
RFBomb Mar 29, 2022
6b1cb76
Undo Name Change
RFBomb Mar 29, 2022
f92ef12
Update tool_change.cpp
RFBomb Mar 29, 2022
c0e1369
Clarify method comments
RFBomb Mar 29, 2022
5f5310a
Merge branch 'bugfix-2.0.x' into pr/21142
thinkyhead Mar 29, 2022
4642925
clean up
thinkyhead Mar 29, 2022
ac49660
Remove extra qualification
RFBomb Mar 31, 2022
971bac7
Rename TOOLCHANGE_FS_INIT_BEFORE_SWAP to TOOLCHANGE_FS_SLOW_FIRST_PRIME
RFBomb Mar 31, 2022
31c316f
Merge remote-tracking branch 'upstream/bugfix-2.0.x' into pr/21142
thinkyhead Apr 1, 2022
e8ea0db
restore configs
thinkyhead Apr 1, 2022
9098609
Merge branch 'bugfix-2.0.x' into pr/21142
thinkyhead Apr 1, 2022
5e02ae8
global strings
thinkyhead Apr 2, 2022
7e30a78
thinkyhead Apr 2, 2022
6543a29
more axes
thinkyhead Apr 2, 2022
a2f2b02
fix F and D units
thinkyhead Apr 2, 2022
ab8f7e1
simplify first prime code
thinkyhead Apr 4, 2022
113957f
Merge remote-tracking branch 'upstream/bugfix-2.0.x' into pr/21142
thinkyhead Apr 4, 2022
47a5b18
use flags type
thinkyhead Apr 4, 2022
44025ff
Fix a serial print
thinkyhead Apr 4, 2022
e6ea8b3
Fix flags typo
thinkyhead Apr 9, 2022
c41ecae
cleanup
thinkyhead Apr 10, 2022
3c3aca2
Merge branch 'bugfix-2.0.x' into pr/21142
thinkyhead Apr 10, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 9 additions & 5 deletions Marlin/Configuration_adv.h
Original file line number Diff line number Diff line change
Expand Up @@ -2494,12 +2494,16 @@
#define TOOLCHANGE_FS_FAN_SPEED 255 // 0-255
#define TOOLCHANGE_FS_FAN_TIME 10 // (seconds)

// Swap uninitialized extruder (using TOOLCHANGE_FS_PRIME_SPEED feedrate)
// (May break filament if not retracted beforehand.)
//#define TOOLCHANGE_FS_INIT_BEFORE_SWAP
// Use TOOLCHANGE_FS_PRIME_SPEED feedrate the first time each extruder is primed
//#define TOOLCHANGE_FS_SLOW_FIRST_PRIME

// Prime on the first T0 (For other tools use TOOLCHANGE_FS_INIT_BEFORE_SWAP)
// Enable with M217 V1 before printing to avoid unwanted priming on host connect
/**
* Prime T0 the first time T0 is sent to the printer:
* [ Power-On -> T0 { Activate & Prime T0 } -> T1 { Retract T0, Activate & Prime T1 } ]
* If disabled, no priming on T0 until switching back to T0 from another extruder:
* [ Power-On -> T0 { T0 Activated } -> T1 { Activate & Prime T1 } -> T0 { Retract T1, Activate & Prime T0 } ]
* Enable with M217 V1 before printing to avoid unwanted priming on host connect.
*/
//#define TOOLCHANGE_FS_PRIME_FIRST_USED

/**
Expand Down
60 changes: 30 additions & 30 deletions Marlin/src/gcode/config/M217.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,31 +34,31 @@
#include "../../MarlinCore.h" // for SP_X_STR, etc.

/**
* M217 - Set SINGLENOZZLE toolchange parameters
* M217 - Set toolchange parameters
*
* // Tool change command
* Q Prime active tool and exit
*
* // Tool change settings
* S[linear] Swap length
* B[linear] Extra Swap length
* E[linear] Prime length
* P[linear/m] Prime speed
* R[linear/m] Retract speed
* U[linear/m] UnRetract speed
* V[linear] 0/1 Enable auto prime first extruder used
* W[linear] 0/1 Enable park & Z Raise
* X[linear] Park X (Requires TOOLCHANGE_PARK)
* Y[linear] Park Y (Requires TOOLCHANGE_PARK)
* I[linear] Park I (Requires TOOLCHANGE_PARK and NUM_AXES >= 4)
* J[linear] Park J (Requires TOOLCHANGE_PARK and NUM_AXES >= 5)
* K[linear] Park K (Requires TOOLCHANGE_PARK and NUM_AXES >= 6)
* C[linear] Park U (Requires TOOLCHANGE_PARK and NUM_AXES >= 7)
* H[linear] Park V (Requires TOOLCHANGE_PARK and NUM_AXES >= 8)
* O[linear] Park W (Requires TOOLCHANGE_PARK and NUM_AXES >= 9)
* Z[linear] Z Raise
* F[linear] Fan Speed 0-255
* G[linear/s] Fan time
* S[linear] Swap length
* B[linear] Extra Swap resume length
* E[linear] Extra Prime length (as used by M217 Q)
* P[linear/min] Prime speed
* R[linear/min] Retract speed
* U[linear/min] UnRetract speed
* V[linear] 0/1 Enable auto prime first extruder used
* W[linear] 0/1 Enable park & Z Raise
* X[linear] Park X (Requires TOOLCHANGE_PARK)
* Y[linear] Park Y (Requires TOOLCHANGE_PARK)
* I[linear] Park I (Requires TOOLCHANGE_PARK and NUM_AXES >= 4)
* J[linear] Park J (Requires TOOLCHANGE_PARK and NUM_AXES >= 5)
* K[linear] Park K (Requires TOOLCHANGE_PARK and NUM_AXES >= 6)
* C[linear] Park U (Requires TOOLCHANGE_PARK and NUM_AXES >= 7)
* H[linear] Park V (Requires TOOLCHANGE_PARK and NUM_AXES >= 8)
* O[linear] Park W (Requires TOOLCHANGE_PARK and NUM_AXES >= 9)
* Z[linear] Z Raise
* F[speed] Fan Speed 0-255
* D[seconds] Fan time
*
* Tool migration settings
* A[0|1] Enable auto-migration on runout
Expand All @@ -82,8 +82,8 @@ void GcodeSuite::M217() {
if (parser.seenval('R')) { const int16_t v = parser.value_linear_units(); toolchange_settings.retract_speed = constrain(v, 10, 5400); }
if (parser.seenval('U')) { const int16_t v = parser.value_linear_units(); toolchange_settings.unretract_speed = constrain(v, 10, 5400); }
#if TOOLCHANGE_FS_FAN >= 0 && HAS_FAN
if (parser.seenval('F')) { const int16_t v = parser.value_linear_units(); toolchange_settings.fan_speed = constrain(v, 0, 255); }
if (parser.seenval('G')) { const int16_t v = parser.value_linear_units(); toolchange_settings.fan_time = constrain(v, 1, 30); }
if (parser.seenval('F')) { const uint16_t v = parser.value_ushort(); toolchange_settings.fan_speed = constrain(v, 0, 255); }
if (parser.seenval('D')) { const uint16_t v = parser.value_ushort(); toolchange_settings.fan_time = constrain(v, 1, 30); }
#endif
#endif

Expand Down Expand Up @@ -171,7 +171,7 @@ void GcodeSuite::M217_report(const bool forReplay/*=true*/) {
SERIAL_ECHOPGM(" R", LINEAR_UNIT(toolchange_settings.retract_speed),
" U", LINEAR_UNIT(toolchange_settings.unretract_speed),
" F", toolchange_settings.fan_speed,
" G", toolchange_settings.fan_time);
" D", toolchange_settings.fan_time);

#if ENABLED(TOOLCHANGE_MIGRATION_FEATURE)
SERIAL_ECHOPGM(" A", migration.automode);
Expand All @@ -186,13 +186,13 @@ void GcodeSuite::M217_report(const bool forReplay/*=true*/) {
, SP_Y_STR, LINEAR_UNIT(toolchange_settings.change_point.y)
#endif
#if SECONDARY_AXES >= 1
, LIST_N(DOUBLE(SECONDARY_AXES),
PSTR(" I"), I_AXIS_UNIT(toolchange_settings.change_point.i),
PSTR(" J"), J_AXIS_UNIT(toolchange_settings.change_point.j),
PSTR(" K"), K_AXIS_UNIT(toolchange_settings.change_point.k),
SP_C_STR, U_AXIS_UNIT(toolchange_settings.change_point.u),
PSTR(" H"), V_AXIS_UNIT(toolchange_settings.change_point.v),
PSTR(" O"), W_AXIS_UNIT(toolchange_settings.change_point.w)
, LIST_N(DOUBLE(SECONDARY_AXES)
, SP_I_STR, I_AXIS_UNIT(toolchange_settings.change_point.i)
, SP_J_STR, J_AXIS_UNIT(toolchange_settings.change_point.j)
, SP_K_STR, K_AXIS_UNIT(toolchange_settings.change_point.k)
, SP_C_STR, U_AXIS_UNIT(toolchange_settings.change_point.u)
, PSTR(" H"), V_AXIS_UNIT(toolchange_settings.change_point.v)
, PSTR(" O"), W_AXIS_UNIT(toolchange_settings.change_point.w)
)
#endif
);
Expand Down
2 changes: 1 addition & 1 deletion Marlin/src/inc/Conditionals_LCD.h
Original file line number Diff line number Diff line change
Expand Up @@ -712,7 +712,7 @@
* Number of Primary Linear Axes (e.g., XYZ)
* X, XY, or XYZ axes. Excluding duplicate axes (X2, Y2. Z2. Z3, Z4)
*/
#if HAS_I_AXIS
#if NUM_AXES >= 3
#define PRIMARY_LINEAR_AXES 3
#else
#define PRIMARY_LINEAR_AXES NUM_AXES
Expand Down
2 changes: 2 additions & 0 deletions Marlin/src/inc/SanityCheck.h
Original file line number Diff line number Diff line change
Expand Up @@ -390,6 +390,8 @@
#error "ENDSTOP_NOISE_FILTER is now ENDSTOP_NOISE_THRESHOLD [2-7]."
#elif defined(RETRACT_ZLIFT)
#error "RETRACT_ZLIFT is now RETRACT_ZRAISE."
#elif defined(TOOLCHANGE_FS_INIT_BEFORE_SWAP)
#error "TOOLCHANGE_FS_INIT_BEFORE_SWAP is now TOOLCHANGE_FS_SLOW_FIRST_PRIME."
#elif defined(TOOLCHANGE_PARK_ZLIFT) || defined(TOOLCHANGE_UNPARK_ZLIFT)
#error "TOOLCHANGE_PARK_ZLIFT and TOOLCHANGE_UNPARK_ZLIFT are now TOOLCHANGE_ZRAISE."
#elif defined(SINGLENOZZLE_TOOLCHANGE_ZRAISE)
Expand Down
4 changes: 2 additions & 2 deletions Marlin/src/lcd/menu/menu_configuration.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -122,8 +122,8 @@ void menu_advanced_settings();
EDIT_ITEM_FAST(int4, MSG_SINGLENOZZLE_UNRETRACT_SPEED, &toolchange_settings.unretract_speed, 10, 5400);
EDIT_ITEM(float3, MSG_FILAMENT_PURGE_LENGTH, &toolchange_settings.extra_prime, 0, max_extrude);
EDIT_ITEM_FAST(int4, MSG_SINGLENOZZLE_PRIME_SPEED, &toolchange_settings.prime_speed, 10, 5400);
EDIT_ITEM_FAST(int4, MSG_SINGLENOZZLE_FAN_SPEED, &toolchange_settings.fan_speed, 0, 255);
EDIT_ITEM_FAST(int4, MSG_SINGLENOZZLE_FAN_TIME, &toolchange_settings.fan_time, 1, 30);
EDIT_ITEM_FAST(uint8, MSG_SINGLENOZZLE_FAN_SPEED, &toolchange_settings.fan_speed, 0, 255);
EDIT_ITEM_FAST(uint8, MSG_SINGLENOZZLE_FAN_TIME, &toolchange_settings.fan_time, 1, 30);
#endif
EDIT_ITEM(float3, MSG_TOOL_CHANGE_ZLIFT, &toolchange_settings.z_raise, 0, 10);
END_MENU();
Expand Down
Loading