diff --git a/Firmware/eeprom.cpp b/Firmware/eeprom.cpp index 93098e93b..4f519cae5 100644 --- a/Firmware/eeprom.cpp +++ b/Firmware/eeprom.cpp @@ -93,6 +93,10 @@ void eeprom_init() eeprom_switch_to_next_sheet(); } check_babystep(); + +#ifdef PINDA_TEMP_COMP +if (eeprom_read_byte((uint8_t*)EEPROM_PINDA_TEMP_COMPENSATION) == 0xff) eeprom_update_byte((uint8_t *)EEPROM_PINDA_TEMP_COMPENSATION, 0); +#endif //PINDA_TEMP_COMP } //! @brief Get default sheet name for index diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 7dca76bef..27466d0d1 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -5759,7 +5759,7 @@ void lcd_hw_setup_menu(void) // can not be "static" //! as a disconnected SuperPINDA will show higher temps compared to an EINSY board. //! //! This menu allows the user to en-/disable the SuperPINDA manualy - MENU_ITEM_TOGGLE_P(_N("SuperPINDA"), eeprom_read_byte((unsigned char *)EEPROM_PINDA_TEMP_COMPENSATION) ? _T(MSG_YES) : _T(MSG_NO), lcd_pinda_temp_compensation_toggle); + MENU_ITEM_TOGGLE_P(_N("SuperPINDA"), eeprom_read_byte((uint8_t *)EEPROM_PINDA_TEMP_COMPENSATION) ? _T(MSG_YES) : _T(MSG_NO), lcd_pinda_temp_compensation_toggle); #endif //PINDA_TEMP_COMP MENU_END(); @@ -9249,8 +9249,8 @@ void lcd_experimental_menu() void lcd_pinda_temp_compensation_toggle() { uint8_t pinda_temp_compensation = eeprom_read_byte((uint8_t*)EEPROM_PINDA_TEMP_COMPENSATION); - if (pinda_temp_compensation == EEPROM_EMPTY_VALUE) - pinda_temp_compensation = 1; + if (pinda_temp_compensation == EEPROM_EMPTY_VALUE) // On MK2.5/S the EEPROM_EMPTY_VALUE will be set to 0 during eeprom_init. + pinda_temp_compensation = 1; // But for MK3/S it should be 1 so SuperPINDA is "active" else pinda_temp_compensation = !pinda_temp_compensation; eeprom_update_byte((uint8_t*)EEPROM_PINDA_TEMP_COMPENSATION, pinda_temp_compensation);