Bump to current, fix temp drop, bump version

This commit is contained in:
InsanityAutomation
2021-01-30 15:56:58 -05:00
parent 7e8e06fe2f
commit b4ede61682
8 changed files with 105 additions and 49 deletions
+1 -1
View File
@@ -128,7 +128,7 @@
// Choose the name from boards.h that matches your setup
#ifndef MOTHERBOARD
#define MOTHERBOARD BOARD_CREALITY_V453
#define MOTHERBOARD BOARD_CREALITY_V452
#endif
// Name displayed in the LCD "Ready" message and Info menu
+1 -1
View File
@@ -28,7 +28,7 @@
/**
* Marlin release version identifier
*/
#define SHORT_BUILD_VERSION "TM3D2.0.7.2-CR6-B"
#define SHORT_BUILD_VERSION "TM3D2.0.7.2-CR6-C"
/**
* Verbose version identifier which should contain a reference to the location
@@ -608,14 +608,14 @@ void DGUSScreenHandler::OnMeshLevelingUpdate(const int8_t xpos, const int8_t ypo
}
}
if (MeshLevelIndex == GRID_MAX_POINTS) {
if (MeshLevelIndex == GRID_MAX_POINTS-1) {
// Done
SERIAL_ECHOLN("Mesh Complete - Saving");
settings.save();
if(!ExtUI::isPrinting()) {
thermalManager.disable_all_heaters();
//thermalManager.disable_all_heaters();
GotoScreen(DGUSLCD_SCREEN_ZOFFSET_LEVEL);
}
else
@@ -1148,6 +1148,20 @@ void DGUSScreenHandler::HandleToggleTouchScreenMute(DGUS_VP_Variable &var, void
ScreenHandler.skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel
}
#if HAS_PROBE_SETTINGS
void DGUSScreenHandler::HandleToggleProbeHeaters(DGUS_VP_Variable &var, void *val_ptr) {
probe.settings.turn_heaters_off = !probe.settings.turn_heaters_off;
RequestSaveSettings();
}
void DGUSScreenHandler::HandleToggleProbePreheatTemp(DGUS_VP_Variable &var, void *val_ptr) {
ScreenHandler.DGUSLCD_SetValueDirectly<uint16_t>(var, val_ptr);
RequestSaveSettings();
}
#endif
void DGUSScreenHandler::HandleTouchScreenStandbyBrightnessSetting(DGUS_VP_Variable &var, void *val_ptr) {
uint16_t newvalue = swap16(*(uint16_t*)val_ptr);
@@ -1174,10 +1188,10 @@ void DGUSScreenHandler::HandleFanToggle() {
}
void DGUSScreenHandler::UpdateNewScreen(DGUSLCD_Screens newscreen, bool save_current_screen) {
DEBUG_ECHOLNPAIR("SetNewScreen: ", newscreen);
SERIAL_ECHOLNPAIR("SetNewScreen: ", newscreen);
if (save_current_screen && current_screen != DGUSLCD_SCREEN_POPUP && current_screen != DGUSLCD_SCREEN_CONFIRM) {
DEBUG_ECHOLNPAIR("SetNewScreen (saving): ", newscreen);
SERIAL_ECHOLNPAIR("SetNewScreen (saving): ", newscreen);
memmove(&past_screens[1], &past_screens[0], sizeof(past_screens) - 1);
past_screens[0] = current_screen;
}
@@ -98,6 +98,11 @@ public:
static void HandleToggleTouchScreenStandbySetting(DGUS_VP_Variable &var, void *val_ptr);
static void HandleTouchScreenStandbyBrightnessSetting(DGUS_VP_Variable &var, void *val_ptr);
#if HAS_PROBE_SETTINGS
static void HandleToggleProbeHeaters(DGUS_VP_Variable &var, void *val_ptr);
static void HandleToggleProbePreheatTemp(DGUS_VP_Variable &var, void *val_ptr);
#endif
#if HAS_PID_HEATING
// Hook for "Change this temperature PID para"
static void HandleTemperaturePIDChanged(DGUS_VP_Variable &var, void *val_ptr);
@@ -293,7 +298,6 @@ public:
static void DGUSLCD_SendFloatAsIntValueToDisplay(DGUS_VP_Variable &var) {
if (var.memadr) {
float f = *(float *)var.memadr;
DEBUG_ECHOLNPAIR_F(" >> ", f, 6);
f *= cpow(10, decimals);
// Round - truncated values look like skipped numbers
@@ -328,8 +332,6 @@ public:
static inline DGUSLCD_Screens getCurrentScreen() { return current_screen; }
static void updateCurrentScreen(DGUSLCD_Screens current);
static bool HandlePendingUserConfirmation();
static float feed_amount;
@@ -288,13 +288,13 @@ const uint16_t VPList_TuneScreen[] PROGMEM = {
VP_T_Bed_Is, VP_T_Bed_Set,// VP_BED_STATUS,
#endif
VP_Z_OFFSET,
//VP_Fan0_Percentage,
VP_Feedrate_Percentage,
VP_LED_TOGGLE,
VP_FAN_TOGGLE,
VP_Fan0_Percentage,
VP_FWRETRACT_NAV_BUTTON_ICON,
VP_LINEAR_ADVANCE_FACTOR,
0x0000
};
@@ -388,6 +388,24 @@ const uint16_t VPList_FWRetractTune[] PROGMEM = {
0x0000
};
const uint16_t VPList_LevelingSettings[] PROGMEM = {
#if HOTENDS >= 1
VP_T_E0_Is, VP_T_E0_Set,// VP_E0_STATUS,
#endif
#if HAS_HEATED_BED
VP_T_Bed_Is, VP_T_Bed_Set,// VP_BED_STATUS,
#endif
VP_Z_OFFSET,
//VP_Fan0_Percentage,
VP_Feedrate_Percentage,
VP_TOGGLE_PROBE_HEATERS_OFF_ONOFF_ICON,
VP_TOGGLE_PROBE_PREHEAT_HOTEND_TEMP,
VP_TOGGLE_PROBE_PREHEAT_BED_TEMP,
0x0000
};
// Toggle button handler
void DGUSCrealityDisplay_HandleToggleButton(DGUS_VP_Variable &var, void *val_ptr) {
switch (*(uint16_t*)var.memadr) {
@@ -457,6 +475,9 @@ const struct VPMapping VPMap[] PROGMEM = {
{ DGUSLCD_SCREEN_TUNEFWRETRACT, VPList_FWRetractTune },
{ DGUSLCD_SCREEN_ESTEPS_CALIBRATION_RESULTS, VPList_EstepsCalibration },
{ DGUSLCD_SCREEN_LEVELING_SETTINGS, VPList_LevelingSettings },
{ 0 , nullptr } // List is terminated with an nullptr as table entry.
};
@@ -550,6 +571,17 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
VPHELPER(VP_SCREENCHANGE, nullptr, ScreenHandler.ScreenChangeHook, nullptr),
VPHELPER(VP_CONFIRMED, nullptr, ScreenHandler.ScreenConfirmedOK, nullptr),
#if HAS_PROBE_SETTINGS
VPHELPER(VP_TOGGLE_PROBE_HEATERS_OFF_ONOFF_BUTTON, nullptr, ScreenHandler.HandleToggleProbeHeaters, nullptr),
VPHELPER(VP_TOGGLE_PROBE_HEATERS_OFF_ONOFF_ICON, &probe.settings.turn_heaters_off, nullptr, (ScreenHandler.DGUSLCD_SendIconValue<ICON_TOGGLE_ON, ICON_TOGGLE_OFF>)),
VPHELPER(VP_TOGGLE_PROBE_PREHEAT_HOTEND_TEMP, &probe.settings.preheat_hotend_temp, ScreenHandler.HandleToggleProbePreheatTemp, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
VPHELPER(VP_TOGGLE_PROBE_PREHEAT_BED_TEMP, &probe.settings.preheat_bed_temp, ScreenHandler.HandleToggleProbePreheatTemp, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
VPHELPER(VP_TOGGLE_PROBE_SETTINGS_NAV_BUTTON, nullptr, (ScreenHandler.DGUSLCD_NavigateToPage<DGUSLCD_SCREEN_LEVELING_SETTINGS>), nullptr),
#endif
// Feed
VPHELPER(VP_FEED_AMOUNT, &ScreenHandler.feed_amount, ScreenHandler.HandleFeedAmountChanged, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<1>),
@@ -580,7 +612,6 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
VPHELPER_STR(VP_SD_FileName5, nullptr, VP_SD_FileName_LEN, nullptr, ScreenHandler.DGUSLCD_SD_SendFilename),
// Firmware retract
#if ENABLED(FWRETRACT)
VPHELPER(VP_FWRETRACT_NAV_BUTTON, nullptr, ScreenHandler.DGUSLCD_NavigateToPage<DGUSLCD_SCREEN_TUNEFWRETRACT>, nullptr),
VPHELPER(VP_FWRETRACT_RETRACT_LENGTH, &fwretract.settings.retract_length, ScreenHandler.DGUSLCD_SetFloatAsIntFromDisplay<1>, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<1>),
@@ -590,19 +621,14 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
VPHELPER(VP_FWRETRACT_RESTART_LENGTH, &fwretract.settings.retract_recover_extra, ScreenHandler.DGUSLCD_SetFloatAsIntFromDisplay<1>, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<1>),
VPHELPER(VP_FWRETRACT_RESTART_FEEDRATE, &fwretract.settings.retract_recover_feedrate_mm_s, ScreenHandler.DGUSLCD_SetFloatAsIntFromDisplay<1>, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<1>),
#if ENABLED(FWRETRACT_AUTORETRACT)
VPHELPER(VP_FWRETRACT_INDICATOR_ICON, &fwretract.autoretract_enabled, nullptr, (ScreenHandler.DGUSLCD_SendIconValue<ICON_FWRETRACT_AUTO_ENGAGED, ICON_FWRETRACT_AUTO_DISENGAGED>)),
VPHELPER(VP_FWRETRACT_TOGGLE_BUTTON_ICON, &fwretract.autoretract_enabled, nullptr, (ScreenHandler.DGUSLCD_SendIconValue<ICON_FWRETRACT_AUTO_TOGGLE_ON, ICON_FWRETRACT_AUTO_TOGGLE_OFF>)),
VPHELPER(VP_FWRETRACT_TOGGLE_BUTTON, &fwretract.autoretract_enabled, ScreenHandler.DGUSLCD_ToggleBoolean, nullptr),
#else
VPHELPER(VP_FWRETRACT_INDICATOR_ICON, nullptr, nullptr, (ScreenHandler.DGUSLCD_SendIconValue<ICON_FWRETRACT_AUTO_ENGAGED, ICON_FWRETRACT_AUTO_DISENGAGED>)),
VPHELPER(VP_FWRETRACT_TOGGLE_BUTTON_ICON, nullptr, nullptr, (ScreenHandler.DGUSLCD_SendIconValue<ICON_FWRETRACT_AUTO_TOGGLE_ON, ICON_FWRETRACT_AUTO_TOGGLE_OFF>)),
VPHELPER(VP_FWRETRACT_TOGGLE_BUTTON, nullptr, ScreenHandler.DGUSLCD_ToggleBoolean, nullptr),
#endif
VPHELPER(VP_FWRETRACT_INDICATOR_ICON, &fwretract.autoretract_enabled, nullptr, (ScreenHandler.DGUSLCD_SendIconValue<ICON_FWRETRACT_AUTO_ENGAGED, ICON_FWRETRACT_AUTO_DISENGAGED>)),
VPHELPER(VP_FWRETRACT_TOGGLE_BUTTON_ICON, &fwretract.autoretract_enabled, nullptr, (ScreenHandler.DGUSLCD_SendIconValue<ICON_FWRETRACT_AUTO_TOGGLE_ON, ICON_FWRETRACT_AUTO_TOGGLE_OFF>)),
VPHELPER(VP_FWRETRACT_TOGGLE_BUTTON, &fwretract.autoretract_enabled, ScreenHandler.DGUSLCD_ToggleBoolean, nullptr),
#if ENABLED(LIN_ADVANCE)
VPHELPER(VP_LINEAR_ADVANCE_FACTOR, &planner.extruder_advance_K[0], ScreenHandler.DGUSLCD_SetFloatAsIntFromDisplay<2>, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<2>),
#endif
// ... Sending after init does not always work
VPHELPER(VP_FWRETRACT_NAV_BUTTON_ICON, &ScreenHandler.fwretract_available, nullptr, (ScreenHandler.DGUSLCD_SendIconValue<ICON_FWRETRACT_NAV_AVAILABLE, ICON_FWRETRACT_NAV_UNAVAILABLE>)),
// Additional buttons
VPHELPER(VP_MUTE_TOGGLE, nullptr, ScreenHandler.HandleToggleTouchScreenMute, nullptr),
@@ -623,7 +649,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
{ .VP = VP_MSGSTR1, .memadr = nullptr, .size = VP_MSGSTR1_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = &ScreenHandler.DGUSLCD_SendStringToDisplayPGM },
{ .VP = VP_MSGSTR2, .memadr = nullptr, .size = VP_MSGSTR2_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = &ScreenHandler.DGUSLCD_SendStringToDisplayPGM },
{ .VP = VP_MSGSTR3, .memadr = nullptr, .size = VP_MSGSTR3_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = &ScreenHandler.DGUSLCD_SendStringToDisplayPGM },
{ .VP = VP_MSGSTR4, .memadr = nullptr, .size = VP_MSGSTR4_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = &ScreenHandler.DGUSLCD_SendStringToDisplayPGM },
//{ .VP = VP_MSGSTR4, .memadr = nullptr, .size = VP_MSGSTR4_LEN, .set_by_display_handler = nullptr, .send_to_display_handler = &ScreenHandler.DGUSLCD_SendStringToDisplayPGM },
VPHELPER(0, 0, 0, 0) // must be last entry.
};
@@ -73,7 +73,10 @@ enum DGUSLCD_Screens : uint8_t {
DGUSLCD_SCREEN_PIDTUNE_CALIBRATION = 68,
DGUSLCD_SCREEN_ESTEPS_CALIBRATION = 69,
DGUSLCD_SCREEN_TUNEFWRETRACT = 70
DGUSLCD_SCREEN_TUNEFWRETRACT = 70,
DGUSLCD_SCREEN_ESTEPS_CALIBRATION_RESULTS = 71,
DGUSLCD_SCREEN_LEVELING_SETTINGS = 72
};
// Display Memory layout used (T5UID)
@@ -191,7 +194,7 @@ constexpr uint16_t VP_MARLIN_VERSION = 0x2222;
constexpr uint8_t VP_MARLIN_VERSION_LEN = 20; // there is more space on the display, if needed.
constexpr uint16_t VP_MARLIN_WEBSITE = 0x2242;
constexpr uint8_t VP_MARLIN_WEBSITE_LEN = 32;
constexpr uint8_t VP_MARLIN_WEBSITE_LEN = 32;
constexpr uint16_t VP_STANDBY_BACKLIGHT_ICON = 0x2280;
constexpr uint16_t VP_STANDBY_BACKLIGHT_TOGGLE = 0x2282;
@@ -353,7 +356,6 @@ constexpr uint16_t VP_FAN_TOGGLE = 0x101E;
constexpr uint16_t VP_LED_TOGGLE = 0x101F;
constexpr uint16_t VP_MESH_LEVEL_TEMP = 0x108A;
constexpr uint16_t VP_MESH_LEVEL_STATUS = 0x108D;
constexpr uint16_t VP_MESH_VALUE_START = 0x1300;
constexpr uint16_t VP_FEED_AMOUNT = 0x1054;
constexpr uint16_t VP_FEED_PROGRESS = 0x108e;
@@ -378,7 +380,6 @@ constexpr uint16_t VP_PIDTUNE_START_BUTTON = 0x229B;
// FWRetract
constexpr uint16_t VP_FWRETRACT_NAV_BUTTON = 0x22AD;
constexpr uint16_t VP_FWRETRACT_NAV_BUTTON_ICON = 0x22AF;
constexpr uint16_t VP_FWRETRACT_RETRACT_LENGTH = 0x22B1;
constexpr uint16_t VP_FWRETRACT_RETRACT_FEEDRATE = 0x22B3;
@@ -391,6 +392,19 @@ constexpr uint16_t VP_FWRETRACT_TOGGLE_BUTTON = 0x22BB;
constexpr uint16_t VP_FWRETRACT_TOGGLE_BUTTON_ICON = 0x22BD;
constexpr uint16_t VP_FWRETRACT_INDICATOR_ICON = 0x22BF;
// Other tuning
constexpr uint16_t VP_LINEAR_ADVANCE_FACTOR = 0x22AF;
// Leveling settings
constexpr uint16_t VP_TOGGLE_PROBE_HEATERS_OFF_ONOFF_BUTTON = 0x22C1;
constexpr uint16_t VP_TOGGLE_PROBE_HEATERS_OFF_ONOFF_ICON = 0x22C3;
constexpr uint16_t VP_TOGGLE_PROBE_PREHEAT_HOTEND_TEMP = 0x22C5;
constexpr uint16_t VP_TOGGLE_PROBE_PREHEAT_BED_TEMP = 0x22C7;
constexpr uint16_t VP_TOGGLE_PROBE_SETTINGS_NAV_BUTTON = 0x22C9;
constexpr uint16_t VP_MESH_VALUE_START = 0x1300;
// E-steps calibration
constexpr uint16_t VP_ESTEPS_CURRENT = 0x229d;
@@ -419,9 +433,5 @@ constexpr uint16_t ICON_STANDBY_TOGGLE_OFF = 8;
constexpr uint16_t ICON_FWRETRACT_AUTO_TOGGLE_ON = 9;
constexpr uint16_t ICON_FWRETRACT_AUTO_TOGGLE_OFF = 10;
constexpr uint16_t ICON_FWRETRACT_NAV_UNAVAILABLE = 14;
constexpr uint16_t ICON_FWRETRACT_NAV_AVAILABLE = 15;
constexpr uint16_t ICON_FWRETRACT_AUTO_DISENGAGED = 16; // This icon deliberately does not exist
constexpr uint16_t ICON_FWRETRACT_AUTO_ENGAGED = 17;
constexpr uint16_t ICON_FWRETRACT_AUTO_DISENGAGED = 4; // This icon deliberately does not exist
constexpr uint16_t ICON_FWRETRACT_AUTO_ENGAGED = 3;
@@ -102,8 +102,9 @@ void EstepsHandler::HandleStartButton(DGUS_VP_Variable &var, void *val_ptr) {
if (!eAxisWasRelative) GcodeSuite::set_e_absolute();
// Done
ScreenHandler.GotoScreen(DGUSLCD_SCREEN_ESTEPS_CALIBRATION_RESULTS, false);
ScreenHandler.Buzzer(0, 250);
SetStatusMessage(PSTR("Please measure remaining filament"));
SetStatusMessage(PSTR("Measure remaining filament"));
}
void EstepsHandler::HandleApplyButton(DGUS_VP_Variable &var, void *val_ptr) {
@@ -116,9 +117,12 @@ void EstepsHandler::HandleApplyButton(DGUS_VP_Variable &var, void *val_ptr) {
// Save & reset
settings.save();
Init();
ScreenHandler.Buzzer(0, 250);
ScreenHandler.PopToOldScreen();
ScreenHandler.GotoScreen(DGUSLCD_SCREEN_MAIN, false);
SetStatusMessage(PSTR("New e-steps value saved"));
}
@@ -30,16 +30,9 @@ void MainMenuHandler(DGUS_VP_Variable &var, unsigned short buttonValue) {
case VP_BUTTON_MAINENTERKEY:
switch (buttonValue) {
case 1:
// Try to mount an unmounted card
if (!card.isMounted()) {
card.mount();
if (card.isMounted()) {
ExtUI::onMediaInserted();
}
}
ScreenHandler.GotoScreen(DGUSLCD_SCREEN_SDFILELIST);
// Try to mount an unmounted card (BTT SKR board has especially some trouble sometimes)
card.mount();
ScreenHandler.SDCardInserted();
break;
case 2:
@@ -125,8 +118,9 @@ void LevelingModeHandler(DGUS_VP_Variable &var, unsigned short buttonValue) {
case VP_BUTTON_PREPAREENTERKEY:
if (buttonValue == 9) {
// If we're in the workflow of calibration from the home screen, there is no need to keep the heaters on at this point
thermalManager.disable_all_heaters();
#if DISABLED(HOTEND_IDLE_TIMEOUT)
thermalManager.disable_all_heaters();
#endif
ScreenHandler.GotoScreen(DGUSLCD_SCREEN_MAIN);
}
@@ -390,11 +384,15 @@ void InfoMenuHandler(DGUS_VP_Variable &var, unsigned short buttonValue) {
void change_filament_with_temp(PGM_P command, const uint16_t celsius) {
// Heat if necessary
if (ExtUI::getActualTemp_celsius(ExtUI::E0) < celsius && abs(ExtUI::getActualTemp_celsius(ExtUI::E0) - celsius) > 2) {
ScreenHandler.setstatusmessagePGM(PSTR("Heating up..."));
thermalManager.setTargetHotend(celsius, ExtUI::H0);
thermalManager.wait_for_hotend(ExtUI::H0, false);
}
// Inject load filament command
ScreenHandler.setstatusmessagePGM(PSTR("Filament load/unload..."));
char cmd[64];
sprintf_P(cmd, command, ScreenHandler.feed_amount);
@@ -407,6 +405,8 @@ void InfoMenuHandler(DGUS_VP_Variable &var, unsigned short buttonValue) {
planner.synchronize();
SERIAL_ECHOPGM_P("- done");
ScreenHandler.setstatusmessagePGM(PSTR("Filament load/unload complete"));
}
void FeedHandler(DGUS_VP_Variable &var, unsigned short buttonValue) {
@@ -422,7 +422,7 @@ void FeedHandler(DGUS_VP_Variable &var, unsigned short buttonValue) {
case 1:
dgusdisplay.WriteVariable(VP_FEED_PROGRESS, static_cast<int16_t>(10));
change_filament_with_temp(PSTR("M701 L%f"), celsius);
change_filament_with_temp(PSTR("M701 L%f P0"), celsius);
dgusdisplay.WriteVariable(VP_FEED_PROGRESS, static_cast<int16_t>(0));
break;