Saturday, October 1, 2022

ENDER 3 V2 upgrade firmware

Since the Voron build is on hold, I've been tweaking Ender 3v2(keeping my head busy :) ) from stock firmware to Marlin 2.1. Why Marlin?... there a new feature that help you achieve good result of printing with less effort. There is a lot of firmware out there to choose, but I chosen Marlin firmware, because unlike Klipper that need Raspberry Pi to run it.... Marlin firmware is the native 3D Printing firmware, its open source, doesn't need to buy extra compute module that cost you half of the printer price itself, with a little knowledge, information and understanding the limit of your 3D Printer its had a lot feature you can unlock. 
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.
New Menu : Level
Leveling Menu








The Goal:
1. Upgrade stock firmware to Newest Marlin firmware.
2. Installing Klackender as replacement of BLTouch.

Software:
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....