Merge branch 'reisnyderb' of https://github.com/ErikZalm/Marlin into Marlin_v1
This commit is contained in:
commit
79374f0b93
6 changed files with 254 additions and 203 deletions
|
@ -90,10 +90,14 @@
|
||||||
// 55 is 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan) (1k pullup)
|
// 55 is 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan) (1k pullup)
|
||||||
|
|
||||||
#define TEMP_SENSOR_0 -1
|
#define TEMP_SENSOR_0 -1
|
||||||
#define TEMP_SENSOR_1 0
|
#define TEMP_SENSOR_1 -1
|
||||||
#define TEMP_SENSOR_2 0
|
#define TEMP_SENSOR_2 0
|
||||||
#define TEMP_SENSOR_BED 0
|
#define TEMP_SENSOR_BED 0
|
||||||
|
|
||||||
|
// This makes temp sensor 1 a redundant sensor for sensor 0. If the temperatures difference between these sensors is to high the print will be aborted.
|
||||||
|
//#define TEMP_SENSOR_1_AS_REDUNDANT
|
||||||
|
#define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10
|
||||||
|
|
||||||
// Actual temperature must be close to target for this long before M109 returns success
|
// Actual temperature must be close to target for this long before M109 returns success
|
||||||
#define TEMP_RESIDENCY_TIME 10 // (seconds)
|
#define TEMP_RESIDENCY_TIME 10 // (seconds)
|
||||||
#define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one
|
#define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one
|
||||||
|
|
|
@ -318,6 +318,9 @@ const unsigned int dropsegments=5; //everything with less than this number of st
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//============================= Define Defines ============================
|
//============================= Define Defines ============================
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
#if EXTRUDERS > 1 && defined TEMP_SENSOR_1_AS_REDUNDANT
|
||||||
|
#error "You cannot use TEMP_SENSOR_1_AS_REDUNDANT if EXTRUDERS > 1"
|
||||||
|
#endif
|
||||||
|
|
||||||
#if TEMP_SENSOR_0 > 0
|
#if TEMP_SENSOR_0 > 0
|
||||||
#define THERMISTORHEATER_0 TEMP_SENSOR_0
|
#define THERMISTORHEATER_0 TEMP_SENSOR_0
|
||||||
|
|
|
@ -1055,7 +1055,7 @@ void process_commands()
|
||||||
case 105 : // M105
|
case 105 : // M105
|
||||||
if(setTargetedHotend(105)){
|
if(setTargetedHotend(105)){
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#if defined(TEMP_0_PIN) && TEMP_0_PIN > -1
|
#if defined(TEMP_0_PIN) && TEMP_0_PIN > -1
|
||||||
SERIAL_PROTOCOLPGM("ok T:");
|
SERIAL_PROTOCOLPGM("ok T:");
|
||||||
SERIAL_PROTOCOL_F(degHotend(tmp_extruder),1);
|
SERIAL_PROTOCOL_F(degHotend(tmp_extruder),1);
|
||||||
|
@ -2281,4 +2281,4 @@ bool setTargetedHotend(int code){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
323
Marlin/pins.h
323
Marlin/pins.h
|
@ -313,189 +313,200 @@
|
||||||
|
|
||||||
#if MOTHERBOARD == 33 || MOTHERBOARD == 34
|
#if MOTHERBOARD == 33 || MOTHERBOARD == 34
|
||||||
|
|
||||||
#define LARGE_FLASH true
|
#define LARGE_FLASH true
|
||||||
|
|
||||||
#define X_STEP_PIN 54
|
#define X_STEP_PIN 54
|
||||||
#define X_DIR_PIN 55
|
#define X_DIR_PIN 55
|
||||||
#define X_ENABLE_PIN 38
|
#define X_ENABLE_PIN 38
|
||||||
#define X_MIN_PIN 3
|
#define X_MIN_PIN 3
|
||||||
#define X_MAX_PIN 2
|
#define X_MAX_PIN 2
|
||||||
|
|
||||||
#define Y_STEP_PIN 60
|
#define Y_STEP_PIN 60
|
||||||
#define Y_DIR_PIN 61
|
#define Y_DIR_PIN 61
|
||||||
#define Y_ENABLE_PIN 56
|
#define Y_ENABLE_PIN 56
|
||||||
#define Y_MIN_PIN 14
|
#define Y_MIN_PIN 14
|
||||||
#define Y_MAX_PIN 15
|
#define Y_MAX_PIN 15
|
||||||
|
|
||||||
#define Z_STEP_PIN 46
|
#define Z_STEP_PIN 46
|
||||||
#define Z_DIR_PIN 48
|
#define Z_DIR_PIN 48
|
||||||
#define Z_ENABLE_PIN 62
|
#define Z_ENABLE_PIN 62
|
||||||
#define Z_MIN_PIN 18
|
#define Z_MIN_PIN 18
|
||||||
#define Z_MAX_PIN 19
|
#define Z_MAX_PIN 19
|
||||||
|
|
||||||
#define Z2_STEP_PIN 36
|
#define Z2_STEP_PIN 36
|
||||||
#define Z2_DIR_PIN 34
|
#define Z2_DIR_PIN 34
|
||||||
#define Z2_ENABLE_PIN 30
|
#define Z2_ENABLE_PIN 30
|
||||||
|
|
||||||
#define E0_STEP_PIN 26
|
#define E0_STEP_PIN 26
|
||||||
#define E0_DIR_PIN 28
|
#define E0_DIR_PIN 28
|
||||||
#define E0_ENABLE_PIN 24
|
#define E0_ENABLE_PIN 24
|
||||||
|
|
||||||
#define E1_STEP_PIN 36
|
#define E1_STEP_PIN 36
|
||||||
#define E1_DIR_PIN 34
|
#define E1_DIR_PIN 34
|
||||||
#define E1_ENABLE_PIN 30
|
#define E1_ENABLE_PIN 30
|
||||||
|
|
||||||
#define SDPOWER -1
|
#define SDPOWER -1
|
||||||
#define SDSS 53
|
#define SDSS 53
|
||||||
#define LED_PIN 13
|
#define LED_PIN 13
|
||||||
|
|
||||||
#if MOTHERBOARD == 33
|
#if MOTHERBOARD == 33
|
||||||
#define FAN_PIN 9 // (Sprinter config)
|
#define FAN_PIN 9 // (Sprinter config)
|
||||||
#else
|
#else
|
||||||
#define FAN_PIN 4 // IO pin. Buffer needed
|
#define FAN_PIN 4 // IO pin. Buffer needed
|
||||||
#endif
|
|
||||||
#define PS_ON_PIN 12
|
|
||||||
|
|
||||||
#if defined(REPRAP_DISCOUNT_SMART_CONTROLLER) || defined(G3D_PANEL)
|
|
||||||
#define KILL_PIN 41
|
|
||||||
#else
|
|
||||||
#define KILL_PIN -1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define HEATER_0_PIN 10 // EXTRUDER 1
|
|
||||||
#if MOTHERBOARD == 33
|
|
||||||
#define HEATER_1_PIN -1
|
|
||||||
#else
|
|
||||||
#define HEATER_1_PIN 9 // EXTRUDER 2 (FAN On Sprinter)
|
|
||||||
#endif
|
|
||||||
#define HEATER_2_PIN -1
|
|
||||||
#define TEMP_0_PIN 13 // ANALOG NUMBERING
|
|
||||||
#define TEMP_1_PIN 15 // ANALOG NUMBERING
|
|
||||||
#define TEMP_2_PIN -1 // ANALOG NUMBERING
|
|
||||||
#define HEATER_BED_PIN 8 // BED
|
|
||||||
#define TEMP_BED_PIN 14 // ANALOG NUMBERING
|
|
||||||
|
|
||||||
#ifdef NUM_SERVOS
|
|
||||||
#define SERVO0_PIN 11
|
|
||||||
#if NUM_SERVOS > 1
|
|
||||||
#define SERVO1_PIN 6
|
|
||||||
#endif
|
#endif
|
||||||
#if NUM_SERVOS > 2
|
|
||||||
#define SERVO2_PIN 5
|
#define PS_ON_PIN 12
|
||||||
|
|
||||||
|
#if defined(REPRAP_DISCOUNT_SMART_CONTROLLER) || defined(G3D_PANEL)
|
||||||
|
#define KILL_PIN 41
|
||||||
|
#else
|
||||||
|
#define KILL_PIN -1
|
||||||
#endif
|
#endif
|
||||||
#if NUM_SERVOS > 2
|
|
||||||
#define SERVO3_PIN 4
|
#define HEATER_0_PIN 10 // EXTRUDER 1
|
||||||
|
|
||||||
|
#if MOTHERBOARD == 33
|
||||||
|
#define HEATER_1_PIN -1
|
||||||
|
#else
|
||||||
|
#define HEATER_1_PIN 9 // EXTRUDER 2 (FAN On Sprinter)
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef ULTRA_LCD
|
#define HEATER_2_PIN -1
|
||||||
|
#define TEMP_0_PIN 13 // ANALOG NUMBERING
|
||||||
|
#define TEMP_1_PIN 15 // ANALOG NUMBERING
|
||||||
|
#define TEMP_2_PIN -1 // ANALOG NUMBERING
|
||||||
|
#define HEATER_BED_PIN 8 // BED
|
||||||
|
#define TEMP_BED_PIN 14 // ANALOG NUMBERING
|
||||||
|
|
||||||
#ifdef NEWPANEL
|
|
||||||
#define LCD_PINS_RS 16
|
|
||||||
#define LCD_PINS_ENABLE 17
|
|
||||||
#define LCD_PINS_D4 23
|
|
||||||
#define LCD_PINS_D5 25
|
|
||||||
#define LCD_PINS_D6 27
|
|
||||||
#define LCD_PINS_D7 29
|
|
||||||
|
|
||||||
#ifdef REPRAP_DISCOUNT_SMART_CONTROLLER
|
|
||||||
#define BEEPER 37
|
|
||||||
|
|
||||||
#define BTN_EN1 31
|
#ifdef NUM_SERVOS
|
||||||
#define BTN_EN2 33
|
#define SERVO0_PIN 11
|
||||||
#define BTN_ENC 35
|
|
||||||
|
|
||||||
#define SDCARDDETECT 49
|
#if NUM_SERVOS > 1
|
||||||
#else
|
#define SERVO1_PIN 6
|
||||||
//arduino pin which triggers an piezzo beeper
|
|
||||||
#define BEEPER 33 // Beeper on AUX-4
|
|
||||||
|
|
||||||
//buttons are directly attached using AUX-2
|
|
||||||
#ifdef REPRAPWORLD_KEYPAD
|
|
||||||
#define BTN_EN1 64 // encoder
|
|
||||||
#define BTN_EN2 59 // encoder
|
|
||||||
#define BTN_ENC 63 // enter button
|
|
||||||
#define SHIFT_OUT 40 // shift register
|
|
||||||
#define SHIFT_CLK 44 // shift register
|
|
||||||
#define SHIFT_LD 42 // shift register
|
|
||||||
#else
|
|
||||||
#define BTN_EN1 37
|
|
||||||
#define BTN_EN2 35
|
|
||||||
#define BTN_ENC 31 //the click
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef G3D_PANEL
|
|
||||||
#define SDCARDDETECT 49
|
|
||||||
#else
|
|
||||||
#define SDCARDDETECT -1 // Ramps does not use this port
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#else //old style panel with shift register
|
#if NUM_SERVOS > 2
|
||||||
//arduino pin witch triggers an piezzo beeper
|
#define SERVO2_PIN 5
|
||||||
#define BEEPER 33 // No Beeper added
|
#endif
|
||||||
|
|
||||||
//buttons are attached to a shift register
|
#if NUM_SERVOS > 2
|
||||||
// Not wired this yet
|
#define SERVO3_PIN 4
|
||||||
//#define SHIFT_CLK 38
|
#endif
|
||||||
//#define SHIFT_LD 42
|
#endif
|
||||||
//#define SHIFT_OUT 40
|
|
||||||
//#define SHIFT_EN 17
|
|
||||||
|
|
||||||
#define LCD_PINS_RS 16
|
#ifdef ULTRA_LCD
|
||||||
#define LCD_PINS_ENABLE 17
|
|
||||||
#define LCD_PINS_D4 23
|
#ifdef NEWPANEL
|
||||||
#define LCD_PINS_D5 25
|
#define LCD_PINS_RS 16
|
||||||
#define LCD_PINS_D6 27
|
#define LCD_PINS_ENABLE 17
|
||||||
#define LCD_PINS_D7 29
|
#define LCD_PINS_D4 23
|
||||||
#endif
|
#define LCD_PINS_D5 25
|
||||||
#endif //ULTRA_LCD
|
#define LCD_PINS_D6 27
|
||||||
|
#define LCD_PINS_D7 29
|
||||||
|
|
||||||
|
#ifdef REPRAP_DISCOUNT_SMART_CONTROLLER
|
||||||
|
#define BEEPER 37
|
||||||
|
|
||||||
|
#define BTN_EN1 31
|
||||||
|
#define BTN_EN2 33
|
||||||
|
#define BTN_ENC 35
|
||||||
|
|
||||||
|
#define SDCARDDETECT 49
|
||||||
|
#else
|
||||||
|
//arduino pin which triggers an piezzo beeper
|
||||||
|
#define BEEPER 33 // Beeper on AUX-4
|
||||||
|
|
||||||
|
//buttons are directly attached using AUX-2
|
||||||
|
#ifdef REPRAPWORLD_KEYPAD
|
||||||
|
#define BTN_EN1 64 // encoder
|
||||||
|
#define BTN_EN2 59 // encoder
|
||||||
|
#define BTN_ENC 63 // enter button
|
||||||
|
#define SHIFT_OUT 40 // shift register
|
||||||
|
#define SHIFT_CLK 44 // shift register
|
||||||
|
#define SHIFT_LD 42 // shift register
|
||||||
|
#else
|
||||||
|
#define BTN_EN1 37
|
||||||
|
#define BTN_EN2 35
|
||||||
|
#define BTN_ENC 31 //the click
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef G3D_PANEL
|
||||||
|
#define SDCARDDETECT 49
|
||||||
|
#else
|
||||||
|
#define SDCARDDETECT -1 // Ramps does not use this port
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#else //old style panel with shift register
|
||||||
|
//arduino pin witch triggers an piezzo beeper
|
||||||
|
#define BEEPER 33 // No Beeper added
|
||||||
|
|
||||||
|
//buttons are attached to a shift register
|
||||||
|
// Not wired this yet
|
||||||
|
//#define SHIFT_CLK 38
|
||||||
|
//#define SHIFT_LD 42
|
||||||
|
//#define SHIFT_OUT 40
|
||||||
|
//#define SHIFT_EN 17
|
||||||
|
|
||||||
|
#define LCD_PINS_RS 16
|
||||||
|
#define LCD_PINS_ENABLE 17
|
||||||
|
#define LCD_PINS_D4 23
|
||||||
|
#define LCD_PINS_D5 25
|
||||||
|
#define LCD_PINS_D6 27
|
||||||
|
#define LCD_PINS_D7 29
|
||||||
|
#endif
|
||||||
|
#endif //ULTRA_LCD
|
||||||
|
|
||||||
#else // RAMPS_V_1_1 or RAMPS_V_1_2 as default (MOTHERBOARD == 3)
|
#else // RAMPS_V_1_1 or RAMPS_V_1_2 as default (MOTHERBOARD == 3)
|
||||||
|
|
||||||
#define X_STEP_PIN 26
|
#define X_STEP_PIN 26
|
||||||
#define X_DIR_PIN 28
|
#define X_DIR_PIN 28
|
||||||
#define X_ENABLE_PIN 24
|
#define X_ENABLE_PIN 24
|
||||||
#define X_MIN_PIN 3
|
#define X_MIN_PIN 3
|
||||||
#define X_MAX_PIN -1 //2
|
#define X_MAX_PIN -1 //2
|
||||||
|
|
||||||
#define Y_STEP_PIN 38
|
#define Y_STEP_PIN 38
|
||||||
#define Y_DIR_PIN 40
|
#define Y_DIR_PIN 40
|
||||||
#define Y_ENABLE_PIN 36
|
#define Y_ENABLE_PIN 36
|
||||||
#define Y_MIN_PIN 16
|
#define Y_MIN_PIN 16
|
||||||
#define Y_MAX_PIN -1 //17
|
#define Y_MAX_PIN -1 //17
|
||||||
|
|
||||||
#define Z_STEP_PIN 44
|
#define Z_STEP_PIN 44
|
||||||
#define Z_DIR_PIN 46
|
#define Z_DIR_PIN 46
|
||||||
#define Z_ENABLE_PIN 42
|
#define Z_ENABLE_PIN 42
|
||||||
#define Z_MIN_PIN 18
|
#define Z_MIN_PIN 18
|
||||||
#define Z_MAX_PIN -1 //19
|
#define Z_MAX_PIN -1 //19
|
||||||
|
|
||||||
#define E0_STEP_PIN 32
|
#define E0_STEP_PIN 32
|
||||||
#define E0_DIR_PIN 34
|
#define E0_DIR_PIN 34
|
||||||
#define E0_ENABLE_PIN 30
|
#define E0_ENABLE_PIN 30
|
||||||
|
|
||||||
#define SDPOWER 48
|
#define SDPOWER 48
|
||||||
#define SDSS 53
|
#define SDSS 53
|
||||||
#define LED_PIN 13
|
#define LED_PIN 13
|
||||||
#define PS_ON_PIN -1
|
#define PS_ON_PIN -1
|
||||||
#define KILL_PIN -1
|
#define KILL_PIN -1
|
||||||
|
|
||||||
|
#ifdef RAMPS_V_1_0 // RAMPS_V_1_0
|
||||||
|
#define HEATER_0_PIN 12 // RAMPS 1.0
|
||||||
|
#define HEATER_BED_PIN -1 // RAMPS 1.0
|
||||||
|
#define FAN_PIN 11 // RAMPS 1.0
|
||||||
|
#else // RAMPS_V_1_1 or RAMPS_V_1_2
|
||||||
|
#define HEATER_0_PIN 10 // RAMPS 1.1
|
||||||
|
#define HEATER_BED_PIN 8 // RAMPS 1.1
|
||||||
|
#define FAN_PIN 9 // RAMPS 1.1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define HEATER_1_PIN -1
|
||||||
|
#define HEATER_2_PIN -1
|
||||||
|
#define TEMP_0_PIN 2 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!
|
||||||
|
#define TEMP_1_PIN -1
|
||||||
|
#define TEMP_2_PIN -1
|
||||||
|
#define TEMP_BED_PIN 1 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!
|
||||||
|
|
||||||
#ifdef RAMPS_V_1_0 // RAMPS_V_1_0
|
|
||||||
#define HEATER_0_PIN 12 // RAMPS 1.0
|
|
||||||
#define HEATER_BED_PIN -1 // RAMPS 1.0
|
|
||||||
#define FAN_PIN 11 // RAMPS 1.0
|
|
||||||
#else // RAMPS_V_1_1 or RAMPS_V_1_2
|
|
||||||
#define HEATER_0_PIN 10 // RAMPS 1.1
|
|
||||||
#define HEATER_BED_PIN 8 // RAMPS 1.1
|
|
||||||
#define FAN_PIN 9 // RAMPS 1.1
|
|
||||||
#endif
|
|
||||||
#define HEATER_1_PIN -1
|
|
||||||
#define HEATER_2_PIN -1
|
|
||||||
#define TEMP_0_PIN 2 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!
|
|
||||||
#define TEMP_1_PIN -1
|
|
||||||
#define TEMP_2_PIN -1
|
|
||||||
#define TEMP_BED_PIN 1 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!
|
|
||||||
#endif// MOTHERBOARD == 33 || MOTHERBOARD == 34
|
#endif// MOTHERBOARD == 33 || MOTHERBOARD == 34
|
||||||
|
|
||||||
// SPI for Max6675 Thermocouple
|
// SPI for Max6675 Thermocouple
|
||||||
|
@ -1835,4 +1846,4 @@
|
||||||
HEATER_BED_PIN, FAN_PIN, \
|
HEATER_BED_PIN, FAN_PIN, \
|
||||||
_E0_PINS _E1_PINS _E2_PINS \
|
_E0_PINS _E1_PINS _E2_PINS \
|
||||||
analogInputToDigitalPin(TEMP_0_PIN), analogInputToDigitalPin(TEMP_1_PIN), analogInputToDigitalPin(TEMP_2_PIN), analogInputToDigitalPin(TEMP_BED_PIN) }
|
analogInputToDigitalPin(TEMP_0_PIN), analogInputToDigitalPin(TEMP_1_PIN), analogInputToDigitalPin(TEMP_2_PIN), analogInputToDigitalPin(TEMP_BED_PIN) }
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -40,10 +40,13 @@
|
||||||
int target_temperature[EXTRUDERS] = { 0 };
|
int target_temperature[EXTRUDERS] = { 0 };
|
||||||
int target_temperature_bed = 0;
|
int target_temperature_bed = 0;
|
||||||
int current_temperature_raw[EXTRUDERS] = { 0 };
|
int current_temperature_raw[EXTRUDERS] = { 0 };
|
||||||
float current_temperature[EXTRUDERS] = { 0 };
|
float current_temperature[EXTRUDERS] = { 0.0 };
|
||||||
int current_temperature_bed_raw = 0;
|
int current_temperature_bed_raw = 0;
|
||||||
float current_temperature_bed = 0;
|
float current_temperature_bed = 0.0;
|
||||||
|
#ifdef TEMP_SENSOR_1_AS_REDUNDANT
|
||||||
|
int redundant_temperature_raw = 0;
|
||||||
|
float redundant_temperature = 0.0;
|
||||||
|
#endif
|
||||||
#ifdef PIDTEMP
|
#ifdef PIDTEMP
|
||||||
float Kp=DEFAULT_Kp;
|
float Kp=DEFAULT_Kp;
|
||||||
float Ki=(DEFAULT_Ki*PID_dT);
|
float Ki=(DEFAULT_Ki*PID_dT);
|
||||||
|
@ -104,15 +107,15 @@ static volatile bool temp_meas_ready = false;
|
||||||
(defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1)
|
(defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1)
|
||||||
static unsigned long extruder_autofan_last_check;
|
static unsigned long extruder_autofan_last_check;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if EXTRUDERS > 3
|
#if EXTRUDERS > 3
|
||||||
# error Unsupported number of extruders
|
# error Unsupported number of extruders
|
||||||
#elif EXTRUDERS > 2
|
#elif EXTRUDERS > 2
|
||||||
# define ARRAY_BY_EXTRUDERS(v1, v2, v3) { v1, v2, v3 }
|
# define ARRAY_BY_EXTRUDERS(v1, v2, v3) { v1, v2, v3 }
|
||||||
#elif EXTRUDERS > 1
|
#elif EXTRUDERS > 1
|
||||||
# define ARRAY_BY_EXTRUDERS(v1, v2, v3) { v1, v2 }
|
# define ARRAY_BY_EXTRUDERS(v1, v2, v3) { v1, v2 }
|
||||||
#else
|
#else
|
||||||
# define ARRAY_BY_EXTRUDERS(v1, v2, v3) { v1 }
|
# define ARRAY_BY_EXTRUDERS(v1, v2, v3) { v1 }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Init min and max temp with extreme values to prevent false errors during startup
|
// Init min and max temp with extreme values to prevent false errors during startup
|
||||||
|
@ -124,8 +127,14 @@ static int maxttemp[EXTRUDERS] = ARRAY_BY_EXTRUDERS( 16383, 16383, 16383 );
|
||||||
#ifdef BED_MAXTEMP
|
#ifdef BED_MAXTEMP
|
||||||
static int bed_maxttemp_raw = HEATER_BED_RAW_HI_TEMP;
|
static int bed_maxttemp_raw = HEATER_BED_RAW_HI_TEMP;
|
||||||
#endif
|
#endif
|
||||||
static void *heater_ttbl_map[EXTRUDERS] = ARRAY_BY_EXTRUDERS( (void *)HEATER_0_TEMPTABLE, (void *)HEATER_1_TEMPTABLE, (void *)HEATER_2_TEMPTABLE );
|
|
||||||
static uint8_t heater_ttbllen_map[EXTRUDERS] = ARRAY_BY_EXTRUDERS( HEATER_0_TEMPTABLE_LEN, HEATER_1_TEMPTABLE_LEN, HEATER_2_TEMPTABLE_LEN );
|
#ifdef TEMP_SENSOR_1_AS_REDUNDANT
|
||||||
|
static void *heater_ttbl_map[2] = {(void *)HEATER_0_TEMPTABLE, (void *)HEATER_1_TEMPTABLE };
|
||||||
|
static uint8_t heater_ttbllen_map[2] = { HEATER_0_TEMPTABLE_LEN, HEATER_1_TEMPTABLE_LEN };
|
||||||
|
#else
|
||||||
|
static void *heater_ttbl_map[EXTRUDERS] = ARRAY_BY_EXTRUDERS( (void *)HEATER_0_TEMPTABLE, (void *)HEATER_1_TEMPTABLE, (void *)HEATER_2_TEMPTABLE );
|
||||||
|
static uint8_t heater_ttbllen_map[EXTRUDERS] = ARRAY_BY_EXTRUDERS( HEATER_0_TEMPTABLE_LEN, HEATER_1_TEMPTABLE_LEN, HEATER_2_TEMPTABLE_LEN );
|
||||||
|
#endif
|
||||||
|
|
||||||
static float analog2temp(int raw, uint8_t e);
|
static float analog2temp(int raw, uint8_t e);
|
||||||
static float analog2tempBed(int raw);
|
static float analog2tempBed(int raw);
|
||||||
|
@ -157,28 +166,28 @@ void PID_autotune(float temp, int extruder, int ncycles)
|
||||||
float Kp, Ki, Kd;
|
float Kp, Ki, Kd;
|
||||||
float max = 0, min = 10000;
|
float max = 0, min = 10000;
|
||||||
|
|
||||||
if ((extruder > EXTRUDERS)
|
if ((extruder > EXTRUDERS)
|
||||||
#if (TEMP_BED_PIN <= -1)
|
#if (TEMP_BED_PIN <= -1)
|
||||||
||(extruder < 0)
|
||(extruder < 0)
|
||||||
#endif
|
#endif
|
||||||
){
|
){
|
||||||
SERIAL_ECHOLN("PID Autotune failed. Bad extruder number.");
|
SERIAL_ECHOLN("PID Autotune failed. Bad extruder number.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
SERIAL_ECHOLN("PID Autotune start");
|
SERIAL_ECHOLN("PID Autotune start");
|
||||||
|
|
||||||
disable_heater(); // switch off all heaters.
|
disable_heater(); // switch off all heaters.
|
||||||
|
|
||||||
if (extruder<0)
|
if (extruder<0)
|
||||||
{
|
{
|
||||||
soft_pwm_bed = (MAX_BED_POWER)/2;
|
soft_pwm_bed = (MAX_BED_POWER)/2;
|
||||||
bias = d = (MAX_BED_POWER)/2;
|
bias = d = (MAX_BED_POWER)/2;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
soft_pwm[extruder] = (PID_MAX)/2;
|
soft_pwm[extruder] = (PID_MAX)/2;
|
||||||
bias = d = (PID_MAX)/2;
|
bias = d = (PID_MAX)/2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -196,10 +205,10 @@ void PID_autotune(float temp, int extruder, int ncycles)
|
||||||
if(heating == true && input > temp) {
|
if(heating == true && input > temp) {
|
||||||
if(millis() - t2 > 5000) {
|
if(millis() - t2 > 5000) {
|
||||||
heating=false;
|
heating=false;
|
||||||
if (extruder<0)
|
if (extruder<0)
|
||||||
soft_pwm_bed = (bias - d) >> 1;
|
soft_pwm_bed = (bias - d) >> 1;
|
||||||
else
|
else
|
||||||
soft_pwm[extruder] = (bias - d) >> 1;
|
soft_pwm[extruder] = (bias - d) >> 1;
|
||||||
t1=millis();
|
t1=millis();
|
||||||
t_high=t1 - t2;
|
t_high=t1 - t2;
|
||||||
max=temp;
|
max=temp;
|
||||||
|
@ -250,10 +259,10 @@ void PID_autotune(float temp, int extruder, int ncycles)
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (extruder<0)
|
if (extruder<0)
|
||||||
soft_pwm_bed = (bias + d) >> 1;
|
soft_pwm_bed = (bias + d) >> 1;
|
||||||
else
|
else
|
||||||
soft_pwm[extruder] = (bias + d) >> 1;
|
soft_pwm[extruder] = (bias + d) >> 1;
|
||||||
cycles++;
|
cycles++;
|
||||||
min=temp;
|
min=temp;
|
||||||
}
|
}
|
||||||
|
@ -264,14 +273,14 @@ void PID_autotune(float temp, int extruder, int ncycles)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(millis() - temp_millis > 2000) {
|
if(millis() - temp_millis > 2000) {
|
||||||
int p;
|
int p;
|
||||||
if (extruder<0){
|
if (extruder<0){
|
||||||
p=soft_pwm_bed;
|
p=soft_pwm_bed;
|
||||||
SERIAL_PROTOCOLPGM("ok B:");
|
SERIAL_PROTOCOLPGM("ok B:");
|
||||||
}else{
|
}else{
|
||||||
p=soft_pwm[extruder];
|
p=soft_pwm[extruder];
|
||||||
SERIAL_PROTOCOLPGM("ok T:");
|
SERIAL_PROTOCOLPGM("ok T:");
|
||||||
}
|
}
|
||||||
|
|
||||||
SERIAL_PROTOCOL(input);
|
SERIAL_PROTOCOL(input);
|
||||||
SERIAL_PROTOCOLPGM(" @:");
|
SERIAL_PROTOCOLPGM(" @:");
|
||||||
|
@ -471,7 +480,19 @@ void manage_heater()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef TEMP_SENSOR_1_AS_REDUNDANT
|
||||||
|
if(fabs(current_temperature[0] - redundant_temperature) > MAX_REDUNDANT_TEMP_SENSOR_DIFF) {
|
||||||
|
disable_heater();
|
||||||
|
if(IsStopped() == false) {
|
||||||
|
SERIAL_ERROR_START;
|
||||||
|
SERIAL_ERRORLNPGM("Extruder switched off. Temperature difference between temp sensors is too high !");
|
||||||
|
LCD_ALERTMESSAGEPGM("Err: REDUNDANT TEMP ERROR");
|
||||||
|
}
|
||||||
|
#ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
|
||||||
|
Stop();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif
|
||||||
} // End extruder for loop
|
} // End extruder for loop
|
||||||
|
|
||||||
#if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1) || \
|
#if (defined(EXTRUDER_0_AUTO_FAN_PIN) && EXTRUDER_0_AUTO_FAN_PIN > -1) || \
|
||||||
|
@ -565,7 +586,11 @@ void manage_heater()
|
||||||
// Derived from RepRap FiveD extruder::getTemperature()
|
// Derived from RepRap FiveD extruder::getTemperature()
|
||||||
// For hot end temperature measurement.
|
// For hot end temperature measurement.
|
||||||
static float analog2temp(int raw, uint8_t e) {
|
static float analog2temp(int raw, uint8_t e) {
|
||||||
|
#ifdef TEMP_SENSOR_1_AS_REDUNDANT
|
||||||
|
if(e > EXTRUDERS)
|
||||||
|
#else
|
||||||
if(e >= EXTRUDERS)
|
if(e >= EXTRUDERS)
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
SERIAL_ERROR_START;
|
SERIAL_ERROR_START;
|
||||||
SERIAL_ERROR((int)e);
|
SERIAL_ERROR((int)e);
|
||||||
|
@ -644,7 +669,9 @@ static void updateTemperaturesFromRawValues()
|
||||||
current_temperature[e] = analog2temp(current_temperature_raw[e], e);
|
current_temperature[e] = analog2temp(current_temperature_raw[e], e);
|
||||||
}
|
}
|
||||||
current_temperature_bed = analog2tempBed(current_temperature_bed_raw);
|
current_temperature_bed = analog2tempBed(current_temperature_bed_raw);
|
||||||
|
#ifdef TEMP_SENSOR_1_AS_REDUNDANT
|
||||||
|
redundant_temperature = analog2temp(redundant_temperature_raw, 1);
|
||||||
|
#endif
|
||||||
//Reset the watchdog after we know we have a temperature measurement.
|
//Reset the watchdog after we know we have a temperature measurement.
|
||||||
watchdog_reset();
|
watchdog_reset();
|
||||||
|
|
||||||
|
@ -1145,6 +1172,9 @@ ISR(TIMER0_COMPB_vect)
|
||||||
#if EXTRUDERS > 1
|
#if EXTRUDERS > 1
|
||||||
current_temperature_raw[1] = raw_temp_1_value;
|
current_temperature_raw[1] = raw_temp_1_value;
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef TEMP_SENSOR_1_AS_REDUNDANT
|
||||||
|
redundant_temperature_raw = raw_temp_1_value;
|
||||||
|
#endif
|
||||||
#if EXTRUDERS > 2
|
#if EXTRUDERS > 2
|
||||||
current_temperature_raw[2] = raw_temp_2_value;
|
current_temperature_raw[2] = raw_temp_2_value;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -37,6 +37,9 @@ extern int target_temperature[EXTRUDERS];
|
||||||
extern float current_temperature[EXTRUDERS];
|
extern float current_temperature[EXTRUDERS];
|
||||||
extern int target_temperature_bed;
|
extern int target_temperature_bed;
|
||||||
extern float current_temperature_bed;
|
extern float current_temperature_bed;
|
||||||
|
#ifdef TEMP_SENSOR_1_AS_REDUNDANT
|
||||||
|
extern float redundant_temperature;
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef PIDTEMP
|
#ifdef PIDTEMP
|
||||||
extern float Kp,Ki,Kd,Kc;
|
extern float Kp,Ki,Kd,Kc;
|
||||||
|
|
Reference in a new issue