|
@ -154,6 +154,8 @@ |
|
|
// M302 - Allow cold extrudes, or set the minimum extrude S<temperature>.
|
|
|
// M302 - Allow cold extrudes, or set the minimum extrude S<temperature>.
|
|
|
// M303 - PID relay autotune S<temperature> sets the target temperature. (default target temperature = 150C)
|
|
|
// M303 - PID relay autotune S<temperature> sets the target temperature. (default target temperature = 150C)
|
|
|
// M304 - Set bed PID parameters P I and D
|
|
|
// M304 - Set bed PID parameters P I and D
|
|
|
|
|
|
// M380 - Activate solenoid on active extruder
|
|
|
|
|
|
// M381 - Disable all solenoids
|
|
|
// M400 - Finish all moves
|
|
|
// M400 - Finish all moves
|
|
|
// M401 - Lower z-probe if present
|
|
|
// M401 - Lower z-probe if present
|
|
|
// M402 - Raise z-probe if present
|
|
|
// M402 - Raise z-probe if present
|
|
@ -3497,6 +3499,17 @@ Sigma_Exit: |
|
|
} |
|
|
} |
|
|
break; |
|
|
break; |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
#ifdef EXT_SOLENOID |
|
|
|
|
|
case 380: |
|
|
|
|
|
enable_solenoid_on_active_extruder(); |
|
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
|
|
case 381: |
|
|
|
|
|
disable_all_solenoids(); |
|
|
|
|
|
break; |
|
|
|
|
|
#endif //EXT_SOLENOID
|
|
|
|
|
|
|
|
|
case 400: // M400 finish all moves
|
|
|
case 400: // M400 finish all moves
|
|
|
{ |
|
|
{ |
|
|
st_synchronize(); |
|
|
st_synchronize(); |
|
@ -4000,6 +4013,13 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp |
|
|
prepare_move(); |
|
|
prepare_move(); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#ifdef EXT_SOLENOID |
|
|
|
|
|
st_synchronize(); |
|
|
|
|
|
disable_all_solenoids(); |
|
|
|
|
|
enable_solenoid_on_active_extruder(); |
|
|
|
|
|
#endif //EXT_SOLENOID
|
|
|
|
|
|
|
|
|
#endif |
|
|
#endif |
|
|
SERIAL_ECHO_START; |
|
|
SERIAL_ECHO_START; |
|
|
SERIAL_ECHO(MSG_ACTIVE_EXTRUDER); |
|
|
SERIAL_ECHO(MSG_ACTIVE_EXTRUDER); |
|
@ -4707,7 +4727,6 @@ bool setTargetedHotend(int code){ |
|
|
return false; |
|
|
return false; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
float calculate_volumetric_multiplier(float diameter) { |
|
|
float calculate_volumetric_multiplier(float diameter) { |
|
|
if (!volumetric_enabled || diameter == 0) return 1.0; |
|
|
if (!volumetric_enabled || diameter == 0) return 1.0; |
|
|
float d2 = diameter * 0.5; |
|
|
float d2 = diameter * 0.5; |
|
@ -4718,3 +4737,49 @@ void calculate_volumetric_multipliers() { |
|
|
for (int i=0; i<EXTRUDERS; i++) |
|
|
for (int i=0; i<EXTRUDERS; i++) |
|
|
volumetric_multiplier[i] = calculate_volumetric_multiplier(filament_size[i]); |
|
|
volumetric_multiplier[i] = calculate_volumetric_multiplier(filament_size[i]); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#ifdef EXT_SOLENOID |
|
|
|
|
|
void enable_solenoid(uint8_t num) { |
|
|
|
|
|
if(num == 0) { |
|
|
|
|
|
SET_OUTPUT(SOL0_PIN); |
|
|
|
|
|
WRITE(SOL0_PIN,HIGH); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if(num == 1){ |
|
|
|
|
|
SET_OUTPUT(SOL1_PIN); |
|
|
|
|
|
WRITE(SOL1_PIN,HIGH); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if(num == 2){ |
|
|
|
|
|
SET_OUTPUT(SOL2_PIN); |
|
|
|
|
|
WRITE(SOL2_PIN,HIGH); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if(num == 3){ |
|
|
|
|
|
SET_OUTPUT(SOL3_PIN); |
|
|
|
|
|
WRITE(SOL3_PIN,HIGH); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void enable_solenoid_on_active_extruder() { |
|
|
|
|
|
enable_solenoid(active_extruder); |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void disable_all_solenoids() { |
|
|
|
|
|
SET_OUTPUT(SOL0_PIN); |
|
|
|
|
|
SET_OUTPUT(SOL1_PIN); |
|
|
|
|
|
SET_OUTPUT(SOL2_PIN); |
|
|
|
|
|
SET_OUTPUT(SOL3_PIN); |
|
|
|
|
|
|
|
|
|
|
|
WRITE(SOL0_PIN,LOW); |
|
|
|
|
|
WRITE(SOL1_PIN,LOW); |
|
|
|
|
|
WRITE(SOL2_PIN,LOW); |
|
|
|
|
|
WRITE(SOL3_PIN,LOW); |
|
|
|
|
|
|
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#endif //EXT_SOLENOID
|
|
|