Guide on how to build a Marlin firmware with modifications.
- Download Marlin Firmware and Configuration Examples from Marlin download site.
- When downloaded, unzip the files in a folder
- Copy the configuration file to Marlin folder. Choose the files from the Configurations release folder for the relevant printer.
- Update the platformio.ini file. Change the following:
Creality
Default Value | New Value |
---|---|
default_envs = mega2560 | default_envs = STM32F103RE_creality |
SKR Mini E3 V2.0
Default Value | New Value |
---|---|
default_envs = mega2560 | default_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 Value | New Value | Notes |
---|---|---|
#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_ACCELERATION | Not required for SKR Mini E3 V2.0 |
//#define INDIVIDUAL_AXIS_HOMING_MENU | #define INDIVIDUAL_AXIS_HOMING_MENU | Not 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 Value | New 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 Value | New Value | Notes |
---|---|---|
//#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 5 | Not required for SKR Mini E3 V2.0 |
Within the Marlin\Configuration_adv.h file
Default Value | New 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 Value | New Value | |
---|---|---|
//#define NOZZLE_PARK_FEATURE | #define NOZZLE_PARK_FEATURE | Not required for SKR Mini E3 V2.0 |
#define EXTRUDE_MAXLENGTH 200 | #define EXTRUDE_MAXLENGTH 600 | Not required for SKR Mini E3 V2.0 |
Within the Marlin\Configuration_adv.h file
Default Value | New 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.