Guide on how to build a Marlin firmware with modifications.

  1. Download Marlin Firmware and Configuration Examples from Marlin download site.
  2. When downloaded, unzip the files in a folder
  1. Copy the configuration file to Marlin folder. Choose the files from the Configurations release folder for the relevant printer.
  2. Update the platformio.ini file. Change the following:

Creality

Default ValueNew Value
default_envs = mega2560default_envs = STM32F103RE_creality

SKR Mini E3 V2.0

Default ValueNew Value
default_envs = mega2560default_envs = STM32F103RC_btt

Load firmware into Visual Studio Code by going to File – Open Folder, Browse to the firmware folder and click Select Folder.

Make changes to the following files and values
Within Marlin\Configuration.h file:

Default ValueNew ValueNotes
#define CUSTOM_MACHINE_NAME “Ender-3 Pro V1.5”#define CUSTOM_MACHINE_NAME “CUSTOM VALUE HERE”Not required for SKR Mini E3 V2.0
//#define S_CURVE_ACCELERATION#define S_CURVE_ACCELERATIONNot required for SKR Mini E3 V2.0
//#define INDIVIDUAL_AXIS_HOMING_MENU#define INDIVIDUAL_AXIS_HOMING_MENUNot required for SKR Mini E3 V2.0
//#define PIDTEMPBED#define PIDTEMPBED

Power loss recovery and Host Action

Within the Marlin\Configuration_adv.h file

Default ValueNew Value
//#define POWER_LOSS_RECOVERY#define POWER_LOSS_RECOVERY
//#define HOST_ACTION_COMMANDS#define HOST_ACTION_COMMANDS

Changes to make BL/CR Touch work

In Marlin\Configuration.h file

Default ValueNew ValueNotes
//#define BLTOUCH#define BLTOUCH
#define NOZZLE_TO_PROBE_OFFSET { 10, 10, 0 }#define NOZZLE_TO_PROBE_OFFSET { -44, -7, 0 }
//#define AUTO_BED_LEVELING_BILINEAR#define AUTO_BED_LEVELING_BILINEAR
//#define Z_SAFE_HOMING#define Z_SAFE_HOMING
#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
#define GRID_MAX_POINTS_X 3#define GRID_MAX_POINTS_X 5Not required for SKR Mini E3 V2.0

Within the Marlin\Configuration_adv.h file

Default ValueNew Value
//#define BLTOUCH_DELAY 500#define BLTOUCH_DELAY 300
//#define BLTOUCH_FORCE_SW_MODE#define BLTOUCH_FORCE_SW_MODE
//#define BLTOUCH_HS_MODE#define BLTOUCH_HS_MODE
//#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

Adding Change filament

Within Marlin\Configuration.h file

Default ValueNew Value
//#define NOZZLE_PARK_FEATURE#define NOZZLE_PARK_FEATURENot required for SKR Mini E3 V2.0
#define EXTRUDE_MAXLENGTH 200#define EXTRUDE_MAXLENGTH 600Not required for SKR Mini E3 V2.0

Within the Marlin\Configuration_adv.h file

Default ValueNew Value
//#define ADVANCED_PAUSE_FEATURE#define ADVANCED_PAUSE_FEATURE
#define FILAMENT_CHANGE_UNLOAD_LENGTH      100#define FILAMENT_CHANGE_UNLOAD_LENGTH      600
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE     10#define FILAMENT_CHANGE_UNLOAD_FEEDRATE    100
#define FILAMENT_CHANGE_SLOW_LOAD_FEEDRATE   6#define FILAMENT_CHANGE_SLOW_LOAD_FEEDRATE  10
#define FILAMENT_CHANGE_SLOW_LOAD_LENGTH     0#define FILAMENT_CHANGE_SLOW_LOAD_LENGTH    25
#define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE   6#define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE  40
#define FILAMENT_CHANGE_FAST_LOAD_LENGTH     0#define FILAMENT_CHANGE_FAST_LOAD_LENGTH   500
//#define ADVANCED_PAUSE_CONTINUOUS_PURGE#define ADVANCED_PAUSE_CONTINUOUS_PURGE
//#define PARK_HEAD_ON_PAUSE#define PARK_HEAD_ON_PAUSE
//#define FILAMENT_LOAD_UNLOAD_GCODES#define FILAMENT_LOAD_UNLOAD_GCODES

Building and installing

To build the firmware, click on the on the checkmark in the bottom left of the VS Code user interface. That will kick off the build. Success message will show in the terminal window if everything worked. If it didn’t error messages will be displayed for troubleshooting.

Once it has been build successfully, it will need to be copied onto SD card 8GB or less. The file can be found in “firmware\.pio\build\” folder. Rename the firmware to shorter file name.

Categorized in:

3D Printing,

Last Update: May 13, 2024