We had upgraded our Ender 3 to Marlin 18.104.22.168, this will provide the steps that we did. As noted, we are using the MKS Gen L board and not the board the Ender 3 comes with.
With the new Marlin firmware, it is better in our opinion to compile it via PlatformIO in Visual Studio Code than in the Arduino IDE. It is recommended to record any values stored such as current z-offset, extrusion settings, etc before flashing the updated firmware as these values will need to be placed back afterwards.
Please follow these steps to setup the environment:
- Install Microsoft’s Visual Studio Code from https://code.visualstudio.com/
- Install the following extensions: PlatformIO (by PlatformIO) & Auto Build Marlin (by Marlin Firmware)
- Relaunch Visual Studio Code.
- Download Marlin Firmware Version 22.214.171.124 from https://marlinfw.org/ and extract the zip folder.
- Download the Ender-3 configuration from the Github repo as well: Link
Let’s get started with configuring the project:
- Place the Ender 3 example config files (
_Statusscreen.h) that was downloaded under step 4 under
- Click on the PlatformIO module in Visual Studio Code, click open project and select the directory where the
platformio.inifile is located
- Modify the
#define CONFIG_EXAMPLES_DIR "Creality/Ender-3/CrealityV1"line, it may have a different path
- If the
_Statusscreen.hhas been copied; either to un-comment or comment (//) the lines beginning with associated lines beginning with
- Change line from
#define MOTHERBOARD BOARD_MELZI_CREALITYto
#define MOTHERBOARD BOARD_MKS_GEN_L
- Change the stepper directions to opposite; end result values should be:
#define INVERT_X_DIR false,
#define INVERT_Y_DIR false,&
#define INVERT_Z_DIR true
- Change the extruder direction to the opposite; end result value should be
#define INVERT_E0_DIR false
- Make any additional changes you may need for your setup.
- Modify the
- Set the line
#define E0_AUTO_FAN_PIN 7
- Set the line
Building the firmware
To build the firmware, the Marlin Auto Build extension will be used in Visual Studio Code:
- On the Marlin Firmware Auto Build extension, click
Refreshbutton. The values will be updated to what is in the configuration files.
- Click on the
Buildbutton next to
mega2560; this should give a succeeded message in the terminal output. If it doesn’t give a success message, please review the configuration files for configuration issues.
- On successful build, plug in the MKS Gen L board via USB and press the
After the upload, don’t forget to place back any custom values prior.
A good practice is to archive this firmware somewhere (plus a simple date stamp) where it can be used as a future reference to newer Marlin firmware versions.