Screenshot of Marlin Firmware configuration.h for SKR MINI E3 V2 3D printer board

SKR MINI E3 V2 Configuration.h Marlin 2 Setup Part 2


Setting up the Configuration.h file for the SKR MINI E3 V2 with Marlin 2. With settings for the SKR MINI E3 V2 for Creality Ender 3 / V2 or Ender 3 Pro.

SKR MINI E3 V2 Marlin 2 Setup Guide
Software
Let’s Get Started
PLATFORMIO.INI
CONFIGURATION.H
CONFIGURATION_ADV.H
pins_BTT_SKR_MINI_E3_V2_0.h

CONFIGURATION.H
SERIAL PORT
BAUDRATE
MOTHERBOARD
THERMISTORS
PID HOT END AND BED
ENDSTOPPULLUPS
ENDSTOPPULLDOWNS
ENDSTOP_INVERTING
STEPPER DRIVERS
DEFAULT_AXIS_STEPS_PER_UNIT
DEFAULT_MAX_FEEDRATE
DEFAULT_MAX_ACCELERATION
JUNCTION_DEVIATION
S_CURVE_ACCELERATION
PROBES
BLTOUCH OR PROBE
NOZZLE_TO_PROBE_OFFSET
PROBING_MARGIN
INVERT STEPPER DIRECTION
3D PRINTER DIMENSIONS
SOFTWARE END STOPS
FILAMENT_RUNOUT_SENSOR
AUTO_BED_LEVELING
MESH_BED_LEVELING
EEPROM_SETTINGS
NOZZLE_PARK_FEATURE
LCD
SD Support
SETTING THE LCD CONTROLLER

Configuration.h

screenshot of Marlin 2 firmware showing the path to Configuration.h file within PlatformIO editor while editing for SKR MINI E3 V2

@section machine

In order to find something quickly, a key word can be used within the search feature. Additionally it will show up towards the top right of Visual Studio, when the short cut commands below are used. Furthermore simply enter the word you wish to search for and hit either the enter or return key. Without a doubt it helps speed up editing Marlin 2 firmware and makes following the SKR MINI E3 V2 Configuration easier.

FIND SHORTCUT:

Mac – Press the CMD (⌘) and the F key at the same time.
PC – Press the Ctrl and the F key at the same time.

SERIAL_PORT

screenshot of Marlin 2 firmware defining the serial ports for the bigtreetech SKR MINI E3 V2 #define SERIAL_PORT 2 #define SERIAL_PORT2 -1

Importantly, in order to enable an option within Marlin simply remove the forward slashes //. While placing forward slashes in front of an option disables it.

Where best to start editing the SKR MINI E3 V2 Configuration file then at the very beginning. Moreover let’s start with searching for the term #define SERIAL_PORT 0. Furthermore define the serial port option to 2 as shown below, to enable future use with TFT screens.

#define SERIAL_PORT 2 //TFT

Additionally enable the SERIAL_PORT_2 option by removing the forward slashes and set the value to -1 for the USB connection.

#define SERIAL_PORT_2 -1 //USB

BAUDRATE

screenshot of Marlin 2 firmware defining the baud rate for the bigtreetech SKR MINI E3 V2. #define BAUDRATE 115200

While completely possible to set data transfer speeds higher in the configuration file for the SKR MINI E3 V2 mainboard. However for reliability whilst configuring Marlin 2, it is advisable to set the baud-rate to 115200.

#define BAUDRATE 115200

MOTHERBOARD

screenshot of motherboard definition within Marlin 2 3d printer firmware for the bigtreetech SKR MINI E3 V2

Now at this point in setting up the firmware for the SKR MINI E3 V2, Marlin has no idea as to what physical board the printer will be using. Because of this, we need to tell Marlin what board is being used.

Moreover we need to change the board specified in the #define MOTHERBOARD option. However the board names changes from time to time. But at the time of writing this guide, the board name for the SKR MINI E3 V2 is BOARD_BTT_SKR_MINI_E3_V2_0, see below.

#define MOTHERBOARD BOARD_BTT_SKR_MINI_E3_V2_0

Without a doubt, it is good practise to regularly save the work for the firmware you are adjusting. While you can use the mouse to go uptown the top of the screen. Then click File, then Save. However it is far quicker to use shortcuts.

SAVE FILE SHORTCUT:

Mac – Press the CMD (⌘) and the S key at the same time.
PC – Press the Ctrl and the S key at the same time.

@section extruder

DEFAULT_NOMINAL_FILAMENT_DIA

screenshot of Marlin 2 firmware setting the normal filament diameter to 1.75mm. #define DEFAULT_NOMINAL_FILAMENT_DIA 1.75

Additionally the next option to configure in the setting up Marlin 2 with the SKR MINI E3 V2 and the Configuration file, is the default nominal filament diameter. While this is only used for volumetric extrusions. Nonetheless it is still not a bad thing to double check it is set to the correct filament diameter.

#define DEFAULT_NOMINAL_FILAMENT_DIA 1.75

@section temperature

screenshoot of Marlin 2 firmware thermistor definitions for both extruder and heated bed. #define TEMP_SENOR_0 1 for Ender 3, Ender 3 V2, Ender 3 Pro extruder thermistor. #define TEMP_SENSOR_BED 1 for Ender 3, Ender 3 V2, Ender 3 Pro
heated bed thermistor.

THERMISTORS

Undoubtedly one of the most important sections within Marlin 2 is setting the correct thermistors. Because of this, if the wrong thermistor is allocated in the configuration, then the temperatures may be recorded incorrectly.

For instance you may set the hot end to 210˚C. But the thermistor may read 200˚C instead of 210˚C. As such when the thermistor displays 210˚C it is in fact 220˚C. Without a doubt this will cause issues. However the correct settings are normally supplied by the manufacture of the printer or replacement part.

Furthermore the below example is using the default settings for the Creality Ender 3 Pro, for the hot end thermistor.

#define TEMP_SENSOR_0 1

Additionally the below example is for the Creality Ender 3 Hot Bed Thermistor. Moreover it is the same as the hot end, as they both use the same thermistor type.

#define TEMP_SENSOR_BED 1

PID SETTINGS

screenshot of Marlin 2 firmware showing the PID calibration option for fine tuning the hot end and heated bed ion the SKR MINI E3 V2

Without a doubt PID calibration tends to be specific to each 3D printer. Consequentially they need calibrating to give a more stable temperature for both the hot end and the heated bed. Nonetheless in order to be able to calibrate the PID settings for the hot end, check that #define PIDTEMP is enabled.

#define PIDTEMP 

Furthermore there is an option to enable the PID option for the heated bed, which is a few lines down from the PIDTEMP.

#define PIDTEMPBED

If you would like to read more about PID settings and calibrating the hot end and heated bed. Then have a look at the following guides, PID Tuning Extruder Calibration and Heated Bed PID Calibration.

@section homing

ENDSTOPPULLUPS

screenshot of Marlin 2 firmware, showing the default settings for the end stop pull-ups (ENDSTOPPULLUPS). #if DISABLED(ENDSTOPPULLUPS) // Disable ENDSTOPPULLUPS to set pullups individually //#define ENDSTOPPULLUP_XMAX //#define ENDSTOPPULLUP_YMAX //#define ENDSTOPPULLUP_ZMAX //#define ENDSTOPPULLUP_XMIN //#define ENDSTOPPULLUP_YMIN //#define ENDSTOPPULLUP_ZMIN //#define ENDSTOPPULLUP_ZMIN_PROBE#endif

Below we will be talking about endstops. Importantly these are the physical or optical switches that trigger when the 3D printer homes. Furthermore the homing switches are normally used on X, Y, and Z Min connectors on the SKR MINI E3 V2.

But what is a pull-up or a pull-down ?

A pull-up is a resistor that connects the pins not in use to the voltage of the switch either 3.3V or 5V. As a result it keeps the switch as a High input. Whereas a pull-down resistor will connect the pins not used, to the ground which is 0V and as such gives a LOW input.

However on the SKR MINI E3 V2 there has been no need to individually enable any of the ENDSTOPPULLUPS. Moreover the options are unadjusted and left as default. Consequentially most users can skip this section and move on to the ENDSTOP_INVERTING section.

#define ENDSTOPPULLUPS
#if DISABLED(ENDSTOPPULLUPS)
  // Disable ENDSTOPPULLUPS to set pullups individually
  //#define ENDSTOPPULLUP_XMAX
  //#define ENDSTOPPULLUP_YMAX
  //#define ENDSTOPPULLUP_ZMAX
  //#define ENDSTOPPULLUP_XMIN
  //#define ENDSTOPPULLUP_YMIN
  //#define ENDSTOPPULLUP_ZMIN
  //#define ENDSTOPPULLUP_ZMIN_PROBE
#endif

However if this causes problems with your 3D printers particular setup. In particular it’s end stops and homing. Then one possible solution is to disable the ENDSTOPPULLUPS, and enable any of the options within the if disabled section.

Furthermore a likely option that will need to be enabled IF, the ENDSTOPPULLUPS option is disabled is the ENDSTOPPULLUP_ZMIN_PROBE.

Additionally in the options shown below, #define ENDSTOPPULLUPS has been disabled by placing forward slashes in front of the option. Furthermore the pull-up for the ENDSTOPPULLUP_ZMIN_PROBE has been enabled by removing the forward slashes.

//#define ENDSTOPPULLUPS
#if DISABLED(ENDSTOPPULLUPS)
//#define ENDSTOPPULLUP_XMAX
//#define ENDSTOPPULLUP_YMAX
//#define ENDSTOPPULLUP_ZMAX
 //#define ENDSTOPPULLUP_XMIN
//#define ENDSTOPPULLUP_YMIN
//#define ENDSTOPPULLUP_ZMIN
#define ENDSTOPPULLUP_ZMIN_PROBE
#endif

ENDSTOPPULLDOWNS

screenshot of Marlin 2 firmware, showing the default settings for the end stop pull-downs (ENDSTOPPULLDOWNS). //#define ENDSTOPPULLDOWNS#if DISABLED(ENDSTOPPULLDOWNS) // Disable ENDSTOPPULLDOWNS to set pulldowns individually //#define ENDSTOPPULLDOWN_XMAX //#define ENDSTOPPULLDOWN_YMAX //#define ENDSTOPPULLDOWN_ZMAX //#define ENDSTOPPULLDOWN_XMIN //#define ENDSTOPPULLDOWN_YMIN //#define ENDSTOPPULLDOWN_ZMIN //#define ENDSTOPPULLDOWN_ZMIN_PROBE#endif

While ENDSTOPPULLDOWNS is often not needed. However some probes and switches require a pull-down in order to function correctly. Nonetheless it is a similar process as the ENDSTOPPULLUPS.

#define ENDSTOPPULLDOWNS

But on the rare occasion you need a mix of pull-up and pull-down resistance methods. Then disable both the ENDSTOPPULLUPS and the ENDSTOPPULLDOWNS.

In addition enable the relevant switch for a pull-up or pull-down by removing those forward slashes for the individual switches. See below for example.

//#define ENDSTOPPULLUPS //SET TO DISABLED
#if DISABLED(ENDSTOPPULLUPS) 
#define ENDSTOPPULLUP_XMAX
//#define ENDSTOPPULLUP_YMAX 
//#define ENDSTOPPULLUP_ZMAX  
//#define ENDSTOPPULLUP_XMIN 
 //#define ENDSTOPPULLUP_YMIN  
//#define ENDSTOPPULLUP_ZMIN  
#define ENDSTOPPULLUP_ZMIN_PROBE //This is only one enabled as pull-up
#endif

//#define ENDSTOPPULLDOWNS //SET TO DISABLED
#if DISABLED(ENDSTOPPULLDOWNS)  
#define ENDSTOPPULLDOWN_XMAX  
#define ENDSTOPPULLDOWN_YMAX  
#define ENDSTOPPULLDOWN_ZMAX  
#define ENDSTOPPULLDOWN_XMIN  
#define ENDSTOPPULLDOWN_YMIN  
#define ENDSTOPPULLDOWN_ZMIN  
//#define ENDSTOPPULLDOWN_ZMIN_PROBE // This is only one not enabled as pull-down.
#endif

ENDSTOP_INVERTING

screenshot of Marlin 2 firmware showing end stop inverting. While this differs to each machine and end stops. However if using a BLTouch you and it is not responding to being triggered. Enable the #define ENDSTOPPULLUP_ZMIN_PROBE option

If upon testing your end stop switches they are not working. You may need to invert the signal, luckily this can be in firmware rather than fitting new switches. Below is an example of an inverted logic for the probe or BLTouch not triggering when homing. Furthermore for the Creality Ender 3 or Ender 3 Pro the X, Y, and Z do not need to be inverted. But if using a probe or BLTouch, then the Z_MIN_PROBE_ENDSTOP_INVERTING needs to be set to true.

#define Z_MIN_PROBE_ENDSTOP_INVERTING true

STEPPER DRIVERS

screenshot of Marlin 2 firmware setting the driver type for X, Y, X and Extruder stepper drivers within Configuration.h. In this case they are using TMC2209. For example #define X_DRIVER_TYPE TMC2209

Without a doubt setting the correct stepper driver that is pre-fitted on the SKR MINI E3 V2 motherboard is critical. Importantly replace the X, Y, X, and E0 driver type from A4988 to TMC2209 as shown below.

#define X_DRIVER_TYPE  TMC2209
#define Y_DRIVER_TYPE  TMC2209
#define Z_DRIVER_TYPE  TMC2209
//#define X2_DRIVER_TYPE TMC2209
//#define Y2_DRIVER_TYPE A4988
//#define Z2_DRIVER_TYPE A4988
//#define Z3_DRIVER_TYPE A4988
//#define Z4_DRIVER_TYPE A4988
#define E0_DRIVER_TYPE TMC2209
//#define E1_DRIVER_TYPE A4988
//#define E2_DRIVER_TYPE A4988
//#define E3_DRIVER_TYPE A4988
//#define E4_DRIVER_TYPE A4988
//#define E5_DRIVER_TYPE A4988
//#define E6_DRIVER_TYPE A4988
//#define E7_DRIVER_TYPE A4988

@section motion

DEFAULT_AXIS_STEPS_PER_UNIT

screenshot of the default steps for a Creality Ender 3 or Ender 3 Pro using the SKR E3 boards

Likewise setting the amount of steps a stepper motor needs to move per mm is important for dimensional accuracy. Furthermore the below example lists the default steps per mm for the Creality Ender 3 / Ender 3 Pro printers, with the standard extruder fitted. However if you have previously adjusted you steps then amend these to the values you are currently using.

#define DEFAULT_AXIS_STEPS_PER_UNIT   { 80.00, 80.00, 400.00, 93 } 

Importantly when set correctly, adjusting the steps settings any further for the X, Y, and Z axis is often unneeded. Unless all other options such as tightening or loosening belts have been tried.

However the steps of the extruder motors will often need to be calibrated separately. If you would like to read more about calibrating your filament extruder. Then have a look at both the Calibrating Your Filament Extruder guide and Calibrating Filament Flow Rate.

DEFAULT_MAX_FEEDRATE

screenshot of Marlin 2 adjusting feedrate and acceleration for SKR MINI E3 V2 and Creality Ender 3, Ender 3 V2 or Ender 3 Pro

In order to keep to the default values for the Creality Ender 3 or Ender 3 Pro. The DEFAULT_MAX_FEEDRATE (Maximum speed) of the individual axis and extruder motor are shown below.

#define DEFAULT_MAX_FEEDRATE { 500, 500, 5, 25 }

DEFAULT_MAX_ACCELERATION

While the default values for Max Acceleration for the Creality Ender 3 or Ender 3 Pro are listed below.

#define DEFAULT_MAX_ACCELERATION { 500, 500, 100, 5000 }

Likewise the following DEFAULT_ACCELERATION, DEFAULT_RETRACT_ACCELERATION and DEFAULT_TRAVEL_ACCELERATION are listed with the defaults for the Ender 3 or Ender 3 Pro.

#define DEFAULT_ACCELERATION 500
#define DEFAULT_RETRACT_ACCELERATION 500
#define DEFAULT_TRAVEL_ACCELERATION 500

JUNCTION_DEVIATION_MM

screenshot of Marlin 2 adjusting junction deviation and s curve acceleration for SKR MINI E3 V2

Junction deviation is a useful algorithm that calculates the speed at which corners are taken. Moreover it carries out this function by taking into consideration the acceleration settings and angle of the corners.

Importantly the default value of the Junction Deviation for the Creality Ender 3 or Ender 3 Pro is set to 0.08mm. While the JD_HANDLE_SMALL_SEGMENTS option is enabled.

#define JUNCTION_DEVIATION_MM 0.08
#define JD_HANDLE_SMALL_SEGMENTS

S_CURVE_ACCELERATION

While not enabled by default within Marlin, the S Curve Acceleration offers a great improvement to print quality. Moreover S Curve Acceleration smooths out the acceleration and deceleration for when the printhead is moving. However if you later plan to use Linear Advance, then this must be disabled.

#define S_CURVE_ACCELERATION

@section probes

Undoubtedly probes make life a little easier when it comes to bed levelling. However sometimes they take a bit of tweaking and trial and error to get working well.

But to begin with, Marlin needs to know where the probe is connected. If the dedicated probe port is used for all the probe wires. Then you can skip to the BLTouch or Probe section.

However if you have been experiencing issues and reverted to using the Z-Stop connector on the SKR MINI E3 V2. Consequentially the Z_MIN_PROBE_PIN option needs to be disabled. Followed by enabling the Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN option.

screenshot of Marlin 3D printer firmware for probe or BLTouch on SKR E3 boards.

Firstly enable Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN option as below.

#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN

Secondly disable the Z_MIN_PROBE_PIN option as below by placing the forward slashes in front.

//#define Z_MIN_PROBE_PIN PC14

BLTOUCH OR PROBE?

screenshot of Marlin 2 firmware showing the FIX_MOUNTED_PROBE option enabled if using non-moving bed levelling sensors. Such as inductive sensors

In order that the reading from the sensor to be correct, we need to set the type of probe in use. If the sensor on the 3D printer is an inductive or a switch type sat on the nozzle. Then enable the fix mounted probe.

#define FIX_MOUNTED_PROBE
screenshot of Marlin 2 firmware enabling the BLTOUCH option within configuration.h

Alternately if you are using a BLTouch style sensor then enable the BLTouch option.

#define BLTOUCH

NOZZLE_TO_PROBE_OFFSET

At this point in the setup, Marlin knows there is a sensor. Furthermore it knows what type of sensor it is and where it is plugged in. However it doesn’t know where it is physically attached to the printer.

Undoubtedly this is important, let’s say your probe is to the left of the nozzle by 22mm. However without Marlin knowing this. The point in height for where the nozzle is currently positioned will always be wrong. Due to the measurement is for 22mm away to the left of the nozzle.

So by telling Marlin where the probe is physically located in conjunction to the nozzle. Marlin can now adjust that point of reference accordingly.

However if you don’t know the measurements of the probe to the nozzle. Then the distance from the centre of the nozzle to the centre of the probe needs to be measured. Both in the X-Axis (Left or right) and the Y-Axis (Front or back). While the Z Height adjustment comes much later.

PROBE OFFSET EXAMPLES

screenshot of Marlin 2 3d printer firmware. Showing the distance form the nozzle to the sensor option. In the image the sensor is 22mm to the right and is not in front or behind the sensor. It is defined as #define NOZZLE_TO_PROBE_OFFSET { 22, 0, 0 }

Importantly if the probe is left of the nozzle it is a negative number measured in mm. But if it was to the right you would leave off the minus as it would be a positive number.

Furthermore in the example below, my probes position is exactly 22mm to the right. Additionally it is not in front or behind the centre of the nozzle.

#define NOZZLE_TO_PROBE_OFFSET { 22, 0, 0 }

However if your probe was to the left by 30mm, and behind the probe by 10mm. Then it would look like the example below.

#define NOZZLE_TO_PROBE_OFFSET { -30, 10, 0 }

In Marlin if the probe is behind the nozzle it is a positive number. But if it was in front then it would be a negative number.

PROBING_MARGIN (Previously MIN_PROBE_EDGE)

Without a doubt a probe or BLTouch is best used when it covers as much of the build plate as possible. Naturally a PROBING_MARGIN value of 10mm is idea.

#define PROBING_MARGIN 10

However if you are using clips to hold down a glass bed. Then it is best to avoid those. Moreover increase the distance in mm from the edge of the bed to say 30 or 40mm.

INVERT STEPPER DIRECTION

Screenshot of Marlin 2 firmware inverting the stepper motor direction if it is moving the wrong way. You could re-wire the stepper motor but it is easier to adjust the settings within Marlin. For instance the image sows the Z moving in the wrong direction so the Invert Z needs to be turned on. Defined as #define INVERT_Z_DIR true

While the need to invert the direction in which the stepper motor moves tends to be machine specific. However you will notice straightaway if you need to enable this option. As the axis start to move in the opposite direction to what was intended.

Furthermore in the example below, the invert options for the Creality Ender 3 or Ender 3 Pro for the SKR E3 MINI V2 board.

#define INVERT_X_DIR true 
#define INVERT_Y_DIR true
#define INVERT_Z_DIR false

Additionally the filament extruder also needs inverting.

#define INVERT_E0_DIR true

3D PRINTER DIMENSIONS

BED SIZE

screenshot of Marlin 2 with the bed dimensions and size for the creality Ender 3, Ender 3 V2 or Ender 3 Pro on the SKR E3 line of 3D printer main boards.

While not just specific to the SKR MINI E3 V2 and this configuration guide. However worth pointing out that you need to set the correct bed size. Not only is this key for printing boundaries. But also required for getting as much of the bed level as possible with a probe or BLTouch.

Moreover look for and define the X_BED_SIZE and the Y_BED_SIZE options to 235. Which is the bed size for the Creality Ender 3, Ender 3 V2 or Ender 3 Pro.

#define X_BED_SIZE 235
#define Y_BED_SIZE 235

Additionally Marlin needs to know how high the printer can print too. So just below the bed size is the minimum and maximum positions for movement. Moreover here the Z_MAX_POS, needs adjusting to 250 for the Creality Ender 3 or Ender 3 Pro.

#define Z_MAX_POS 250

SOFTWARE END STOPS

screenshot of Marlin 2 firmware showing the software end stop options. If using any automatic bed levelling then the MIN_SOFTWARE_ENDSTOP_Z needs to be disabled by placing // in front of the option. Such as //#define MIN_SOFTWARE_ENDSTOP_Z

Within Marlin 2 there is a section for a software based minimum end stop that acts virtually. However it doesn’t negate the need for a limit switch. Instead it ensures the printer doesn’t keep going on the opposite end of the axis. For instance Z_MIN_POS is set as default to 0mm. Importantly it would stop at the axis from moving, once it reached 0mm and not go any lower.

However when levelling the bed, this causes an issue where the probe or nozzle can not be lowered enough. Naturally we want to disable this, so scroll down to the MIN_SOFTWARE_ENDSTOPS option for the Z Axis and disable it. As shown below.

#define MIN_SOFTWARE_ENDSTOPS
#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
#define MIN_SOFTWARE_ENDSTOP_X  
#define MIN_SOFTWARE_ENDSTOP_Y  
//#define MIN_SOFTWARE_ENDSTOP_Z
#endif

A point of note, if you haven’t already don’t forget to save your changes.

SAVE FILE SHORTCUT:

Mac – Press the CMD (⌘) and the S key at the same time.
PC – Press the Ctrl and the S key at the same time.

FILAMENT_RUNOUT_SENSOR

Especially for those wishing to use a filament runout sensor on the SKR MINI E3 V2. Moreover be sure to search for and enable the FILAMENT_RUNOUT_SENSOR option. However there are many styles of filament runout sensors. As such the #if ENABLED(FILAMENT_RUNOUT_SENSOR) section may need further tweaking. Importantly many manufactures supply the relevant information needed to get their filament sensor working.

#define FILAMENT_RUNOUT_SENSOR

@section calibrate

AUTO_BED_LEVELING

screenshot of Marlin 2 firmware setting the automatic bed levelling method the easiest option. #define AUTO_BED_LEVELING_BILINEAR

While there are various options for the style of automatic bed levelling within Marlin with a probe or BLTouch. However the quickest and easiest to get along with is AUTO_BED_LEVELING_BILINEAR. So let’s start with that.

#define AUTO_BED_LEVELING_BILINEAR

Importantly for the most part when the printer is set to home, the G28 command is given. However by default it will forget any previous bed levelling. But we need to make sure that it doesn’t forget. So search for and enable the RESTORE_LEVELING_AFTER_G28 option.

#define RESTORE_LEVELING_AFTER_G28

Additionally a major step in setting up bed levelling within Marlin is the amount of grid lines per dimension that are used. Moreover by default this is 3×3, but for most beds you may need a higher value. Nonetheless I would suggest 9 is a good point to start with for many beds. So lets alter the value of the amount of grid points in GRID_MAX_POINTS_X. Importantly the grid points to adjust are within the #if EITHER(AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_BILINEAR) section. See below.

#if EITHER(AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_BILINEAR)

  // Set the number of grid points per dimension.
  #define GRID_MAX_POINTS_X 9

MESH_BED_LEVELING

For those without a probe then the mesh bed levelling can be enabled to help with uneven heated beds or build platforms.

#define MESH_BED_LEVELING

Similarly the printer will forget any previous bed levelling unless the RESTORE_LEVELING_AFTER_G28 is enabled.

#define RESTORE_LEVELING_AFTER_G28

Again like any bed levelling the amount fo points that form a grid can be altered from within the #elif ENABLED(MESH_BED_LEVELING) option. But for most 3D printers using Mesh Bed Levelling within Marlin, I would recommend a grid with 6 points.

A point of note, for those who are curious #elif simply means else if.

#elif ENABLED(MESH_BED_LEVELING)

  #define MESH_INSET 10          
  #define GRID_MAX_POINTS_X 6    
  #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X

Z_SAFE_HOMING

screenshot of Marlin 2 firmware option to enable safe homing of the Z axis. Disabled by default this option must be enabled if using an bed levelling probe, otherwise the z axis will crash into the bed. #define Z_SAFE_HOMING

Without a doubt a particularly critical step in setting up probes and automatic bed levelling within Marlin 2 is Z_SAFE_HOMING. Without this option enabled the nozzle will crash into the bed when homing. Importantly if you using a BlTouch or probe, search for and enable Z_SAFE_HOMING.

#define Z_SAFE_HOMING

@section extras

screenshot of Marlin 2 3d printer firmware, showing the EEPROM settings. As shown in this image to enable EEPROM which is needed, #define EEPROM_SETTINGS. Furthermore so settings can be changed via a terminal on a computer such as PC, Mac or Raspberry Pi running OctoPrint. We need to enable #define EEPROM_CHITCHAT

Undoubtedly the EEPROM which is where all the firmware options and variables are stored is important. Consequentially without it being enabled, many of the Marlin options will be lost once the printer is turned off. Due to the settings not beeing saved into the printers memory.

Importantly memory on a 3D printer can be stored via a physical chip or software via the SD card. However which ever option is used we need to enable the storing of information into that memory known as EEPROM. So search and enable EEPROM_SETTINGS.

#define EEPROM_SETTINGS

Furthermore we want to be able to talk back and forth to that memory. Because of this we need to enable the chit-chat option.

#define EEPROM_CHITCHAT 

PREHEAT PRESET TEMPERTURES

screenshot of the filament preheat preset within Marlin 2 change ABS to TPU

Without a doubt the required temperature for preheating the hot end and heated bed alters depending on filament used. However you can alter the default PLA or ABS preheat settings within the Marlin firmware to suit personal preference. Furthermore you can rename the filament if the need arises. For example changing ABS to TPU.

// Preheat Constants
define PREHEAT_1_LABEL "PLA"
define PREHEAT_1_TEMP_HOTEND 210
define PREHEAT_1_TEMP_BED 60
define PREHEAT_1_FAN_SPEED 0 // Value from 0 to 255

define PREHEAT_2_LABEL "ABS"
define PREHEAT_2_TEMP_HOTEND 240
define PREHEAT_2_TEMP_BED 110
define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255

NOZZLE_PARK_FEATURE

screenshot of the nozzle park feature in the Marlin 2 firmware for creality ender 3, Ender 3 V2 or ender 3 pro using the SKR MINI E3 V2 Board

Obviously being able to pause the printer as well as changing filament is a useful option within the Marlin firmware. However there are two sections that need enabling. If this sounds like an option you would like to have on the SKR MINI E3 V2. Then enable the NOZZLE_PARK_FEATURE.

Importantly the default settings for the #if ENABLED(NOZZLE_PARK_FEATURE) section works well with the Ender 3 line of printers.

#define NOZZLE_PARK_FEATURE

@section lcd

screenshot of Marlin 2 3d printer firmware showing the SD card support option enabled, by default SD card option is disabled. #define SDSUPPORT

SD SUPPORT

It should be noted, that if your LCD or graphics controller has an SD card reader. It is important to enable the SD memory card option.

#define SDSUPPORT

INDIVIDUAL_AXIS_HOMING_MENU

screenshot of the individual axis homing LCD menu for Marlin 2 firmware

Without a doubt being able to home just the X, Y or Z axis on their own is particularly useful. Moreover by enabling the INDIVIDUAL_AXIS_HOMING_MENU additional options are adding to the LCD menu.

#define INDIVIDUAL_AXIS_HOMING_MENU

SETTING THE LCD CONTROLLER

screenshot of Marlin 2 firmware setting the Creality Ender 3, Ender 3 Pro  CR10 display for the LCD.

Importantly Marlin 2 needs to know the type of LCD display that is attached to the 3D printer. Importantly it is necessary to double check what display is used. Once checked search the list of LCD’s in the Marlin firmware and enable.

But for those using the Stock Creality Display you will want to enable the CR10_STOCKDISPLAY option.

#define CR10_STOCKDISPLAY

However if you are running a Creality Ender 3 V2 then the LCD is different. Moreover DWIN_CREALITY_LCD needs to be enabled instead.

screenshot of Marlin 2 firmware enabling the Creality Ender 3 V2 LCD OEM
#define DWIN_CREALITY_LCD

However the use of the Creality Ender. V2 DWIN UI display requires a custom cable and is still trial and error.

SKR MINI E3 V2 Configuration File Completed

Finally a congratulations is in order. Moreover that is the setup done for the Configuration file for the SKR MINI E3 V2 3D printer mainboard.

Importantly grab yourself a break as next comes the configuring the SKR MINI E3 V2 for the Configuration_adv.h file. However you will be pleased to know it is much shorter than editing the Configuration.h within Marlin 2.

Additionally it is important that you remember to save your changes.

SAVE FILE SHORTCUT:

Mac – Press the CMD (⌘) and the S key at the same time.
PC – Press the Ctrl and the S key at the same time.

If you found this guide useful, please consider a donation to help keep the Make ‘N’ Print website running. For further information please have a look at our support us page

Thank You


© 2019-2021 Copyright - All Rights Reserved.