You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Ender3V2S1/Marlin/src/prouiex/custom_gcodes.cpp

195 lines
5.8 KiB
C++

**New Year 2024 (20240107)** * The background of hot-end icon and bed icon blinks when they are being heating * Fix for https://github.com/mriscoc/Ender3V2S1/issues/1175 * Adds mesh inset to the mesh validation test * Fix screen background in trammingWizard regardless an error in the first corner **New in source code:** * Enabled M48 menu item only if Z_MIN_PROBE_REPEATABILITY_TEST is enabled * Moves Bed size menu items after XY MIN/MAX position * Enables the storage of parameters in the EEPROM only if the respective feature is enabled **From Marlin Bugfix** * Slimmer null T command (#26615) * Followup to optional M111/M115 (#26626) * Fix hangs in DUE native USB (#26572) * Fix Bed PID Autotune output (#26606) * CONFIGURE_FILAMENT_CHANGE - Optional M603 (#26613) * I3DBEE TECH Beez Mini 12864 (#26596) * Options to slim M111, remove M115 (#26603) * BSD string workaround (#26532) * Fix homing with FT_MOTION (#26595) * Fix, extend FAN / AUTOFAN confict check (#26591) * BigTreeTech Manta M8P V2.0 (STM32H723ZE) (#26578) * Optimize FT_MOTION (#26557) * TriGorilla Pro default to ONBOARD_SDIO (#26586) * Specify U8glib-HAL@0.5.4 (#26582) * Newer Platform & Toolchain for STM32G0 (#26585) * Initial support for HC32 U8G LCD (#26568) * Move U8G defines to HALs * BigTreeTech Kraken V1.0 (STM32H723ZG) (#26565) * Fix string buffer warning (#26550) * Fix MARKFORGED_INVERSE typos (#26558) * Creality Free Runs fixups (#26562) * Orca 3D Modular Controller (#26534) * Jerk correction for LIN_ADVANCE + CLASSIC_JERK (#26551) * Optional FAN_INVERTING * Just "warn" on SD fail * FT_MOTION improvements (#26074) * Fix Creality E3 "Free-runs" (#26533) * Creality E3 Free-runs Silent Motherboard (#25636) * Fix planner jerk limits (#26529) * MARKFORGED_INVERSE (#26516) * Fix MKS TS35 with BTT SKR 1.3/1.4 (#26176) * SERIAL_DMA (for some STM32Fx) (#26328) * Adjust Progress / Completion (#26466) * Encoder improvements (#26501) * Use strlcpy with buffer size (#26513) * Use PIO versioning (including HC32) (#26512) * Voxelab Aquila N32 (via Maple) (#26470) * Fix tool-change E prime (#26494) * Fix thermistor 14 & 60 constexprness (#26499) * UI refresh for some events (#26487) * Fix a NeoPixel override (#26492) * Fix ftostrX3sign (#26497) * DOUBLE_LCD_FRAMERATE (#26500) * Fix some action labels (#26490) * More num-to-string digits / precisions (#26343) * Fix BLTouch HSMode deploy (#26311) * Touch fixes (#26455) * XY_AFTER_HOMING, EVENT_GCODE_AFTER_HOMING (#26469) * BlackBeezMini 3D by I3DBEE (#26406) * HAL for HC32F460 (#26414) * MAX Thermocouples for Heated Bed (#26441) * Pins for FYSETC Spider King 4.07 (#26461) * Use ftpl for item strings (#26462) * BD_SENSOR_PROBE_NO_STOP (#26353) * Fix PANDA ZHU missing #endif (#26460) * Update Teensy 4.0/4.1 Serial (#26457) * Configurable FR/Flow edit ranges (#26446) * Fix MMU2 sscanf bug, optimize (#26449) * Fix GT2560_V41b Z2 pin (#26370) * BTT Octopus Pro V1.0.1 (STM32H723ZE) (#26159) * Fix Ender-5 S1 env * Fix more MarlinUI title centering (#26440) * Fix MarlinUI axis move / UBL strings (#26439) * Minor touch calibration improvement (#26445) * Fix rotational AxisFlags (#26444) * Rotational move items (#26438) * Define MarlinUI axis moves with lists (#26344) * Creality STM32F401RC w/out bootloader (#26373) * Fix runout state in menu (#26394) And many other Bug fixes and improvements from the Marlin bugfix branch
5 months ago
/**
* Custom G-code implementation for PRO UI
* Author: Miguel A. Risco-Castillo (MRISCOC)
* Version: 3.1.0
* Date: 2023/10/27
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
#include "../inc/MarlinConfigPre.h"
#if ALL(PROUI_EX, HAS_CGCODE)
#include "../MarlinCore.h" // for wait_for_user
#include "../core/types.h"
#include "../gcode/gcode.h"
#include "../libs/buzzer.h"
#include "../lcd/marlinui.h"
#if HAS_MEDIA
#include "file_header.h"
#endif
#ifdef DWIN_LCD_PROUI
#include "../lcd/e3v2/proui/dwin.h"
#if ENABLED(LCD_BED_TRAMMING)
#include "../lcd/e3v2/proui/bed_tramming.h"
#endif
#endif
#include "custom_gcodes.h"
//=============================================================================
// Extended G-CODES
//=============================================================================
void cError() {
parser.unknown_command_warning();
}
#if HAS_CUSTOM_COLORS
// C11 Set color for UI element E
void C11() {
const int16_t E = parser.seenval('E') ? parser.value_byte() : 0; // UI element
if (E) {
hmiValue.Color[0] = parser.seenval('R') ? parser.value_byte() : 0;
hmiValue.Color[1] = parser.seenval('G') ? parser.value_byte() : 0;
hmiValue.Color[2] = parser.seenval('B') ? parser.value_byte() : 0;
dwinApplyColor(E);
} else dwinRedrawScreen();
}
#endif
#if ALL(HAS_BED_PROBE, HAS_TRAMMING_WIZARD)
// Bed tramming
void C35() {
if (parser.seenval('T')) {
const int8_t i = parser.value_byte();
if (WITHIN(i, 0, 4)) tram(i);
}
TERN_(HAS_TRAMMING_WIZARD, else runTrammingWizard());
}
#endif
// Cancel a Wait for User without an Emergecy Parser
void C108() {
#if DEBUG_DWIN
SERIAL_ECHOLNPGM(F("wait_for_user was "), wait_for_user);
SERIAL_ECHOLNPGM(F("checkkey was "), checkkey);
#endif
#if LCD_BACKLIGHT_TIMEOUT_MINS
ui.refresh_backlight_timeout();
#endif
#if HAS_LCD_BRIGHTNESS
if (!ui.backlight) ui.refresh_brightness();
#endif
wait_for_user = false;
DONE_BUZZ(true);
}
// Enable or disable preview screen
#if ALL(HAS_GCODE_PREVIEW, PREVIEW_MENU_ITEM)
void C250() {
if (parser.seenval('P')) {
hmiData.enablePreview = !!parser.value_byte();
}
SERIAL_ECHOLNPGM(F("PREVIEW:"), hmiData.enablePreview);
}
#endif
// lock/unlock screen
#if HAS_LOCKSCREEN
void C510() {
if (parser.seenval('U') && parser.value_int()) dwinUnLockScreen();
else dwinLockScreen();
}
#endif
#if ENABLED(DEBUG_DWIN)
**New Year 2024 (20240107)** * The background of hot-end icon and bed icon blinks when they are being heating * Fix for https://github.com/mriscoc/Ender3V2S1/issues/1175 * Adds mesh inset to the mesh validation test * Fix screen background in trammingWizard regardless an error in the first corner **New in source code:** * Enabled M48 menu item only if Z_MIN_PROBE_REPEATABILITY_TEST is enabled * Moves Bed size menu items after XY MIN/MAX position * Enables the storage of parameters in the EEPROM only if the respective feature is enabled **From Marlin Bugfix** * Slimmer null T command (#26615) * Followup to optional M111/M115 (#26626) * Fix hangs in DUE native USB (#26572) * Fix Bed PID Autotune output (#26606) * CONFIGURE_FILAMENT_CHANGE - Optional M603 (#26613) * I3DBEE TECH Beez Mini 12864 (#26596) * Options to slim M111, remove M115 (#26603) * BSD string workaround (#26532) * Fix homing with FT_MOTION (#26595) * Fix, extend FAN / AUTOFAN confict check (#26591) * BigTreeTech Manta M8P V2.0 (STM32H723ZE) (#26578) * Optimize FT_MOTION (#26557) * TriGorilla Pro default to ONBOARD_SDIO (#26586) * Specify U8glib-HAL@0.5.4 (#26582) * Newer Platform & Toolchain for STM32G0 (#26585) * Initial support for HC32 U8G LCD (#26568) * Move U8G defines to HALs * BigTreeTech Kraken V1.0 (STM32H723ZG) (#26565) * Fix string buffer warning (#26550) * Fix MARKFORGED_INVERSE typos (#26558) * Creality Free Runs fixups (#26562) * Orca 3D Modular Controller (#26534) * Jerk correction for LIN_ADVANCE + CLASSIC_JERK (#26551) * Optional FAN_INVERTING * Just "warn" on SD fail * FT_MOTION improvements (#26074) * Fix Creality E3 "Free-runs" (#26533) * Creality E3 Free-runs Silent Motherboard (#25636) * Fix planner jerk limits (#26529) * MARKFORGED_INVERSE (#26516) * Fix MKS TS35 with BTT SKR 1.3/1.4 (#26176) * SERIAL_DMA (for some STM32Fx) (#26328) * Adjust Progress / Completion (#26466) * Encoder improvements (#26501) * Use strlcpy with buffer size (#26513) * Use PIO versioning (including HC32) (#26512) * Voxelab Aquila N32 (via Maple) (#26470) * Fix tool-change E prime (#26494) * Fix thermistor 14 & 60 constexprness (#26499) * UI refresh for some events (#26487) * Fix a NeoPixel override (#26492) * Fix ftostrX3sign (#26497) * DOUBLE_LCD_FRAMERATE (#26500) * Fix some action labels (#26490) * More num-to-string digits / precisions (#26343) * Fix BLTouch HSMode deploy (#26311) * Touch fixes (#26455) * XY_AFTER_HOMING, EVENT_GCODE_AFTER_HOMING (#26469) * BlackBeezMini 3D by I3DBEE (#26406) * HAL for HC32F460 (#26414) * MAX Thermocouples for Heated Bed (#26441) * Pins for FYSETC Spider King 4.07 (#26461) * Use ftpl for item strings (#26462) * BD_SENSOR_PROBE_NO_STOP (#26353) * Fix PANDA ZHU missing #endif (#26460) * Update Teensy 4.0/4.1 Serial (#26457) * Configurable FR/Flow edit ranges (#26446) * Fix MMU2 sscanf bug, optimize (#26449) * Fix GT2560_V41b Z2 pin (#26370) * BTT Octopus Pro V1.0.1 (STM32H723ZE) (#26159) * Fix Ender-5 S1 env * Fix more MarlinUI title centering (#26440) * Fix MarlinUI axis move / UBL strings (#26439) * Minor touch calibration improvement (#26445) * Fix rotational AxisFlags (#26444) * Rotational move items (#26438) * Define MarlinUI axis moves with lists (#26344) * Creality STM32F401RC w/out bootloader (#26373) * Fix runout state in menu (#26394) And many other Bug fixes and improvements from the Marlin bugfix branch
5 months ago
void C997() {
SERIAL_ECHOLNPGM("Simulating a printer freeze");
TERN_(DWIN_LCD_PROUI, dwinRebootScreen());
while (1) {};
}
#elif NONE(PLATFORM_M997_SUPPORT, DWIN_LCD_PROUI)
void C997() {
SERIAL_ECHOLNPGM("Reboot printer");
hal.reboot();
}
**New Year 2024 (20240107)** * The background of hot-end icon and bed icon blinks when they are being heating * Fix for https://github.com/mriscoc/Ender3V2S1/issues/1175 * Adds mesh inset to the mesh validation test * Fix screen background in trammingWizard regardless an error in the first corner **New in source code:** * Enabled M48 menu item only if Z_MIN_PROBE_REPEATABILITY_TEST is enabled * Moves Bed size menu items after XY MIN/MAX position * Enables the storage of parameters in the EEPROM only if the respective feature is enabled **From Marlin Bugfix** * Slimmer null T command (#26615) * Followup to optional M111/M115 (#26626) * Fix hangs in DUE native USB (#26572) * Fix Bed PID Autotune output (#26606) * CONFIGURE_FILAMENT_CHANGE - Optional M603 (#26613) * I3DBEE TECH Beez Mini 12864 (#26596) * Options to slim M111, remove M115 (#26603) * BSD string workaround (#26532) * Fix homing with FT_MOTION (#26595) * Fix, extend FAN / AUTOFAN confict check (#26591) * BigTreeTech Manta M8P V2.0 (STM32H723ZE) (#26578) * Optimize FT_MOTION (#26557) * TriGorilla Pro default to ONBOARD_SDIO (#26586) * Specify U8glib-HAL@0.5.4 (#26582) * Newer Platform & Toolchain for STM32G0 (#26585) * Initial support for HC32 U8G LCD (#26568) * Move U8G defines to HALs * BigTreeTech Kraken V1.0 (STM32H723ZG) (#26565) * Fix string buffer warning (#26550) * Fix MARKFORGED_INVERSE typos (#26558) * Creality Free Runs fixups (#26562) * Orca 3D Modular Controller (#26534) * Jerk correction for LIN_ADVANCE + CLASSIC_JERK (#26551) * Optional FAN_INVERTING * Just "warn" on SD fail * FT_MOTION improvements (#26074) * Fix Creality E3 "Free-runs" (#26533) * Creality E3 Free-runs Silent Motherboard (#25636) * Fix planner jerk limits (#26529) * MARKFORGED_INVERSE (#26516) * Fix MKS TS35 with BTT SKR 1.3/1.4 (#26176) * SERIAL_DMA (for some STM32Fx) (#26328) * Adjust Progress / Completion (#26466) * Encoder improvements (#26501) * Use strlcpy with buffer size (#26513) * Use PIO versioning (including HC32) (#26512) * Voxelab Aquila N32 (via Maple) (#26470) * Fix tool-change E prime (#26494) * Fix thermistor 14 & 60 constexprness (#26499) * UI refresh for some events (#26487) * Fix a NeoPixel override (#26492) * Fix ftostrX3sign (#26497) * DOUBLE_LCD_FRAMERATE (#26500) * Fix some action labels (#26490) * More num-to-string digits / precisions (#26343) * Fix BLTouch HSMode deploy (#26311) * Touch fixes (#26455) * XY_AFTER_HOMING, EVENT_GCODE_AFTER_HOMING (#26469) * BlackBeezMini 3D by I3DBEE (#26406) * HAL for HC32F460 (#26414) * MAX Thermocouples for Heated Bed (#26441) * Pins for FYSETC Spider King 4.07 (#26461) * Use ftpl for item strings (#26462) * BD_SENSOR_PROBE_NO_STOP (#26353) * Fix PANDA ZHU missing #endif (#26460) * Update Teensy 4.0/4.1 Serial (#26457) * Configurable FR/Flow edit ranges (#26446) * Fix MMU2 sscanf bug, optimize (#26449) * Fix GT2560_V41b Z2 pin (#26370) * BTT Octopus Pro V1.0.1 (STM32H723ZE) (#26159) * Fix Ender-5 S1 env * Fix more MarlinUI title centering (#26440) * Fix MarlinUI axis move / UBL strings (#26439) * Minor touch calibration improvement (#26445) * Fix rotational AxisFlags (#26444) * Rotational move items (#26438) * Define MarlinUI axis moves with lists (#26344) * Creality STM32F401RC w/out bootloader (#26373) * Fix runout state in menu (#26394) And many other Bug fixes and improvements from the Marlin bugfix branch
5 months ago
#endif
// Special Creality DWIN GCodes
void customGcode(const int16_t codenum) {
switch(codenum) {
#if HAS_CUSTOM_COLORS
case 11: C11(); break; // Set color for UI element E
#endif
#if ALL(HAS_BED_PROBE, HAS_TRAMMING_WIZARD)
case 35: C35(); break; // Launch bed tramming wizard
#endif
case 108: C108(); break; // Cancel a Wait for User without an Emergecy Parser
#if HAS_LOCKSCREEN
case 510: C510(); break; // lock screen
#endif
#if ENABLED(DEBUG_DWIN) || NONE(PLATFORM_M997_SUPPORT, DWIN_LCD_PROUI)
case 997: C997(); break; // Simulate a printer freeze (or reboot)
**New Year 2024 (20240107)** * The background of hot-end icon and bed icon blinks when they are being heating * Fix for https://github.com/mriscoc/Ender3V2S1/issues/1175 * Adds mesh inset to the mesh validation test * Fix screen background in trammingWizard regardless an error in the first corner **New in source code:** * Enabled M48 menu item only if Z_MIN_PROBE_REPEATABILITY_TEST is enabled * Moves Bed size menu items after XY MIN/MAX position * Enables the storage of parameters in the EEPROM only if the respective feature is enabled **From Marlin Bugfix** * Slimmer null T command (#26615) * Followup to optional M111/M115 (#26626) * Fix hangs in DUE native USB (#26572) * Fix Bed PID Autotune output (#26606) * CONFIGURE_FILAMENT_CHANGE - Optional M603 (#26613) * I3DBEE TECH Beez Mini 12864 (#26596) * Options to slim M111, remove M115 (#26603) * BSD string workaround (#26532) * Fix homing with FT_MOTION (#26595) * Fix, extend FAN / AUTOFAN confict check (#26591) * BigTreeTech Manta M8P V2.0 (STM32H723ZE) (#26578) * Optimize FT_MOTION (#26557) * TriGorilla Pro default to ONBOARD_SDIO (#26586) * Specify U8glib-HAL@0.5.4 (#26582) * Newer Platform & Toolchain for STM32G0 (#26585) * Initial support for HC32 U8G LCD (#26568) * Move U8G defines to HALs * BigTreeTech Kraken V1.0 (STM32H723ZG) (#26565) * Fix string buffer warning (#26550) * Fix MARKFORGED_INVERSE typos (#26558) * Creality Free Runs fixups (#26562) * Orca 3D Modular Controller (#26534) * Jerk correction for LIN_ADVANCE + CLASSIC_JERK (#26551) * Optional FAN_INVERTING * Just "warn" on SD fail * FT_MOTION improvements (#26074) * Fix Creality E3 "Free-runs" (#26533) * Creality E3 Free-runs Silent Motherboard (#25636) * Fix planner jerk limits (#26529) * MARKFORGED_INVERSE (#26516) * Fix MKS TS35 with BTT SKR 1.3/1.4 (#26176) * SERIAL_DMA (for some STM32Fx) (#26328) * Adjust Progress / Completion (#26466) * Encoder improvements (#26501) * Use strlcpy with buffer size (#26513) * Use PIO versioning (including HC32) (#26512) * Voxelab Aquila N32 (via Maple) (#26470) * Fix tool-change E prime (#26494) * Fix thermistor 14 & 60 constexprness (#26499) * UI refresh for some events (#26487) * Fix a NeoPixel override (#26492) * Fix ftostrX3sign (#26497) * DOUBLE_LCD_FRAMERATE (#26500) * Fix some action labels (#26490) * More num-to-string digits / precisions (#26343) * Fix BLTouch HSMode deploy (#26311) * Touch fixes (#26455) * XY_AFTER_HOMING, EVENT_GCODE_AFTER_HOMING (#26469) * BlackBeezMini 3D by I3DBEE (#26406) * HAL for HC32F460 (#26414) * MAX Thermocouples for Heated Bed (#26441) * Pins for FYSETC Spider King 4.07 (#26461) * Use ftpl for item strings (#26462) * BD_SENSOR_PROBE_NO_STOP (#26353) * Fix PANDA ZHU missing #endif (#26460) * Update Teensy 4.0/4.1 Serial (#26457) * Configurable FR/Flow edit ranges (#26446) * Fix MMU2 sscanf bug, optimize (#26449) * Fix GT2560_V41b Z2 pin (#26370) * BTT Octopus Pro V1.0.1 (STM32H723ZE) (#26159) * Fix Ender-5 S1 env * Fix more MarlinUI title centering (#26440) * Fix MarlinUI axis move / UBL strings (#26439) * Minor touch calibration improvement (#26445) * Fix rotational AxisFlags (#26444) * Rotational move items (#26438) * Define MarlinUI axis moves with lists (#26344) * Creality STM32F401RC w/out bootloader (#26373) * Fix runout state in menu (#26394) And many other Bug fixes and improvements from the Marlin bugfix branch
5 months ago
#endif
#if HAS_MEDIA
case 10: proUIEx.C10(); break; // Mark the G-code file as a Configuration file
#endif
#if HAS_MESH
case 29: proUIEx.C29(); break; // Set probing area and mesh leveling settings
#endif
case 100: proUIEx.C100(); break; // Change Physical minimums
case 101: proUIEx.C101(); break; // Change Physical maximums
case 102: proUIEx.C102(); break; // Change Bed size
#if HAS_PROUI_MAXTEMP
case 104: proUIEx.C104(); break; // Set extruder max temperature (limited by maxtemp in thermistor table)
#endif
case 115: proUIEx.C115(); break; // ProUI Info
#if ENABLED(NOZZLE_PARK_FEATURE)
case 125: proUIEx.C125(); break; // Set park position
#endif
#if ALL(HAS_GCODE_PREVIEW, PREVIEW_MENU_ITEM)
case 250: C250(); break; // Enable or disable preview screen
#endif
#if HAS_PROUI_RUNOUT_SENSOR
case 412: proUIEx.C412(); break; // Set runout sensor active mode
#endif
case 562: proUIEx.C562(); break; // Invert Extruder
case 851: proUIEx.C851(); break; // If has a probe set z feed rate and multiprobe, if not, set manual z-offset
#if HAS_TOOLBAR
case 810: proUIEx.C810(); break; // Config toolbar
#endif
default: cError(); break;
}
}
void customGcodeReport(const bool forReplay/*=true*/) {
proUIEx.C100_report(forReplay);
proUIEx.C101_report(forReplay);
proUIEx.C102_report(forReplay);
#if HAS_MESH
proUIEx.C29_report(forReplay);
#endif
#if HAS_PROUI_MAXTEMP
proUIEx.C104_report(forReplay);
#endif
#if ENABLED(NOZZLE_PARK_FEATURE)
proUIEx.C125_report(forReplay);
#endif
#if HAS_PROUI_RUNOUT_SENSOR
proUIEx.C412_report(forReplay);
#endif
proUIEx.C562_report(forReplay);
#if HAS_BED_PROBE
proUIEx.C851_report(forReplay);
#endif
}
#endif // PROUI_EX && HAS_CGCODE