Advertisement
TechieAndroid

Untitled

Nov 4th, 2020
724
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
INI file 23.95 KB | None | 0 0
  1. //===========================================================================
  2. //============================= Z Probe Options =============================
  3. //===========================================================================
  4. // @section probes
  5.  
  6. //
  7. // See https://marlinfw.org/docs/configuration/probes.html
  8. //
  9.  
  10. /**
  11.  * Enable this option for a probe connected to the Z-MIN pin.
  12.  * The probe replaces the Z-MIN endstop and is used for Z homing.
  13.  * (Automatically enables USE_PROBE_FOR_Z_HOMING.)
  14.  */
  15. #define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
  16.  
  17. // Force the use of the probe for Z-axis homing
  18. //#define USE_PROBE_FOR_Z_HOMING
  19.  
  20. /**
  21.  * Z_MIN_PROBE_PIN
  22.  *
  23.  * Define this pin if the probe is not connected to Z_MIN_PIN.
  24.  * If not defined the default pin for the selected MOTHERBOARD
  25.  * will be used. Most of the time the default is what you want.
  26.  *
  27.  *  - The simplest option is to use a free endstop connector.
  28.  *  - Use 5V for powered (usually inductive) sensors.
  29.  *
  30.  *  - RAMPS 1.3/1.4 boards may use the 5V, GND, and Aux4->D32 pin:
  31.  *    - For simple switches connect...
  32.  *      - normally-closed switches to GND and D32.
  33.  *      - normally-open switches to 5V and D32.
  34.  */
  35. //#define Z_MIN_PROBE_PIN 32 // Pin 32 is the RAMPS default
  36.  
  37. /**
  38.  * Probe Type
  39.  *
  40.  * Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
  41.  * Activate one of these to use Auto Bed Leveling below.
  42.  */
  43.  
  44. /**
  45.  * The "Manual Probe" provides a means to do "Auto" Bed Leveling without a probe.
  46.  * Use G29 repeatedly, adjusting the Z height at each point with movement commands
  47.  * or (with LCD_BED_LEVELING) the LCD controller.
  48.  */
  49. //#define PROBE_MANUALLY
  50. //#define MANUAL_PROBE_START_Z 0.2
  51.  
  52. /**
  53.  * A Fix-Mounted Probe either doesn't deploy or needs manual deployment.
  54.  *   (e.g., an inductive probe or a nozzle-based probe-switch.)
  55.  */
  56. //#define FIX_MOUNTED_PROBE
  57.  
  58. /**
  59.  * Use the nozzle as the probe, as with a conductive
  60.  * nozzle system or a piezo-electric smart effector.
  61.  */
  62. //#define NOZZLE_AS_PROBE
  63.  
  64. /**
  65.  * Z Servo Probe, such as an endstop switch on a rotating arm.
  66.  */
  67. //#define Z_PROBE_SERVO_NR 0       // Defaults to SERVO 0 connector.
  68. //#define Z_SERVO_ANGLES { 70, 0 } // Z Servo Deploy and Stow angles
  69.  
  70. /**
  71.  * The BLTouch probe uses a Hall effect sensor and emulates a servo.
  72.  */
  73. #define BLTOUCH
  74.  
  75. /**
  76.  * Pressure sensor with a BLTouch-like interface
  77.  */
  78. //#define CREALITY_TOUCH
  79.  
  80. /**
  81.  * Touch-MI Probe by hotends.fr
  82.  *
  83.  * This probe is deployed and activated by moving the X-axis to a magnet at the edge of the bed.
  84.  * By default, the magnet is assumed to be on the left and activated by a home. If the magnet is
  85.  * on the right, enable and set TOUCH_MI_DEPLOY_XPOS to the deploy position.
  86.  *
  87.  * Also requires: BABYSTEPPING, BABYSTEP_ZPROBE_OFFSET, Z_SAFE_HOMING,
  88.  *                and a minimum Z_HOMING_HEIGHT of 10.
  89.  */
  90. //#define TOUCH_MI_PROBE
  91. #if ENABLED(TOUCH_MI_PROBE)
  92.   #define TOUCH_MI_RETRACT_Z 0.5                  // Height at which the probe retracts
  93.   //#define TOUCH_MI_DEPLOY_XPOS (X_MAX_BED + 2)  // For a magnet on the right side of the bed
  94.   //#define TOUCH_MI_MANUAL_DEPLOY                // For manual deploy (LCD menu)
  95. #endif
  96.  
  97. // A probe that is deployed and stowed with a solenoid pin (SOL1_PIN)
  98. //#define SOLENOID_PROBE
  99.  
  100. // A sled-mounted probe like those designed by Charles Bell.
  101. //#define Z_PROBE_SLED
  102. //#define SLED_DOCKING_OFFSET 5  // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
  103.  
  104. // A probe deployed by moving the x-axis, such as the Wilson II's rack-and-pinion probe designed by Marty Rice.
  105. //#define RACK_AND_PINION_PROBE
  106. #if ENABLED(RACK_AND_PINION_PROBE)
  107.   #define Z_PROBE_DEPLOY_X  X_MIN_POS
  108.   #define Z_PROBE_RETRACT_X X_MAX_POS
  109. #endif
  110.  
  111. // Duet Smart Effector (for delta printers) - https://bit.ly/2ul5U7J
  112. // When the pin is defined you can use M672 to set/reset the probe sensivity.
  113. //#define DUET_SMART_EFFECTOR
  114. #if ENABLED(DUET_SMART_EFFECTOR)
  115.   #define SMART_EFFECTOR_MOD_PIN  -1  // Connect a GPIO pin to the Smart Effector MOD pin
  116. #endif
  117.  
  118. /**
  119.  * Use StallGuard2 to probe the bed with the nozzle.
  120.  * Requires stallGuard-capable Trinamic stepper drivers.
  121.  * CAUTION: This can damage machines with Z lead screws.
  122.  *          Take extreme care when setting up this feature.
  123.  */
  124. //#define SENSORLESS_PROBING
  125.  
  126. //
  127. // For Z_PROBE_ALLEN_KEY see the Delta example configurations.
  128. //
  129.  
  130. /**
  131.  * Nozzle-to-Probe offsets { X, Y, Z }
  132.  *
  133.  * - Use a caliper or ruler to measure the distance from the tip of
  134.  *   the Nozzle to the center-point of the Probe in the X and Y axes.
  135.  * - For the Z offset use your best known value and adjust at runtime.
  136.  * - Probe Offsets can be tuned at runtime with 'M851', LCD menus, babystepping, etc.
  137.  *
  138.  * Assuming the typical work area orientation:
  139.  *  - Probe to RIGHT of the Nozzle has a Positive X offset
  140.  *  - Probe to LEFT  of the Nozzle has a Negative X offset
  141.  *  - Probe in BACK  of the Nozzle has a Positive Y offset
  142.  *  - Probe in FRONT of the Nozzle has a Negative Y offset
  143.  *
  144.  * Some examples:
  145.  *   #define NOZZLE_TO_PROBE_OFFSET { 10, 10, -1 }   // Example "1"
  146.  *   #define NOZZLE_TO_PROBE_OFFSET {-10,  5, -1 }   // Example "2"
  147.  *   #define NOZZLE_TO_PROBE_OFFSET {  5, -5, -1 }   // Example "3"
  148.  *   #define NOZZLE_TO_PROBE_OFFSET {-15,-10, -1 }   // Example "4"
  149.  *
  150.  *     +-- BACK ---+
  151.  *     |    [+]    |
  152.  *   L |        1  | R <-- Example "1" (right+,  back+)
  153.  *   E |  2        | I <-- Example "2" ( left-,  back+)
  154.  *   F |[-]  N  [+]| G <-- Nozzle
  155.  *   T |       3   | H <-- Example "3" (right+, front-)
  156.  *     | 4         | T <-- Example "4" ( left-, front-)
  157.  *     |    [-]    |
  158.  *     O-- FRONT --+
  159.  */
  160. #define NOZZLE_TO_PROBE_OFFSET { 13, 41, -1.81 }
  161.  
  162. // Most probes should stay away from the edges of the bed, but
  163. // with NOZZLE_AS_PROBE this can be negative for a wider probing area.
  164. #define PROBING_MARGIN 10
  165.  
  166. // X and Y axis travel speed (mm/min) between probes
  167. #define XY_PROBE_SPEED (133*60)
  168.  
  169. // Feedrate (mm/min) for the first approach when double-probing (MULTIPLE_PROBING == 2)
  170. #define Z_PROBE_SPEED_FAST HOMING_FEEDRATE_Z
  171.  
  172. // Feedrate (mm/min) for the "accurate" probe of each point
  173. #define Z_PROBE_SPEED_SLOW (Z_PROBE_SPEED_FAST / 2)
  174.  
  175. /**
  176.  * Multiple Probing
  177.  *
  178.  * You may get improved results by probing 2 or more times.
  179.  * With EXTRA_PROBING the more atypical reading(s) will be disregarded.
  180.  *
  181.  * A total of 2 does fast/slow probes with a weighted average.
  182.  * A total of 3 or more adds more slow probes, taking the average.
  183.  */
  184. //#define MULTIPLE_PROBING 2
  185. //#define EXTRA_PROBING    1
  186.  
  187. /**
  188.  * Z probes require clearance when deploying, stowing, and moving between
  189.  * probe points to avoid hitting the bed and other hardware.
  190.  * Servo-mounted probes require extra space for the arm to rotate.
  191.  * Inductive probes need space to keep from triggering early.
  192.  *
  193.  * Use these settings to specify the distance (mm) to raise the probe (or
  194.  * lower the bed). The values set here apply over and above any (negative)
  195.  * probe Z Offset set with NOZZLE_TO_PROBE_OFFSET, M851, or the LCD.
  196.  * Only integer values >= 1 are valid here.
  197.  *
  198.  * Example: `M851 Z-5` with a CLEARANCE of 4  =>  9mm from bed to nozzle.
  199.  *     But: `M851 Z+1` with a CLEARANCE of 2  =>  2mm from bed to nozzle.
  200.  */
  201. #define Z_CLEARANCE_DEPLOY_PROBE   10 // Z Clearance for Deploy/Stow
  202. #define Z_CLEARANCE_BETWEEN_PROBES  5 // Z Clearance between probe points
  203. #define Z_CLEARANCE_MULTI_PROBE     5 // Z Clearance between multiple probes
  204. //#define Z_AFTER_PROBING           5 // Z position after probing is done
  205.  
  206. #define Z_PROBE_LOW_POINT          -2 // Farthest distance below the trigger-point to go before stopping
  207.  
  208. // For M851 give a range for adjusting the Z probe offset
  209. #define Z_PROBE_OFFSET_RANGE_MIN -20
  210. #define Z_PROBE_OFFSET_RANGE_MAX 20
  211.  
  212. // Enable the M48 repeatability test to test probe accuracy
  213. //#define Z_MIN_PROBE_REPEATABILITY_TEST
  214.  
  215. // Before deploy/stow pause for user confirmation
  216. //#define PAUSE_BEFORE_DEPLOY_STOW
  217. #if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
  218.   //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe
  219. #endif
  220.  
  221. /**
  222.  * Enable one or more of the following if probing seems unreliable.
  223.  * Heaters and/or fans can be disabled during probing to minimize electrical
  224.  * noise. A delay can also be added to allow noise and vibration to settle.
  225.  * These options are most useful for the BLTouch probe, but may also improve
  226.  * readings with inductive probes and piezo sensors.
  227.  */
  228. //#define PROBING_HEATERS_OFF       // Turn heaters off when probing
  229. #if ENABLED(PROBING_HEATERS_OFF)
  230.   //#define WAIT_FOR_BED_HEATER     // Wait for bed to heat back up between probes (to improve accuracy)
  231. #endif
  232. //#define PROBING_FANS_OFF          // Turn fans off when probing
  233. //#define PROBING_STEPPERS_OFF      // Turn steppers off (unless needed to hold position) when probing
  234. //#define DELAY_BEFORE_PROBING 200  // (ms) To prevent vibrations from triggering piezo sensors
  235.  
  236. // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
  237. // :{ 0:'Low', 1:'High' }
  238. #define X_ENABLE_ON 0
  239. #define Y_ENABLE_ON 0
  240. #define Z_ENABLE_ON 0
  241. #define E_ENABLE_ON 0 // For all extruders
  242.  
  243. // Disable axis steppers immediately when they're not being stepped.
  244. // WARNING: When motors turn off there is a chance of losing position accuracy!
  245. #define DISABLE_X false
  246. #define DISABLE_Y false
  247. #define DISABLE_Z false
  248.  
  249. // Turn off the display blinking that warns about possible accuracy reduction
  250. //#define DISABLE_REDUCED_ACCURACY_WARNING
  251.  
  252. // @section extruder
  253.  
  254. #define DISABLE_E false             // Disable the extruder when not stepping
  255. //#define DISABLE_INACTIVE_EXTRUDER // Keep only the active extruder enabled
  256.  
  257. // @section machine
  258.  
  259. // Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
  260. #define INVERT_X_DIR true
  261. #define INVERT_Y_DIR true
  262. #define INVERT_Z_DIR false
  263.  
  264. // @section extruder
  265.  
  266. // For direct drive extruder v9 set to true, for geared extruder set to false.
  267. #define INVERT_E0_DIR true
  268. #define INVERT_E1_DIR false
  269. #define INVERT_E2_DIR false
  270. #define INVERT_E3_DIR false
  271. #define INVERT_E4_DIR false
  272. #define INVERT_E5_DIR false
  273. #define INVERT_E6_DIR false
  274. #define INVERT_E7_DIR false
  275.  
  276. // @section homing
  277.  
  278. //#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed
  279.  
  280. //#define UNKNOWN_Z_NO_RAISE      // Don't raise Z (lower the bed) if Z is "unknown." For beds that fall when Z is powered off.
  281.  
  282. //#define Z_HOMING_HEIGHT  4      // (mm) Minimal Z height before homing (G28) for Z clearance above the bed, clamps, ...
  283.                                   // Be sure to have this much clearance over your Z_MAX_POS to prevent grinding.
  284.  
  285. //#define Z_AFTER_HOMING  10      // (mm) Height to move to after homing Z
  286.  
  287. // Direction of endstops when homing; 1=MAX, -1=MIN
  288. // :[-1,1]
  289. #define X_HOME_DIR -1
  290. #define Y_HOME_DIR -1
  291. #define Z_HOME_DIR -1
  292.  
  293. // @section machine
  294.  
  295. // The size of the print bed
  296. #define X_BED_SIZE 235
  297. #define Y_BED_SIZE 235
  298.  
  299. // Travel limits (mm) after homing, corresponding to endstop positions.
  300. #define X_MIN_POS 0
  301. #define Y_MIN_POS 0
  302. #define Z_MIN_POS 0
  303. #define X_MAX_POS X_BED_SIZE
  304. #define Y_MAX_POS Y_BED_SIZE
  305. #define Z_MAX_POS 250
  306.  
  307. /**
  308.  * Software Endstops
  309.  *
  310.  * - Prevent moves outside the set machine bounds.
  311.  * - Individual axes can be disabled, if desired.
  312.  * - X and Y only apply to Cartesian robots.
  313.  * - Use 'M211' to set software endstops on/off or report current state
  314.  */
  315.  
  316. // Min software endstops constrain movement within minimum coordinate bounds
  317. #define MIN_SOFTWARE_ENDSTOPS
  318. #if ENABLED(MIN_SOFTWARE_ENDSTOPS)
  319.   #define MIN_SOFTWARE_ENDSTOP_X
  320.   #define MIN_SOFTWARE_ENDSTOP_Y
  321.   #define MIN_SOFTWARE_ENDSTOP_Z
  322. #endif
  323.  
  324. // Max software endstops constrain movement within maximum coordinate bounds
  325. #define MAX_SOFTWARE_ENDSTOPS
  326. #if ENABLED(MAX_SOFTWARE_ENDSTOPS)
  327.   #define MAX_SOFTWARE_ENDSTOP_X
  328.   #define MAX_SOFTWARE_ENDSTOP_Y
  329.   #define MAX_SOFTWARE_ENDSTOP_Z
  330. #endif
  331.  
  332. #if EITHER(MIN_SOFTWARE_ENDSTOPS, MAX_SOFTWARE_ENDSTOPS)
  333.   //#define SOFT_ENDSTOPS_MENU_ITEM  // Enable/Disable software endstops from the LCD
  334. #endif
  335.  
  336. /**
  337.  * Filament Runout Sensors
  338.  * Mechanical or opto endstops are used to check for the presence of filament.
  339.  *
  340.  * RAMPS-based boards use SERVO3_PIN for the first runout sensor.
  341.  * For other boards you may need to define FIL_RUNOUT_PIN, FIL_RUNOUT2_PIN, etc.
  342.  */
  343. //#define FILAMENT_RUNOUT_SENSOR
  344. #if ENABLED(FILAMENT_RUNOUT_SENSOR)
  345.   #define FIL_RUNOUT_ENABLED_DEFAULT true // Enable the sensor on startup. Override with M412 followed by M500.
  346.   #define NUM_RUNOUT_SENSORS   1          // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each.
  347.   #define FIL_RUNOUT_STATE     LOW        // Pin state indicating that filament is NOT present.
  348.   #define FIL_RUNOUT_PULLUP               // Use internal pullup for filament runout pins.
  349.   //#define FIL_RUNOUT_PULLDOWN           // Use internal pulldown for filament runout pins.
  350.  
  351.   // Set one or more commands to execute on filament runout.
  352.   // (After 'M412 H' Marlin will ask the host to handle the process.)
  353.   #define FILAMENT_RUNOUT_SCRIPT "M600"
  354.  
  355.   // After a runout is detected, continue printing this length of filament
  356.   // before executing the runout script. Useful for a sensor at the end of
  357.   // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
  358.   //#define FILAMENT_RUNOUT_DISTANCE_MM 25
  359.  
  360.   #ifdef FILAMENT_RUNOUT_DISTANCE_MM
  361.     // Enable this option to use an encoder disc that toggles the runout pin
  362.     // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
  363.     // large enough to avoid false positives.)
  364.     //#define FILAMENT_MOTION_SENSOR
  365.   #endif
  366. #endif
  367.  
  368. //===========================================================================
  369. //=============================== Bed Leveling ==============================
  370. //===========================================================================
  371. // @section calibrate
  372.  
  373. /**
  374.  * Choose one of the options below to enable G29 Bed Leveling. The parameters
  375.  * and behavior of G29 will change depending on your selection.
  376.  *
  377.  *  If using a Probe for Z Homing, enable Z_SAFE_HOMING also!
  378.  *
  379.  * - AUTO_BED_LEVELING_3POINT
  380.  *   Probe 3 arbitrary points on the bed (that aren't collinear)
  381.  *   You specify the XY coordinates of all 3 points.
  382.  *   The result is a single tilted plane. Best for a flat bed.
  383.  *
  384.  * - AUTO_BED_LEVELING_LINEAR
  385.  *   Probe several points in a grid.
  386.  *   You specify the rectangle and the density of sample points.
  387.  *   The result is a single tilted plane. Best for a flat bed.
  388.  *
  389.  * - AUTO_BED_LEVELING_BILINEAR
  390.  *   Probe several points in a grid.
  391.  *   You specify the rectangle and the density of sample points.
  392.  *   The result is a mesh, best for large or uneven beds.
  393.  *
  394.  * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling)
  395.  *   A comprehensive bed leveling system combining the features and benefits
  396.  *   of other systems. UBL also includes integrated Mesh Generation, Mesh
  397.  *   Validation and Mesh Editing systems.
  398.  *
  399.  * - MESH_BED_LEVELING
  400.  *   Probe a grid manually
  401.  *   The result is a mesh, suitable for large or uneven beds. (See BILINEAR.)
  402.  *   For machines without a probe, Mesh Bed Leveling provides a method to perform
  403.  *   leveling in steps so you can manually adjust the Z height at each grid-point.
  404.  *   With an LCD controller the process is guided step-by-step.
  405.  */
  406. //#define AUTO_BED_LEVELING_3POINT
  407. //#define AUTO_BED_LEVELING_LINEAR
  408. #define AUTO_BED_LEVELING_BILINEAR
  409. //#define AUTO_BED_LEVELING_UBL
  410. //#define MESH_BED_LEVELING
  411.  
  412. /**
  413.  * Normally G28 leaves leveling disabled on completion. Enable
  414.  * this option to have G28 restore the prior leveling state.
  415.  */
  416. //#define RESTORE_LEVELING_AFTER_G28
  417.  
  418. /**
  419.  * Enable detailed logging of G28, G29, M48, etc.
  420.  * Turn on with the command 'M111 S32'.
  421.  * NOTE: Requires a lot of PROGMEM!
  422.  */
  423. //#define DEBUG_LEVELING_FEATURE
  424.  
  425. #if ANY(MESH_BED_LEVELING, AUTO_BED_LEVELING_BILINEAR, AUTO_BED_LEVELING_UBL)
  426.   // Gradually reduce leveling correction until a set height is reached,
  427.   // at which point movement will be level to the machine's XY plane.
  428.   // The height can be set with M420 Z<height>
  429.   #define ENABLE_LEVELING_FADE_HEIGHT
  430.  
  431.   // For Cartesian machines, instead of dividing moves on mesh boundaries,
  432.   // split up moves into short segments like a Delta. This follows the
  433.   // contours of the bed more closely than edge-to-edge straight moves.
  434.   #define SEGMENT_LEVELED_MOVES
  435.   #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
  436.  
  437.   /**
  438.    * Enable the G26 Mesh Validation Pattern tool.
  439.    */
  440.   //#define G26_MESH_VALIDATION
  441.   #if ENABLED(G26_MESH_VALIDATION)
  442.     #define MESH_TEST_NOZZLE_SIZE    0.4  // (mm) Diameter of primary nozzle.
  443.     #define MESH_TEST_LAYER_HEIGHT   0.2  // (mm) Default layer height for the G26 Mesh Validation Tool.
  444.     #define MESH_TEST_HOTEND_TEMP  205    // (°C) Default nozzle temperature for the G26 Mesh Validation Tool.
  445.     #define MESH_TEST_BED_TEMP      60    // (°C) Default bed temperature for the G26 Mesh Validation Tool.
  446.     #define G26_XY_FEEDRATE         20    // (mm/s) Feedrate for XY Moves for the G26 Mesh Validation Tool.
  447.     #define G26_RETRACT_MULTIPLIER   1.0  // G26 Q (retraction) used by default between mesh test elements.
  448.   #endif
  449.  
  450. #endif
  451.  
  452. #if EITHER(AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_BILINEAR)
  453.  
  454.   // Set the number of grid points per dimension.
  455.   #define GRID_MAX_POINTS_X 3
  456.   #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
  457.  
  458.   // Probe along the Y axis, advancing X after each column
  459.   //#define PROBE_Y_FIRST
  460.  
  461.   #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
  462.  
  463.     // Beyond the probed grid, continue the implied tilt?
  464.     // Default is to maintain the height of the nearest edge.
  465.     //#define EXTRAPOLATE_BEYOND_GRID
  466.  
  467.     //
  468.     // Experimental Subdivision of the grid by Catmull-Rom method.
  469.     // Synthesizes intermediate points to produce a more detailed mesh.
  470.     //
  471.     //#define ABL_BILINEAR_SUBDIVISION
  472.     #if ENABLED(ABL_BILINEAR_SUBDIVISION)
  473.       // Number of subdivisions between probe points
  474.       #define BILINEAR_SUBDIVISIONS 3
  475.     #endif
  476.  
  477.   #endif
  478.  
  479. #elif ENABLED(AUTO_BED_LEVELING_UBL)
  480.  
  481.   //===========================================================================
  482.   //========================= Unified Bed Leveling ============================
  483.   //===========================================================================
  484.  
  485.   //#define MESH_EDIT_GFX_OVERLAY   // Display a graphics overlay while editing the mesh
  486.  
  487.   #define MESH_INSET 1              // Set Mesh bounds as an inset region of the bed
  488.   #define GRID_MAX_POINTS_X 10      // Don't use more than 15 points per axis, implementation limited.
  489.   #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
  490.  
  491.   #define UBL_MESH_EDIT_MOVES_Z     // Sophisticated users prefer no movement of nozzle
  492.   #define UBL_SAVE_ACTIVE_ON_M500   // Save the currently active mesh in the current slot on M500
  493.  
  494.   //#define UBL_Z_RAISE_WHEN_OFF_MESH 2.5 // When the nozzle is off the mesh, this value is used
  495.                                           // as the Z-Height correction value.
  496.  
  497. #elif ENABLED(MESH_BED_LEVELING)
  498.  
  499.   //===========================================================================
  500.   //=================================== Mesh ==================================
  501.   //===========================================================================
  502.  
  503.   #define MESH_INSET 10          // Set Mesh bounds as an inset region of the bed
  504.   #define GRID_MAX_POINTS_X 3    // Don't use more than 7 points per axis, implementation limited.
  505.   #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
  506.  
  507.   //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
  508.  
  509. #endif // BED_LEVELING
  510.  
  511. /**
  512.  * Add a bed leveling sub-menu for ABL or MBL.
  513.  * Include a guided procedure if manual probing is enabled.
  514.  */
  515. //#define LCD_BED_LEVELING
  516.  
  517. #if ENABLED(LCD_BED_LEVELING)
  518.   #define MESH_EDIT_Z_STEP  0.025 // (mm) Step size while manually probing Z axis.
  519.   #define LCD_PROBE_Z_RANGE 4     // (mm) Z Range centered on Z_MIN_POS for LCD Z adjustment
  520.   //#define MESH_EDIT_MENU        // Add a menu to edit mesh points
  521. #endif
  522.  
  523. // Add a menu item to move between bed corners for manual bed adjustment
  524. //#define LEVEL_BED_CORNERS
  525.  
  526. #if ENABLED(LEVEL_BED_CORNERS)
  527.   #define LEVEL_CORNERS_INSET_LFRB { 30, 30, 30, 30 } // (mm) Left, Front, Right, Back insets
  528.   #define LEVEL_CORNERS_HEIGHT      0.0   // (mm) Z height of nozzle at leveling points
  529.   #define LEVEL_CORNERS_Z_HOP       4.0   // (mm) Z height of nozzle between leveling points
  530.   //#define LEVEL_CENTER_TOO              // Move to the center after the last corner
  531. #endif
  532.  
  533. /**
  534.  * Commands to execute at the end of G29 probing.
  535.  * Useful to retract or move the Z probe out of the way.
  536.  */
  537. //#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
  538.  
  539. // @section homing
  540.  
  541. // The center of the bed is at (X=0, Y=0)
  542. //#define BED_CENTER_AT_0_0
  543.  
  544. // Manually set the home position. Leave these undefined for automatic settings.
  545. // For DELTA this is the top-center of the Cartesian print volume.
  546. //#define MANUAL_X_HOME_POS 0
  547. //#define MANUAL_Y_HOME_POS 0
  548. //#define MANUAL_Z_HOME_POS 0
  549.  
  550. // Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area.
  551. //
  552. // With this feature enabled:
  553. //
  554. // - Allow Z homing only after X and Y homing AND stepper drivers still enabled.
  555. // - If stepper drivers time out, it will need X and Y homing again before Z homing.
  556. // - Move the Z probe (or nozzle) to a defined XY point before Z Homing.
  557. // - Prevent Z homing when the Z probe is outside bed area.
  558. //
  559. #define Z_SAFE_HOMING
  560.  
  561. #if ENABLED(Z_SAFE_HOMING)
  562.   #define Z_SAFE_HOMING_X_POINT X_CENTER  // X point for Z homing
  563.   #define Z_SAFE_HOMING_Y_POINT Y_CENTER  // Y point for Z homing
  564. #endif
  565.  
  566. // Homing speeds (mm/min)
  567. #define HOMING_FEEDRATE_XY (20*60)
  568. #define HOMING_FEEDRATE_Z  (4*60)
  569.  
  570. // Validate that endstops are triggered on homing moves
  571. #define VALIDATE_HOMING_ENDSTOPS
  572.  
  573. // @section calibrate
  574.  
  575. /**
  576.  * Bed Skew Compensation
  577.  *
  578.  * This feature corrects for misalignment in the XYZ axes.
  579.  *
  580.  * Take the following steps to get the bed skew in the XY plane:
  581.  *  1. Print a test square (e.g., https://www.thingiverse.com/thing:2563185)
  582.  *  2. For XY_DIAG_AC measure the diagonal A to C
  583.  *  3. For XY_DIAG_BD measure the diagonal B to D
  584.  *  4. For XY_SIDE_AD measure the edge A to D
  585.  *
  586.  * Marlin automatically computes skew factors from these measurements.
  587.  * Skew factors may also be computed and set manually:
  588.  *
  589.  *  - Compute AB     : SQRT(2*AC*AC+2*BD*BD-4*AD*AD)/2
  590.  *  - XY_SKEW_FACTOR : TAN(PI/2-ACOS((AC*AC-AB*AB-AD*AD)/(2*AB*AD)))
  591.  *
  592.  * If desired, follow the same procedure for XZ and YZ.
  593.  * Use these diagrams for reference:
  594.  *
  595.  *    Y                     Z                     Z
  596.  *    ^     B-------C       ^     B-------C       ^     B-------C
  597.  *    |    /       /        |    /       /        |    /       /
  598.  *    |   /       /         |   /       /         |   /       /
  599.  *    |  A-------D          |  A-------D          |  A-------D
  600.  *    +-------------->X     +-------------->X     +-------------->Y
  601.  *     XY_SKEW_FACTOR        XZ_SKEW_FACTOR        YZ_SKEW_FACTOR
  602.  */
  603. //#define SKEW_CORRECTION
  604.  
  605. #if ENABLED(SKEW_CORRECTION)
  606.   // Input all length measurements here:
  607.   #define XY_DIAG_AC 282.8427124746
  608.   #define XY_DIAG_BD 282.8427124746
  609.   #define XY_SIDE_AD 200
  610.  
  611.   // Or, set the default skew factors directly here
  612.   // to override the above measurements:
  613.   #define XY_SKEW_FACTOR 0.0
  614.  
  615.   //#define SKEW_CORRECTION_FOR_Z
  616.   #if ENABLED(SKEW_CORRECTION_FOR_Z)
  617.     #define XZ_DIAG_AC 282.8427124746
  618.     #define XZ_DIAG_BD 282.8427124746
  619.     #define YZ_DIAG_AC 282.8427124746
  620.     #define YZ_DIAG_BD 282.8427124746
  621.     #define YZ_SIDE_AD 200
  622.     #define XZ_SKEW_FACTOR 0.0
  623.     #define YZ_SKEW_FACTOR 0.0
  624.   #endif
  625.  
  626.   // Enable this option for M852 to set skew at runtime
  627.   //#define SKEW_CORRECTION_GCODE
  628. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement