Marlin Firmware on Creality Board – Complete Guide!


When someone buys a new piece of technology, the first thing they tend to do is plug it in and start using it. Updating things like the firmware tends to get ignored most of the time, but it shouldn’t. Updating the firmware can bring in new features and fix known bugs making it well worth doing the upgrade. That said, in some cases, the manufactures firmware may not be the best option.

Here are the steps to install custom Marlin firmware on a 32-bit Creality board.

  • Install Visual Studio Code
  • Download Marlin Firmware and Configuration Examples
  • Copy Configuration Files to the Marlin Firmware Directory
  • Update the platformio.ini File
  • Update the Marlin Configuration
  • Build the Firmware
  • Copy the Firmware to an SD Card
  • Install the Firmware on the Printer

*This process assumes you have a Creality 32-bit mainboard and plan to Marlin firmware on it. If you are looking to run the prebuilt Cerality firmware, you should follow this guide, “Creality 32-Bit Mainboard Firmware Upgrade Guide”.

** This process has been tested using the Creality 4.2.2 and 4.2.7 mainboard.

Why Move to the Marlin Firmware?

The Marlin firmware is has been around a while and has a large user community behind it, meaning you can get support and bugs fixed if needed. Also, it’s free, compatible with most with a wide range of mainboards, and has frequent updates.

You can also download a copy of Marlin I built with the required changes and use supplied configs as a starting point. The firmware is available to download from “3D Printscape Marlin Builds“.

Step-by-Step Firmware Upgrade Guide

Requirements

Required Hardware

*Links are to Amazon and for the products I use.

Required Software

Step-by-Step Guide

Video Guide

If you run into an issue or need assistance, join us on Discord.

Install Visual Studio Code

The first thing you need to do is download and install Visual Studio Code (VS Code). Assuming you are not doing anything out of the ordinary, the install process tends to be quick and easy.

Follow these steps to install VS Code

  • Download VS Code for the operating system you are running.
  • Run the VS Code installer using the default values provided
  • Launch VS Code
Install Platform.io

Once you have VS Code installed, you will need to install the Platform.io plugin. To do this, you will want to click on Extensions on the left side menu and search for platform.io. You will see PlatformIO IDE come up in the search results. Click on that and then click install.

The install process will run in the background and update you with a notification at the bottom right of the VS Code user interface when it’s done. Once done, you will want to restart VS Code.

Download Marlin Firmware and Configuration Examples

Next, we will need to download the firmware we plan on using. There are two things we need to get from there, the firmware and the configuration example.

Firmware

To do that, go to the Marlin download site and download both bugfix-2.0.x.zip, shown below.

Marlin bugfix download
Configuration Examples

To get the example configurations, click on View/Download next to the firmware you just downloaded to get to the GitHub page. Then click on the green code button and click Download Zip.

Unzip Files

Now that we have downloaded both packages we need, you will want to unzip them. You can unzip both files in the location they are in, but you will want to move the unzipped firmware to your desktop or somewhere closer to the root of the drive. The firmware needs to be close to the root of the drive to prevent any issue around the length of the file path.

Marlin files in explorer

Copy Configuration Files to the Marlin Firmware Directory

Now we will want to copy the example configs from the example directory to the Marlin folder in the firmware directory, in my case, “C:\Users\Owner\Desktop\Marlin-bugfix-2.0.x\Marlin”.

You will find the example configs in the Configurations-bugfix-2.0.x folder that you extracted. Once in that folder, you will want to get the examples for the printer you are working with. I have the Ender 3 Pro with the 4.2.2 board, so that’s what I will be looking for and can be found in the Creality folder. From there, I need to go into the folder for the board I’m using.

In that folder, you will find four config files ending with .h. You want to copy those files to the Marlin folder mentioned above, overwriting any files that already exist.

Update the platformio.ini File

Next, we will want to update the default_envs value in the platformio.ini file that is in the root directory of the firmware.

Default ValueNew Value
default_envs = mega2560default_envs = STM32F103RET6_creality

Make sure to save the file after you make the change.

Update the Marlin Configuration

Load Firmware into VS Code

The next thing you will want to do is load the firmware into VS Code to make the necessary changes and build it. To do that, you will want to follow these steps.

  • Open VS Code
  • Go to File – Open Folder
  • Browse to the firmware folder and click Select Folder
vs code file open fodler
Recommended Changes

Now I will go over the changes you should make if regardless of the mods you are running. If you have the BLTouch, you will want to make these changes and the changes in the next section.

Configuration.h Changes

Path: Marlin\Configuration.h

Default ValueNew ValueNotes
#define CUSTOM_MACHINE_NAME “Ender-3 Pro V1.5”#define CUSTOM_MACHINE_NAME “CUSTOM VALUE HERE”Repalce “CUSTOM VALUE HERE” with what you want on the display.
//#define S_CURVE_ACCELERATION#define S_CURVE_ACCELERATION 
//#define LEVEL_BED_CORNERS#define LEVEL_BED_CORNERS 
//#define INDIVIDUAL_AXIS_HOMING_MENU#define INDIVIDUAL_AXIS_HOMING_MENU 
#warning “Creality 4.2.2 boards may have A4988 or TMC2208_STANDALONE drivers. Check your board and make sure to select the correct DRIVER_TYPE!”//#warning “Creality 4.2.2 boards may have A4988 or TMC2208_STANDALONE drivers. Check your board and make sure to select the correct DRIVER_TYPE!”Verify the driver is correct, then comment out this line

*You should also make any additional changes you want/need to at his point.

Required Changes if Running a BLTouch

If you have the BLTouch, you will want to make these changes as well.

Configuration.h Changes

Path: Marlin\Configuration.h

Default ValueNew ValueNotes
#define Z_MIN_PROBE_ENDSTOP_INVERTING false#define Z_MIN_PROBE_ENDSTOP_INVERTING trueOnly needed if using a build before July 2021. You will get an error if using this on a later build.
//#define BLTOUCH#define BLTOUCH 
#define NOZZLE_TO_PROBE_OFFSET { 10, 10, 0 }#define NOZZLE_TO_PROBE_OFFSET { X, Y, 0 }X & Y should be replaces with your offsets
//#define AUTO_BED_LEVELING_BILINEAR#define AUTO_BED_LEVELING_BILINEAR 
//#define Z_SAFE_HOMING#define Z_SAFE_HOMING 

If you have z-stop and bltouch probe both plugged in, make these changes as well.

Default ValueNew Value
#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN//#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
//#define USE_PROBE_FOR_Z_HOMING#define USE_PROBE_FOR_Z_HOMING
Configuration_adv.h Changes

Path: Marlin\Configuration_adv.h

Default ValueNew ValueNotes
//#define BLTOUCH_DELAY 500#define BLTOUCH_DELAY 500 
//#define BLTOUCH_FORCE_SW_MODE#define BLTOUCH_FORCE_SW_MODE 
//#define BLTOUCH_HS_MODE#define BLTOUCH_HS_MODEThis is optional but will speed things up.
//#define PROBE_OFFSET_WIZARD#define PROBE_OFFSET_WIZARD 
// #define PROBE_OFFSET_WIZARD_START_Z -4.0#define PROBE_OFFSET_WIZARD_START_Z -4.0 
//#define BABYSTEP_DISPLAY_TOTAL#define BABYSTEP_DISPLAY_TOTAL 
// #define BABYSTEP_ZPROBE_OFFSET#define BABYSTEP_ZPROBE_OFFSET 

Build the Firmware

Once all your changes have been made, you will want to click on the checkmark in the bottom left of the VS Code user interface. That will kick off the build and shouldn’t take longer than a couple of minutes to complete. You should see success in the terminal window if everything worked. If it didn’t, you will be able to get the error from there to troubleshoot.

Copy the Firmware to an SD Card

Once the firmware has been successfully built, you will want to drag it to an empty SD card that is under 8GB or less.

You can find the firmware under “firmware\.pio\build\STM32F103RET6_creality” , firmware should be replaced with the path where you have the firmware. In my case, the path is “C:\Users\Owner\Desktop\Marlin-bugfix-2.0.x\.pio\build\STM32F103RET6_creality”.

The file name will be firmware-date-randomnumber.bin, so firmware-20210225-125416.bin for me.

firmware-20210225-125416-file

Install the Firmware on the Printer

This step sounds harder than it actually is. Assuming you copied the right file to an empty SD card, all you need to do is put the SD card in the printer and power it on. From there, the printer will pull the file and install it on the printer. The entire process should take less than 30 seconds. Once the printer boots into the standard interface, you can remove the SD card.

Related Questions

What if I have an 8-bit Creality mainboard? – You will need to install a bootloader on the printer, then push the firmware to it. I created a video covering the process of migrating to the TH3D firmware on an 8-bit board that you can see here.

What if I want to add a BLTouch? – I created a video covering the process from start to finish that you can see below or can take a look at the article that I wrote that covers the process “Guide to Install a BLTOUCH on a Creality 32-bit Mainboard” .

Do I need to recalibrate my e-steps after changing the firmware? – I would recommend doing so to make sure everything is working as expected. Here is a video and article covering the process “3D Printer E-step Calibration (Step-by-Step Guide)”.  

Related Articles

Recap

If you are looking at making modifications to your 3d printer, you will most likely need to run a custom firmware build. Moving to the Marlin firmware gives you a great community, more features, and the ability to customize the configuration to meet your needs. The process may look a little intimidating, but it’s really not that bad, and there are a lot of people able to help out if you run into issues.

Make sure you check out our YouTube channel, and if you would like any additional details or have any questions, please leave a comment below or join us on Discord. If you liked this article and want to read others click here.

Rob

I'm Rob, the founder of 3dprintscape.com. I’m a Marine Corps vet with a master’s degree in Information Systems and have been working in the technology field for over a decade. I started working with 3D printers because I was fascinated by the technology and wanted a hobby that my kids and I can enjoy together.

Leave a Reply

Recent Posts