From 8e287c27629dbf399764d0c0eecb3878e89c1c7f Mon Sep 17 00:00:00 2001 From: DocDawning Date: Sun, 1 Feb 2015 17:06:38 -0700 Subject: [PATCH 1/4] Normalized section headers, added some headers, added help URLs for newbies --- Marlin/Configuration.h | 46 +++++++++++++++++++++++++++++++++--------- 1 file changed, 36 insertions(+), 10 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index f5c218dc7..f048e004b 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -3,6 +3,20 @@ #include "boards.h" +//=========================================================================== +//============================= Getting Started ============================= +//=========================================================================== +/* +Here are some standard links for getting your machine calibrated: + * http://reprap.org/wiki/Calibration + * http://youtu.be/wAL9d7FgInk + * http://calculator.josefprusa.cz + * http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide + * http://www.thingiverse.com/thing:5573 + * https://sites.google.com/site/repraplogphase/calibration-of-your-reprap + * http://www.thingiverse.com/thing:298812 +*/ + // This configuration file contains the basic settings. // Advanced settings can be found in Configuration_adv.h // BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration @@ -67,7 +81,7 @@ // #define PS_DEFAULT_OFF //=========================================================================== -//=============================Thermal Settings ============================ +//============================= Thermal Settings ============================ //=========================================================================== // //--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table @@ -143,7 +157,11 @@ //#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=I^2/R //#define BED_WATTS (12.0*12.0/1.1) // P=I^2/R -// PID settings: +//=========================================================================== +//============================= PID Settings ================================ +//=========================================================================== +// PID Tuning Guide here: http://reprap.org/wiki/PID_Tuning + // Comment the following line to disable PID and enable bang-bang. #define PIDTEMP #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current @@ -177,7 +195,9 @@ // #define DEFAULT_Kd 440 #endif // PIDTEMP -// Bed Temperature Control +//=========================================================================== +//============================= PID > Bed Temperature Control =============== +//=========================================================================== // Select PID or bang-bang with PIDTEMPBED. If bang-bang, BED_LIMIT_SWITCHING will enable hysteresis // // Uncomment this to enable PID on the bed. It uses the same frequency PWM as the extruder. @@ -214,7 +234,6 @@ #endif // PIDTEMPBED - //this prevents dangerous Extruder moves, i.e. if the temperature is under the limit //can be software-disabled for whatever purposes by #define PREVENT_DANGEROUS_EXTRUDE @@ -224,7 +243,10 @@ #define EXTRUDE_MINTEMP 170 #define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances. -/*================== Thermal Runaway Protection ============================== +//=========================================================================== +//============================= Thermal Runaway Protection ================== +//=========================================================================== +/* This is a feature to protect your printer from burn up in flames if it has a thermistor coming off place (this happened to a friend of mine recently and motivated me writing this feature). @@ -259,11 +281,10 @@ your extruder heater takes 2 minutes to hit the target on heating. // Parameters for the bed heater //#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds //#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius -//=========================================================================== //=========================================================================== -//=============================Mechanical Settings=========================== +//============================= Mechanical Settings ========================= //=========================================================================== // Uncomment the following line to enable CoreXY kinematics @@ -346,7 +367,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS) #define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS) #define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS) + + +//=========================================================================== //============================= Bed Auto Leveling =========================== +//=========================================================================== //#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line) #define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled. @@ -499,9 +524,10 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define DEFAULT_ZJERK 0.4 // (mm/sec) #define DEFAULT_EJERK 5.0 // (mm/sec) -//=========================================================================== -//=============================Additional Features=========================== -//=========================================================================== + +//============================================================================= +//============================= Additional Features =========================== +//============================================================================= // Custom M code points #define CUSTOM_M_CODES From 055c4beaf992a16b15d18e74d628a50ddb6d05b1 Mon Sep 17 00:00:00 2001 From: DocDawning Date: Sun, 1 Feb 2015 17:06:38 -0700 Subject: [PATCH 2/4] Normalized section headers, added some headers, added help URLs for newbies --- Marlin/Configuration.h | 48 ++++++++++++++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 11 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index f5c218dc7..552fd7133 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -3,6 +3,20 @@ #include "boards.h" +//=========================================================================== +//============================= Getting Started ============================= +//=========================================================================== +/* +Here are some standard links for getting your machine calibrated: + * http://reprap.org/wiki/Calibration + * http://youtu.be/wAL9d7FgInk + * http://calculator.josefprusa.cz + * http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide + * http://www.thingiverse.com/thing:5573 + * https://sites.google.com/site/repraplogphase/calibration-of-your-reprap + * http://www.thingiverse.com/thing:298812 +*/ + // This configuration file contains the basic settings. // Advanced settings can be found in Configuration_adv.h // BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration @@ -67,7 +81,7 @@ // #define PS_DEFAULT_OFF //=========================================================================== -//=============================Thermal Settings ============================ +//============================= Thermal Settings ============================ //=========================================================================== // //--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table @@ -143,7 +157,11 @@ //#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=I^2/R //#define BED_WATTS (12.0*12.0/1.1) // P=I^2/R -// PID settings: +//=========================================================================== +//============================= PID Settings ================================ +//=========================================================================== +// PID Tuning Guide here: http://reprap.org/wiki/PID_Tuning + // Comment the following line to disable PID and enable bang-bang. #define PIDTEMP #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current @@ -177,7 +195,9 @@ // #define DEFAULT_Kd 440 #endif // PIDTEMP -// Bed Temperature Control +//=========================================================================== +//============================= PID > Bed Temperature Control =============== +//=========================================================================== // Select PID or bang-bang with PIDTEMPBED. If bang-bang, BED_LIMIT_SWITCHING will enable hysteresis // // Uncomment this to enable PID on the bed. It uses the same frequency PWM as the extruder. @@ -214,7 +234,6 @@ #endif // PIDTEMPBED - //this prevents dangerous Extruder moves, i.e. if the temperature is under the limit //can be software-disabled for whatever purposes by #define PREVENT_DANGEROUS_EXTRUDE @@ -224,7 +243,10 @@ #define EXTRUDE_MINTEMP 170 #define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances. -/*================== Thermal Runaway Protection ============================== +//=========================================================================== +//============================= Thermal Runaway Protection ================== +//=========================================================================== +/* This is a feature to protect your printer from burn up in flames if it has a thermistor coming off place (this happened to a friend of mine recently and motivated me writing this feature). @@ -259,11 +281,10 @@ your extruder heater takes 2 minutes to hit the target on heating. // Parameters for the bed heater //#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds //#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius -//=========================================================================== //=========================================================================== -//=============================Mechanical Settings=========================== +//============================= Mechanical Settings ========================= //=========================================================================== // Uncomment the following line to enable CoreXY kinematics @@ -335,7 +356,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS. #define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below. -// Travel limits after homing +// Travel limits after homing (units are in mm) #define X_MAX_POS 205 #define X_MIN_POS 0 #define Y_MAX_POS 205 @@ -346,7 +367,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS) #define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS) #define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS) + + +//=========================================================================== //============================= Bed Auto Leveling =========================== +//=========================================================================== //#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line) #define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled. @@ -499,9 +524,10 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define DEFAULT_ZJERK 0.4 // (mm/sec) #define DEFAULT_EJERK 5.0 // (mm/sec) -//=========================================================================== -//=============================Additional Features=========================== -//=========================================================================== + +//============================================================================= +//============================= Additional Features =========================== +//============================================================================= // Custom M code points #define CUSTOM_M_CODES From d109cd940b1f0bc5a4e2c8ac25f7ce424db14a39 Mon Sep 17 00:00:00 2001 From: DocDawning Date: Mon, 2 Feb 2015 14:11:21 -0700 Subject: [PATCH 3/4] Normalized all configuration files to include my new section headers and the like. --- .../Hephestos/Configuration.h | 44 ++++++++++++---- .../K8200/Configuration.h | 47 +++++++++++++---- .../SCARA/Configuration.h | 47 ++++++++++++++--- .../WITBOX/Configuration.h | 49 +++++++++++++---- .../delta/Configuration.h | 50 ++++++++++++++---- .../makibox/Configuration.h | 52 +++++++++++++++---- .../tvrrug/Round2/Configuration.h | 51 ++++++++++++++---- 7 files changed, 278 insertions(+), 62 deletions(-) diff --git a/Marlin/example_configurations/Hephestos/Configuration.h b/Marlin/example_configurations/Hephestos/Configuration.h index 4694afd45..7c89a4152 100644 --- a/Marlin/example_configurations/Hephestos/Configuration.h +++ b/Marlin/example_configurations/Hephestos/Configuration.h @@ -3,6 +3,20 @@ #include "boards.h" +//=========================================================================== +//============================= Getting Started ============================= +//=========================================================================== +/* +Here are some standard links for getting your machine calibrated: + * http://reprap.org/wiki/Calibration + * http://youtu.be/wAL9d7FgInk + * http://calculator.josefprusa.cz + * http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide + * http://www.thingiverse.com/thing:5573 + * https://sites.google.com/site/repraplogphase/calibration-of-your-reprap + * http://www.thingiverse.com/thing:298812 +*/ + // This configuration file contains the basic settings. // Advanced settings can be found in Configuration_adv.h // BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration @@ -67,7 +81,7 @@ // #define PS_DEFAULT_OFF //=========================================================================== -//=============================Thermal Settings ============================ +//============================= Thermal Settings ============================ //=========================================================================== // //--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table @@ -143,7 +157,11 @@ //#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=I^2/R //#define BED_WATTS (12.0*12.0/1.1) // P=I^2/R -// PID settings: +//=========================================================================== +//============================= PID Settings ================================ +//=========================================================================== +// PID Tuning Guide here: http://reprap.org/wiki/PID_Tuning + // Comment the following line to disable PID and enable bang-bang. #define PIDTEMP #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current @@ -183,7 +201,9 @@ #endif // PIDTEMP -// Bed Temperature Control +//=========================================================================== +//============================= PID > Bed Temperature Control =============== +//=========================================================================== // Select PID or bang-bang with PIDTEMPBED. If bang-bang, BED_LIMIT_SWITCHING will enable hysteresis // // Uncomment this to enable PID on the bed. It uses the same frequency PWM as the extruder. @@ -220,7 +240,6 @@ #endif // PIDTEMPBED - //this prevents dangerous Extruder moves, i.e. if the temperature is under the limit //can be software-disabled for whatever purposes by #define PREVENT_DANGEROUS_EXTRUDE @@ -230,7 +249,10 @@ #define EXTRUDE_MINTEMP 170 #define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances. -/*================== Thermal Runaway Protection ============================== +//=========================================================================== +//============================= Thermal Runaway Protection ================== +//=========================================================================== +/* This is a feature to protect your printer from burn up in flames if it has a thermistor coming off place (this happened to a friend of mine recently and motivated me writing this feature). @@ -265,11 +287,10 @@ your extruder heater takes 2 minutes to hit the target on heating. // Parameters for the bed heater //#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds //#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius -//=========================================================================== //=========================================================================== -//=============================Mechanical Settings=========================== +//============================= Mechanical Settings ========================= //=========================================================================== // Uncomment the following line to enable CoreXY kinematics @@ -341,7 +362,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS. #define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below. -// Travel limits after homing +// Travel limits after homing (units in mm) #define X_MAX_POS 215 #define X_MIN_POS 0 #define Y_MAX_POS 210 @@ -352,7 +373,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS) #define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS) #define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS) + + +//=========================================================================== //============================= Bed Auto Leveling =========================== +//=========================================================================== //#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line) #define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled. @@ -505,8 +530,9 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define DEFAULT_ZJERK 0.4 // (mm/sec) #define DEFAULT_EJERK 5.0 // (mm/sec) + //=========================================================================== -//=============================Additional Features=========================== +//============================= Additional Features ========================= //=========================================================================== // Custom M code points diff --git a/Marlin/example_configurations/K8200/Configuration.h b/Marlin/example_configurations/K8200/Configuration.h index 888835e7b..99ad1b8df 100644 --- a/Marlin/example_configurations/K8200/Configuration.h +++ b/Marlin/example_configurations/K8200/Configuration.h @@ -3,6 +3,21 @@ #include "boards.h" + +//=========================================================================== +//============================= Getting Started ============================= +//=========================================================================== +/* +Here are some standard links for getting your machine calibrated: + * http://reprap.org/wiki/Calibration + * http://youtu.be/wAL9d7FgInk + * http://calculator.josefprusa.cz + * http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide + * http://www.thingiverse.com/thing:5573 + * https://sites.google.com/site/repraplogphase/calibration-of-your-reprap + * http://www.thingiverse.com/thing:298812 +*/ + // This configuration file contains the basic settings. // Advanced settings can be found in Configuration_adv.h // BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration @@ -66,8 +81,9 @@ // Define this to have the electronics keep the power supply off on startup. If you don't know what this is leave it. // #define PS_DEFAULT_OFF + //=========================================================================== -//=============================Thermal Settings ============================ +//============================= Thermal Settings ============================ //=========================================================================== // //--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table @@ -143,7 +159,11 @@ //#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=I^2/R //#define BED_WATTS (12.0*12.0/1.1) // P=I^2/R -// PID settings: +//=========================================================================== +//============================= PID Settings ================================ +//=========================================================================== +// PID Tuning Guide here: http://reprap.org/wiki/PID_Tuning + // Comment the following line to disable PID and enable bang-bang. #define PIDTEMP #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current @@ -182,7 +202,9 @@ #define DEFAULT_Kd 93.51 #endif // PIDTEMP -// Bed Temperature Control +//=========================================================================== +//============================= PID > Bed Temperature Control =============== +//=========================================================================== // Select PID or bang-bang with PIDTEMPBED. If bang-bang, BED_LIMIT_SWITCHING will enable hysteresis // // Uncomment this to enable PID on the bed. It uses the same frequency PWM as the extruder. @@ -225,7 +247,6 @@ #endif // PIDTEMPBED - //this prevents dangerous Extruder moves, i.e. if the temperature is under the limit //can be software-disabled for whatever purposes by #define PREVENT_DANGEROUS_EXTRUDE @@ -235,7 +256,11 @@ #define EXTRUDE_MINTEMP 170 #define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances. -/*================== Thermal Runaway Protection ============================== + +//=========================================================================== +//============================= Thermal Runaway Protection ================== +//=========================================================================== +/* This is a feature to protect your printer from burn up in flames if it has a thermistor coming off place (this happened to a friend of mine recently and motivated me writing this feature). @@ -270,11 +295,10 @@ your extruder heater takes 2 minutes to hit the target on heating. // Parameters for the bed heater //#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds //#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius -//=========================================================================== //=========================================================================== -//=============================Mechanical Settings=========================== +//============================= Mechanical Settings ========================= //=========================================================================== // Uncomment the following line to enable CoreXY kinematics @@ -346,7 +370,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS. #define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below. -// Travel limits after homing +// Travel limits after homing (units are in mm) #define X_MAX_POS 200 #define X_MIN_POS 0 #define Y_MAX_POS 200 @@ -357,7 +381,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS) #define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS) #define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS) + + +//=========================================================================== //============================= Bed Auto Leveling =========================== +//=========================================================================== //#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line) #define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled. @@ -510,8 +538,9 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define DEFAULT_ZJERK 0.4 // (mm/sec) #define DEFAULT_EJERK 5.0 // (mm/sec) + //=========================================================================== -//=============================Additional Features=========================== +//============================= Additional Features ========================= //=========================================================================== // Custom M code points diff --git a/Marlin/example_configurations/SCARA/Configuration.h b/Marlin/example_configurations/SCARA/Configuration.h index 7d52562c4..ea2495ddf 100644 --- a/Marlin/example_configurations/SCARA/Configuration.h +++ b/Marlin/example_configurations/SCARA/Configuration.h @@ -3,6 +3,22 @@ #include "boards.h" + +//=========================================================================== +//============================= Getting Started ============================= +//=========================================================================== +/* +Here are some standard links for getting your machine calibrated: + * http://reprap.org/wiki/Calibration + * http://youtu.be/wAL9d7FgInk + * http://calculator.josefprusa.cz + * http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide + * http://www.thingiverse.com/thing:5573 + * https://sites.google.com/site/repraplogphase/calibration-of-your-reprap + * http://www.thingiverse.com/thing:298812 +*/ + + // This configuration file contains the basic settings. // Advanced settings can be found in Configuration_adv.h // BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration @@ -86,7 +102,7 @@ // #define PS_DEFAULT_OFF //=========================================================================== -//=============================Thermal Settings ============================ +//============================= Thermal Settings ============================ //=========================================================================== // //--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table @@ -161,7 +177,11 @@ #define EXTRUDER_WATTS (2*2/5.9) // P=I^2/R #define BED_WATTS (5.45*5.45/2.2) // P=I^2/R -// PID settings: +//=========================================================================== +//============================= PID Settings ================================ +//=========================================================================== +// PID Tuning Guide here: http://reprap.org/wiki/PID_Tuning + // Comment the following line to disable PID and enable bang-bang. #define PIDTEMP #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current @@ -202,7 +222,9 @@ // #define DEFAULT_Kd 440 #endif // PIDTEMP -// Bed Temperature Control +//=========================================================================== +//============================= PID > Bed Temperature Control =============== +//=========================================================================== // Select PID or bang-bang with PIDTEMPBED. If bang-bang, BED_LIMIT_SWITCHING will enable hysteresis // // Uncomment this to enable PID on the bed. It uses the same frequency PWM as the extruder. @@ -255,7 +277,11 @@ #define EXTRUDE_MINTEMP 150 #define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances. -/*================== Thermal Runaway Protection ============================== + +//=========================================================================== +//============================= Thermal Runaway Protection ================== +//=========================================================================== +/* This is a feature to protect your printer from burn up in flames if it has a thermistor coming off place (this happened to a friend of mine recently and motivated me writing this feature). @@ -290,10 +316,10 @@ your extruder heater takes 2 minutes to hit the target on heating. // Parameters for the bed heater //#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds //#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius -//=========================================================================== + //=========================================================================== -//=============================Mechanical Settings=========================== +//============================ Mechanical Settings ========================== //=========================================================================== // Uncomment the following line to enable CoreXY kinematics @@ -365,7 +391,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS. #define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below. -// Travel limits after homing +// Travel limits after homing (units are in mm) #define X_MAX_POS 200 #define X_MIN_POS 0 #define Y_MAX_POS 200 @@ -376,7 +402,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS) #define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS) #define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS) + + +//=========================================================================== //============================= Bed Auto Leveling =========================== +//=========================================================================== //#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line) @@ -503,8 +533,9 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define DEFAULT_ZJERK 0.4 // (mm/sec) #define DEFAULT_EJERK 3 // (mm/sec) + //=========================================================================== -//=============================Additional Features=========================== +//============================= Additional Features ========================= //=========================================================================== // Custom M code points diff --git a/Marlin/example_configurations/WITBOX/Configuration.h b/Marlin/example_configurations/WITBOX/Configuration.h index dea6c72a0..6a13e33c3 100644 --- a/Marlin/example_configurations/WITBOX/Configuration.h +++ b/Marlin/example_configurations/WITBOX/Configuration.h @@ -3,6 +3,22 @@ #include "boards.h" + +//=========================================================================== +//============================= Getting Started ============================= +//=========================================================================== +/* +Here are some standard links for getting your machine calibrated: + * http://reprap.org/wiki/Calibration + * http://youtu.be/wAL9d7FgInk + * http://calculator.josefprusa.cz + * http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide + * http://www.thingiverse.com/thing:5573 + * https://sites.google.com/site/repraplogphase/calibration-of-your-reprap + * http://www.thingiverse.com/thing:298812 +*/ + + // This configuration file contains the basic settings. // Advanced settings can be found in Configuration_adv.h // BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration @@ -66,8 +82,9 @@ // Define this to have the electronics keep the power supply off on startup. If you don't know what this is leave it. // #define PS_DEFAULT_OFF + //=========================================================================== -//=============================Thermal Settings ============================ +//============================= Thermal Settings ============================ //=========================================================================== // //--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table @@ -143,7 +160,12 @@ //#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=I^2/R //#define BED_WATTS (12.0*12.0/1.1) // P=I^2/R -// PID settings: + +//=========================================================================== +//============================= PID Settings ================================ +//=========================================================================== +// PID Tuning Guide here: http://reprap.org/wiki/PID_Tuning + // Comment the following line to disable PID and enable bang-bang. #define PIDTEMP #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current @@ -182,7 +204,9 @@ #define DEFAULT_Kd 114 #endif // PIDTEMP -// Bed Temperature Control +//=========================================================================== +//============================= PID > Bed Temperature Control =============== +//=========================================================================== // Select PID or bang-bang with PIDTEMPBED. If bang-bang, BED_LIMIT_SWITCHING will enable hysteresis // // Uncomment this to enable PID on the bed. It uses the same frequency PWM as the extruder. @@ -219,7 +243,6 @@ #endif // PIDTEMPBED - //this prevents dangerous Extruder moves, i.e. if the temperature is under the limit //can be software-disabled for whatever purposes by #define PREVENT_DANGEROUS_EXTRUDE @@ -229,7 +252,11 @@ #define EXTRUDE_MINTEMP 170 #define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances. -/*================== Thermal Runaway Protection ============================== + +//=========================================================================== +//============================= Thermal Runaway Protection ================== +//=========================================================================== +/* This is a feature to protect your printer from burn up in flames if it has a thermistor coming off place (this happened to a friend of mine recently and motivated me writing this feature). @@ -264,11 +291,10 @@ your extruder heater takes 2 minutes to hit the target on heating. // Parameters for the bed heater //#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds //#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius -//=========================================================================== //=========================================================================== -//=============================Mechanical Settings=========================== +//============================= Mechanical Settings ========================= //=========================================================================== // Uncomment the following line to enable CoreXY kinematics @@ -340,7 +366,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS. #define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below. -// Travel limits after homing +// Travel limits after homing (units are in mm) #define X_MAX_POS 297 #define X_MIN_POS 0 #define Y_MAX_POS 210 @@ -351,7 +377,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS) #define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS) #define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS) + + +//=========================================================================== //============================= Bed Auto Leveling =========================== +//=========================================================================== //#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line) #define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled. @@ -504,8 +534,9 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define DEFAULT_ZJERK 0.4 // (mm/sec) #define DEFAULT_EJERK 5.0 // (mm/sec) + //=========================================================================== -//=============================Additional Features=========================== +//============================ Additional Features ========================== //=========================================================================== // Custom M code points diff --git a/Marlin/example_configurations/delta/Configuration.h b/Marlin/example_configurations/delta/Configuration.h index 347c34609..e8d620e2a 100644 --- a/Marlin/example_configurations/delta/Configuration.h +++ b/Marlin/example_configurations/delta/Configuration.h @@ -3,10 +3,26 @@ #include "boards.h" + +//=========================================================================== +//============================= Getting Started ============================= +//=========================================================================== +/* +Here are some standard links for getting your machine calibrated: + * http://reprap.org/wiki/Calibration + * http://youtu.be/wAL9d7FgInk + * http://calculator.josefprusa.cz + * http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide + * http://www.thingiverse.com/thing:5573 + * https://sites.google.com/site/repraplogphase/calibration-of-your-reprap + * http://www.thingiverse.com/thing:298812 +*/ + // This configuration file contains the basic settings. // Advanced settings can be found in Configuration_adv.h // BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration + //=========================================================================== //============================= DELTA Printer =============================== //=========================================================================== @@ -59,6 +75,7 @@ // Define this to have the electronics keep the power supply off on startup. If you don't know what this is leave it. // #define PS_DEFAULT_OFF + //=========================================================================== //============================== Delta Settings ============================= //=========================================================================== @@ -87,8 +104,9 @@ // Effective horizontal distance bridged by diagonal push rods. #define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET-DELTA_EFFECTOR_OFFSET-DELTA_CARRIAGE_OFFSET) + //=========================================================================== -//=============================Thermal Settings ============================ +//============================= Thermal Settings ============================ //=========================================================================== // //--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table @@ -164,7 +182,12 @@ //#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=I^2/R //#define BED_WATTS (12.0*12.0/1.1) // P=I^2/R -// PID settings: + +//=========================================================================== +//============================= PID Settings ================================ +//=========================================================================== +// PID Tuning Guide here: http://reprap.org/wiki/PID_Tuning + // Comment the following line to disable PID and enable bang-bang. #define PIDTEMP #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current @@ -195,7 +218,10 @@ // #define DEFAULT_Kd 440 #endif // PIDTEMP -// Bed Temperature Control + +//=========================================================================== +//============================= PID > Bed Temperature Control =============== +//=========================================================================== // Select PID or bang-bang with PIDTEMPBED. If bang-bang, BED_LIMIT_SWITCHING will enable hysteresis // // Uncomment this to enable PID on the bed. It uses the same frequency PWM as the extruder. @@ -232,7 +258,6 @@ #endif // PIDTEMPBED - //this prevents dangerous Extruder moves, i.e. if the temperature is under the limit //can be software-disabled for whatever purposes by #define PREVENT_DANGEROUS_EXTRUDE @@ -242,7 +267,11 @@ #define EXTRUDE_MINTEMP 170 #define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances. -/*================== Thermal Runaway Protection ============================== + +//=========================================================================== +//============================= Thermal Runaway Protection ================== +//=========================================================================== +/* This is a feature to protect your printer from burn up in flames if it has a thermistor coming off place (this happened to a friend of mine recently and motivated me writing this feature). @@ -277,11 +306,10 @@ your extruder heater takes 2 minutes to hit the target on heating. // Parameters for the bed heater //#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds //#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius -//=========================================================================== //=========================================================================== -//=============================Mechanical Settings=========================== +//============================= Mechanical Settings ========================= //=========================================================================== // coarse Endstop Settings @@ -352,7 +380,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS. #define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below. -// Travel limits after homing +// Travel limits after homing (units are in mm) #define X_MAX_POS 90 #define X_MIN_POS -90 #define Y_MAX_POS 90 @@ -363,7 +391,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS) #define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS) #define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS) + +//=========================================================================== //============================= Bed Auto Leveling =========================== +//=========================================================================== + //Bed Auto Leveling is still not compatible with Delta Kinematics @@ -408,7 +440,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define DEFAULT_EJERK 5.0 // (mm/sec) //=========================================================================== -//=============================Additional Features=========================== +//============================= Additional Features ========================= //=========================================================================== // Custom M code points diff --git a/Marlin/example_configurations/makibox/Configuration.h b/Marlin/example_configurations/makibox/Configuration.h index 0781ed60a..827e67ced 100644 --- a/Marlin/example_configurations/makibox/Configuration.h +++ b/Marlin/example_configurations/makibox/Configuration.h @@ -3,10 +3,27 @@ #include "boards.h" + +//=========================================================================== +//============================= Getting Started ============================= +//=========================================================================== +/* +Here are some standard links for getting your machine calibrated: + * http://reprap.org/wiki/Calibration + * http://youtu.be/wAL9d7FgInk + * http://calculator.josefprusa.cz + * http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide + * http://www.thingiverse.com/thing:5573 + * https://sites.google.com/site/repraplogphase/calibration-of-your-reprap + * http://www.thingiverse.com/thing:298812 +*/ + + // This configuration file contains the basic settings. // Advanced settings can be found in Configuration_adv.h // BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration + //=========================================================================== //============================= DELTA Printer =============================== //=========================================================================== @@ -14,6 +31,7 @@ // example_configurations/delta directory. // + //=========================================================================== //============================= SCARA Printer =============================== //=========================================================================== @@ -66,8 +84,9 @@ // Define this to have the electronics keep the power supply off on startup. If you don't know what this is leave it. // #define PS_DEFAULT_OFF + //=========================================================================== -//=============================Thermal Settings ============================ +//============================= Thermal Settings ============================ //=========================================================================== // //--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table @@ -143,7 +162,12 @@ //#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=I^2/R //#define BED_WATTS (12.0*12.0/1.1) // P=I^2/R -// PID settings: + +//=========================================================================== +//============================= PID Settings ================================ +//=========================================================================== +// PID Tuning Guide here: http://reprap.org/wiki/PID_Tuning + // Comment the following line to disable PID and enable bang-bang. #define PIDTEMP #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current @@ -174,7 +198,10 @@ // #define DEFAULT_Kd 440 #endif // PIDTEMP -// Bed Temperature Control + +//=========================================================================== +//============================= PID > Bed Temperature Control =============== +//=========================================================================== // Select PID or bang-bang with PIDTEMPBED. If bang-bang, BED_LIMIT_SWITCHING will enable hysteresis // // Uncomment this to enable PID on the bed. It uses the same frequency PWM as the extruder. @@ -214,7 +241,6 @@ #endif // PIDTEMPBED - //this prevents dangerous Extruder moves, i.e. if the temperature is under the limit //can be software-disabled for whatever purposes by #define PREVENT_DANGEROUS_EXTRUDE @@ -224,7 +250,11 @@ #define EXTRUDE_MINTEMP 170 #define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances. -/*================== Thermal Runaway Protection ============================== + +//=========================================================================== +//============================= Thermal Runaway Protection ================== +//=========================================================================== +/* This is a feature to protect your printer from burn up in flames if it has a thermistor coming off place (this happened to a friend of mine recently and motivated me writing this feature). @@ -259,11 +289,10 @@ your extruder heater takes 2 minutes to hit the target on heating. // Parameters for the bed heater //#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds //#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius -//=========================================================================== //=========================================================================== -//=============================Mechanical Settings=========================== +//============================ Mechanical Settings ========================== //=========================================================================== // Uncomment the following line to enable CoreXY kinematics @@ -335,7 +364,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS. #define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below. -// Travel limits after homing +// Travel limits after homing (units are in mm) #define X_MAX_POS 110 #define X_MIN_POS 0 #define Y_MAX_POS 150 @@ -346,7 +375,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS) #define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS) #define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS) + + +//=========================================================================== //============================= Bed Auto Leveling =========================== +//=========================================================================== //#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line) #define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled. @@ -475,8 +508,9 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define DEFAULT_ZJERK 0.4 // (mm/sec) #define DEFAULT_EJERK 5.0 // (mm/sec) + //=========================================================================== -//=============================Additional Features=========================== +//============================ Additional Features ========================== //=========================================================================== // Custom M code points diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration.h b/Marlin/example_configurations/tvrrug/Round2/Configuration.h index b362753e8..47a6c3e05 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration.h @@ -3,10 +3,26 @@ #include "boards.h" +//=========================================================================== +//============================= Getting Started ============================= +//=========================================================================== +/* +Here are some standard links for getting your machine calibrated: + * http://reprap.org/wiki/Calibration + * http://youtu.be/wAL9d7FgInk + * http://calculator.josefprusa.cz + * http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide + * http://www.thingiverse.com/thing:5573 + * https://sites.google.com/site/repraplogphase/calibration-of-your-reprap + * http://www.thingiverse.com/thing:298812 +*/ + + // This configuration file contains the basic settings. // Advanced settings can be found in Configuration_adv.h // BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration + //=========================================================================== //============================= DELTA Printer =============================== //=========================================================================== @@ -14,6 +30,7 @@ // example_configurations/delta directory. // + //=========================================================================== //============================= SCARA Printer =============================== //=========================================================================== @@ -66,8 +83,9 @@ // Define this to have the electronics keep the power supply off on startup. If you don't know what this is leave it. // #define PS_DEFAULT_OFF + //=========================================================================== -//=============================Thermal Settings ============================ +//============================= Thermal Settings ============================ //=========================================================================== // //--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table @@ -145,7 +163,12 @@ //#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=I^2/R //#define BED_WATTS (12.0*12.0/1.1) // P=I^2/R -// PID settings: + +//=========================================================================== +//============================= PID Settings ================================ +//=========================================================================== +// PID Tuning Guide here: http://reprap.org/wiki/PID_Tuning + // Comment the following line to disable PID and enable bang-bang. #define PIDTEMP #define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current @@ -181,7 +204,10 @@ // #define DEFAULT_Kd 440 #endif // PIDTEMP -// Bed Temperature Control + +//=========================================================================== +//============================= PID > Bed Temperature Control =============== +//=========================================================================== // Select PID or bang-bang with PIDTEMPBED. If bang-bang, BED_LIMIT_SWITCHING will enable hysteresis // // Uncomment this to enable PID on the bed. It uses the same frequency PWM as the extruder. @@ -218,7 +244,6 @@ #endif // PIDTEMPBED - //this prevents dangerous Extruder moves, i.e. if the temperature is under the limit //can be software-disabled for whatever purposes by #define PREVENT_DANGEROUS_EXTRUDE @@ -228,7 +253,11 @@ #define EXTRUDE_MINTEMP 170 #define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances. -/*================== Thermal Runaway Protection ============================== + ++//=========================================================================== ++//============================= Thermal Runaway Protection ================== ++//=========================================================================== ++/* This is a feature to protect your printer from burn up in flames if it has a thermistor coming off place (this happened to a friend of mine recently and motivated me writing this feature). @@ -263,11 +292,10 @@ your extruder heater takes 2 minutes to hit the target on heating. // Parameters for the bed heater //#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds //#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius -//=========================================================================== //=========================================================================== -//=============================Mechanical Settings=========================== +//============================ Mechanical Settings ========================== //=========================================================================== // Uncomment the following line to enable CoreXY kinematics @@ -339,7 +367,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS. #define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below. -// Travel limits after homing +// Travel limits after homing (units are in mm) #define X_MAX_POS 205 #define X_MIN_POS 0 #define Y_MAX_POS 205 @@ -350,7 +378,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS) #define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS) #define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS) + + +//=========================================================================== //============================= Bed Auto Leveling =========================== +//=========================================================================== //#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line) #define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled. @@ -489,8 +521,9 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of #define DEFAULT_ZJERK 0.4 // (mm/sec) #define DEFAULT_EJERK 5.0 // (mm/sec) + //=========================================================================== -//=============================Additional Features=========================== +//============================ Additional Features ========================== //=========================================================================== // Custom M code points From 5bb3933b21a5395ea10064afa35b46beb4f7ad7b Mon Sep 17 00:00:00 2001 From: DocDawning Date: Mon, 2 Feb 2015 14:18:53 -0700 Subject: [PATCH 4/4] Fixed n00bsauce --- .../example_configurations/tvrrug/Round2/Configuration.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration.h b/Marlin/example_configurations/tvrrug/Round2/Configuration.h index 47a6c3e05..3a255d986 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration.h @@ -254,10 +254,10 @@ Here are some standard links for getting your machine calibrated: #define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances. -+//=========================================================================== -+//============================= Thermal Runaway Protection ================== -+//=========================================================================== -+/* +//=========================================================================== +//============================= Thermal Runaway Protection ================== +//=========================================================================== +/* This is a feature to protect your printer from burn up in flames if it has a thermistor coming off place (this happened to a friend of mine recently and motivated me writing this feature).