fixed the code blocks

sarf2k4 2016-04-09 22:44:27 +08:00
parent bc67d7f089
commit 85fd6791e9

@ -1,104 +1,100 @@
## BOARD ## BOARD
`#define STRING_CONFIG_H_AUTHOR "(none, default config)"` ```cpp
#define STRING_CONFIG_H_AUTHOR "(none, default config)"
```
This is basically just to show who made the changes to the current firmware settings, this also can be a reference if you're having several config types or marlin versions. This will be displayed when you connect to the board like Pronterface. This is basically just to show who made the changes to the current firmware settings, this also can be a reference if you're having several config types or marlin versions. This will be displayed when you connect to the board like Pronterface.
*** ***
`#define MOTHERBOARD BOARD_RAMPS_14_EFB` ```cpp
#define MOTHERBOARD BOARD_RAMPS_14_EFB
```
This defines what board that you used for your 3D printer. This is to tell marlin to use these specific pins and restrictions for these particular board. Below is the list of the board that can be used with marlin, taken from boards.h. This defines what board that you used for your 3D printer. This is to tell marlin to use these specific pins and restrictions for these particular board. Below is the list of the board that can be used with marlin, taken from boards.h.
Change the `BOARD_RAMPS_14_EFB` into one of the listed constant below that matches your current board. Change the `BOARD_RAMPS_14_EFB` into one of the listed constant below that matches your current board.
The list below are often used by 3D printer owner, if not listed, kindly check the "boards.h" file The list below are often used by 3D printer owner, if not listed, kindly check the "boards.h" file
`BOARD_RAMPS_14_EFB // RAMPS 1.4 (Power outputs: Extruder, Fan, Bed)` ```cpp
BOARD_RAMPS_14_EFB // RAMPS 1.4 (Power outputs: Extruder, Fan, Bed)
`BOARD_RAMPS_14_EEB // RAMPS 1.4 (Power outputs: Extruder0, Extruder1, Bed)` BOARD_RAMPS_14_EEB // RAMPS 1.4 (Power outputs: Extruder0, Extruder1, Bed)
BOARD_RAMPS_14_EFF // RAMPS 1.4 (Power outputs: Extruder, Fan, Fan)
`BOARD_RAMPS_14_EFF // RAMPS 1.4 (Power outputs: Extruder, Fan, Fan)` BOARD_RAMPS_14_EEF // RAMPS 1.4 (Power outputs: Extruder0, Extruder1, Fan)`
BOARD_RAMPS_14_SF // RAMPS 1.4 (Power outputs: Spindle, Controller Fan)`
`BOARD_RAMPS_14_EEF // RAMPS 1.4 (Power outputs: Extruder0, Extruder1, Fan)` BOARD_SANGUINOLOLU_12 // Sanguinololu 1.2 and above
BOARD_MELZI // Melzi
`BOARD_RAMPS_14_SF // RAMPS 1.4 (Power outputs: Spindle, Controller Fan)` BOARD_RUMBA // Rumba
BOARD_RAMBO // Rambo
`BOARD_SANGUINOLOLU_12 // Sanguinololu 1.2 and above`
`BOARD_MELZI // Melzi`
`BOARD_RUMBA // Rumba`
`BOARD_RAMBO // Rambo`
```
*** ***
`#define CUSTOM_MACHINE_NAME "3D Printer"` ```cpp
#define CUSTOM_MACHINE_NAME "3D Printer"
```
This is the name of your printer for example setting to delta would display "delta ready" after the printer has been turned on This is the name of your printer for example setting to delta would display "delta ready" after the printer has been turned on
*** ***
`#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"` ```cpp
#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
```
A unique ID for your 3D printer, it is almost like a MAC Address and can be generated from here http://www.uuidgenerator.net/version4 A unique ID for your 3D printer, it is almost like a MAC Address and can be generated from here http://www.uuidgenerator.net/version4
*** ***
`#define EXTRUDERS 1` ```cpp
#define EXTRUDERS 1
```
This defines how many extruders you have for your 3d printer model. This defines how many extruders you have for your 3d printer model.
If you have more than one extruder, uncomment below codes If you have more than one extruder, uncomment below codes
`//#define EXTRUDER_OFFSET_X {0.0, 20.00}` ```cpp
//#define EXTRUDER_OFFSET_X {0.0, 20.00}
`//#define EXTRUDER_OFFSET_Y {0.0, 5.00}` //#define EXTRUDER_OFFSET_Y {0.0, 5.00}
```
As for more than 2 extruder at once, I'm not sure hwo to set them up. As for more than 2 extruder at once, I'm not sure hwo to set them up.
*** ***
`#define POWER_SUPPLY 1` ```cpp
#define POWER_SUPPLY 1
```
What power supply you're using. ATX;1 or X-Box 360;2. If you're using LED Strip power supply, just use 1 What power supply you're using. ATX;1 or X-Box 360;2. If you're using LED Strip power supply, just use 1
*** ***
## Thermal Settings ## Thermal Settings
```cpp
`#define TEMP_SENSOR_0 5` //This is your main extruder #define TEMP_SENSOR_0 5 //This is your main extruder
#define TEMP_SENSOR_1 0
`#define TEMP_SENSOR_1 0` #define TEMP_SENSOR_2 0
#define TEMP_SENSOR_3 0
`#define TEMP_SENSOR_2 0` #define TEMP_SENSOR_BED 3 //Heated bed
```
`#define TEMP_SENSOR_3 0`
`#define TEMP_SENSOR_BED 3` //Heated bed
These are the profile of your thermistors. Generic profile are often "1" which is "100K Thermistor". If you can get exact brand and thermistor type for your hotend/heated bed, use that particular number/value/profile. Because each thermistor has their own characteristics to report temperature. These are the profile of your thermistors. Generic profile are often "1" which is "100K Thermistor". If you can get exact brand and thermistor type for your hotend/heated bed, use that particular number/value/profile. Because each thermistor has their own characteristics to report temperature.
This is crucial to ensure exact temperature measurement. If you're unsure, just use 100k thermistor for `temp_sensor` and `temp_sensor_bed` This is crucial to ensure exact temperature measurement. If you're unsure, just use 100k thermistor for `temp_sensor` and `temp_sensor_bed`
*** ***
`#define HEATER_0_MINTEMP 5` ```cpp
#define HEATER_0_MINTEMP 5
`#define HEATER_1_MINTEMP 5` #define HEATER_1_MINTEMP 5
#define HEATER_2_MINTEMP 5
`#define HEATER_2_MINTEMP 5` #define HEATER_3_MINTEMP 5
#define BED_MINTEMP 5
`#define HEATER_3_MINTEMP 5` ```
`#define BED_MINTEMP 5`
One of the safety feature that will prevent the printer from working. Room temperature typically has a range of about 10-40'c, if one of the sensor goes below the specified value above, marlin would prevent the user from using it. One of the safety feature that will prevent the printer from working. Room temperature typically has a range of about 10-40'c, if one of the sensor goes below the specified value above, marlin would prevent the user from using it.
`MINTEMP ERROR`: This error means your thermistor isn't connected into the temperature pin `MINTEMP ERROR`: This error means your thermistor isn't connected into the temperature pin
```cpp
`#define HEATER_0_MAXTEMP 285` #define HEATER_0_MAXTEMP 285
#define HEATER_1_MAXTEMP 275
`#define HEATER_1_MAXTEMP 275` #define HEATER_2_MAXTEMP 275
#define HEATER_3_MAXTEMP 275
`#define HEATER_2_MAXTEMP 275` #define BED_MAXTEMP 130
```
`#define HEATER_3_MAXTEMP 275`
`#define BED_MAXTEMP 130`
Maximum temperature for these heating element. If marlin reads the temperature past these values, it will stop working instantly for safety purpose. For E3D V6, 285 is the maximum value to most people. Maximum temperature for these heating element. If marlin reads the temperature past these values, it will stop working instantly for safety purpose. For E3D V6, 285 is the maximum value to most people.
@ -116,13 +112,16 @@ The target temperature during auto tune process is your highest target temperatu
More detailed info about what PID are here https://en.wikipedia.org/wiki/PID_controller More detailed info about what PID are here https://en.wikipedia.org/wiki/PID_controller
`#define EXTRUDE_MINTEMP 170` ```cpp
#define EXTRUDE_MINTEMP 170
```
This will prevent the extruder motor from moving if the hotend temperature is less than 170'c. This will prevent the extruder motor from moving if the hotend temperature is less than 170'c.
*** ***
`// #define THERMAL_PROTECTION_HOTENDS // Enable thermal protection for all extruders` ```cpp
// #define THERMAL_PROTECTION_HOTENDS // Enable thermal protection for all extruders
`// #define THERMAL_PROTECTION_BED // Enable thermal protection for the heated bed` // #define THERMAL_PROTECTION_BED // Enable thermal protection for the heated bed
```
This one is a cool feature to have. This one actually measures the current temperature and then sets a timer to it. If the timeout has reached then marlin will stop the printing process. This one is a cool feature to have. This one actually measures the current temperature and then sets a timer to it. If the timeout has reached then marlin will stop the printing process.
@ -134,161 +133,150 @@ How it works is; target temperature at 190'c, after reaching 190'c this protecti
The config of these parameters can be found in "configuration_adv.h" file. The config of these parameters can be found in "configuration_adv.h" file.
*** ***
`// Uncomment this option to enable CoreXY kinematics` ```cpp
// Uncomment this option to enable CoreXY kinematics
`//#define COREXY` //#define COREXY
// Uncomment this option to enable CoreXZ kinematics
`// Uncomment this option to enable CoreXZ kinematics` //#define COREXZ`
// Enable this option for Toshiba steppers
`//#define COREXZ` //#define CONFIG_STEPPERS_TOSHIBA
```
`// Enable this option for Toshiba steppers`
`//#define CONFIG_STEPPERS_TOSHIBA`
These are for special type of machines and configurations because they uses different types of algorithms to move around. If you're using prusa, mendel, airwolf, or basically a cartesian based printer, as well as nema based stepper motor, leave these commented These are for special type of machines and configurations because they uses different types of algorithms to move around. If you're using prusa, mendel, airwolf, or basically a cartesian based printer, as well as nema based stepper motor, leave these commented
*** ***
`const bool X_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.` ```cpp
const bool X_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
`const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.` const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
`const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.` const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
`const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.` const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
`const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.` ```
`const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.`
`const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.`
Inverting between triggered and open state when issuing M119 command. Usually not touched but if you don't want to fiddle the wiring again, you can invert these. Inverting between triggered and open state when issuing M119 command. Usually not touched but if you don't want to fiddle the wiring again, you can invert these.
*** ***
## Z Probe Options ## Z Probe Options
`//#define Z_MIN_PROBE_ENDSTOP` ```cpp
//#define Z_MIN_PROBE_ENDSTOP
```
If you want to use both probe and default z min switch for your 3D printer, enable this. However, This requires extra setups to be done. If you're using Ramps 1.4, the probe pins are located in D32 of the aux4 array that used by the lcd panel. You have to change the pin manually from the board pin file for example "pins_RAMPS_14.h" located at `#define Z_MIN_PROBE_PIN 32`. I would change this to pin 19 (z max) since it never really been used. This extra ports is actually the Z Probe that is used for your auto bed leveling. If you want to use both probe and default z min switch for your 3D printer, enable this. However, This requires extra setups to be done. If you're using Ramps 1.4, the probe pins are located in D32 of the aux4 array that used by the lcd panel. You have to change the pin manually from the board pin file for example "pins_RAMPS_14.h" located at `#define Z_MIN_PROBE_PIN 32`. I would change this to pin 19 (z max) since it never really been used. This extra ports is actually the Z Probe that is used for your auto bed leveling.
Another way is to change between these `#define Z_MIN_PROBE_PIN 32`, `#define Z_MIN_PIN 18` and `#define Z_MAX_PIN 19` according to your board. This is not for beginners. Another way is to change between these `#define Z_MIN_PROBE_PIN 32`, `#define Z_MIN_PIN 18` and `#define Z_MAX_PIN 19` according to your board. This is not for beginners.
`#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN` ```cpp
#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
```
This however uses single switch for your z axis only. If you only want to use z probe for everything related to homing and bed leveling, enable this option. Note that either one of them can be enabled at a time. This however uses single switch for your z axis only. If you only want to use z probe for everything related to homing and bed leveling, enable this option. Note that either one of them can be enabled at a time.
Note to dev; Please make the comment explanation much simpler or the define variable, it's so confusing that reading it again can took me 1-5 minutes to figure out Note to dev; Please make the comment explanation much simpler or the define variable, it's so confusing that reading it again can took me 1-5 minutes to figure out
`//#define DISABLE_Z_MIN_PROBE_ENDSTOP` ```cpp
//#define DISABLE_Z_MIN_PROBE_ENDSTOP
```
This typically disables your probe feature. Only applicable to `//#define Z_MIN_PROBE_ENDSTOP` enabled This typically disables your probe feature. Only applicable to `//#define Z_MIN_PROBE_ENDSTOP` enabled
*** ***
`#define INVERT_X_DIR true` ```cpp
#define INVERT_X_DIR true
`#define INVERT_Y_DIR false` #define INVERT_Y_DIR false
#define INVERT_Z_DIR true
`#define INVERT_Z_DIR true` #define INVERT_E0_DIR false
#define INVERT_E1_DIR false
`#define INVERT_E0_DIR false` #define INVERT_E2_DIR false
#define INVERT_E3_DIR false
`#define INVERT_E1_DIR false` ```
`#define INVERT_E2_DIR false`
`#define INVERT_E3_DIR false`
These inverts the motor movement for each axis. Usually flipping the connector will be okay but if that's such a hassle, just invert these without the need to fiddle with your electronic. These inverts the motor movement for each axis. Usually flipping the connector will be okay but if that's such a hassle, just invert these without the need to fiddle with your electronic.
*** ***
`//#define MIN_Z_HEIGHT_FOR_HOMING 4 `
```cpp
//#define MIN_Z_HEIGHT_FOR_HOMING 4
```
This works like how a probe based 3d printer works when homing. Instead of increase z height after x and y has been homed, Z axis are raised first before homing procedure. This is also to avoid from the head crashing to the bed mounting such as screws, bulldog clip and some other stuffs. This works with auto bed leveling enabled and this will be triggered only when z axis are less than defined value, else the z axis will not move. This works like how a probe based 3d printer works when homing. Instead of increase z height after x and y has been homed, Z axis are raised first before homing procedure. This is also to avoid from the head crashing to the bed mounting such as screws, bulldog clip and some other stuffs. This works with auto bed leveling enabled and this will be triggered only when z axis are less than defined value, else the z axis will not move.
`#define X_HOME_DIR -1` ```cpp
#define X_HOME_DIR -1
`#define Y_HOME_DIR -1` #define Y_HOME_DIR -1
#define Z_HOME_DIR -1
`#define Z_HOME_DIR -1` ```
This tells marlin where the head is at when all the endstop has been triggered. typical setup are all at min position; bottom front left side of the bed. In some cases, some owner puts the home endstops at max position and these needs to be changed if max position are used. This tells marlin where the head is at when all the endstop has been triggered. typical setup are all at min position; bottom front left side of the bed. In some cases, some owner puts the home endstops at max position and these needs to be changed if max position are used.
`#define min_software_endstops true` ```cpp
#define min_software_endstops true
`#define max_software_endstops true` #define max_software_endstops true
```
These are one of the safety features that prevents manual movement exceeding the below specified value. The head can only move within the specified value below. These are one of the safety features that prevents manual movement exceeding the below specified value. The head can only move within the specified value below.
`#define X_MIN_POS 0` ```cpp
#define X_MIN_POS 0
`#define Y_MIN_POS 0` #define Y_MIN_POS 0
#define Z_MIN_POS 0
`#define Z_MIN_POS 0` #define X_MAX_POS 200
#define Y_MAX_POS 200
`#define X_MAX_POS 200` #define Z_MAX_POS 170
```
`#define Y_MAX_POS 200`
`#define Z_MAX_POS 170`
Usually the `MIN_POS` are left at 0 value and `MAX_POS` depends on your maximum travel. Setting this too high would risk the printer's carriage crashing to each ends. This needs to be set in conjunctin with home offset eeprom variable to work properly. If you don't want to set using eeprom, you can fiddle with `MIN_POS` value above as a substitute to eeprom's Home Offset. Usually the `MIN_POS` are left at 0 value and `MAX_POS` depends on your maximum travel. Setting this too high would risk the printer's carriage crashing to each ends. This needs to be set in conjunctin with home offset eeprom variable to work properly. If you don't want to set using eeprom, you can fiddle with `MIN_POS` value above as a substitute to eeprom's Home Offset.
*** ***
`//#define FILAMENT_RUNOUT_SENSOR ` ```cpp
//#define FILAMENT_RUNOUT_SENSOR
```
This one is optional yet cool feature to have. An extra endstop switch is required to detect if the filament is present or not and the switch usually in normally closed/open state when the filament is present. If filament ran out, M600 command will be issued immediately. This one is optional yet cool feature to have. An extra endstop switch is required to detect if the filament is present or not and the switch usually in normally closed/open state when the filament is present. If filament ran out, M600 command will be issued immediately.
*** ***
##Bed Leveling ##Bed Leveling
`//#define MESH_BED_LEVELING` ```cpp
//#define MESH_BED_LEVELING
```
Bed elevation are not equal and the bed shape might be a bow shaped in the middle when it is hot nor manual bed calibration works perfect on all 4 point during initial setup. This one is slightly more advanced technique of bed leveling process where each point will have their respective elevation values Bed elevation are not equal and the bed shape might be a bow shaped in the middle when it is hot nor manual bed calibration works perfect on all 4 point during initial setup. This one is slightly more advanced technique of bed leveling process where each point will have their respective elevation values
Enable `//#define MANUAL_BED_LEVELING` to access mesh bed leveling option from lcd panel. Enable `//#define MANUAL_BED_LEVELING` to access mesh bed leveling option from lcd panel.
*** ***
`#define AUTO_BED_LEVELING_FEATURE` ```cpp
#define AUTO_BED_LEVELING_FEATURE
```
If you want to use auto bed leveling feature, enable this. This works almost like mesh bed leveling except it will be done automatically. The command to do bed leveling squence is G29 after G28 has been issued. If you want to use auto bed leveling feature, enable this. This works almost like mesh bed leveling except it will be done automatically. The command to do bed leveling squence is G29 after G28 has been issued.
`#define AUTO_BED_LEVELING_GRID` ```cpp
#define AUTO_BED_LEVELING_GRID
```
whether or not you want to use grid probing matrix or 3-point probing method. whether or not you want to use grid probing matrix or 3-point probing method.
`#define LEFT_PROBE_BED_POSITION 15` ```cpp
#define LEFT_PROBE_BED_POSITION 15
`#define RIGHT_PROBE_BED_POSITION 145` #define RIGHT_PROBE_BED_POSITION 145
#define FRONT_PROBE_BED_POSITION 20
`#define FRONT_PROBE_BED_POSITION 20` #define BACK_PROBE_BED_POSITION 150
```
`#define BACK_PROBE_BED_POSITION 150`
These specifies min and max position for grid matrix on your bed. These specifies min and max position for grid matrix on your bed.
`#define AUTO_BED_LEVELING_GRID_POINTS 3` ```cpp
#define AUTO_BED_LEVELING_GRID_POINTS 3
```
This option will tell marlin what is the probing resolution would be, 2 and 3 are often used. These value will be squared, E.g using 2 will probe 4 points, using 4 will probe 16 points. This option will tell marlin what is the probing resolution would be, 2 and 3 are often used. These value will be squared, E.g using 2 will probe 4 points, using 4 will probe 16 points.
`#define ABL_PROBE_PT_1_X 15` ```cpp
#define ABL_PROBE_PT_1_X 15
`#define ABL_PROBE_PT_1_Y 180` #define ABL_PROBE_PT_1_Y 180
#define ABL_PROBE_PT_2_X 15
`#define ABL_PROBE_PT_2_X 15` #define ABL_PROBE_PT_2_Y 20
#define ABL_PROBE_PT_3_X 170
`#define ABL_PROBE_PT_2_Y 20` #define ABL_PROBE_PT_3_Y 20
```
`#define ABL_PROBE_PT_3_X 170`
`#define ABL_PROBE_PT_3_Y 20`
These are the option for 3-point probing by specifying each one of their coordinates on XY plane These are the option for 3-point probing by specifying each one of their coordinates on XY plane
`#define X_PROBE_OFFSET_FROM_EXTRUDER -44 // X offset: -left [of the nozzle] +right` ```cpp
#define X_PROBE_OFFSET_FROM_EXTRUDER -44 // X offset: -left [of the nozzle] +right
`#define Y_PROBE_OFFSET_FROM_EXTRUDER -8 // Y offset: -front [of the nozzle] +behind` #define Y_PROBE_OFFSET_FROM_EXTRUDER -8 // Y offset: -front [of the nozzle] +behind
#define Z_PROBE_OFFSET_FROM_EXTRUDER -2.50 // Z offset: -below [the nozzle] (always negative!)`
`#define Z_PROBE_OFFSET_FROM_EXTRUDER -2.50 // Z offset: -below [the nozzle] (always negative!)` ```
This is the position of your probe from your nozzle. This is the position of your probe from your nozzle.
```cpp ```cpp
@ -296,7 +284,6 @@ This is the position of your probe from your nozzle.
#define Z_RAISE_BETWEEN_PROBINGS 5 // How much the Z axis will be raised when traveling from between next probing points. #define Z_RAISE_BETWEEN_PROBINGS 5 // How much the Z axis will be raised when traveling from between next probing points.
#define Z_RAISE_AFTER_PROBING 15 // How much the Z axis will be raised after the last probing point. #define Z_RAISE_AFTER_PROBING 15 // How much the Z axis will be raised after the last probing point.
``` ```
When the G29 command has been issued, z axis will move between these values. This too are important so that if your bed are not perpendicular, the probe will get triggered especially servo based probe that has switch, this is to avoid the lever from brushing against the bed When the G29 command has been issued, z axis will move between these values. This too are important so that if your bed are not perpendicular, the probe will get triggered especially servo based probe that has switch, this is to avoid the lever from brushing against the bed
```cpp ```cpp
@ -304,27 +291,32 @@ When the G29 command has been issued, z axis will move between these values. Thi
``` ```
This one is for custom script, each command are divided with `\n` (Newline) and executed after G29 are done This one is for custom script, each command are divided with `\n` (Newline) and executed after G29 are done
`#define FIX_MOUNTED_PROBE` ```cpp
#define FIX_MOUNTED_PROBE
```
This in theory are for proximity sensors. Since using proximity sensors are fixed probe (not retractable), this feature will ignore the z probe triggered state during printing or other than G28/G29 command so that you're able to bring the nozzle closer to the bed. This in theory are for proximity sensors. Since using proximity sensors are fixed probe (not retractable), this feature will ignore the z probe triggered state during printing or other than G28/G29 command so that you're able to bring the nozzle closer to the bed.
`#define Z_PROBE_SLED` ```cpp
#define Z_PROBE_SLED
```
This is almost the same like proximity sensors where there are another carriage that are meant for the sensor. The x carriage will move to the sled and latch itself to bring the sled for probing process, then when it is done the sled will be parked again. Default: Disabled This is almost the same like proximity sensors where there are another carriage that are meant for the sensor. The x carriage will move to the sled and latch itself to bring the sled for probing process, then when it is done the sled will be parked again. Default: Disabled
`#define Z_SAFE_HOMING` ```cpp
#define Z_SAFE_HOMING
```
This avoids the risk of z probe going out of the bed when homing all of the axis especially when it is the z axis's turn to home. This will bring the z axis probe into the middle of the bed then wil do the z homing to find z position. Disable this `#define Z_SAFE_HOMING` if you're using more tan 1 z axis sensor (probes and switch) and enable this`#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN` if you want to have your printer head to be parked outside of the printing area. These will work together where usign the G28 command will not going to use the z-probe while using the G29 will use the z-probe instead of the default z min switch. If `#define Z_SAFE_HOMING` is enabled, then the z min switch will never be triggered since the head will always move to the center of the bed area. This avoids the risk of z probe going out of the bed when homing all of the axis especially when it is the z axis's turn to home. This will bring the z axis probe into the middle of the bed then wil do the z homing to find z position. Disable this `#define Z_SAFE_HOMING` if you're using more tan 1 z axis sensor (probes and switch) and enable this`#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN` if you want to have your printer head to be parked outside of the printing area. These will work together where usign the G28 command will not going to use the z-probe while using the G29 will use the z-probe instead of the default z min switch. If `#define Z_SAFE_HOMING` is enabled, then the z min switch will never be triggered since the head will always move to the center of the bed area.
*** ***
##Movement ##Movement
`#define HOMING_FEEDRATE {50*45, 50*45, 4*45, 0}` ```cpp
#define HOMING_FEEDRATE {50*45, 50*45, 4*45, 0}
```
These are the homing speed when doing auto home and auto bed leveling. It is advisable not to use high value to achieve better accuracies. These are the homing speed when doing auto home and auto bed leveling. It is advisable not to use high value to achieve better accuracies.
`#define DEFAULT_AXIS_STEPS_PER_UNIT {78.74, 78.74, 2560, 95}` ```cpp
#define DEFAULT_AXIS_STEPS_PER_UNIT {78.74, 78.74, 2560, 95}
```
This is the most crucial setting for your settings. These will determine the printer head will move according to the specified distance/location or not. The value above (X, Y, Z, E) are the default value for (20 tooth gt2 pulley, M10 metric threaded rods, mk8 extruder style) and based on A4899 stepstick. This is the most crucial setting for your settings. These will determine the printer head will move according to the specified distance/location or not. The value above (X, Y, Z, E) are the default value for (20 tooth gt2 pulley, M10 metric threaded rods, mk8 extruder style) and based on A4899 stepstick.
Do note that if youre using DRV8825, these values had to be doubled; A4899 = 1/16 step, DRV8825 = 1/32 step Do note that if youre using DRV8825, these values had to be doubled; A4899 = 1/16 step, DRV8825 = 1/32 step
You should go to this site to calculate the steps You should go to this site to calculate the steps
@ -336,15 +328,17 @@ You should go to this site to calculate the steps
``` ```
These are the default acceleration when movement such as `G0 x20` without `F` are issued (acceleration/speed). Do not set these too high as there are mechanical constraints too that might make your stepper motor make a whining noise or skipping steps when it starts to move or between movements. These are the default acceleration when movement such as `G0 x20` without `F` are issued (acceleration/speed). Do not set these too high as there are mechanical constraints too that might make your stepper motor make a whining noise or skipping steps when it starts to move or between movements.
`#define DEFAULT_XYJERK 15.0 // (mm/sec)` ```cpp
#define DEFAULT_XYJERK 15.0 // (mm/sec)
```
Jerk works in conjunction with acceleration above. Both of acceleration and jerk will affect your print quality too especially cube and round shape. Jerk works in conjunction with acceleration above. Both of acceleration and jerk will affect your print quality too especially cube and round shape.
*** ***
##Additional Features ##Additional Features
`#define EEPROM_SETTINGS` ```cpp
#define EEPROM_SETTINGS
```
This option are recommended to turn this on (enable). This option enables the EEPROM on your board and you can just change several settings without the need of re-uploading the firmware to your board again such as modifying the z-probe offset value (I often did this). Some of these settings are directly accissble from the lcd panel>control section This option are recommended to turn this on (enable). This option enables the EEPROM on your board and you can just change several settings without the need of re-uploading the firmware to your board again such as modifying the z-probe offset value (I often did this). Some of these settings are directly accissble from the lcd panel>control section
```cpp ```cpp
@ -369,11 +363,13 @@ These are preset when you want to preheat your hotend/bed before printing withou
*** ***
##LCD and SD ##LCD and SD
`#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en)` ```cpp
#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en)
```
This will translate marlin into your preferred language, check language.h for more info This will translate marlin into your preferred language, check language.h for more info
`#define SDSUPPORT // Enable SD Card Support in Hardware Console` ```cpp
#define SDSUPPORT // Enable SD Card Support in Hardware Console
```
If you're using SD printing either from lcd or sdcard module plugged onto your board directly, enable this. Else SD card/printing will not be supported If you're using SD printing either from lcd or sdcard module plugged onto your board directly, enable this. Else SD card/printing will not be supported