diff --git a/.gitignore b/.gitignore index 198d82880e..a0b2708b14 100755 --- a/.gitignore +++ b/.gitignore @@ -169,3 +169,4 @@ __pycache__ # IOLogger logs *_log.csv +.vscode/extensions.json diff --git a/Ender3V2S1_Dwin_TM3DV2.7z b/Ender3V2S1_Dwin_TM3DV2.7z new file mode 100644 index 0000000000..b475ee3871 Binary files /dev/null and b/Ender3V2S1_Dwin_TM3DV2.7z differ diff --git a/Hex Files/firmware_CR10Smart_DW7.4.5.bin.zip b/Hex Files/firmware_CR10Smart_DW7.4.5.bin.zip new file mode 100644 index 0000000000..f257a434c9 Binary files /dev/null and b/Hex Files/firmware_CR10Smart_DW7.4.5.bin.zip differ diff --git a/Hex Files/firmware_Ender7_BLT_DW7.4.5.bin.zip b/Hex Files/firmware_Ender7_BLT_DW7.4.5.bin.zip new file mode 100644 index 0000000000..b8873e10f1 Binary files /dev/null and b/Hex Files/firmware_Ender7_BLT_DW7.4.5.bin.zip differ diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 78171a3958..3fafde988d 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -52,6 +52,7 @@ //STM32F103RE Machines //#define MachineEnder3V2 +//#define MachineEnder3S1 //#define MachineEnder3Max //#define MachineEnder3Pro422 //#define MachineEnder3Pro427 @@ -95,14 +96,13 @@ //#define E3DHemera //#define CrealityTitan //#define DDXExtruderKit + //#define SpriteExtruder //Stepper09Deg // 0.9 degree per step motor on the extruder - doubles ESteps //#define MicroswissDirectDrive //#define DirectDrive // Any direct drive extruder, reduces filament change lengths -//#define E3TALLKIT //350mm Z Axis E3 Kit - /* Choose bed type below. If you have an extenrally controlled ac bed, leave both disabled @@ -331,7 +331,7 @@ // @section info // Author info of this build printed to the host during boot and M115 -#define STRING_CONFIG_H_AUTHOR "InsanityAutomation" // Who made the changes. +#define STRING_CONFIG_H_AUTHOR "TinyMachines3D" // Who made the changes. #define CUSTOM_VERSION_FILE Version.h // Path from the root directory (no quotes) /** @@ -439,7 +439,7 @@ #endif #endif -#if ENABLED(MachineCR5) +#if ANY(MachineCR5, MachineEnder3S1) #if NONE(ABL_NCSW, ABL_EZABL, ABL_BLTOUCH) #define ABL_BLTOUCH #endif @@ -448,6 +448,10 @@ #endif #endif +#if ENABLED(MachineEnder3S1) + #define SpriteExtruder +#endif + #if ANY(MachineCR10SV2) #define lerdgeFilSensor #endif @@ -456,7 +460,7 @@ #define Z_STOP_PIN 19 #endif -#if ANY(MachineEnder2, MachineEnder3, MachineEnder5, MachineCR10, MachineMini) && NONE(SKR13, SKR14, SKR14Turbo, SKRPRO11, SKRE3Turbo, SKRMiniE3V2, Creality422, Creality427, Melzi_To_SBoardUpgrade) +#if ANY(MachineEnder2, MachineEnder3, MachineEnder5, MachineCR10, MachineMini) &&NONE(SKR13, SKR14, SKR14Turbo, SKRPRO11, SKRE3Turbo, SKRMiniE3V2, Creality422, Creality427, Melzi_To_SBoardUpgrade) #define MachineCR10Orig #endif @@ -522,7 +526,7 @@ #define Dual_BowdenSplitterY #endif -#if ANY(MachineEnder3V2, MachineEnder3Pro422, MachineEnder3Pro427, Creality422, Creality427, MachineEnder3Max, MachineEnder6, MachineEnder7, MachineSermoonD1) +#if ANY(MachineEnder3V2, MachineEnder3Pro422, MachineEnder3Pro427, Creality422, Creality427, MachineEnder3Max, MachineEnder6, MachineEnder7, MachineSermoonD1, MachineEnder3S1) #define POWER_LOSS_RECOVERY //Screen will not compile without PLR #define CrealitySilentBoard #endif @@ -624,7 +628,7 @@ #define BedDC #endif -#if ANY(SKR13, SKR14, SKR14Turbo, SKRPRO11, SKRE3Turbo, MachineEnder3V2, Creality422, Creality427, MachineEnder6, MachineSermoonD1, MachineCR30, MachineCR6, MachineCR6Max, MachineEnder7, MachineCR10Smart) +#if ANY(SKR13, SKR14, SKR14Turbo, SKRPRO11, SKRE3Turbo, MachineEnder3V2, MachineEnder3S1, Creality422, Creality427, MachineEnder6, MachineSermoonD1, MachineCR30, MachineCR6, MachineCR6Max, MachineEnder7, MachineCR10Smart) #define MachineLargeROM #endif @@ -632,10 +636,10 @@ #define SHOW_BOOTSCREEN // Show the bitmap in Marlin/_Bootscreen.h on startup. - #if DISABLED(MachineEnder3V2, MachineCR6, MachineCR6Max, MachineEnder3Touchscreen, FORCEV2DISPLAY) - //#define SHOW_CUSTOM_BOOTSCREEN + #if DISABLED(MachineEnder3V2, MachineEnder3S1, MachineCR6, MachineCR6Max, MachineEnder3Touchscreen, FORCEV2DISPLAY) + #define SHOW_CUSTOM_BOOTSCREEN // Show the bitmap in Marlin/_Statusscreen.h on the status screen. - //#define CUSTOM_STATUS_SCREEN_IMAGE + #define CUSTOM_STATUS_SCREEN_IMAGE #endif #endif @@ -651,7 +655,7 @@ #define SERIAL_PORT -1 #elif ENABLED(MachineCR10Smart) #define SERIAL_PORT 1 -#elif ANY(MachineEnder3V2, MachineEnder3Max, MachineEnder3Pro422, MachineEnder3Pro427, Creality422, Creality427, MachineEnder6, MachineCR6, MachineCR6Max, MachineSermoonD1, MachineCR30, MachineEnder7) +#elif ANY(MachineEnder3V2, MachineEnder3S1, MachineEnder3Max, MachineEnder3Pro422, MachineEnder3Pro427, Creality422, Creality427, MachineEnder6, MachineCR6, MachineCR6Max, MachineSermoonD1, MachineCR30, MachineEnder7) #define SERIAL_PORT 1 #else #define SERIAL_PORT 0 @@ -666,15 +670,15 @@ #define LCD_SERIAL_PORT 0 #define LCD_BAUDRATE 115200 #define SERIAL_CATCHALL -1 -#elif ANY(SKR13, SKR14, SKR14Turbo, SKRPRO11, SKRE3Turbo) && NONE(MachineEnder3V2, MachineEnder3Touchscreen, FORCEV2DISPLAY) +#elif ANY(SKR13, SKR14, SKR14Turbo, SKRPRO11, SKRE3Turbo) && NONE(MachineEnder3V2, MachineEnder3S1, MachineEnder3Touchscreen, FORCEV2DISPLAY) #define SERIAL_PORT_2 0 #elif ENABLED(SKRMiniE3V2) #define SERIAL_PORT_2 2 -#elif ENABLED(MachineEnder3V2) && ANY(FORCEV2DISPLAY, SKRE3Turbo) +#elif ANY(MachineEnder3V2, MachineEnder3S1) && ANY(FORCEV2DISPLAY, SKRE3Turbo) #define LCD_SERIAL_PORT 1 #define LCD_BAUDRATE 115200 #define SERIAL_CATCHALL -1 -#elif ANY(MachineCR10SPro, MachineCRX, MachineEnder5Plus, MachineCR10Max, MachineCR5) && NONE(GraphicLCD, OrigLCD, MachineEnder3V2, Creality422, Creality427, MachineEnder6, FORCEV2DISPLAY) +#elif ANY(MachineCR10SPro, MachineCRX, MachineEnder5Plus, MachineCR10Max, MachineCR5) && NONE(GraphicLCD, OrigLCD, MachineEnder3V2, MachineEnder3S1, Creality422, Creality427, MachineEnder6, FORCEV2DISPLAY) #define LCD_SERIAL_PORT 2 #define LCD_BAUDRATE 115200 #define SERIAL_CATCHALL 0 @@ -690,7 +694,7 @@ #define LCD_SERIAL_PORT 2 #define LCD_BAUDRATE 115200 #define SERIAL_CATCHALL 1 -#elif ANY(Creality422, Creality427) && NONE(MachineEnder3V2, FORCE10SPRODISPLAY, MachineEnder3Touchscreen) +#elif ANY(Creality422, Creality427) && NONE(MachineEnder3V2, MachineEnder3S1, FORCE10SPRODISPLAY, MachineEnder3Touchscreen) #define SERIAL_PORT_2 3 #endif @@ -705,7 +709,7 @@ * * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000] */ -#if ANY(MachineEnder3V2, CrealityViewerKit, MachineCR6, MachineCR6Max, MachineEnder3Touchscreen, MachineCR10Smart, FORCEV2DISPLAY) +#if ANY(MachineEnder3V2, MachineEnder3S1, CrealityViewerKit, MachineCR6, MachineCR6Max, MachineEnder3Touchscreen, MachineCR10Smart, FORCEV2DISPLAY) #define BAUDRATE 115200 #else #define BAUDRATE 250000 @@ -754,6 +758,8 @@ #define MOTHERBOARD BOARD_CREALITY_V427 #elif ENABLED(Creality422) #define MOTHERBOARD BOARD_CREALITY_V4 + #elif ENABLED(MachineEnder3S1) + #define MOTHERBOARD BOARD_CREALITY_V24S1_301 #elif (ENABLED(MachineCR10Orig) && DISABLED(Melzi_To_SBoardUpgrade)) #define MOTHERBOARD BOARD_MELZI_CREALITY #elif ENABLED(SKR_CR6) @@ -1324,7 +1330,7 @@ #define DEFAULT_Kp 22.2 #define DEFAULT_Ki 1.08 #define DEFAULT_Kd 114 - #elif ENABLED(MachineEnder3V2) + #elif ANY(MachineEnder3V2, MachineEnder3S1) #define DEFAULT_Kp 28.72 #define DEFAULT_Ki 2.62 #define DEFAULT_Kd 78.81 @@ -1397,7 +1403,7 @@ //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+) //from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10) - #if ENABLED(MachineEnder3V2) + #if ANY(MachineEnder3V2, MachineEnder3S1) #define DEFAULT_bedKp 462.10 #define DEFAULT_bedKi 85.47 #define DEFAULT_bedKd 624.59 @@ -1609,12 +1615,12 @@ #endif // Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup). -#if ANY(MachineEnder4, MachineCR2020, MachineCR30, MachineCR5) +#if ANY(MachineEnder4, MachineCR2020, MachineCR30, MachineCR5, MachineEnder3S1) #define X_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop. #else #define X_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop. #endif -#if ANY(MachineCR2020, MachineCR30, MachineCR5) +#if ANY(MachineCR2020, MachineCR30, MachineCR5, MachineEnder3S1) #define Y_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop. #else #define Y_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop. @@ -1655,7 +1661,7 @@ * :['A4988', 'A5984', 'DRV8825', 'LV8729', 'L6470', 'L6474', 'POWERSTEP01', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2160', 'TMC2160_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC2209', 'TMC2209_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE', 'TMC5160', 'TMC5160_STANDALONE'] */ -#if (ANY(SKR13, SKR14, SKR14Turbo, SKRPRO11, CrealitySilentBoard) || ANY(MachineCR10SV2, MachineCR10SPro, MachineCR10SProV2, MachineCR10Max, MachineCR5, SKRMiniE3V2, MachineCR6, MachineCR6Max, MachineEnder6, MachineEnder7, MachineSermoonD1, MachineCR30, MachineCR10Smart)) && DISABLED(SKR_UART) +#if (ANY(SKR13, SKR14, SKR14Turbo, SKRPRO11, CrealitySilentBoard) || ANY(MachineCR10SV2, MachineEnder3S1, MachineCR10SPro, MachineCR10SProV2, MachineCR10Max, MachineCR5, SKRMiniE3V2, MachineCR6, MachineCR6Max, MachineEnder6, MachineEnder7, MachineSermoonD1, MachineCR30, MachineCR10Smart)) && DISABLED(SKR_UART) #if ENABLED(SKR_2209) #define X_DRIVER_TYPE TMC2209_STANDALONE #define Y_DRIVER_TYPE TMC2209_STANDALONE @@ -1748,7 +1754,7 @@ // Enable this feature if all enabled endstop pins are interrupt-capable. // This will remove the need to poll the interrupt pins, saving many CPU cycles. -#if ENABLED(MachineEnder3V2) && NONE(SKRE3Turbo, SKR14Turbo, SKR14, SKR13) +#if ANY(MachineEnder3V2, MachineEnder3S1) && NONE(SKRE3Turbo, SKR14Turbo, SKR14, SKR13) #define ENDSTOP_INTERRUPTS_FEATURE #endif @@ -1807,6 +1813,8 @@ #define EStepsmm 415 #elif ENABLED(E3DHemera) #define EStepsmm 409 +#elif ENABLED(SpriteExtruder) + #define EStepsmm 430 #elif ANY(EZRstruder, MachineCR10SV2) #define EStepsmm 93 #elif ENABLED(MachineCR5) @@ -1852,7 +1860,7 @@ #define DEFAULT_ACCELERATION 750 // X, Y, Z and E acceleration for printing moves #define DEFAULT_RETRACT_ACCELERATION 1000 // E acceleration for retracts #define DEFAULT_TRAVEL_ACCELERATION 300 // X, Y, Z acceleration for travel (non printing) moves -#elif ANY(MachineMini, MachineCR20, MachineEnder2, MachineEnder3, MachineEnder3Max, MachineEnder3V2, MachineEnder4, MachineEnder5, MachineEnder5Plus, MachineCR5, MachineSermoonD1) +#elif ANY(MachineMini, MachineCR20, MachineEnder2, MachineEnder3, MachineEnder3Max, MachineEnder3V2, MachineEnder3S1, MachineEnder4, MachineEnder5, MachineEnder5Plus, MachineCR5, MachineSermoonD1) #define DEFAULT_MAX_FEEDRATE { 750, 750, 10, 75 } #define DEFAULT_MAX_ACCELERATION { 2000, 2000, 100, 75 } #define DEFAULT_ACCELERATION 750 // X, Y, Z and E acceleration for printing moves @@ -2218,6 +2226,8 @@ #endif #elif ENABLED(MicroswissDirectDrive) && ENABLED(ABL_BLTOUCH) #define NOZZLE_TO_PROBE_OFFSET { -45, -5, 0 } +#elif ENABLED(MachineEnder3S1) + #define NOZZLE_TO_PROBE_OFFSET { -37, -39, -2.0 } #elif (ENABLED(ABL_BLTOUCH) && ENABLED(HotendStock)) #define NOZZLE_TO_PROBE_OFFSET { -41, -8, 0 } #elif ((ANY(ABL_EZABL, ABL_NCSW)) && ENABLED(HotendStock)) @@ -2587,13 +2597,16 @@ #elif ANY(MachineEnder3, MachineEnder3V2) #define X_BED_SIZE 230 #define Y_BED_SIZE 230 - #if ENABLED(E3TALLKIT) - #define Z_MAX_POS 350 - #else - #define Z_MAX_POS 250 - #endif + #define Z_MAX_POS 250 #define X_MAX_POS 245 - #define Y_MAX_POS 250 + #define Y_MAX_POS 240 + #define ClipClearance 15 + #elif ANY(MachineEnder3S1) + #define X_BED_SIZE 220 + #define Y_BED_SIZE 220 + #define Z_MAX_POS 270 + #define X_MAX_POS 250 + #define Y_MAX_POS 228 #define ClipClearance 15 #elif(ANY(MachineEnder4, MachineEnder5)) #define X_BED_SIZE 220 @@ -2726,7 +2739,7 @@ #elif ENABLED(TOUCH_MI_PROBE) #define X_MIN_POS -4 #define Y_MIN_POS -10 -#elif ENABLED(MachineCR6, MachineCR10Smart) +#elif ENABLED(MachineCR6, MachineCR10Smart, MachineEnder3S1) #define X_MIN_POS -5 #define Y_MIN_POS -2 #elif ENABLED(MachineCR6Max) @@ -2820,8 +2833,11 @@ #else #define FIL_RUNOUT_STATE HIGH // set to true to invert the logic of the sensor. #endif - #define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins. - //#define FIL_RUNOUT_PULLDOWN // Use internal pulldown for filament runout pins. + #if DISABLED(MachineEnder3S1) + #define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins. + #else + #define FIL_RUNOUT_PULLDOWN // Use internal pulldown for filament runout pins. + #endif //#define WATCH_ALL_RUNOUT_SENSORS // Execute runout script on any triggering sensor, not only for the active extruder. // This is automatically enabled for MIXING_EXTRUDERs. @@ -2985,7 +3001,7 @@ * Enable the G26 Mesh Validation Pattern tool. */ #if NONE(MachineCR10Orig, SKRMiniE3V2) - //#define G26_MESH_VALIDATION // Enable G26 mesh validation + #define G26_MESH_VALIDATION // Enable G26 mesh validation #endif #if ENABLED(G26_MESH_VALIDATION) #define MESH_TEST_NOZZLE_SIZE 0.4 // (mm) Diameter of primary nozzle. @@ -3090,7 +3106,7 @@ * Add a bed leveling sub-menu for ABL or MBL. * Include a guided procedure if manual probing is enabled. */ -#if NONE(ABL_EZABL, ABL_NCSW, ABL_BLTOUCH, ABL_TOUCH_MI, SKRMiniE3V2, MachineEnder3V2, FORCE10SPRODISPLAY, MachineCR6, MachineCR6Max, MachineSermoonD1, MachineEnder7, MachineCR30, MachineCR10Smart, MachineEnder3Touchscreen, FORCEV2DISPLAY) && (DISABLED(MachineCRX) || ANY(GraphicLCD, OrigLCD)) +#if NONE(ABL_EZABL, ABL_NCSW, ABL_BLTOUCH, ABL_TOUCH_MI, SKRMiniE3V2, MachineEnder3V2, FORCE10SPRODISPLAY, MachineCR6, MachineCR6Max, MachineSermoonD1, MachineEnder7, MachineCR30, MachineCR10Smart, FORCEV2DISPLAY) && (DISABLED(MachineCRX) || ANY(GraphicLCD, OrigLCD)) #define LCD_BED_LEVELING #endif @@ -3657,7 +3673,7 @@ // If you have a speaker that can produce tones, enable it here. // By default Marlin assumes you have a buzzer with a fixed frequency. // -#if ANY(MachineCR6, MachineCR6Max, MachineEnder3Touchscreen) +#if ANY(MachineCR6, MachineCR6Max) #define SPEAKER #endif @@ -3757,7 +3773,7 @@ #define ENDER2_STOCKDISPLAY #elif ANY(MachineCR20, MachineCR2020) #define MKS_MINI_12864 -#elif ANY(MachineEnder3V2, FORCEV2DISPLAY) +#elif ANY(MachineEnder3V2, FORCEV2DISPLAY, MachineEnder3S1) #define DWIN_CREALITY_LCD_JYERSUI #elif ANY(OrigLCD, MachineCR10Orig, MachineEnder3Pro422, MachineEnder3Pro427, MachineEnder3Max, SKRMiniE3V2, SKRE3Turbo) && NONE(GraphicLCD, MachineEnder3Touchscreen, FORCE10SPRODISPLAY) #define CR10_STOCKDISPLAY @@ -4343,7 +4359,7 @@ // Use software PWM to drive the fan, as for the heaters. This uses a very low frequency // which is not as annoying as with the hardware PWM. On the other hand, if this frequency // is too low, you should also increment SOFT_PWM_SCALE. -#if ANY(SKRPRO11, SKRMiniE3V2, MachineEnder6, MachineEnder7, Creality427, Creality422, SKR_CR6, CR6_452, MachineCR30, MachineCR6, MachineCR6Max, MachineCR10Smart) +#if ANY(SKRPRO11, SKRMiniE3V2, MachineEnder6, MachineEnder7, Creality427, Creality422, SKR_CR6, CR6_452, MachineCR30, MachineCR6, MachineCR6Max, MachineCR10Smart, MachineEnder3S1) #define FAN_SOFT_PWM #endif // Incrementing this by 1 will double the software PWM frequency, diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 912d5af70d..209b4a4e14 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -937,7 +937,7 @@ * differs, a mode set eeprom write will be completed at initialization. * Use the option below to force an eeprom write to a V3.1 probe regardless. */ - #if NONE(SKR13, SKR14, SKR14Turbo, SKRPRO11, SKRMiniE3V2, Creality422, Creality427, MachineEnder6, MachineEnder7, MachineSermoonD1, MachineCR30, MachineCR6, MachineCR6Max) + #if NONE(SKR13, SKR14, SKR14Turbo, SKRPRO11, SKRMiniE3V2, MachineEnder3S1, Creality422, Creality427, MachineEnder6, MachineEnder7, MachineSermoonD1, MachineCR30, MachineCR6, MachineCR6Max) #define BLTOUCH_SET_5V_MODE #endif /** @@ -2067,7 +2067,7 @@ #endif #if ENABLED(BABYSTEP_ZPROBE_OFFSET) //#define BABYSTEP_HOTEND_Z_OFFSET // For multiple hotends, babystep relative Z offsets - #if NONE(MachineCR10Orig, LowMemoryBoard, EXTENSIBLE_UI, SKRMiniE3V2, MachineEnder3V2, MachineCR6, MachineCR6Max, FORCEV2DISPLAY) && (DISABLED(MachineEnder4) || ENABLED(GraphicLCD)) + #if NONE(MachineCR10Orig, LowMemoryBoard, EXTENSIBLE_UI, SKRMiniE3V2, MachineEnder3V2, MachineEnder3S1, MachineCR6, MachineCR6Max, FORCEV2DISPLAY) && (DISABLED(MachineEnder4) || ENABLED(GraphicLCD)) #define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor #endif #endif @@ -2451,7 +2451,7 @@ // Therefore some clients abort after 30 seconds in a timeout. // Some other clients start sending commands while receiving a 'wait'. // This "wait" is only sent when the buffer is empty. 1 second is a good value here. -#if NONE(MachineCR10Orig, LowMemoryBoard, MachineEnder3V2) || ENABLED(MelziHostOnly) +#if NONE(MachineCR10Orig, LowMemoryBoard, MachineEnder3V2, MachineEnder3S1) || ENABLED(MelziHostOnly) #define NO_TIMEOUTS 1000 // Milliseconds #endif diff --git a/Marlin/Version.h b/Marlin/Version.h index c9c381c6a2..1dfb4dd4c5 100644 --- a/Marlin/Version.h +++ b/Marlin/Version.h @@ -43,6 +43,8 @@ #define VerChar1 "E3" #elif ENABLED(MachineEnder3V2) #define VerChar1 "E3V2" +#elif ENABLED(MachineEnder3S1) + #define VerChar1 "E3S1" #elif ENABLED(MachineEnder3Max) #define VerChar1 "E3M" #elif(ENABLED(MachineEnder4)) @@ -154,6 +156,8 @@ #define CUSTOM_MACHINE_NAME "Ender7" #elif(ENABLED(MachineEnder3V2)) #define CUSTOM_MACHINE_NAME "Ender3V2" +#elif(ENABLED(MachineEnder3S1)) + #define CUSTOM_MACHINE_NAME "Ender3S1" #elif(ENABLED(MachineEnder4)) #define CUSTOM_MACHINE_NAME "Ender4" #elif(ENABLED(MachineEnder5)) diff --git a/Marlin/src/inc/Conditionals_post.h b/Marlin/src/inc/Conditionals_post.h index 99291c1758..8188bdd198 100644 --- a/Marlin/src/inc/Conditionals_post.h +++ b/Marlin/src/inc/Conditionals_post.h @@ -459,9 +459,9 @@ #endif -#if ANY(HAS_GRAPHICAL_TFT, LCD_USE_DMA_FSMC, HAS_FSMC_GRAPHICAL_TFT, HAS_SPI_GRAPHICAL_TFT, IS_DWIN_MARLINUI, EXTENSIBLE_UI) || !PIN_EXISTS(SD_DETECT) +//#if ANY(HAS_GRAPHICAL_TFT, LCD_USE_DMA_FSMC, HAS_FSMC_GRAPHICAL_TFT, HAS_SPI_GRAPHICAL_TFT, IS_DWIN_MARLINUI, EXTENSIBLE_UI) || !PIN_EXISTS(SD_DETECT) #define NO_LCD_REINIT 1 // Suppress LCD re-initialization -#endif +//#endif /** * Power Supply diff --git a/Marlin/src/lcd/e3v2/creality/dwin_lcd.cpp b/Marlin/src/lcd/e3v2/creality/dwin_lcd.cpp index fee22932d2..3d60e32a79 100644 --- a/Marlin/src/lcd/e3v2/creality/dwin_lcd.cpp +++ b/Marlin/src/lcd/e3v2/creality/dwin_lcd.cpp @@ -49,6 +49,7 @@ void DWIN_Startup() { #if DISABLED(SHOW_BOOTSCREEN) DWIN_Frame_Clear(Color_Bg_Black); // MarlinUI handles the bootscreen so just clear here #endif + DWIN_JPG_ShowAndCache(3); DWIN_UpdateLCD(); } diff --git a/Marlin/src/lcd/e3v2/enhanced/dwin.cpp b/Marlin/src/lcd/e3v2/enhanced/dwin.cpp index edb371fa8d..5bf212d057 100644 --- a/Marlin/src/lcd/e3v2/enhanced/dwin.cpp +++ b/Marlin/src/lcd/e3v2/enhanced/dwin.cpp @@ -1834,6 +1834,7 @@ void DWIN_Startup() { DWINUI::onCursorErase = Erase_Menu_Cursor; DWINUI::onTitleDraw = Draw_Title; DWINUI::onMenuDraw = Draw_Menu; + DWIN_JPG_ShowAndCache(3); HMI_SetLanguage(); } @@ -1934,6 +1935,7 @@ void DWIN_RebootScreen() { DWINUI::Draw_CenteredString(Color_White, 220, GET_TEXT_F(MSG_PLEASE_WAIT_REBOOT)); DWIN_UpdateLCD(); delay(500); + DWIN_JPG_ShowAndCache(3) } void DWIN_Redraw_screen() { @@ -3339,7 +3341,7 @@ void Draw_Control_Menu() { #if ENABLED(CASE_LIGHT_MENU) #if ENABLED(CASELIGHT_USES_BRIGHTNESS) MENU_ITEM(ICON_CaseLight, GET_TEXT_F(MSG_CASE_LIGHT), onDrawSubMenu, Draw_CaseLight_Menu); - #else + #else MENU_ITEM(ICON_CaseLight, GET_TEXT_F(MSG_CASE_LIGHT), onDrawCaseLight, SetCaseLight); #endif #endif @@ -3601,7 +3603,7 @@ void Draw_Tune_Menu() { MENU_ITEM(ICON_CaseLight, GET_TEXT_F(MSG_CASE_LIGHT), onDrawCaseLight, SetCaseLight); #elif ENABLED(LED_CONTROL_MENU) && DISABLED(CASE_LIGHT_USE_NEOPIXEL) MENU_ITEM(ICON_LedControl, GET_TEXT_F(MSG_LEDS), onDrawLedStatus, SetLedStatus); - #endif + #endif EDIT_ITEM(ICON_Speed, GET_TEXT_F(MSG_SPEED), onDrawSpeedItem, SetSpeed, &feedrate_percentage); #if HAS_HOTEND HotendTargetItem = EDIT_ITEM(ICON_HotendTemp, GET_TEXT_F(MSG_UBL_SET_TEMP_HOTEND), onDrawHotendTemp, SetHotendTemp, &thermalManager.temp_hotend[0].target); diff --git a/Marlin/src/lcd/e3v2/jyersui/dwin.cpp b/Marlin/src/lcd/e3v2/jyersui/dwin.cpp index 50a0051eb6..b4bb7b64a8 100644 --- a/Marlin/src/lcd/e3v2/jyersui/dwin.cpp +++ b/Marlin/src/lcd/e3v2/jyersui/dwin.cpp @@ -5454,6 +5454,8 @@ void MarlinUI::init_lcd() { DWIN_UpdateLCD(); delay(20); } + + DWIN_JPG_ShowAndCache(3); DWIN_JPG_CacheTo1(Language_English); CrealityDWIN.Redraw_Screen(); } diff --git a/Marlin/src/lcd/e3v2/marlinui/dwin_lcd.cpp b/Marlin/src/lcd/e3v2/marlinui/dwin_lcd.cpp index ef390ac9dc..a4cefe4ab9 100644 --- a/Marlin/src/lcd/e3v2/marlinui/dwin_lcd.cpp +++ b/Marlin/src/lcd/e3v2/marlinui/dwin_lcd.cpp @@ -45,6 +45,7 @@ void DWIN_Startup() { const bool success = DWIN_Handshake(); if (success) DEBUG_ECHOLNPGM("ok."); else DEBUG_ECHOLNPGM("error."); DWIN_Frame_SetDir(TERN(DWIN_MARLINUI_LANDSCAPE, 0, 1)); + DWIN_JPG_ShowAndCache(3); DWIN_Frame_Clear(Color_Bg_Black); // MarlinUI handles the bootscreen so just clear here DWIN_UpdateLCD(); } diff --git a/Marlin/src/lcd/extui/dgus_creality/creality_touch/DGUSDisplayDef.cpp b/Marlin/src/lcd/extui/dgus_creality/creality_touch/DGUSDisplayDef.cpp index daed80ed41..d92f69bcd1 100644 --- a/Marlin/src/lcd/extui/dgus_creality/creality_touch/DGUSDisplayDef.cpp +++ b/Marlin/src/lcd/extui/dgus_creality/creality_touch/DGUSDisplayDef.cpp @@ -483,6 +483,8 @@ const struct VPMapping VPMap[] PROGMEM = { #define VPHELPER_STR(VPADR, VPADRVAR, STRLEN, RXFPTR, TXFPTR ) { .VP=VPADR, .memadr=VPADRVAR, .size=STRLEN, \ .set_by_display_handler = RXFPTR, .send_to_display_handler = TXFPTR } +float tmp_z_offset = getZOffset_mm(); + const struct DGUS_VP_Variable ListOfVP[] PROGMEM = { // Back button state VPHELPER(VP_BACK_BUTTON_STATE, nullptr, nullptr, ScreenHandler.SendBusyState), @@ -619,9 +621,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = { VPHELPER(SP_Y_POSITION, nullptr, nullptr, ScreenHandler.SendAxisTrustValue), VPHELPER(SP_Z_POSITION, nullptr, nullptr, ScreenHandler.SendAxisTrustValue), - #if HAS_BED_PROBE - VPHELPER(VP_Z_OFFSET, &probe.offset.z, ScreenHandler.HandleZoffsetChange, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<2>), - #endif + VPHELPER(VP_Z_OFFSET, &tmp_z_offset, ScreenHandler.HandleZoffsetChange, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<2>), VPHELPER(VP_FAN_TOGGLE, &thermalManager.fan_speed[0], nullptr, ScreenHandler.DGUSLCD_SendFanStatusToDisplay), VPHELPER(VP_Fan0_Percentage, &thermalManager.fan_speed[0], ScreenHandler.HandleFanSpeedChanged, ScreenHandler.DGUSLCD_SendFanSpeedToDisplay), @@ -748,7 +748,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = { VPHELPER(VP_DEVELOPMENT_HELPER_BUTTON, nullptr, ScreenHandler.HandleDevelopmentTestButton, nullptr), // Mesh override input -#if MESH_INPUT_SUPPORTED_SIZE == GRID_MAX_POINTS && HAS_MESH +#if MESH_INPUT_SUPPORTED_SIZE == GRID_MAX_POINTS //#define _VPHELPER_GP(N) VPHELPER((VP_MESH_INPUT_X0_Y0 + ( ##N## * MESH_INPUT_DATA_SIZE)), nullptr, ScreenHandler.HandleMeshPoint, nullptr), //REPEAT(MESH_INPUT_SUPPORTED_SIZE, _VPHELPER_GP) diff --git a/Marlin/src/lcd/extui/dgus_creality/creality_touch/FilamentLoadUnloadHandler.cpp b/Marlin/src/lcd/extui/dgus_creality/creality_touch/FilamentLoadUnloadHandler.cpp index 181d38ba81..04a84697a3 100644 --- a/Marlin/src/lcd/extui/dgus_creality/creality_touch/FilamentLoadUnloadHandler.cpp +++ b/Marlin/src/lcd/extui/dgus_creality/creality_touch/FilamentLoadUnloadHandler.cpp @@ -42,7 +42,7 @@ void FilamentLoadUnloadHandler::HandleLoadUnloadButton(DGUS_VP_Variable &var, vo } if (ExtUI::isPrinting() && !ExtUI::isPrintingPaused()) { - SetStatusMessage(PSTR("Please pause print first")); + SetStatusMessage(PSTR("Finish Printing First")); return; } diff --git a/README.md b/README.md index f0f1fae13b..ae666f7a44 100644 --- a/README.md +++ b/README.md @@ -9,34 +9,43 @@ This branch is specifically intended to support the kits sold by F1rst Layer inc - [E3V2 Upgrade Kit (Screen, 427 board, bltouch, runout)](https://amzn.to/3EZnhec) - [Ender 3 100mm Z Extension Kit](https://amzn.to/2XWH78F) -- [CR10S Pro](http://bit.ly/2rxZ6lP) -- [CR10S Pro V2](http://bit.ly/2rxZ6lP) -- [CR10 Max](http://bit.ly/2L6wZRy) -- [Ender 5 Plus](https://bit.ly/2SriM5I) -- [Ender 6](https://amzn.to/3wMaoj3) -- [CR-X / Pro](https://bit.ly/33eZ5Ts) -- [CR10 V2/V3 ](https://bit.ly/3nnhPcM) -- [Ender 3 / Pro 4.2.2 and 4.2.7](https://bit.ly/3ncWu5I) -- [Ender 3 V2](https://bit.ly/3xmx4XI) -- [Ender 3 Max]() +- [CR10S Pro / V2](https://www.tinymachines3d.com/products/cr-10s-pro-v2-3d-printer?rfsn=3419592.cc302fe) +- [CR10 Max](https://www.tinymachines3d.com/products/creality-cr-10-max-3d-printer?rfsn=3419592.cc302fe) +- [Ender 5 Plus](https://www.tinymachines3d.com/products/ender-5-plus-silent-board-custom-dual-z-3d-printer?rfsn=3419592.cc302fe) +- [Ender 6](https://amzn.to/3JRyOhi) +- [CR-X / Pro](https://www.tinymachines3d.com/products/creality-cr-x-pro-3d-printer-with-dual-extruder-and-bl-touch?rfsn=3419592.cc302fe) +- [CR10 V2 ](https://www.tinymachines3d.com/products/creality-cr-10-v2-3d-printer?rfsn=3419592.cc302fe) +- [CR10 V3 ](https://www.tinymachines3d.com/products/creality-cr-10-v3-plus-3d-printer-with-genuine-e3d-direct-drive-extruder-and-bl-touch?rfsn=3419592.cc302fe) +- [Ender 3 / Pro 4.2.2 and 4.2.7](https://amzn.to/3BRHlxY) +- [Ender 3 V2](https://www.tinymachines3d.com/products/ender-3-v2?rfsn=3419592.cc302fe) +- [Ender 3 Max](https://www.tinymachines3d.com/products/ender-3-max-3d-printer?rfsn=3419592.cc302fe) - [Ender 5 / Pro 4.2.2 and 4.2.7](https://amzn.to/3gMb2Yu) -- [CR20 and Pro](http://bit.ly/2Oxxruk) -- [CR10S](http://bit.ly/33AAaHv) -- [CR10S4 400mm](http://bit.ly/2XXCBmq) -- [CR10S5 500mm](http://bit.ly/35K4ZuR) -- [CR6 / Max](https://bit.ly/2SdYijE) -- [CR10 Smart](https://bit.ly/3JFVWzi) -- [Ender 7](https://bit.ly/3rZOCZi) -- [CR30](https://bit.ly/3rZOMQo) +- [CR10S5 500mm](https://www.tinymachines3d.com/products/creality-cr-10-s5-3d-printer?rfsn=3419592.cc302fe) +- [CR6 SE](https://www.tinymachines3d.com/products/creality-cr-6-se-3d-printer?rfsn=3419592.cc302fe) +- [CR6 Max](https://www.tinymachines3d.com/products/creality-cr-6-max-3d-printer?rfsn=3419592.cc302fe) +- [CR10 Smart](https://www.tinymachines3d.com/products/creality-cr-10-smart-3d-printer?rfsn=3419592.cc302fe) +- [Ender 7](https://www.tinymachines3d.com/products/ender-7-3d-printer?rfsn=3419592.cc302fe) +- [CR30](https://www.tinymachines3d.com/products/cr-30-infinite-z-belt-3d-printer?rfsn=3419592.cc302fe) - [Sermoon D1](https://amzn.to/3LXfZeD) -- CR10, CR10Mini, CR2020, Ender 4, Ender 2 - Legacy support --- These configurations exist however due to age and product availability are no longer actively tested ---Coming Soon -- [Ender 3 S1](https://bit.ly/35cUGo4) -- [CR10 Smart Pro](https://bit.ly/3Hg8ewN) -- [Ender 2 Pro](https://bit.ly/3oZPtHE) - [CR5 / Pro HT](https://amzn.to/3gWvpBt) +- CR10S, CR10S4, CR20 and Pro, CR10, CR10Mini, CR2020, Ender 4, Ender 2 - Legacy support +- These configurations exist however due to age and product availability are no longer actively tested + +## Coming Soon +- [Ender 3 S1](https://www.tinymachines3d.com/products/ender-3-s1-3d-printer?rfsn=3419592.cc302fe) +- [CR10 Smart Pro](https://www.tinymachines3d.com/products/cr-10-smart-pro-3d-printer?rfsn=3419592.cc302fe) +- [Ender 2 Pro](https://www.tinymachines3d.com/products/ender-2-pro-3d-printer?rfsn=3419592.cc302fe) +- [CR200B]() + +## Resin machines below from Tiny Machines are listed simply as an additional way to help support the project. If youre considering buying one, please do so through the following links : + - [Halot One CL-60](https://www.tinymachines3d.com/products/halot-one-cl-60-resin-3d-printer?rfsn=3419592.cc302fe) + - [LD-002R](https://www.tinymachines3d.com/products/ld-002r-resin-printer?rfsn=3419592.cc302fe) + - [LD-002H](https://www.tinymachines3d.com/products/ld-002h-resin-3d-printer?rfsn=3419592.cc302fe) + - [LD-006](https://www.tinymachines3d.com/products/ld-006-resin-3d-printer?rfsn=3419592.cc302fe) + - [UW-02 Washer](https://www.tinymachines3d.com/products/uw-02-washing-curing-machine?rfsn=3419592.cc302fe) + + Ender 3V2 has a dedicated file set. CR10 Smart has a dedicated high resolution screen set. Portrait displays use the CR6/E3 Touch variant and landscape use the combined set. Screen files are archived with [7-Zip](https://www.7-zip.org/) simply because it came out 1/5 the file size of a zip file. That added up fast!