diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h
index 3b5325f1c3..13f272cb65 100644
--- a/Marlin/Configuration.h
+++ b/Marlin/Configuration.h
@@ -30,6 +30,10 @@
//#define MachineMini
//#define MachineCR10
+
+//STM32F103RE Machines
+#define MachineEnder3V2
+
//#define PLUS // Adds bltouch, allmetal, bilinear (standard), lerdge, 93 e steps/mm
/*
@@ -224,7 +228,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
+ * along with this program. If not, see .
*
*/
#pragma once
@@ -253,13 +257,13 @@
/**
* Here are some standard links for getting your machine calibrated:
*
- * http://reprap.org/wiki/Calibration
- * http://youtu.be/wAL9d7FgInk
+ * https://reprap.org/wiki/Calibration
+ * https://youtu.be/wAL9d7FgInk
* http://calculator.josefprusa.cz
- * http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide
- * http://www.thingiverse.com/thing:5573
+ * https://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide
+ * https://www.thingiverse.com/thing:5573
* https://sites.google.com/site/repraplogphase/calibration-of-your-reprap
- * http://www.thingiverse.com/thing:298812
+ * https://www.thingiverse.com/thing:298812
*/
//===========================================================================
@@ -424,6 +428,13 @@
#endif
#endif
+#if ENABLED(MachineEnder3V2)
+ #define POWER_LOSS_RECOVERY //Screen will not compile without PLR
+ #if NONE(BedAC, BedDC)
+ #define BedDC
+ #endif
+#endif
+
#if NONE(HotendStock, HotendE3D)
#define HotendStock
#endif
@@ -475,9 +486,11 @@
#define SHOW_BOOTSCREEN
// Show the bitmap in Marlin/_Bootscreen.h on startup.
- #define SHOW_CUSTOM_BOOTSCREEN
- // Show the bitmap in Marlin/_Statusscreen.h on the status screen.
- #define CUSTOM_STATUS_SCREEN_IMAGE
+ #if DISABLED(MachineEnder3V2)
+ #define SHOW_CUSTOM_BOOTSCREEN
+ // Show the bitmap in Marlin/_Statusscreen.h on the status screen.
+ #define CUSTOM_STATUS_SCREEN_IMAGE
+ #endif
#endif
/**
@@ -490,6 +503,8 @@
*/
#if ANY(SKR13, SKR14, SKR14Turbo, SKRPRO11, SKRMiniE3V2)
#define SERIAL_PORT -1
+ #elif ENABLED(MachineEnder3V2)
+ #define SERIAL_PORT 1
#else
#define SERIAL_PORT 0
#endif
@@ -505,6 +520,8 @@
#define SERIAL_PORT_2 2
#elif ANY(SKR13, SKR14, SKR14Turbo)
#define DGUS_SERIAL_PORT 0
+#elif ENABLED(MachineEnder3V2)
+ #define SERIAL_PORT_2 3
#endif
/**
@@ -533,6 +550,8 @@
#define MOTHERBOARD BOARD_BTT_SKR_PRO_V1_1
#elif ENABLED(SKRMiniE3V2)
#define MOTHERBOARD BOARD_BTT_SKR_MINI_E3_V2_0
+ #elif ENABLED(MachineEnder3V2)
+ #define MOTHERBOARD BOARD_CREALITY_V4
#elif (ENABLED(MachineCR10Orig) && DISABLED(Melzi_To_SBoardUpgrade))
#define MOTHERBOARD BOARD_MELZI_CREALITY
#else
@@ -854,6 +873,8 @@
#define TEMP_SENSOR_3 0
#define TEMP_SENSOR_4 0
#define TEMP_SENSOR_5 0
+#define TEMP_SENSOR_6 0
+#define TEMP_SENSOR_7 0
#if ENABLED(ConfigurableThermistors) && ANY(BedDC, BedAC)
#define TEMP_SENSOR_BED 1000
#elif ENABLED(BedDC)
@@ -927,7 +948,7 @@
//===========================================================================
//============================= PID Settings ================================
//===========================================================================
-// PID Tuning Guide here: http://reprap.org/wiki/PID_Tuning
+// PID Tuning Guide here: https://reprap.org/wiki/PID_Tuning
// Comment the following line to disable PID and enable bang-bang.
#define PIDTEMP
@@ -968,6 +989,10 @@
#define DEFAULT_Kp 22.2
#define DEFAULT_Ki 1.08
#define DEFAULT_Kd 114
+ #elif ENABLED(MachineEnder3V2)
+ #define DEFAULT_Kp 28.72
+ #define DEFAULT_Ki 2.62
+ #define DEFAULT_Kd 78.81
#else
#define DEFAULT_Kp 17.42
#define DEFAULT_Ki 1.27
@@ -1033,10 +1058,10 @@
//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(MachineCR2020)
- #define DEFAULT_bedKp 690.34
- #define DEFAULT_bedKi 111.47
- #define DEFAULT_bedKd 1068.83
+ #if ENABLED(MachineEnder3V2)
+ #define DEFAULT_bedKp 462.10
+ #define DEFAULT_bedKi 85.47
+ #define DEFAULT_bedKd 624.59
#else
#define DEFAULT_bedKp 690.34
#define DEFAULT_bedKi 111.47
@@ -1204,7 +1229,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, MachineCR10SV2, CrealitySilentBoard, MachineCR10SPro, MachineCR10SProV2, MachineCR10Max, SKRMiniE3V2) && DISABLED(SKR_UART)
+#if ANY(SKR13, SKR14, SKR14Turbo, SKRPRO11, MachineCR10SV2, CrealitySilentBoard, MachineCR10SPro, MachineCR10SProV2, MachineCR10Max, MachineEnder3V2, SKRMiniE3V2) && DISABLED(SKR_UART)
#if ENABLED(SKR_2209)
#define X_DRIVER_TYPE TMC2209_STANDALONE
#define Y_DRIVER_TYPE TMC2209_STANDALONE
@@ -1293,7 +1318,9 @@
// 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.
-//#define ENDSTOP_INTERRUPTS_FEATURE
+#if ENABLED(MachineEnder3V2)
+ #define ENDSTOP_INTERRUPTS_FEATURE
+#endif
/**
* Endstop Noise Threshold
@@ -1377,7 +1404,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, MachineEnder4, MachineEnder5, MachineEnder5Plus))
+#elif ANY(MachineMini, MachineCR20, MachineEnder2, MachineEnder3, MachineEnder3V2, MachineEnder4, MachineEnder5, MachineEnder5Plus)
#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
@@ -1470,10 +1497,12 @@
*
* See:
* https://reprap.org/forum/read.php?1,739819
- * http://blog.kyneticcnc.com/2018/10/computing-junction-deviation-for-marlin.html
+ * https://blog.kyneticcnc.com/2018/10/computing-junction-deviation-for-marlin.html
*/
#if DISABLED(CLASSIC_JERK)
- #define JUNCTION_DEVIATION_MM 0.06 // (mm) Distance from real junction edge
+ #define JUNCTION_DEVIATION_MM 0.013 // (mm) Distance from real junction edge
+ #define JD_HANDLE_SMALL_SEGMENTS // Use curvature estimation instead of just the junction angle
+ // for small segments (< 1mm) with large junction angles (> 135°).
#endif
/**
@@ -1569,6 +1598,11 @@
#define BLTOUCH
#endif
+/**
+ * Pressure sensor with a BLTouch-like interface
+ */
+//#define CREALITY_TOUCH
+
/**
* Touch-MI Probe by hotends.fr
*
@@ -1904,7 +1938,7 @@
#define X_MAX_POS 150
#define Y_MAX_POS 150
#define ClipClearance 15
- #elif ENABLED(MachineEnder3)
+ #elif ANY(MachineEnder3, MachineEnder3V2)
#define X_BED_SIZE 230
#define Y_BED_SIZE 230
#define Z_MAX_POS 250
@@ -2184,7 +2218,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.
@@ -2225,7 +2259,7 @@
// Beyond the probed grid, continue the implied tilt?
// Default is to maintain the height of the nearest edge.
- //#define EXTRAPOLATE_BEYOND_GRID
+ #define EXTRAPOLATE_BEYOND_GRID
//
// Experimental Subdivision of the grid by Catmull-Rom method.
@@ -2278,7 +2312,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) && (DISABLED(MachineCRX) || ENABLED(GraphicLCD))
+#if NONE(ABL_EZABL, ABL_NCSW, ABL_BLTOUCH, ABL_TOUCH_MI, SKRMiniE3V2, MachineEnder3V2) && (DISABLED(MachineCRX) || ENABLED(GraphicLCD))
#define LCD_BED_LEVELING
#endif
@@ -2624,6 +2658,39 @@
//#define PASSWORD_AFTER_SD_PRINT_ABORT
//#include "Configuration_Secure.h" // External file with PASSWORD_DEFAULT_VALUE
#endif
+
+
+/**
+ * Password
+ *
+ * Set a numerical password for the printer which can be requested:
+ *
+ * - When the printer boots up
+ * - Upon opening the 'Print from Media' Menu
+ * - When SD printing is completed or aborted
+ *
+ * The following G-codes can be used:
+ *
+ * M510 - Lock Printer. Blocks all commands except M511.
+ * M511 - Unlock Printer.
+ * M512 - Set, Change and Remove Password.
+ *
+ * If you forget the password and get locked out you'll need to re-flash
+ * the firmware with the feature disabled, reset EEPROM, and (optionally)
+ * re-flash the firmware again with this feature enabled.
+ */
+//#define PASSWORD_FEATURE
+#if ENABLED(PASSWORD_FEATURE)
+ #define PASSWORD_LENGTH 4 // (#) Number of digits (1-9). 3 or 4 is recommended
+ #define PASSWORD_ON_STARTUP
+ #define PASSWORD_UNLOCK_GCODE // Unlock with the M511 P command. Disable to prevent brute-force attack.
+ #define PASSWORD_CHANGE_GCODE // Change the password with M512 P N.
+ //#define PASSWORD_ON_SD_PRINT_MENU // This does not prevent gcodes from running
+ //#define PASSWORD_AFTER_SD_PRINT_END
+ //#define PASSWORD_AFTER_SD_PRINT_ABORT
+ //#include "Configuration_Secure.h" // External file with PASSWORD_DEFAULT_VALUE
+#endif
+
//=============================================================================
//============================= LCD and SD support ============================
//=============================================================================
@@ -2683,6 +2750,9 @@
#if DISABLED(MelziHostOnly)
#define SDSUPPORT
#endif
+#if ENABLED(MachineEnder3V2)
+ #define SDIO_SUPPORT
+#endif
/**
* SD CARD: SPI SPEED
@@ -2718,7 +2788,7 @@
// This option overrides the default number of encoder pulses needed to
// produce one step. Should be increased for high-resolution encoders.
//
-#if ENABLED(MachineCR20)
+#if ANY(MachineCR20, MachineEnder3V2)
#define ENCODER_PULSES_PER_STEP 4
#endif
//
@@ -2795,7 +2865,7 @@
//
// RepRapDiscount Smart Controller.
-// http://reprap.org/wiki/RepRapDiscount_Smart_Controller
+// https://reprap.org/wiki/RepRapDiscount_Smart_Controller
//
// Note: Usually sold with a white PCB.
//
@@ -2819,13 +2889,13 @@
//
// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3)
-// http://reprap.org/wiki/PanelOne
+// https://reprap.org/wiki/PanelOne
//
//#define PANEL_ONE
//
// GADGETS3D G3D LCD/SD Controller
-// http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel
+// https://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel
//
// Note: Usually sold with a blue PCB.
//
@@ -2866,6 +2936,8 @@
#define ENDER2_STOCKDISPLAY
#elif ANY(MachineCR20, MachineCR2020)
#define MKS_MINI_12864
+#elif ENABLED(MachineEnder3V2)
+ #define DWIN_CREALITY_LCD
#elif ANY(OrigLCD, MachineCR10Orig) && DISABLED(GraphicLCD)
#define CR10_STOCKDISPLAY
#elif NONE(MachineCR10SPro, MachineCRX, MachineEnder5Plus, MachineCR10Max, OrigLCD, MachineCR10Orig) || ENABLED(GraphicLCD)
@@ -2922,7 +2994,7 @@
//
// 2-wire Non-latching LCD SR from https://goo.gl/aJJ4sH
-// LCD configuration: http://reprap.org/wiki/SAV_3D_LCD
+// LCD configuration: https://reprap.org/wiki/SAV_3D_LCD
//
//#define SAV_3DLCD
@@ -2944,10 +3016,12 @@
// IMPORTANT: The U8glib library is required for Graphical Display!
// https://github.com/olikraus/U8glib_Arduino
//
+// NOTE: If the LCD is unresponsive you may need to reverse the plugs.
+//
//
// RepRapDiscount FULL GRAPHIC Smart Controller
-// http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller
+// https://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller
//
//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
@@ -2960,20 +3034,20 @@
//
// Activate one of these if you have a Panucatt Devices
// Viki 2.0 or mini Viki with Graphic LCD
-// http://panucatt.com
+// https://www.panucatt.com
//
//#define VIKI2
//#define miniVIKI
//
// MakerLab Mini Panel with graphic
-// controller and SD support - http://reprap.org/wiki/Mini_panel
+// controller and SD support - https://reprap.org/wiki/Mini_panel
//
//#define MINIPANEL
//
// MaKr3d Makr-Panel with graphic controller and SD support.
-// http://reprap.org/wiki/MaKr3d_MaKrPanel
+// https://reprap.org/wiki/MaKr3d_MaKrPanel
//
//#define MAKRPANEL
@@ -3012,6 +3086,12 @@
//
//#define MKS_MINI_12864
+//
+// MKS LCD12864A/B with graphic controller and SD support. Follows MKS_MINI_12864 pinout.
+// https://www.aliexpress.com/item/33018110072.html
+//
+//#define MKS_LCD12864
+
//
// FYSETC variant of the MINI12864 graphic controller with SD support
// https://wiki.fysetc.com/Mini12864_Panel/
@@ -3053,7 +3133,7 @@
//
// Silvergate GLCD controller
-// http://github.com/android444/Silvergate
+// https://github.com/android444/Silvergate
//
//#define SILVER_GATE_GLCD_CONTROLLER
@@ -3081,14 +3161,21 @@
//#define OLED_PANEL_TINYBOY2
//
-// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
-// http://reprap.org/wiki/MKS_12864OLED
+// MKS OLED 1.3" 128×64 FULL GRAPHICS CONTROLLER
+// https://reprap.org/wiki/MKS_12864OLED
//
// Tiny, but very sharp OLED display
//
//#define MKS_12864OLED // Uses the SH1106 controller (default)
//#define MKS_12864OLED_SSD1306 // Uses the SSD1306 controller
+//
+// Zonestar OLED 128×64 FULL GRAPHICS CONTROLLER
+//
+//#define ZONESTAR_12864LCD // Graphical (DOGM) with ST7920 controller
+//#define ZONESTAR_12864OLED // 1.3" OLED with SH1106 controller (default)
+//#define ZONESTAR_12864OLED_SSD1306 // 0.96" OLED with SSD1306 controller
+
//
// Einstart S OLED SSD1306
//
@@ -3100,7 +3187,7 @@
//#define OVERLORD_OLED
//
-// FYSETC OLED 2.42" 128 × 64 FULL GRAPHICS CONTROLLER with WS2812 RGB
+// FYSETC OLED 2.42" 128×64 FULL GRAPHICS CONTROLLER with WS2812 RGB
// Where to find : https://www.aliexpress.com/item/4000345255731.html
//#define FYSETC_242_OLED_12864 // Uses the SSD1309 controller
@@ -3128,6 +3215,16 @@
//
//#define TOUCH_UI_FTDI_EVE
+//
+// Touch-screen LCD for Anycubic printers
+//
+//#define ANYCUBIC_LCD_I3MEGA
+//#define ANYCUBIC_LCD_CHIRON
+#if EITHER(ANYCUBIC_LCD_I3MEGA, ANYCUBIC_LCD_CHIRON)
+ #define ANYCUBIC_LCD_SERIAL_PORT 3
+ //#define ANYCUBIC_LCD_DEBUG
+#endif
+
//
// Third-party or vendor-customized controller interfaces.
// Sources should be installed in 'src/lcd/extensible_ui'.
@@ -3136,44 +3233,80 @@
#define EXTENSIBLE_UI
#endif
+#if ENABLED(EXTENSIBLE_UI)
+ //#define EXTUI_LOCAL_BEEPER // Enables use of local Beeper pin with external display
+#endif
+
//=============================================================================
//=============================== Graphical TFTs ==============================
//=============================================================================
+//
+// TFT display with optional touch screen
+// Color Marlin UI with standard menu system
+//
+//#define TFT_320x240
+//#define TFT_320x240_SPI
+//#define TFT_480x320
+//#define TFT_480x320_SPI
+
+//
+// Skip autodetect and force specific TFT driver
+// Mandatory for SPI screens with no MISO line
+// Available drivers are: ST7735, ST7789, ST7796, R61505, ILI9328, ILI9341, ILI9488
+//
+//#define TFT_DRIVER AUTO
+
+//
+// SPI display (MKS Robin Nano V2.0, MKS Gen L V2.0)
+// Upscaled 128x64 Marlin UI
+//
+//#define SPI_GRAPHICAL_TFT
+
//
// FSMC display (MKS Robin, Alfawise U20, JGAurora A5S, REXYZ A1, etc.)
+// Upscaled 128x64 Marlin UI
//
//#define FSMC_GRAPHICAL_TFT
//
// TFT LVGL UI
//
-// Default MKS icons and fonts: https://git.io/JJvzK
-// Copy mks_pic and mks_font folders to the root of your SD
+// Using default MKS icons and fonts from: https://git.io/JJvzK
+// Just copy the 'assets' folder from the build directory to the
+// root of your SD card, together with the compiled firmware.
//
-//#define TFT_LVGL_UI
+//#define TFT_LVGL_UI_FSMC // Robin nano v1.2 uses FSMC
+//#define TFT_LVGL_UI_SPI // Robin nano v2.0 uses SPI
//=============================================================================
//============================ Other Controllers ============================
//=============================================================================
+//
+// Ender-3 v2 OEM display. A DWIN display with Rotary Encoder.
+//
+//#define DWIN_CREALITY_LCD
+
//
// ADS7843/XPT2046 ADC Touchscreen such as ILI9341 2.8
//
-//#define TOUCH_BUTTONS
-#if ENABLED(TOUCH_BUTTONS)
+//#define TOUCH_SCREEN
+#if ENABLED(TOUCH_SCREEN)
#define BUTTON_DELAY_EDIT 50 // (ms) Button repeat delay for edit screens
#define BUTTON_DELAY_MENU 250 // (ms) Button repeat delay for menus
- #define XPT2046_X_CALIBRATION 12316
- #define XPT2046_Y_CALIBRATION -8981
- #define XPT2046_X_OFFSET -43
- #define XPT2046_Y_OFFSET 257
+ #define TOUCH_SCREEN_CALIBRATION
+
+ //#define XPT2046_X_CALIBRATION 12316
+ //#define XPT2046_Y_CALIBRATION -8981
+ //#define XPT2046_X_OFFSET -43
+ //#define XPT2046_Y_OFFSET 257
#endif
//
// RepRapWorld REPRAPWORLD_KEYPAD v1.1
-// http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626
+// https://reprapworld.com/products/electronics/ramps/keypad_v1_0_fully_assembled/
//
//#define REPRAPWORLD_KEYPAD
//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // (mm) Distance to move per key-press
diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h
index 0868fb5aaf..e751c22628 100644
--- a/Marlin/Configuration_adv.h
+++ b/Marlin/Configuration_adv.h
@@ -16,7 +16,7 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
+ * along with this program. If not, see .
*
*/
#pragma once
@@ -667,9 +667,8 @@
#define HOMING_BACKOFF_POST_MM { 8, 8, 2 } // (mm) Backoff from endstops after homing
-#if DISABLED(SKRMiniE3V2)
- #define QUICK_HOME // If G28 contains XY do a diagonal move first
-#endif
+#define QUICK_HOME // If G28 contains XY do a diagonal move first
+
//#define HOME_Y_BEFORE_X // If G28 contains XY home Y before X
//#define CODEPENDENT_XY_HOMING // If X/Y can't home without homing Y/X first
@@ -681,8 +680,8 @@
* Do not activate settings that the probe might not understand. Clones might misunderstand
* advanced commands.
*
- * Note: If the probe is not deploying, check a "Cmd: Reset" and "Cmd: Self-Test" and then
- * check the wiring of the BROWN, RED and ORANGE wires.
+ * Note: If the probe is not deploying, do a "Reset" and "Self-Test" and then check the
+ * wiring of the BROWN, RED and ORANGE wires.
*
* Note: If the trigger signal of your probe is not being recognized, it has been very often
* because the BLACK and WHITE wires needed to be swapped. They are not "interchangeable"
@@ -715,7 +714,7 @@
* Danger: Don't activate 5V mode unless attached to a 5V-tolerant controller!
* V3.0 or 3.1: Set default mode to 5V mode at Marlin startup.
* If disabled, OD mode is the hard-coded default on 3.0
- * On startup, Marlin will compare its eeprom to this vale. If the selected mode
+ * On startup, Marlin will compare its eeprom to this value. If the selected mode
* 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.
*/
@@ -878,13 +877,17 @@
// Increase the slowdown divisor for larger buffer sizes.
#define SLOWDOWN
#if ENABLED(SLOWDOWN)
- #define SLOWDOWN_DIVISOR 2
+ #if ANY(SKR13, SKR14, SKR14Turbo, SKRPRO11, SKRMiniE3V2, MachineEnder3V2)
+ #define SLOWDOWN_DIVISOR 4
+ #else
+ #define SLOWDOWN_DIVISOR 2
+ #endif
#endif
/**
* XY Frequency limit
* Reduce resonance by limiting the frequency of small zigzag infill moves.
- * See http://hydraraptor.blogspot.com/2010/12/frequency-limit.html
+ * See https://hydraraptor.blogspot.com/2010/12/frequency-limit.html
* Use M201 F G to change limits at runtime.
*/
//#define XY_FREQUENCY_LIMIT 10 // (Hz) Maximum frequency of small zigzag infill moves. Set with M201 F.
@@ -948,6 +951,9 @@
//#define CALIBRATION_GCODE
#if ENABLED(CALIBRATION_GCODE)
+ //#define CALIBRATION_SCRIPT_PRE "M117 Starting Auto-Calibration\nT0\nG28\nG12\nM117 Calibrating..."
+ //#define CALIBRATION_SCRIPT_POST "M500\nM117 Calibration data saved"
+
#define CALIBRATION_MEASUREMENT_RESOLUTION 0.01 // mm
#define CALIBRATION_FEEDRATE_SLOW 60 // mm/min
@@ -991,7 +997,7 @@
* vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the
* lowest stepping frequencies.
*/
-#if ANY(SKR13, SKR14, SKR14Turbo, SKRPRO11)
+#if ANY(SKR13, SKR14, SKR14Turbo, SKRPRO11, MachineEnder3V2)
#define ADAPTIVE_STEP_SMOOTHING
#endif
@@ -1079,8 +1085,9 @@
// Change values more rapidly when the encoder is rotated faster
#define ENCODER_RATE_MULTIPLIER
#if ENABLED(ENCODER_RATE_MULTIPLIER)
- #define ENCODER_10X_STEPS_PER_SEC 30 // (steps/s) Encoder rate for 10x speed
- #define ENCODER_100X_STEPS_PER_SEC 80 // (steps/s) Encoder rate for 100x speed
+ #define ENCODER_5X_STEPS_PER_SEC 30
+ #define ENCODER_10X_STEPS_PER_SEC 80 // (steps/s) Encoder rate for 10x speed
+ #define ENCODER_100X_STEPS_PER_SEC 130 // (steps/s) Encoder rate for 100x speed
#endif
// Play a beep when the feedrate is changed from the Status Screen
@@ -1142,7 +1149,7 @@
#define LCD_TIMEOUT_TO_STATUS 15000
// Add an 'M73' G-code to set the current percentage
- #if DISABLED(MachineEnder4) || ENABLED(GraphicLCD)
+ #if NONE(MachineEnder4, MachineEnder3V2) || ENABLED(GraphicLCD)
#define LCD_SET_PROGRESS_MANUALLY
#endif
#endif
@@ -1177,7 +1184,7 @@
// The standard SD detect circuit reads LOW when media is inserted and HIGH when empty.
// Enable this option and set to HIGH if your SD cards are incorrectly detected.
- #if NONE(MachineCR10SPro, MachineCRX, MachineEnder5Plus, MachineCR10Max)
+ #if NONE(MachineCR10SPro, MachineCRX, MachineEnder5Plus, MachineCR10Max, MachineEnder3V2)
#define SD_DETECT_STATE HIGH
#endif
@@ -1525,6 +1532,7 @@
//#define AO_EXP2_PINMAP // AlephObjects CLCD UI EXP2 mapping
//#define CR10_TFT_PINMAP // Rudolph Riedel's CR10 pin mapping
//#define S6_TFT_PINMAP // FYSETC S6 pin mapping
+ //#define F6_TFT_PINMAP // FYSETC F6 pin mapping
//#define OTHER_PIN_LAYOUT // Define pins manually below
#if ENABLED(OTHER_PIN_LAYOUT)
@@ -1593,9 +1601,10 @@
#endif
//
-// FSMC Graphical TFT
+// FSMC / SPI Graphical TFT
//
-#if ENABLED(FSMC_GRAPHICAL_TFT)
+#if TFT_SCALED_DOGLCD
+ //#define GRAPHICAL_TFT_ROTATE_180
//#define TFT_MARLINUI_COLOR 0xFFFF // White
//#define TFT_MARLINBG_COLOR 0x0000 // Black
//#define TFT_DISABLED_COLOR 0x0003 // Almost black
@@ -1689,7 +1698,7 @@
*
* See https://marlinfw.org/docs/features/lin_advance.html for full instructions.
*/
-#if NONE(MachineCR10Orig, SKRMiniE3V2, LowMemoryBoard, MachineCR10SPro, MachineCR10Max, SKR13, SKR14, SKR14Turbo, MachineCR10SV2, CrealitySilentBoard) || ENABLED(OrigLA) || (ANY(SKR13, SKR14, SKR14Turbo, SKRPRO11) && ENABLED(SKR_UART))
+#if NONE(MachineCR10Orig, SKRMiniE3V2, LowMemoryBoard, MachineCR10SPro, MachineCR10Max, SKR13, SKR14, SKR14Turbo, MachineCR10SV2, CrealitySilentBoard, MachineEnder3V2) || ENABLED(OrigLA) || (ANY(SKR13, SKR14, SKR14Turbo, SKRPRO11) && ENABLED(SKR_UART))
#define LIN_ADVANCE
#endif
#if ENABLED(LIN_ADVANCE)
@@ -1932,7 +1941,7 @@
// The number of linear moves that can be in the planner at once.
// The value of BLOCK_BUFFER_SIZE must be a power of 2 (e.g. 8, 16, 32)
-#if ANY(SKR13, SKR14, SKR14Turbo, SKRPRO11, SKRMiniE3V2) || DISABLED(EXTENSIBLE_UI)
+#if ANY(SKR13, SKR14, SKR14Turbo, SKRPRO11, SKRMiniE3V2, MachineEnder3V2) || DISABLED(EXTENSIBLE_UI)
#define BLOCK_BUFFER_SIZE 16
#else
#define BLOCK_BUFFER_SIZE 8
@@ -1942,7 +1951,7 @@
// The ASCII buffer for serial input
#define MAX_CMD_SIZE 96
-#if ANY(MachineCR10Orig, SKRMiniE3V2) //melzi has more ram than a 2560
+#if ANY(MachineCR10Orig, SKRMiniE3V2, MachineEnder3V2) //melzi has more ram than a 2560
#define BUFSIZE 16
#elif ANY(SKR13, SKR14, SKR14Turbo, SKRPRO11)
#define BUFSIZE 8
@@ -1995,7 +2004,7 @@
* Currently handles M108, M112, M410, M876
* NOTE: Not yet implemented for all platforms.
*/
-#if NONE(SKRPRO11, SKRMiniE3V2)
+#if NONE(SKRPRO11, SKRMiniE3V2, MachineEnder3V2)
#define EMERGENCY_PARSER
#endif
@@ -2045,7 +2054,7 @@
* Note that M207 / M208 / M209 settings are saved to EEPROM.
*
*/
- #if ANY(SKR13, SKR14, SKR14Turbo, SKRPRO11)
+ #if ANY(SKR13, SKR14, SKR14Turbo, SKRPRO11, MachineEnder3V2)
#define FWRETRACT
#endif
#if ENABLED(FWRETRACT)
@@ -2947,11 +2956,11 @@
//#define PHOTO_RETRACT_MM 6.5 // (mm) E retract/recover for the photo move (M240 R S)
// Canon RC-1 or homebrew digital camera trigger
- // Data from: http://www.doc-diy.net/photo/rc-1_hacked/
+ // Data from: https://www.doc-diy.net/photo/rc-1_hacked/
//#define PHOTOGRAPH_PIN 23
// Canon Hack Development Kit
- // http://captain-slow.dk/2014/03/09/3d-printing-timelapses/
+ // https://captain-slow.dk/2014/03/09/3d-printing-timelapses/
//#define CHDK_PIN 4
// Optional second move with delay to trigger the camera shutter
@@ -3403,11 +3412,11 @@
* I2C position encoders for closed loop control.
* Developed by Chris Barr at Aus3D.
*
- * Wiki: http://wiki.aus3d.com.au/Magnetic_Encoder
+ * Wiki: https://wiki.aus3d.com.au/Magnetic_Encoder
* Github: https://github.com/Aus3D/MagneticEncoder
*
- * Supplier: http://aus3d.com.au/magnetic-encoder-module
- * Alternative Supplier: http://reliabuild3d.com/
+ * Supplier: https://aus3d.com.au/magnetic-encoder-module
+ * Alternative Supplier: https://reliabuild3d.com/
*
* Reliabuild encoders have been modified to improve reliability.
*/
diff --git a/Marlin/Version.h b/Marlin/Version.h
index 387db0619a..bb5538cf60 100644
--- a/Marlin/Version.h
+++ b/Marlin/Version.h
@@ -41,6 +41,8 @@
#define VerChar1 "E2"
#elif(ENABLED(MachineEnder3))
#define VerChar1 "E3"
+#elif ENABLED(MachineEnder3V2)
+ #define VerChar1 "E3V2"
#elif(ENABLED(MachineEnder4))
#define VerChar1 "E4"
#elif(ENABLED(MachineEnder5))
@@ -109,7 +111,7 @@
* here we define this default string as the date where the latest release
* version was tagged.
*/
-#define STRING_DISTRIBUTION_DATE "2020-08-01"
+#define STRING_DISTRIBUTION_DATE "2020-08-10"
/**
* Defines a generic printer name to be output to the LCD after booting Marlin.
@@ -120,6 +122,8 @@
#define MACHINE_NAME "TM3D Ender2"
#elif(ENABLED(MachineEnder3))
#define MACHINE_NAME "TM3D Ender3"
+#elif(ENABLED(MachineEnder3V2))
+#define MACHINE_NAME "TM3D Ender3V2"
#elif(ENABLED(MachineEnder4))
#define MACHINE_NAME "TM3D Ender4"
#elif(ENABLED(MachineEnder5))
diff --git a/Marlin/src/lcd/dwin/dwin.cpp b/Marlin/src/lcd/dwin/dwin.cpp
index d82efc5689..303c6568ec 100644
--- a/Marlin/src/lcd/dwin/dwin.cpp
+++ b/Marlin/src/lcd/dwin/dwin.cpp
@@ -69,10 +69,10 @@
#define MACHINE_SIZE "220x220x250"
#endif
#ifndef CORP_WEBSITE_C
- #define CORP_WEBSITE_C "www.cxsw3d.com"
+ #define CORP_WEBSITE_C WEBSITE_URL
#endif
#ifndef CORP_WEBSITE_E
- #define CORP_WEBSITE_E "www.creality.com"
+ #define CORP_WEBSITE_E WEBSITE_URL
#endif
#define PAUSE_HEAT true