But if you want a shortcut, you can try Jyer's firmware (if I'm not mistaken it's base on Marlin 2.0). From the first month I'd got the printer, I've already flash my ender with Jyer's firmware.
Now, my ender running Marlin 2.1 with Automatic Universal Bed Leveling feature.
I will post the tutorial.... (I'll edited this post daily for complete tutorial)
New feature of Marlin 2.1.1 that i need is Magnetically Mounted Probe,. Work well with Klackender probe by Kevin aka Sam.
The Goal:
1. Upgrade stock firmware to Newest Marlin firmware.
2. Installing Klackender as replacement of BLTouch.
Software:
1. VSCode https://code.visualstudio.com/
2. PlatformIO Installed from VSCode extensions (Ctrl + Shift + X)
3. Marlin Auto Build install from VSCode Extention
Marlin Firmware :
1. Marlin firmware Marlin 2.1.1
2. Configuration config example
Change default_envs (line 16) on platformio.ini to :
default_envs = STM32F103RE_creality
Configuration.h to change uncomment this line:
Check your creality board version, for version 4.2.7 :
#ifndef MOTHERBOARD
#define MOTHERBOARD BOARD_CREALITY_V427
#endif
//#define S_CURVE_ACCELERATION
//#define USE_PROBE_FOR_Z_HOMING
//#define MAG_MOUNTED_PROBE (for klackender by Kevin aka Sam)
//#define MULTIPLE_PROBING 2
//#define AUTO_BED_LEVELING_UBL
//#define RESTORE_LEVELING_AFTER_G28
/#define PREHEAT_BEFORE_LEVELING // Heat the bed only (optional)
//#define MESH_EDIT_MENU // Add a menu to edit mesh points
//#define LCD_BED_TRAMMING
//#define BED_TRAMMING_USE_PROBE
//#define Z_SAFE_HOMING
//#define EEPROM_INIT_NOW // Init EEPROM on first boot after a new build.
//#define NOZZLE_PARK_FEATURE
//#define PRINTCOUNTER
//#define DWIN_CREALITY_LCD_JYERSUI // Jyers UI by Jacob Myers ( Comment ("//") to DWIN_CREALITY)
Note: Download Jyers LCD firmware just in case.
Add value to this line :
#define X_MAX_POS X_BED_SIZE +15
Add Template for various material : (optional)
#define PREHEAT_1_LABEL "Warmup"
#define PREHEAT_1_TEMP_HOTEND 150
#define PREHEAT_1_TEMP_BED 45
#define PREHEAT_1_FAN_SPEED 255 // Value from 0 to 255
#define PREHEAT_2_LABEL "PLA"
#define PREHEAT_2_TEMP_HOTEND 185
#define PREHEAT_2_TEMP_BED 45
#define PREHEAT_2_TEMP_CHAMBER 35
#define PREHEAT_2_FAN_SPEED 255 // Value from 0 to 255
#define PREHEAT_3_LABEL "ABS"
#define PREHEAT_3_TEMP_HOTEND 240
#define PREHEAT_3_TEMP_BED 70
#define PREHEAT_3_TEMP_CHAMBER 35
#define PREHEAT_3_FAN_SPEED 255 // Value from 0 to 255
#define PREHEAT_4_LABEL "PETG"
#define PREHEAT_4_TEMP_HOTEND 240
#define PREHEAT_4_TEMP_BED 70
#define PREHEAT_4_FAN_SPEED 255 // Value from 0 to 255
#define PREHEAT_5_LABEL "TPU"
#define PREHEAT_5_TEMP_HOTEND 230
#define PREHEAT_5_TEMP_BED 60
#define PREHEAT_5_FAN_SPEED 255 // Value from 0 to 255
Above change would not be work without also changing Configuration_Adv.h
to be continue....