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

SKR E3 DIP Configuration.h Marlin 2 Setup Part 2


Setting up the Configuration.h file for the SKR E3 DIP V1.0 and V1.1 with Marlin 2. Delving into the SKR E3 DIP for Creality Ender 3 or Ender 3 Pro.

SKR E3 DIP Marlin 2 Setup Guide
Software
Let’s Get Started
PLATFORMIO.INI
CONFIGURATION.H
CONFIGURATION_ADV.H
pins_BTT_SKR_E3_DIP.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
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 E3 DIP.

@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 E3 DIP Configuration easier.

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 E3 DIP #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 E3 DIP Configuration file then the very beginning, so 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

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 

BAUDRATE

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

While completely possible to set data transfer speeds higher in the configuration file for SKR E3 DIP. 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 E3 DIP defined as BOARD_BTT_SKR_E3_DIP

Now at this point in setting up the firmware for the SKR E3 DIP, 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 define the motherboard, todo this we need to change the board specified in the #define MOTHERBOARD option. However frustratingly the board names seem always to be changing. But at the time of writing this guide the board name for the SKR E3 DIP is BOARD_BTT_SKR_E3_DIP, see below.

#define MOTHERBOARD BOARD_BTT_SKR_E3_DIP

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.

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 E3 DIP and the Configuration file, is the default nominal filament diameter. Moreover by default the nominal filament diameter is set to 3.0mm. While this is only used for volumetric extrusions. Nonetheless it is still not a bad thing to change this to 1.75mm. Furthermore see the below example for the changes made.

#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 Pro extruder thermistor. #define TEMP_SENSOR_BED 1 for Ender 3 Pro heated bed thermistor.

THERMISTORS

Undoubtedly one of the most important sections within Marlin 2 is setting the correct thermistor for both the hot end, and the heated bed. Because of this, if the wrong thermistor is allocated in the configuration, then the temperature of the hot end or heat bed on the SKR E3 DIP 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 ends 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.

#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 E3 DIP

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. Moreover enable #define PIDTEMPBED, which is a few lines down from the PIDTEMP option.

#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, 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 E3 DIP.

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.

While on the SKR E3 DIP I have not needed to individually enable any of the ENDSTOPPULLUPS options manually, and are left as default. However if this causes problems with your 3D printers particular setup, it’s end stops and homing. Then disable ENDSTOPPULLUPS, and enable if 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 option below #define ENDSTOPPULLUPS has been disabled by placing forward slashes in front, and the pull-up for the ENDSTOPPULLUP_ZMIN_PROBE 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. Nonethless it is a similar process as the ENDSTOPPULLUPS.

If this is the case for your 3D printers setup, then ensure the #define ENDSTOPPULLUPS is disabled and all the ENDSTOPPULLUP_.

#define ENDSTOPPULLDOWNS

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

Now if upon testing your end stop switches and they are not triggering 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 does.

#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 TMC2208. For example #define X_DRIVER_TYPE TMC2208

Obviously setting the correct stepper driver that is installed on the SKR E3 DIP motherboard is important. While your particular stepper driver may differ, the below example is using TMC2208’s for UART mode, not standalone. Nonetheless Marlin lists the available stepper drivers, simply copy and paste the relevant driver to the each relevant axis.

#define X_DRIVER_TYPE  TMC2208
#define Y_DRIVER_TYPE  TMC2208
#define Z_DRIVER_TYPE  TMC2208
//#define X2_DRIVER_TYPE A4988
//#define Y2_DRIVER_TYPE A4988
//#define Z2_DRIVER_TYPE A4988
//#define Z3_DRIVER_TYPE A4988
//#define Z4_DRIVER_TYPE A4988
#define E0_DRIVER_TYPE TMC2208
//#define E1_DRIVER_TYPE TMC2208
//#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

Without a doubt, setting the amount of steps a stepper motor needs to move per mm is important for dimensional accuracy. Importantly the below example lists the steps per mm for the Creality Ender 3 / Ender 3 Pro with the standard extruder fitted.

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

However when set correctly adjusting these settings any further for the X, Y, and Z axis is often unneeded, unless all other options such as tightening or loosening belts has 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 E3 DIP and Creality Ender 3 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 }

Furthermore the following DEFAULT_ACCELERATION, DEFAULT_RETRACT_ACCELERATION and DEFAULT_TRAVEL_ACCELERATION are listed with the default values 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 E3 DIP and Creality Ender 3 or Ender 3 Pro

Junction deviation is a useful algorithm that calculates the speed at which corners are taken, by taking into consideration the acceleration settings and angle of the corners.

Furthermore the default value of the Junction Deviation for the Creality Ender 3 or Ender 3 Pro is set to 0.08mm with the JD_HANDLE_SMALL_SEGMENTS 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 by smoothing out the acceleration 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. Nonetheless all going well, you can simply plug into the servo and Z Min connectors on the SKR E3 DIP.

Without a doubt Marlin needs to know where the probe is connected. While ordinarily the dedicated probe port would be used. However I have not being able to get the dedicated 2 pin probe connection on the board to function correctly with SKR E3 DIP V1.1.

As a result the Z_MIN_PROBE_PIN option needs to be disabled, and the Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN enabled.

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  P0_10

A point of note, the pins_BTT_SKR_E3_DIP.h will need changing to further disable the Z_MIN_PROBE_PIN option. But this will be covered further down the line.

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 what type of probe we are using. 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

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

#define BLTOUCH

NOZZLE_TO_PROBE_OFFSET

So at this point Marlin knows there is a sensor, it knows what type 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 will always be wrong. Due to the measurement is for 22mm away to the left of the nozzle.

So by telling Marlin where the nozzle is physically located Marlin adjusts that point of reference accordingly. As a result, the height for the nozzle is now correct. So if you are using a 3D printed model supplied from say Thingiverse or a purchased holder. Then the distance from the probe to the nozzle is often documented within the description of the file.

However if you don’t know the placement distances, you are going to need to measure the distance from the centre of the nozzle to the centre of the probe or neddle. Both in the X-Axis (Left or right) and the Y-Axis (Front or back). 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 }

So in the example below, my probe position that I designed is exactly 22mm to the right, and it is not in front or behind the centre of the nozzle.

Furthermore if the nozzle is to the left it is a negative number, if it was to the right you would leave off the minuses as it would be a positive number.

#define NOZZLE_TO_PROBE_OFFSET { 22, 0, 0 }

However, let’s say your probe was to the left by 30mm, and behind the probe by 10mm it would look like below.

#define NOZZLE_TO_PROBE_OFFSET { -30, 10, 0 }

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

PROBING_MARGIN (Previously MIN_PROBE_EDGE)

Without a doubt in most instances 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. However if you are using clips to hold down a glass bed. Then it is best to avoid those by increasing the distance in mm from the edge of the bed to say 30 or 40mm.

#define PROBING_MARGIN 10

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 it is usually machine specific if the need to invert the direction in which the stepper motor moves. However you will notice straightaway if you need to enable this option, when things are moving in opposite to the intended direction.

Furthermore in the example lists the invert options for the Creality Ender 3 or Ender 3 Pro for the SKR E3 DIP boards.

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

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 on the SKR E3 DIP D printer board.

While not just specific to the SKR E3 DIP and this configuration guide, it is 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.

#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. For instance lets say the height for the Z-Axis is 0mm, it would stop at 0mm and not go any lower. Because this is defined in Z_MIN_POS as 0.

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

#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.

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 E3 DIP, be sure to search for and enable the FILAMENT_RUNOUT_SENSOR option.

#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 giving. However it will forget any previous bed levelling probing. So 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, by default this is 3×3. However, 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.

  #define GRID_MAX_POINTS_X 9

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. So search and enable Z_SAFE_HOMING if using a BlTouch or probe.

#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 without the EEPROM option being enabled, many of the Marlin options will be lost once the printer is turned off. Furthermore without EEPROM enabled, many options simply won’t be available.

This is because it has not been saved into the printers memory. So memory on a printer can be 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

Now we want to be able to talk back and forth to that memory so 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 or ender 3 pro using the SKR E3 DIP 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. But for now enable the NOZZLE_PARK_FEATURE if this sounds like an option you would like to have on the SKR E3 DIP and Creality Ender 3 or Ender 3 Pro.

#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, then you need to enable the SD memory card option.

#define SDSUPPORT

INDIVIDUAL_AXIS_HOMING_MENU

screenshot of the nozzle park feature within Marlin 2 firmware for 3D printers

Without a doubt being able to home just the X, Y or Z axis on their own is particularly useful at times. Hence it is worth enabling.

#define INDIVIDUAL_AXIS_HOMING_MENU

SETTING THE LCD CONTROLLER

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

Importantly Marlin 2 needs to know the type of LCD display we are using on the 3D printer so it can display the information correctly. Moreover it is important to double check what display you are using and find it in the list within the lcd section. However for those still using the Stock Creality Display you will want to enable the CR10_STOCKDISPLAY option.

#define CR10_STOCKDISPLAY

SKR E3 DIP Configuration File Completed

Finally a congratulations is in order, that is the setup done for the Configuration file for the SKR E3 DIP 3D printer mainboard. Moreover this finishes the second part of the SKR E3 DIP Marlin 2 setup guide. Furthermore grab yourself a break as next comes the configuring the SKR E3 DIP for the Configuration_adv.h file. However you will be pleased to know it is shorter than editing the Configuration.h within Marlin 2.

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

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-2020 Copyright - All Rights Reserved.