More redundant temp sensor changes. (After testing and debugging by reifsnderb)
This commit is contained in:
parent
9be61cdc02
commit
5090c56651
@ -93,8 +93,8 @@
|
|||||||
#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.
|
// 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 TEMP_SENSOR_1_AS_REDUNDANT
|
||||||
#define MAX_REDUNDANT_TEMP_SENSOR_DIFF 5
|
#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)
|
||||||
|
@ -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
|
||||||
@ -367,8 +370,5 @@ const unsigned int dropsegments=5; //everything with less than this number of st
|
|||||||
#undef BED_MAXTEMP
|
#undef BED_MAXTEMP
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if EXTRUDERS > 1 && defined TEMP_SENSOR_1_AS_REDUNDANT
|
|
||||||
#error "You cannot use TEMP_SENSOR_1_AS_REDUNDANT if EXTRUDERS > 1"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif //__CONFIGURATION_ADV_H
|
#endif //__CONFIGURATION_ADV_H
|
||||||
|
@ -354,6 +354,7 @@
|
|||||||
#else
|
#else
|
||||||
#define FAN_PIN 4 // IO pin. Buffer needed
|
#define FAN_PIN 4 // IO pin. Buffer needed
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define PS_ON_PIN 12
|
#define PS_ON_PIN 12
|
||||||
|
|
||||||
#if defined(REPRAP_DISCOUNT_SMART_CONTROLLER) || defined(G3D_PANEL)
|
#if defined(REPRAP_DISCOUNT_SMART_CONTROLLER) || defined(G3D_PANEL)
|
||||||
@ -363,11 +364,13 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define HEATER_0_PIN 10 // EXTRUDER 1
|
#define HEATER_0_PIN 10 // EXTRUDER 1
|
||||||
|
|
||||||
#if MOTHERBOARD == 33
|
#if MOTHERBOARD == 33
|
||||||
#define HEATER_1_PIN -1
|
#define HEATER_1_PIN -1
|
||||||
#else
|
#else
|
||||||
#define HEATER_1_PIN 9 // EXTRUDER 2 (FAN On Sprinter)
|
#define HEATER_1_PIN 9 // EXTRUDER 2 (FAN On Sprinter)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define HEATER_2_PIN -1
|
#define HEATER_2_PIN -1
|
||||||
#define TEMP_0_PIN 13 // ANALOG NUMBERING
|
#define TEMP_0_PIN 13 // ANALOG NUMBERING
|
||||||
#define TEMP_1_PIN 15 // ANALOG NUMBERING
|
#define TEMP_1_PIN 15 // ANALOG NUMBERING
|
||||||
@ -375,14 +378,19 @@
|
|||||||
#define HEATER_BED_PIN 8 // BED
|
#define HEATER_BED_PIN 8 // BED
|
||||||
#define TEMP_BED_PIN 14 // ANALOG NUMBERING
|
#define TEMP_BED_PIN 14 // ANALOG NUMBERING
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef NUM_SERVOS
|
#ifdef NUM_SERVOS
|
||||||
#define SERVO0_PIN 11
|
#define SERVO0_PIN 11
|
||||||
|
|
||||||
#if NUM_SERVOS > 1
|
#if NUM_SERVOS > 1
|
||||||
#define SERVO1_PIN 6
|
#define SERVO1_PIN 6
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if NUM_SERVOS > 2
|
#if NUM_SERVOS > 2
|
||||||
#define SERVO2_PIN 5
|
#define SERVO2_PIN 5
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if NUM_SERVOS > 2
|
#if NUM_SERVOS > 2
|
||||||
#define SERVO3_PIN 4
|
#define SERVO3_PIN 4
|
||||||
#endif
|
#endif
|
||||||
@ -429,6 +437,7 @@
|
|||||||
#else
|
#else
|
||||||
#define SDCARDDETECT -1 // Ramps does not use this port
|
#define SDCARDDETECT -1 // Ramps does not use this port
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#else //old style panel with shift register
|
#else //old style panel with shift register
|
||||||
@ -490,12 +499,14 @@
|
|||||||
#define HEATER_BED_PIN 8 // RAMPS 1.1
|
#define HEATER_BED_PIN 8 // RAMPS 1.1
|
||||||
#define FAN_PIN 9 // RAMPS 1.1
|
#define FAN_PIN 9 // RAMPS 1.1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define HEATER_1_PIN -1
|
#define HEATER_1_PIN -1
|
||||||
#define HEATER_2_PIN -1
|
#define HEATER_2_PIN -1
|
||||||
#define TEMP_0_PIN 2 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!
|
#define TEMP_0_PIN 2 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!
|
||||||
#define TEMP_1_PIN -1
|
#define TEMP_1_PIN -1
|
||||||
#define TEMP_2_PIN -1
|
#define TEMP_2_PIN -1
|
||||||
#define TEMP_BED_PIN 1 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!
|
#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
|
||||||
|
@ -127,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
|
||||||
|
|
||||||
|
#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 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 );
|
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);
|
||||||
@ -475,11 +481,11 @@ void manage_heater()
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef TEMP_SENSOR_1_AS_REDUNDANT
|
#ifdef TEMP_SENSOR_1_AS_REDUNDANT
|
||||||
if(fabs(current_temperature[1] - redundant_temperature) > MAX_REDUNDANT_TEMP_SENSOR_DIFF) {
|
if(fabs(current_temperature[0] - redundant_temperature) > MAX_REDUNDANT_TEMP_SENSOR_DIFF) {
|
||||||
disable_heater();
|
disable_heater();
|
||||||
if(IsStopped() == false) {
|
if(IsStopped() == false) {
|
||||||
SERIAL_ERROR_START;
|
SERIAL_ERROR_START;
|
||||||
SERIAL_ERRORLNPGM("Extruder switched off. Temperature difference between temp sensors is to high !");
|
SERIAL_ERRORLNPGM("Extruder switched off. Temperature difference between temp sensors is too high !");
|
||||||
LCD_ALERTMESSAGEPGM("Err: REDUNDANT TEMP ERROR");
|
LCD_ALERTMESSAGEPGM("Err: REDUNDANT TEMP ERROR");
|
||||||
}
|
}
|
||||||
#ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
|
#ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
|
||||||
@ -580,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);
|
||||||
|
Loading…
Reference in New Issue
Block a user