Skip to content

Commit

Permalink
Improve BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE (#13740)
Browse files Browse the repository at this point in the history
  • Loading branch information
thinkyhead authored Jul 10, 2019
1 parent 3ae3bf5 commit 5519054
Show file tree
Hide file tree
Showing 15 changed files with 65 additions and 45 deletions.
60 changes: 40 additions & 20 deletions Marlin/src/module/temperature.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -746,9 +746,28 @@ int16_t Temperature::getHeaterPower(const heater_ind_t heater_id) {
//
// Temperature Error Handlers
//

inline void loud_kill(PGM_P const lcd_msg) {
Running = false;
#if HAS_BUZZER && PIN_EXISTS(BEEPER)
for (uint8_t i = 20; i--;) {
WRITE(BEEPER_PIN, HIGH); delay(25);
WRITE(BEEPER_PIN, LOW); delay(80);
}
WRITE(BEEPER_PIN, HIGH);
#endif
kill(lcd_msg);
}

void Temperature::_temp_error(const heater_ind_t heater, PGM_P const serial_msg, PGM_P const lcd_msg) {
static bool killed = false;
if (IsRunning()) {

static uint8_t killed = 0;

if (IsRunning()
#if BOGUS_TEMPERATURE_GRACE_PERIOD
&& killed == 2
#endif
) {
SERIAL_ERROR_START();
serialprintPGM(serial_msg);
SERIAL_ECHOPGM(MSG_STOPPED_HEATER);
Expand All @@ -760,27 +779,28 @@ void Temperature::_temp_error(const heater_ind_t heater, PGM_P const serial_msg,
SERIAL_EOL();
}

#if DISABLED(BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE)
if (!killed) {
Running = false;
killed = true;

disable_all_heaters();
disable_all_heaters(); // always disable (even for bogus temp)

#if HAS_BUZZER && PIN_EXISTS(BEEPER)
for (uint8_t i = 20; i--;) {
WRITE(BEEPER_PIN, HIGH); delay(25);
WRITE(BEEPER_PIN, LOW); delay(80);
}
WRITE(BEEPER_PIN, HIGH);
#endif

kill(lcd_msg);
#if BOGUS_TEMPERATURE_GRACE_PERIOD
const millis_t ms = millis();
static millis_t expire_ms;
switch (killed) {
case 0:
expire_ms = ms + BOGUS_TEMPERATURE_GRACE_PERIOD;
++killed;
break;
case 1:
if (ELAPSED(ms, expire_ms)) ++killed;
break;
case 2:
loud_kill(lcd_msg);
++killed;
break;
}
else
disable_all_heaters(); // paranoia
#else
#elif defined(BOGUS_TEMPERATURE_GRACE_PERIOD)
UNUSED(killed);
#else
if (!killed) { killed = 1; loud_kill(lcd_msg); }
#endif
}

Expand Down
4 changes: 2 additions & 2 deletions Marlin/src/pins/pins_BEAST.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@
// Enable I2C_EEPROM for testing
#define I2C_EEPROM

// Ignore temp readings during develpment.
#define BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
// Ignore temp readings during development.
//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000

//
// Steppers
Expand Down
4 changes: 2 additions & 2 deletions Marlin/src/pins/pins_BIGTREE_SKR_MINI_E3.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@
// Release PB3/PB4 (E0 STP/DIR) from JTAG pins
#define DISABLE_JTAG

// Ignore temp readings during develpment.
//#define BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
// Ignore temp readings during development.
//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000

//
// Servos
Expand Down
4 changes: 2 additions & 2 deletions Marlin/src/pins/pins_BIGTREE_SKR_MINI_V1_1.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@
//#define DISABLE_DEBUG
#define DISABLE_JTAG

// Ignore temp readings during develpment.
//#define BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
// Ignore temp readings during development.
//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000

//
// Limit Switches
Expand Down
4 changes: 2 additions & 2 deletions Marlin/src/pins/pins_BIGTREE_SKR_V1.3.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@
#define BOARD_NAME "BIGTREE SKR V1.3"
#endif

// Ignore temp readings during develpment.
//#define BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
// Ignore temp readings during development.
//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000

//
// Servos
Expand Down
4 changes: 2 additions & 2 deletions Marlin/src/pins/pins_CHITU3D.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@
// Enable I2C_EEPROM for testing
//#define I2C_EEPROM

// Ignore temp readings during develpment.
#define BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
// Ignore temp readings during development.
//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000

//
// Steppers
Expand Down
4 changes: 2 additions & 2 deletions Marlin/src/pins/pins_FYSETC_AIO_II.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@

#define pins_v2_20190128 // geo-f:add for new pins define

// Ignore temp readings during develpment.
#define BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
// Ignore temp readings during development.
//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000

//
// Limit Switches
Expand Down
4 changes: 2 additions & 2 deletions Marlin/src/pins/pins_FYSETC_CHEETAH.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@
#define BOARD_NAME "FYSETC Cheetah"
#define BOARD_WEBSITE_URL "https://fysetc.com"

// Ignore temp readings during develpment.
#define BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
// Ignore temp readings during development.
//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000

//
// Servos
Expand Down
2 changes: 1 addition & 1 deletion Marlin/src/pins/pins_GEN7_12.h
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@

// All these generations of Gen7 supply thermistor power
// via PS_ON, so ignore bad thermistor readings
#define BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000

#define DEBUG_PIN 0

Expand Down
2 changes: 1 addition & 1 deletion Marlin/src/pins/pins_GTM32_PRO_VB.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
//#define DISABLE_JTAGSWD

// Ignore temp readings during development.
#define BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000

// Enable EEPROM Emulation for this board as it doesn't have EEPROM
#define FLASH_EEPROM_EMULATION
Expand Down
2 changes: 1 addition & 1 deletion Marlin/src/pins/pins_SETHI.h
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@

// All these generations of Gen7 supply thermistor power
// via PS_ON, so ignore bad thermistor readings
#define BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000

// our pin for debugging.
#define DEBUG_PIN 0
Expand Down
4 changes: 2 additions & 2 deletions Marlin/src/pins/pins_STM32F1R.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@
#define BOARD_NAME "Misc. STM32F1R"
#define DEFAULT_MACHINE_NAME "STM32F103RET6"

// Ignore temp readings during develpment.
#define BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
// Ignore temp readings during development.
//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000

//
// Limit Switches
Expand Down
4 changes: 2 additions & 2 deletions Marlin/src/pins/pins_STM32F4.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@

#define E2END 0xFFF // 4KB

// Ignore temp readings during develpment.
//#define BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
// Ignore temp readings during development.
//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000

#if HOTENDS > 2 || E_STEPPERS > 2
#error "STM32F4 supports up to 2 hotends / E-steppers."
Expand Down
4 changes: 2 additions & 2 deletions Marlin/src/pins/pins_STM3R_MINI.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@
// Enable I2C_EEPROM for testing
#define I2C_EEPROM

// Ignore temp readings during develpment.
#define BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
// Ignore temp readings during development.
//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000

//
// Limit Switches
Expand Down
4 changes: 2 additions & 2 deletions Marlin/src/pins/pins_THE_BORG.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@

#define E2END 0xFFF // EEPROM end address

// Ignore temp readings during develpment.
#define BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
// Ignore temp readings during development.
//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000

#if HOTENDS > 3 || E_STEPPERS > 3
#error "The-Borg supports up to 3 hotends / E-steppers."
Expand Down

0 comments on commit 5519054

Please sign in to comment.