Merge branch 'Development' into enhanced_g29
Latest upstream changes
This commit is contained in:
@ -154,6 +154,8 @@
|
||||
// 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)
|
||||
// M304 - Set bed PID parameters P I and D
|
||||
// M380 - Activate solenoid on active extruder
|
||||
// M381 - Disable all solenoids
|
||||
// M400 - Finish all moves
|
||||
// M401 - Lower z-probe if present
|
||||
// M402 - Raise z-probe if present
|
||||
@ -529,32 +531,28 @@ void setup_homepin(void)
|
||||
void setup_photpin()
|
||||
{
|
||||
#if defined(PHOTOGRAPH_PIN) && PHOTOGRAPH_PIN > -1
|
||||
SET_OUTPUT(PHOTOGRAPH_PIN);
|
||||
WRITE(PHOTOGRAPH_PIN, LOW);
|
||||
OUT_WRITE(PHOTOGRAPH_PIN, LOW);
|
||||
#endif
|
||||
}
|
||||
|
||||
void setup_powerhold()
|
||||
{
|
||||
#if defined(SUICIDE_PIN) && SUICIDE_PIN > -1
|
||||
SET_OUTPUT(SUICIDE_PIN);
|
||||
WRITE(SUICIDE_PIN, HIGH);
|
||||
OUT_WRITE(SUICIDE_PIN, HIGH);
|
||||
#endif
|
||||
#if defined(PS_ON_PIN) && PS_ON_PIN > -1
|
||||
SET_OUTPUT(PS_ON_PIN);
|
||||
#if defined(PS_DEFAULT_OFF)
|
||||
WRITE(PS_ON_PIN, PS_ON_ASLEEP);
|
||||
#else
|
||||
WRITE(PS_ON_PIN, PS_ON_AWAKE);
|
||||
#endif
|
||||
#if defined(PS_DEFAULT_OFF)
|
||||
OUT_WRITE(PS_ON_PIN, PS_ON_ASLEEP);
|
||||
#else
|
||||
OUT_WRITE(PS_ON_PIN, PS_ON_AWAKE);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
void suicide()
|
||||
{
|
||||
#if defined(SUICIDE_PIN) && SUICIDE_PIN > -1
|
||||
SET_OUTPUT(SUICIDE_PIN);
|
||||
WRITE(SUICIDE_PIN, LOW);
|
||||
OUT_WRITE(SUICIDE_PIN, LOW);
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -1437,10 +1435,10 @@ void process_commands()
|
||||
if(autoretract_enabled)
|
||||
if( !(code_seen('X') || code_seen('Y') || code_seen('Z')) && code_seen('E')) {
|
||||
float echange=destination[E_AXIS]-current_position[E_AXIS];
|
||||
if((echange<-MIN_RETRACT && !retracted) || (echange>MIN_RETRACT && retracted)) { //move appears to be an attempt to retract or recover
|
||||
if((echange<-MIN_RETRACT && !retracted[active_extruder]) || (echange>MIN_RETRACT && retracted[active_extruder])) { //move appears to be an attempt to retract or recover
|
||||
current_position[E_AXIS] = destination[E_AXIS]; //hide the slicer-generated retract/recover from calculations
|
||||
plan_set_e_position(current_position[E_AXIS]); //AND from the planner
|
||||
retract(!retracted);
|
||||
retract(!retracted[active_extruder]);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -2865,15 +2863,13 @@ Sigma_Exit:
|
||||
|
||||
#if defined(PS_ON_PIN) && PS_ON_PIN > -1
|
||||
case 80: // M80 - Turn on Power Supply
|
||||
SET_OUTPUT(PS_ON_PIN); //GND
|
||||
WRITE(PS_ON_PIN, PS_ON_AWAKE);
|
||||
OUT_WRITE(PS_ON_PIN, PS_ON_AWAKE); // GND
|
||||
|
||||
// If you have a switch on suicide pin, this is useful
|
||||
// if you want to start another print with suicide feature after
|
||||
// a print without suicide...
|
||||
#if defined SUICIDE_PIN && SUICIDE_PIN > -1
|
||||
SET_OUTPUT(SUICIDE_PIN);
|
||||
WRITE(SUICIDE_PIN, HIGH);
|
||||
OUT_WRITE(SUICIDE_PIN, HIGH);
|
||||
#endif
|
||||
|
||||
#ifdef ULTIPANEL
|
||||
@ -2898,8 +2894,7 @@ Sigma_Exit:
|
||||
st_synchronize();
|
||||
suicide();
|
||||
#elif defined(PS_ON_PIN) && PS_ON_PIN > -1
|
||||
SET_OUTPUT(PS_ON_PIN);
|
||||
WRITE(PS_ON_PIN, PS_ON_ASLEEP);
|
||||
OUT_WRITE(PS_ON_PIN, PS_ON_ASLEEP);
|
||||
#endif
|
||||
#ifdef ULTIPANEL
|
||||
powersupply = false;
|
||||
@ -3263,7 +3258,7 @@ Sigma_Exit:
|
||||
SERIAL_ECHO(extruder_offset[Z_AXIS][tmp_extruder]);
|
||||
#endif
|
||||
}
|
||||
SERIAL_ECHOLN("");
|
||||
SERIAL_EOL;
|
||||
}break;
|
||||
#endif
|
||||
case 220: // M220 S<factor in percent>- set speed factor override percentage
|
||||
@ -3482,8 +3477,7 @@ Sigma_Exit:
|
||||
{
|
||||
#ifdef CHDK
|
||||
|
||||
SET_OUTPUT(CHDK);
|
||||
WRITE(CHDK, HIGH);
|
||||
OUT_WRITE(CHDK, HIGH);
|
||||
chdkHigh = millis();
|
||||
chdkActive = true;
|
||||
|
||||
@ -3642,6 +3636,17 @@ Sigma_Exit:
|
||||
}
|
||||
break;
|
||||
#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
|
||||
{
|
||||
st_synchronize();
|
||||
@ -3883,9 +3888,7 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
|
||||
if(cnt==0)
|
||||
{
|
||||
#if BEEPER > 0
|
||||
SET_OUTPUT(BEEPER);
|
||||
|
||||
WRITE(BEEPER,HIGH);
|
||||
OUT_WRITE(BEEPER,HIGH);
|
||||
delay(3);
|
||||
WRITE(BEEPER,LOW);
|
||||
delay(3);
|
||||
@ -4146,6 +4149,13 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
|
||||
prepare_move();
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef EXT_SOLENOID
|
||||
st_synchronize();
|
||||
disable_all_solenoids();
|
||||
enable_solenoid_on_active_extruder();
|
||||
#endif //EXT_SOLENOID
|
||||
|
||||
#endif
|
||||
SERIAL_ECHO_START;
|
||||
SERIAL_ECHO(MSG_ACTIVE_EXTRUDER);
|
||||
@ -4855,7 +4865,6 @@ bool setTargetedHotend(int code){
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
float calculate_volumetric_multiplier(float diameter) {
|
||||
if (!volumetric_enabled || diameter == 0) return 1.0;
|
||||
float d2 = diameter * 0.5;
|
||||
@ -4866,3 +4875,43 @@ void calculate_volumetric_multipliers() {
|
||||
for (int i=0; i<EXTRUDERS; i++)
|
||||
volumetric_multiplier[i] = calculate_volumetric_multiplier(filament_size[i]);
|
||||
}
|
||||
|
||||
#ifdef EXT_SOLENOID
|
||||
|
||||
void enable_solenoid(uint8_t num) {
|
||||
switch(num) {
|
||||
case 0:
|
||||
OUT_WRITE(SOL0_PIN, HIGH);
|
||||
break;
|
||||
#if defined(SOL1_PIN) && SOL1_PIN > -1
|
||||
case 1:
|
||||
OUT_WRITE(SOL1_PIN, HIGH);
|
||||
break;
|
||||
#endif
|
||||
#if defined(SOL2_PIN) && SOL2_PIN > -1
|
||||
case 2:
|
||||
OUT_WRITE(SOL2_PIN, HIGH);
|
||||
break;
|
||||
#endif
|
||||
#if defined(SOL3_PIN) && SOL3_PIN > -1
|
||||
case 3:
|
||||
OUT_WRITE(SOL3_PIN, HIGH);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
SERIAL_ECHO_START;
|
||||
SERIAL_ECHOLNPGM(MSG_INVALID_SOLENOID);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void enable_solenoid_on_active_extruder() { enable_solenoid(active_extruder); }
|
||||
|
||||
void disable_all_solenoids() {
|
||||
OUT_WRITE(SOL0_PIN, LOW);
|
||||
OUT_WRITE(SOL1_PIN, LOW);
|
||||
OUT_WRITE(SOL2_PIN, LOW);
|
||||
OUT_WRITE(SOL3_PIN, LOW);
|
||||
}
|
||||
|
||||
#endif //EXT_SOLENOID
|
||||
|
Reference in New Issue
Block a user