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