Merge pull request #8044 from thinkyhead/bf2_mesh_consolidate
[2.0.x] Simplify mesh bounds config
This commit is contained in:
commit
f65fc7ffab
85 changed files with 1974 additions and 3561 deletions
|
@ -937,7 +937,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -950,6 +950,7 @@
|
|||
|
||||
//#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -489,12 +489,14 @@
|
|||
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||
#define SD_DETECT_INVERTED
|
||||
|
||||
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||
|
||||
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||
// using:
|
||||
// Reverse SD sort to show "more recent" files first, according to the card's FAT.
|
||||
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
|
||||
#define SDCARD_RATHERRECENTFIRST
|
||||
|
||||
// Add an option in the menu to run all auto#.g files
|
||||
//#define MENU_ADDAUTOSTART
|
||||
|
||||
/**
|
||||
|
@ -685,69 +687,12 @@
|
|||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
// Default mesh area is an area with an inset margin on the print area.
|
||||
// Below are the macros that are used to define the borders for the mesh area,
|
||||
// made available here for specialized needs, ie dual extruder setup.
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define MESH_MIN_X (max(MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MIN_Y (max(MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define MESH_MAX_X (min(X_BED_SIZE - (MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MAX_Y (min(Y_BED_SIZE - (MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define MESH_MIN_X (max(X_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MIN_Y (max(Y_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MAX_X (min(X_MAX_POS - (MESH_INSET), X_BED_SIZE))
|
||||
#define MESH_MAX_Y (min(Y_MAX_POS - (MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define UBL_MESH_MIN_X (max(UBL_MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MIN_Y (max(UBL_MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_X (min(X_BED_SIZE - (UBL_MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_Y (min(Y_BED_SIZE - (UBL_MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define UBL_MESH_MIN_X (max(X_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MIN_Y (max(Y_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MAX_X (min(X_MAX_POS - (UBL_MESH_INSET), X_BED_SIZE))
|
||||
#define UBL_MESH_MAX_Y (min(Y_MAX_POS - (UBL_MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
//#define MESH_MIN_X MESH_INSET
|
||||
//#define MESH_MIN_Y MESH_INSET
|
||||
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
|
||||
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
#ifndef _HAL_H
|
||||
#define _HAL_H
|
||||
|
||||
#include "../inc/SPI.h"
|
||||
#include "SPI.h"
|
||||
|
||||
#ifdef __AVR__
|
||||
#include "HAL_AVR/HAL_AVR.h"
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
// --------------------------------------------------------------------------
|
||||
|
||||
#include "../HAL.h"
|
||||
#include "SPI.h"
|
||||
#include "../SPI.h"
|
||||
#include "pins_arduino.h"
|
||||
#include "spi_pins.h"
|
||||
#include "../../core/macros.h"
|
||||
|
|
78
Marlin/src/HAL/SPI.h
Normal file
78
Marlin/src/HAL/SPI.h
Normal file
|
@ -0,0 +1,78 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* HAL/SPI.h
|
||||
* Core Marlin definitions for SPI, implemented in the HALs
|
||||
*/
|
||||
|
||||
#ifndef _SPI_H_
|
||||
#define _SPI_H_
|
||||
|
||||
//#include "../inc/MarlinConfig.h"
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifndef SPI_FULL_SPEED
|
||||
|
||||
/**
|
||||
* SPI speed where 0 <= index <= 6
|
||||
*
|
||||
* Approximate rates :
|
||||
*
|
||||
* 0 : 8 - 10 MHz
|
||||
* 1 : 4 - 5 MHz
|
||||
* 2 : 2 - 2.5 MHz
|
||||
* 3 : 1 - 1.25 MHz
|
||||
* 4 : 500 - 625 kHz
|
||||
* 5 : 250 - 312 kHz
|
||||
* 6 : 125 - 156 kHz
|
||||
*
|
||||
* On AVR, actual speed is F_CPU/2^(1 + index).
|
||||
* On other platforms, speed should be in range given above where possible.
|
||||
*/
|
||||
|
||||
#define SPI_FULL_SPEED 0 // Set SCK to max rate
|
||||
#define SPI_HALF_SPEED 1 // Set SCK rate to half of max rate
|
||||
#define SPI_QUARTER_SPEED 2 // Set SCK rate to quarter of max rate
|
||||
#define SPI_EIGHTH_SPEED 3 // Set SCK rate to 1/8 of max rate
|
||||
#define SPI_SIXTEENTH_SPEED 4 // Set SCK rate to 1/16 of max rate
|
||||
#define SPI_SPEED_5 5 // Set SCK rate to 1/32 of max rate
|
||||
#define SPI_SPEED_6 6 // Set SCK rate to 1/64 of max rate
|
||||
|
||||
// Standard SPI functions
|
||||
/** Initialise SPI bus */
|
||||
void spiBegin(void);
|
||||
/** Configure SPI for specified SPI speed */
|
||||
void spiInit(uint8_t spiRate);
|
||||
/** Write single byte to SPI */
|
||||
void spiSend(uint8_t b);
|
||||
/** Read single byte from SPI */
|
||||
uint8_t spiRec(void);
|
||||
/** Read from SPI into buffer */
|
||||
void spiRead(uint8_t* buf, uint16_t nbyte);
|
||||
/** Write token and then write from 512 byte buffer to SPI (for SD card) */
|
||||
void spiSendBlock(uint8_t token, const uint8_t* buf);
|
||||
|
||||
#endif // SPI_FULL_SPEED
|
||||
|
||||
#endif // _SPI_H_
|
|
@ -937,7 +937,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -950,6 +950,7 @@
|
|||
|
||||
//#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -489,12 +489,14 @@
|
|||
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||
#define SD_DETECT_INVERTED
|
||||
|
||||
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||
|
||||
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||
// using:
|
||||
// Reverse SD sort to show "more recent" files first, according to the card's FAT.
|
||||
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
|
||||
#define SDCARD_RATHERRECENTFIRST
|
||||
|
||||
// Add an option in the menu to run all auto#.g files
|
||||
//#define MENU_ADDAUTOSTART
|
||||
|
||||
/**
|
||||
|
@ -685,69 +687,12 @@
|
|||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
// Default mesh area is an area with an inset margin on the print area.
|
||||
// Below are the macros that are used to define the borders for the mesh area,
|
||||
// made available here for specialized needs, ie dual extruder setup.
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define MESH_MIN_X (max(MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MIN_Y (max(MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define MESH_MAX_X (min(X_BED_SIZE - (MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MAX_Y (min(Y_BED_SIZE - (MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define MESH_MIN_X (max(X_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MIN_Y (max(Y_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MAX_X (min(X_MAX_POS - (MESH_INSET), X_BED_SIZE))
|
||||
#define MESH_MAX_Y (min(Y_MAX_POS - (MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define UBL_MESH_MIN_X (max(UBL_MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MIN_Y (max(UBL_MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_X (min(X_BED_SIZE - (UBL_MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_Y (min(Y_BED_SIZE - (UBL_MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define UBL_MESH_MIN_X (max(X_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MIN_Y (max(Y_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MAX_X (min(X_MAX_POS - (UBL_MESH_INSET), X_BED_SIZE))
|
||||
#define UBL_MESH_MAX_Y (min(Y_MAX_POS - (UBL_MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
//#define MESH_MIN_X MESH_INSET
|
||||
//#define MESH_MIN_Y MESH_INSET
|
||||
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
|
||||
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
|
|
@ -957,7 +957,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -970,6 +970,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -489,12 +489,14 @@
|
|||
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||
#define SD_DETECT_INVERTED
|
||||
|
||||
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||
|
||||
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||
// using:
|
||||
// Reverse SD sort to show "more recent" files first, according to the card's FAT.
|
||||
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
|
||||
#define SDCARD_RATHERRECENTFIRST
|
||||
|
||||
// Add an option in the menu to run all auto#.g files
|
||||
//#define MENU_ADDAUTOSTART
|
||||
|
||||
/**
|
||||
|
@ -684,69 +686,12 @@
|
|||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
// Default mesh area is an area with an inset margin on the print area.
|
||||
// Below are the macros that are used to define the borders for the mesh area,
|
||||
// made available here for specialized needs, ie dual extruder setup.
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define MESH_MIN_X (max(MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MIN_Y (max(MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define MESH_MAX_X (min(X_BED_SIZE - (MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MAX_Y (min(Y_BED_SIZE - (MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define MESH_MIN_X (max(X_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MIN_Y (max(Y_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MAX_X (min(X_MAX_POS - (MESH_INSET), X_BED_SIZE))
|
||||
#define MESH_MAX_Y (min(Y_MAX_POS - (MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define UBL_MESH_MIN_X (max(UBL_MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MIN_Y (max(UBL_MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_X (min(X_BED_SIZE - (UBL_MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_Y (min(Y_BED_SIZE - (UBL_MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define UBL_MESH_MIN_X (max(X_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MIN_Y (max(Y_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MAX_X (min(X_MAX_POS - (UBL_MESH_INSET), X_BED_SIZE))
|
||||
#define UBL_MESH_MAX_Y (min(Y_MAX_POS - (UBL_MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
//#define MESH_MIN_X MESH_INSET
|
||||
//#define MESH_MIN_Y MESH_INSET
|
||||
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
|
||||
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
|
|
@ -937,7 +937,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -950,6 +950,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -1080,7 +1080,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -1093,6 +1093,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -489,12 +489,14 @@
|
|||
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||
//#define SD_DETECT_INVERTED
|
||||
|
||||
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||
|
||||
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||
// using:
|
||||
// Reverse SD sort to show "more recent" files first, according to the card's FAT.
|
||||
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
|
||||
#define SDCARD_RATHERRECENTFIRST
|
||||
|
||||
// Add an option in the menu to run all auto#.g files
|
||||
//#define MENU_ADDAUTOSTART
|
||||
|
||||
/**
|
||||
|
@ -684,69 +686,12 @@
|
|||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
// Default mesh area is an area with an inset margin on the print area.
|
||||
// Below are the macros that are used to define the borders for the mesh area,
|
||||
// made available here for specialized needs, ie dual extruder setup.
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define MESH_MIN_X (max(MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MIN_Y (max(MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define MESH_MAX_X (min(X_BED_SIZE - (MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MAX_Y (min(Y_BED_SIZE - (MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define MESH_MIN_X (max(X_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MIN_Y (max(Y_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MAX_X (min(X_MAX_POS - (MESH_INSET), X_BED_SIZE))
|
||||
#define MESH_MAX_Y (min(Y_MAX_POS - (MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define UBL_MESH_MIN_X (max(UBL_MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MIN_Y (max(UBL_MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_X (min(X_BED_SIZE - (UBL_MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_Y (min(Y_BED_SIZE - (UBL_MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define UBL_MESH_MIN_X (max(X_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MIN_Y (max(Y_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MAX_X (min(X_MAX_POS - (UBL_MESH_INSET), X_BED_SIZE))
|
||||
#define UBL_MESH_MAX_Y (min(Y_MAX_POS - (UBL_MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
//#define MESH_MIN_X MESH_INSET
|
||||
//#define MESH_MIN_Y MESH_INSET
|
||||
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
|
||||
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
|
|
@ -943,7 +943,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -956,6 +956,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -489,12 +489,14 @@
|
|||
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||
//#define SD_DETECT_INVERTED
|
||||
|
||||
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||
|
||||
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||
// using:
|
||||
// Reverse SD sort to show "more recent" files first, according to the card's FAT.
|
||||
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
|
||||
#define SDCARD_RATHERRECENTFIRST
|
||||
|
||||
// Add an option in the menu to run all auto#.g files
|
||||
//#define MENU_ADDAUTOSTART
|
||||
|
||||
/**
|
||||
|
@ -684,69 +686,12 @@
|
|||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
// Default mesh area is an area with an inset margin on the print area.
|
||||
// Below are the macros that are used to define the borders for the mesh area,
|
||||
// made available here for specialized needs, ie dual extruder setup.
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define MESH_MIN_X (max(MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MIN_Y (max(MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define MESH_MAX_X (min(X_BED_SIZE - (MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MAX_Y (min(Y_BED_SIZE - (MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define MESH_MIN_X (max(X_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MIN_Y (max(Y_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MAX_X (min(X_MAX_POS - (MESH_INSET), X_BED_SIZE))
|
||||
#define MESH_MAX_Y (min(Y_MAX_POS - (MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define UBL_MESH_MIN_X (max(UBL_MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MIN_Y (max(UBL_MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_X (min(X_BED_SIZE - (UBL_MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_Y (min(Y_BED_SIZE - (UBL_MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define UBL_MESH_MIN_X (max(X_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MIN_Y (max(Y_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MAX_X (min(X_MAX_POS - (UBL_MESH_INSET), X_BED_SIZE))
|
||||
#define UBL_MESH_MAX_Y (min(Y_MAX_POS - (UBL_MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
//#define MESH_MIN_X MESH_INSET
|
||||
//#define MESH_MIN_Y MESH_INSET
|
||||
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
|
||||
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
|
|
@ -928,7 +928,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -941,6 +941,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -489,12 +489,14 @@
|
|||
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||
#define SD_DETECT_INVERTED
|
||||
|
||||
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||
|
||||
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||
// using:
|
||||
// Reverse SD sort to show "more recent" files first, according to the card's FAT.
|
||||
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
|
||||
#define SDCARD_RATHERRECENTFIRST
|
||||
|
||||
// Add an option in the menu to run all auto#.g files
|
||||
//#define MENU_ADDAUTOSTART
|
||||
|
||||
/**
|
||||
|
@ -684,69 +686,12 @@
|
|||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
// Default mesh area is an area with an inset margin on the print area.
|
||||
// Below are the macros that are used to define the borders for the mesh area,
|
||||
// made available here for specialized needs, ie dual extruder setup.
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define MESH_MIN_X (max(MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MIN_Y (max(MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define MESH_MAX_X (min(X_BED_SIZE - (MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MAX_Y (min(Y_BED_SIZE - (MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define MESH_MIN_X (max(X_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MIN_Y (max(Y_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MAX_X (min(X_MAX_POS - (MESH_INSET), X_BED_SIZE))
|
||||
#define MESH_MAX_Y (min(Y_MAX_POS - (MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define UBL_MESH_MIN_X (max(UBL_MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MIN_Y (max(UBL_MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_X (min(X_BED_SIZE - (UBL_MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_Y (min(Y_BED_SIZE - (UBL_MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define UBL_MESH_MIN_X (max(X_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MIN_Y (max(Y_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MAX_X (min(X_MAX_POS - (UBL_MESH_INSET), X_BED_SIZE))
|
||||
#define UBL_MESH_MAX_Y (min(Y_MAX_POS - (UBL_MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
//#define MESH_MIN_X MESH_INSET
|
||||
//#define MESH_MIN_Y MESH_INSET
|
||||
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
|
||||
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
|
|
@ -938,7 +938,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -951,6 +951,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -489,12 +489,14 @@
|
|||
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||
#define SD_DETECT_INVERTED
|
||||
|
||||
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||
#define SD_FINISHED_RELEASECOMMAND "M104 S0\nM84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||
|
||||
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||
// using:
|
||||
// Reverse SD sort to show "more recent" files first, according to the card's FAT.
|
||||
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
|
||||
#define SDCARD_RATHERRECENTFIRST
|
||||
|
||||
// Add an option in the menu to run all auto#.g files
|
||||
//#define MENU_ADDAUTOSTART
|
||||
|
||||
/**
|
||||
|
@ -681,69 +683,12 @@
|
|||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
// Default mesh area is an area with an inset margin on the print area.
|
||||
// Below are the macros that are used to define the borders for the mesh area,
|
||||
// made available here for specialized needs, ie dual extruder setup.
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define MESH_MIN_X (max(MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MIN_Y (max(MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define MESH_MAX_X (min(X_BED_SIZE - (MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MAX_Y (min(Y_BED_SIZE - (MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define MESH_MIN_X (max(X_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MIN_Y (max(Y_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MAX_X (min(X_MAX_POS - (MESH_INSET), X_BED_SIZE))
|
||||
#define MESH_MAX_Y (min(Y_MAX_POS - (MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define UBL_MESH_MIN_X (max(UBL_MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MIN_Y (max(UBL_MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_X (min(X_BED_SIZE - (UBL_MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_Y (min(Y_BED_SIZE - (UBL_MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define UBL_MESH_MIN_X (max(X_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MIN_Y (max(Y_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MAX_X (min(X_MAX_POS - (UBL_MESH_INSET), X_BED_SIZE))
|
||||
#define UBL_MESH_MAX_Y (min(Y_MAX_POS - (UBL_MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
//#define MESH_MIN_X MESH_INSET
|
||||
//#define MESH_MIN_Y MESH_INSET
|
||||
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
|
||||
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
|
|
@ -928,7 +928,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -941,6 +941,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -489,12 +489,14 @@
|
|||
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||
#define SD_DETECT_INVERTED
|
||||
|
||||
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||
|
||||
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||
// using:
|
||||
// Reverse SD sort to show "more recent" files first, according to the card's FAT.
|
||||
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
|
||||
#define SDCARD_RATHERRECENTFIRST
|
||||
|
||||
// Add an option in the menu to run all auto#.g files
|
||||
//#define MENU_ADDAUTOSTART
|
||||
|
||||
/**
|
||||
|
@ -684,69 +686,12 @@
|
|||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
// Default mesh area is an area with an inset margin on the print area.
|
||||
// Below are the macros that are used to define the borders for the mesh area,
|
||||
// made available here for specialized needs, ie dual extruder setup.
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define MESH_MIN_X (max(MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MIN_Y (max(MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define MESH_MAX_X (min(X_BED_SIZE - (MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MAX_Y (min(Y_BED_SIZE - (MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define MESH_MIN_X (max(X_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MIN_Y (max(Y_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MAX_X (min(X_MAX_POS - (MESH_INSET), X_BED_SIZE))
|
||||
#define MESH_MAX_Y (min(Y_MAX_POS - (MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define UBL_MESH_MIN_X (max(UBL_MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MIN_Y (max(UBL_MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_X (min(X_BED_SIZE - (UBL_MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_Y (min(Y_BED_SIZE - (UBL_MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define UBL_MESH_MIN_X (max(X_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MIN_Y (max(Y_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MAX_X (min(X_MAX_POS - (UBL_MESH_INSET), X_BED_SIZE))
|
||||
#define UBL_MESH_MAX_Y (min(Y_MAX_POS - (UBL_MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
//#define MESH_MIN_X MESH_INSET
|
||||
//#define MESH_MIN_Y MESH_INSET
|
||||
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
|
||||
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
|
|
@ -936,7 +936,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -949,6 +949,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -489,12 +489,14 @@
|
|||
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||
#define SD_DETECT_INVERTED
|
||||
|
||||
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||
|
||||
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||
// using:
|
||||
// Reverse SD sort to show "more recent" files first, according to the card's FAT.
|
||||
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
|
||||
#define SDCARD_RATHERRECENTFIRST
|
||||
|
||||
// Add an option in the menu to run all auto#.g files
|
||||
//#define MENU_ADDAUTOSTART
|
||||
|
||||
/**
|
||||
|
@ -684,69 +686,12 @@
|
|||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
// Default mesh area is an area with an inset margin on the print area.
|
||||
// Below are the macros that are used to define the borders for the mesh area,
|
||||
// made available here for specialized needs, ie dual extruder setup.
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define MESH_MIN_X (max(MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MIN_Y (max(MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define MESH_MAX_X (min(X_BED_SIZE - (MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MAX_Y (min(Y_BED_SIZE - (MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define MESH_MIN_X (max(X_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MIN_Y (max(Y_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MAX_X (min(X_MAX_POS - (MESH_INSET), X_BED_SIZE))
|
||||
#define MESH_MAX_Y (min(Y_MAX_POS - (MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define UBL_MESH_MIN_X (max(UBL_MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MIN_Y (max(UBL_MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_X (min(X_BED_SIZE - (UBL_MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_Y (min(Y_BED_SIZE - (UBL_MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define UBL_MESH_MIN_X (max(X_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MIN_Y (max(Y_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MAX_X (min(X_MAX_POS - (UBL_MESH_INSET), X_BED_SIZE))
|
||||
#define UBL_MESH_MAX_Y (min(Y_MAX_POS - (UBL_MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
//#define MESH_MIN_X MESH_INSET
|
||||
//#define MESH_MIN_Y MESH_INSET
|
||||
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
|
||||
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
|
|
@ -947,7 +947,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -960,6 +960,7 @@
|
|||
|
||||
//#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -489,12 +489,14 @@
|
|||
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||
#define SD_DETECT_INVERTED
|
||||
|
||||
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||
|
||||
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||
// using:
|
||||
// Reverse SD sort to show "more recent" files first, according to the card's FAT.
|
||||
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
|
||||
#define SDCARD_RATHERRECENTFIRST
|
||||
|
||||
// Add an option in the menu to run all auto#.g files
|
||||
//#define MENU_ADDAUTOSTART
|
||||
|
||||
/**
|
||||
|
@ -684,69 +686,12 @@
|
|||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
// Default mesh area is an area with an inset margin on the print area.
|
||||
// Below are the macros that are used to define the borders for the mesh area,
|
||||
// made available here for specialized needs, ie dual extruder setup.
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define MESH_MIN_X (max(MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MIN_Y (max(MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define MESH_MAX_X (min(X_BED_SIZE - (MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MAX_Y (min(Y_BED_SIZE - (MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define MESH_MIN_X (max(X_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MIN_Y (max(Y_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MAX_X (min(X_MAX_POS - (MESH_INSET), X_BED_SIZE))
|
||||
#define MESH_MAX_Y (min(Y_MAX_POS - (MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define UBL_MESH_MIN_X (max(UBL_MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MIN_Y (max(UBL_MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_X (min(X_BED_SIZE - (UBL_MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_Y (min(Y_BED_SIZE - (UBL_MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define UBL_MESH_MIN_X (max(X_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MIN_Y (max(Y_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MAX_X (min(X_MAX_POS - (UBL_MESH_INSET), X_BED_SIZE))
|
||||
#define UBL_MESH_MAX_Y (min(Y_MAX_POS - (UBL_MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
//#define MESH_MIN_X MESH_INSET
|
||||
//#define MESH_MIN_Y MESH_INSET
|
||||
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
|
||||
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
|
|
@ -919,7 +919,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -932,6 +932,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -489,12 +489,14 @@
|
|||
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||
#define SD_DETECT_INVERTED
|
||||
|
||||
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||
|
||||
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||
// using:
|
||||
// Reverse SD sort to show "more recent" files first, according to the card's FAT.
|
||||
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
|
||||
#define SDCARD_RATHERRECENTFIRST
|
||||
|
||||
// Add an option in the menu to run all auto#.g files
|
||||
//#define MENU_ADDAUTOSTART
|
||||
|
||||
/**
|
||||
|
@ -684,69 +686,12 @@
|
|||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
// Default mesh area is an area with an inset margin on the print area.
|
||||
// Below are the macros that are used to define the borders for the mesh area,
|
||||
// made available here for specialized needs, ie dual extruder setup.
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define MESH_MIN_X (max(MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MIN_Y (max(MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define MESH_MAX_X (min(X_BED_SIZE - (MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MAX_Y (min(Y_BED_SIZE - (MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define MESH_MIN_X (max(X_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MIN_Y (max(Y_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MAX_X (min(X_MAX_POS - (MESH_INSET), X_BED_SIZE))
|
||||
#define MESH_MAX_Y (min(Y_MAX_POS - (MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define UBL_MESH_MIN_X (max(UBL_MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MIN_Y (max(UBL_MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_X (min(X_BED_SIZE - (UBL_MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_Y (min(Y_BED_SIZE - (UBL_MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define UBL_MESH_MIN_X (max(X_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MIN_Y (max(Y_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MAX_X (min(X_MAX_POS - (UBL_MESH_INSET), X_BED_SIZE))
|
||||
#define UBL_MESH_MAX_Y (min(Y_MAX_POS - (UBL_MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
//#define MESH_MIN_X MESH_INSET
|
||||
//#define MESH_MIN_Y MESH_INSET
|
||||
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
|
||||
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
|
|
@ -919,7 +919,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -932,6 +932,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -934,7 +934,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y 10
|
||||
|
||||
|
@ -947,6 +947,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -489,12 +489,14 @@
|
|||
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||
#define SD_DETECT_INVERTED
|
||||
|
||||
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||
|
||||
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||
// using:
|
||||
// Reverse SD sort to show "more recent" files first, according to the card's FAT.
|
||||
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
|
||||
#define SDCARD_RATHERRECENTFIRST
|
||||
|
||||
// Add an option in the menu to run all auto#.g files
|
||||
//#define MENU_ADDAUTOSTART
|
||||
|
||||
/**
|
||||
|
@ -685,69 +687,12 @@
|
|||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
// Default mesh area is an area with an inset margin on the print area.
|
||||
// Below are the macros that are used to define the borders for the mesh area,
|
||||
// made available here for specialized needs, ie dual extruder setup.
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define MESH_MIN_X (max(MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MIN_Y (max(MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define MESH_MAX_X (min(X_BED_SIZE - (MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MAX_Y (min(Y_BED_SIZE - (MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define MESH_MIN_X (max(X_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MIN_Y (max(Y_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MAX_X (min(X_MAX_POS - (MESH_INSET), X_BED_SIZE))
|
||||
#define MESH_MAX_Y (min(Y_MAX_POS - (MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define UBL_MESH_MIN_X (max(UBL_MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MIN_Y (max(UBL_MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_X (min(X_BED_SIZE - (UBL_MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_Y (min(Y_BED_SIZE - (UBL_MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define UBL_MESH_MIN_X (max(X_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MIN_Y (max(Y_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MAX_X (min(X_MAX_POS - (UBL_MESH_INSET), X_BED_SIZE))
|
||||
#define UBL_MESH_MAX_Y (min(Y_MAX_POS - (UBL_MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
//#define MESH_MIN_X MESH_INSET
|
||||
//#define MESH_MIN_Y MESH_INSET
|
||||
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
|
||||
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
|
|
@ -952,7 +952,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -965,6 +965,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -937,7 +937,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -950,6 +950,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -941,7 +941,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -954,6 +954,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -489,12 +489,14 @@
|
|||
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||
#define SD_DETECT_INVERTED
|
||||
|
||||
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||
|
||||
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||
// using:
|
||||
// Reverse SD sort to show "more recent" files first, according to the card's FAT.
|
||||
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
|
||||
#define SDCARD_RATHERRECENTFIRST
|
||||
|
||||
// Add an option in the menu to run all auto#.g files
|
||||
//#define MENU_ADDAUTOSTART
|
||||
|
||||
/**
|
||||
|
@ -684,69 +686,12 @@
|
|||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
// Default mesh area is an area with an inset margin on the print area.
|
||||
// Below are the macros that are used to define the borders for the mesh area,
|
||||
// made available here for specialized needs, ie dual extruder setup.
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define MESH_MIN_X (max(MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MIN_Y (max(MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define MESH_MAX_X (min(X_BED_SIZE - (MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MAX_Y (min(Y_BED_SIZE - (MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define MESH_MIN_X (max(X_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MIN_Y (max(Y_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MAX_X (min(X_MAX_POS - (MESH_INSET), X_BED_SIZE))
|
||||
#define MESH_MAX_Y (min(Y_MAX_POS - (MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define UBL_MESH_MIN_X (max(UBL_MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MIN_Y (max(UBL_MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_X (min(X_BED_SIZE - (UBL_MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_Y (min(Y_BED_SIZE - (UBL_MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define UBL_MESH_MIN_X (max(X_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MIN_Y (max(Y_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MAX_X (min(X_MAX_POS - (UBL_MESH_INSET), X_BED_SIZE))
|
||||
#define UBL_MESH_MAX_Y (min(Y_MAX_POS - (UBL_MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
//#define MESH_MIN_X MESH_INSET
|
||||
//#define MESH_MIN_Y MESH_INSET
|
||||
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
|
||||
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
|
|
@ -965,7 +965,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -978,6 +978,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -489,12 +489,14 @@
|
|||
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||
#define SD_DETECT_INVERTED
|
||||
|
||||
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||
|
||||
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||
// using:
|
||||
// Reverse SD sort to show "more recent" files first, according to the card's FAT.
|
||||
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
|
||||
#define SDCARD_RATHERRECENTFIRST
|
||||
|
||||
// Add an option in the menu to run all auto#.g files
|
||||
//#define MENU_ADDAUTOSTART
|
||||
|
||||
/**
|
||||
|
@ -681,69 +683,12 @@
|
|||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
// Default mesh area is an area with an inset margin on the print area.
|
||||
// Below are the macros that are used to define the borders for the mesh area,
|
||||
// made available here for specialized needs, ie dual extruder setup.
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define MESH_MIN_X (max(MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MIN_Y (max(MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define MESH_MAX_X (min(X_BED_SIZE - (MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MAX_Y (min(Y_BED_SIZE - (MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define MESH_MIN_X (max(X_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MIN_Y (max(Y_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MAX_X (min(X_MAX_POS - (MESH_INSET), X_BED_SIZE))
|
||||
#define MESH_MAX_Y (min(Y_MAX_POS - (MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define UBL_MESH_MIN_X (max(UBL_MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MIN_Y (max(UBL_MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_X (min(X_BED_SIZE - (UBL_MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_Y (min(Y_BED_SIZE - (UBL_MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define UBL_MESH_MIN_X (max(X_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MIN_Y (max(Y_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MAX_X (min(X_MAX_POS - (UBL_MESH_INSET), X_BED_SIZE))
|
||||
#define UBL_MESH_MAX_Y (min(Y_MAX_POS - (UBL_MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
//#define MESH_MIN_X MESH_INSET
|
||||
//#define MESH_MIN_Y MESH_INSET
|
||||
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
|
||||
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
|
|
@ -941,7 +941,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -954,6 +954,7 @@
|
|||
|
||||
//#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -941,7 +941,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -954,6 +954,7 @@
|
|||
|
||||
//#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -939,7 +939,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -952,6 +952,7 @@
|
|||
|
||||
//#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -489,12 +489,14 @@
|
|||
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||
#define SD_DETECT_INVERTED
|
||||
|
||||
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||
|
||||
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||
// using:
|
||||
// Reverse SD sort to show "more recent" files first, according to the card's FAT.
|
||||
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
|
||||
#define SDCARD_RATHERRECENTFIRST
|
||||
|
||||
// Add an option in the menu to run all auto#.g files
|
||||
//#define MENU_ADDAUTOSTART
|
||||
|
||||
/**
|
||||
|
@ -705,69 +707,12 @@
|
|||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
// Default mesh area is an area with an inset margin on the print area.
|
||||
// Below are the macros that are used to define the borders for the mesh area,
|
||||
// made available here for specialized needs, ie dual extruder setup.
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define MESH_MIN_X (max(MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MIN_Y (max(MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define MESH_MAX_X (min(X_BED_SIZE - (MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MAX_Y (min(Y_BED_SIZE - (MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define MESH_MIN_X (max(X_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MIN_Y (max(Y_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MAX_X (min(X_MAX_POS - (MESH_INSET), X_BED_SIZE))
|
||||
#define MESH_MAX_Y (min(Y_MAX_POS - (MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define UBL_MESH_MIN_X (max(UBL_MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MIN_Y (max(UBL_MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_X (min(X_BED_SIZE - (UBL_MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_Y (min(Y_BED_SIZE - (UBL_MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define UBL_MESH_MIN_X (max(X_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MIN_Y (max(Y_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MAX_X (min(X_MAX_POS - (UBL_MESH_INSET), X_BED_SIZE))
|
||||
#define UBL_MESH_MAX_Y (min(Y_MAX_POS - (UBL_MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
//#define MESH_MIN_X MESH_INSET
|
||||
//#define MESH_MIN_Y MESH_INSET
|
||||
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
|
||||
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
|
|
@ -937,7 +937,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -950,6 +950,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -935,7 +935,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -948,6 +948,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -489,12 +489,14 @@
|
|||
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||
#define SD_DETECT_INVERTED
|
||||
|
||||
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||
|
||||
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||
// using:
|
||||
// Reverse SD sort to show "more recent" files first, according to the card's FAT.
|
||||
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
|
||||
#define SDCARD_RATHERRECENTFIRST
|
||||
|
||||
// Add an option in the menu to run all auto#.g files
|
||||
//#define MENU_ADDAUTOSTART
|
||||
|
||||
/**
|
||||
|
@ -684,69 +686,12 @@
|
|||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
// Default mesh area is an area with an inset margin on the print area.
|
||||
// Below are the macros that are used to define the borders for the mesh area,
|
||||
// made available here for specialized needs, ie dual extruder setup.
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define MESH_MIN_X (max(MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MIN_Y (max(MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define MESH_MAX_X (min(X_BED_SIZE - (MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MAX_Y (min(Y_BED_SIZE - (MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define MESH_MIN_X (max(X_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MIN_Y (max(Y_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MAX_X (min(X_MAX_POS - (MESH_INSET), X_BED_SIZE))
|
||||
#define MESH_MAX_Y (min(Y_MAX_POS - (MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define UBL_MESH_MIN_X (max(UBL_MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MIN_Y (max(UBL_MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_X (min(X_BED_SIZE - (UBL_MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_Y (min(Y_BED_SIZE - (UBL_MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define UBL_MESH_MIN_X (max(X_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MIN_Y (max(Y_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MAX_X (min(X_MAX_POS - (UBL_MESH_INSET), X_BED_SIZE))
|
||||
#define UBL_MESH_MAX_Y (min(Y_MAX_POS - (UBL_MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
//#define MESH_MIN_X MESH_INSET
|
||||
//#define MESH_MIN_Y MESH_INSET
|
||||
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
|
||||
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
|
|
@ -949,7 +949,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -962,6 +962,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -489,12 +489,14 @@
|
|||
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||
#define SD_DETECT_INVERTED
|
||||
|
||||
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||
|
||||
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||
// using:
|
||||
// Reverse SD sort to show "more recent" files first, according to the card's FAT.
|
||||
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
|
||||
#define SDCARD_RATHERRECENTFIRST
|
||||
|
||||
// Add an option in the menu to run all auto#.g files
|
||||
//#define MENU_ADDAUTOSTART
|
||||
|
||||
/**
|
||||
|
@ -684,69 +686,12 @@
|
|||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
// Default mesh area is an area with an inset margin on the print area.
|
||||
// Below are the macros that are used to define the borders for the mesh area,
|
||||
// made available here for specialized needs, ie dual extruder setup.
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define MESH_MIN_X (max(MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MIN_Y (max(MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define MESH_MAX_X (min(X_BED_SIZE - (MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MAX_Y (min(Y_BED_SIZE - (MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define MESH_MIN_X (max(X_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MIN_Y (max(Y_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MAX_X (min(X_MAX_POS - (MESH_INSET), X_BED_SIZE))
|
||||
#define MESH_MAX_Y (min(Y_MAX_POS - (MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define UBL_MESH_MIN_X (max(UBL_MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MIN_Y (max(UBL_MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_X (min(X_BED_SIZE - (UBL_MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_Y (min(Y_BED_SIZE - (UBL_MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define UBL_MESH_MIN_X (max(X_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MIN_Y (max(Y_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MAX_X (min(X_MAX_POS - (UBL_MESH_INSET), X_BED_SIZE))
|
||||
#define UBL_MESH_MAX_Y (min(Y_MAX_POS - (UBL_MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
//#define MESH_MIN_X MESH_INSET
|
||||
//#define MESH_MIN_Y MESH_INSET
|
||||
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
|
||||
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
|
|
@ -968,7 +968,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -981,6 +981,7 @@
|
|||
|
||||
//#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -478,12 +478,14 @@
|
|||
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||
#define SD_DETECT_INVERTED
|
||||
|
||||
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||
|
||||
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||
// using:
|
||||
// Reverse SD sort to show "more recent" files first, according to the card's FAT.
|
||||
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
|
||||
#define SDCARD_RATHERRECENTFIRST
|
||||
|
||||
// Add an option in the menu to run all auto#.g files
|
||||
//#define MENU_ADDAUTOSTART
|
||||
|
||||
/**
|
||||
|
@ -673,69 +675,12 @@
|
|||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
// Default mesh area is an area with an inset margin on the print area.
|
||||
// Below are the macros that are used to define the borders for the mesh area,
|
||||
// made available here for specialized needs, ie dual extruder setup.
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define MESH_MIN_X (max(MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MIN_Y (max(MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define MESH_MAX_X (min(X_BED_SIZE - (MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MAX_Y (min(Y_BED_SIZE - (MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define MESH_MIN_X (max(X_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MIN_Y (max(Y_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MAX_X (min(X_MAX_POS - (MESH_INSET), X_BED_SIZE))
|
||||
#define MESH_MAX_Y (min(Y_MAX_POS - (MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define UBL_MESH_MIN_X (max(UBL_MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MIN_Y (max(UBL_MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_X (min(X_BED_SIZE - (UBL_MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_Y (min(Y_BED_SIZE - (UBL_MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define UBL_MESH_MIN_X (max(X_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MIN_Y (max(Y_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MAX_X (min(X_MAX_POS - (UBL_MESH_INSET), X_BED_SIZE))
|
||||
#define UBL_MESH_MAX_Y (min(Y_MAX_POS - (UBL_MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
//#define MESH_MIN_X MESH_INSET
|
||||
//#define MESH_MIN_Y MESH_INSET
|
||||
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
|
||||
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
|
|
@ -993,7 +993,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -1006,6 +1006,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -489,12 +489,14 @@
|
|||
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||
#define SD_DETECT_INVERTED
|
||||
|
||||
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||
|
||||
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||
// using:
|
||||
// Reverse SD sort to show "more recent" files first, according to the card's FAT.
|
||||
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
|
||||
#define SDCARD_RATHERRECENTFIRST
|
||||
|
||||
// Add an option in the menu to run all auto#.g files
|
||||
//#define MENU_ADDAUTOSTART
|
||||
|
||||
/**
|
||||
|
@ -684,69 +686,12 @@
|
|||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
// Default mesh area is an area with an inset margin on the print area.
|
||||
// Below are the macros that are used to define the borders for the mesh area,
|
||||
// made available here for specialized needs, ie dual extruder setup.
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define MESH_MIN_X (max(MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MIN_Y (max(MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define MESH_MAX_X (min(X_BED_SIZE - (MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MAX_Y (min(Y_BED_SIZE - (MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define MESH_MIN_X (max(X_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MIN_Y (max(Y_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MAX_X (min(X_MAX_POS - (MESH_INSET), X_BED_SIZE))
|
||||
#define MESH_MAX_Y (min(Y_MAX_POS - (MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define UBL_MESH_MIN_X (max(UBL_MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MIN_Y (max(UBL_MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_X (min(X_BED_SIZE - (UBL_MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_Y (min(Y_BED_SIZE - (UBL_MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define UBL_MESH_MIN_X (max(X_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MIN_Y (max(Y_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MAX_X (min(X_MAX_POS - (UBL_MESH_INSET), X_BED_SIZE))
|
||||
#define UBL_MESH_MAX_Y (min(Y_MAX_POS - (UBL_MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
//#define MESH_MIN_X MESH_INSET
|
||||
//#define MESH_MIN_Y MESH_INSET
|
||||
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
|
||||
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
|
|
@ -967,7 +967,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -980,6 +980,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -502,7 +502,7 @@
|
|||
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||
#define SD_DETECT_INVERTED
|
||||
|
||||
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||
|
||||
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||
|
@ -694,69 +694,12 @@
|
|||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
// Default mesh area is an area with an inset margin on the print area.
|
||||
// Below are the macros that are used to define the borders for the mesh area,
|
||||
// made available here for specialized needs, ie dual extruder setup.
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define MESH_MIN_X (max(MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MIN_Y (max(MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define MESH_MAX_X (min(X_BED_SIZE - (MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MAX_Y (min(Y_BED_SIZE - (MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define MESH_MIN_X (max(X_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MIN_Y (max(Y_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MAX_X (min(X_MAX_POS - (MESH_INSET), X_BED_SIZE))
|
||||
#define MESH_MAX_Y (min(Y_MAX_POS - (MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define UBL_MESH_MIN_X (max(UBL_MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MIN_Y (max(UBL_MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_X (min(X_BED_SIZE - (UBL_MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_Y (min(Y_BED_SIZE - (UBL_MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define UBL_MESH_MIN_X (max(X_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MIN_Y (max(Y_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MAX_X (min(X_MAX_POS - (UBL_MESH_INSET), X_BED_SIZE))
|
||||
#define UBL_MESH_MAX_Y (min(Y_MAX_POS - (UBL_MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
//#define MESH_MIN_X MESH_INSET
|
||||
//#define MESH_MIN_Y MESH_INSET
|
||||
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
|
||||
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
|
|
@ -937,7 +937,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -950,6 +950,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -489,12 +489,14 @@
|
|||
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||
#define SD_DETECT_INVERTED
|
||||
|
||||
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||
|
||||
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||
// using:
|
||||
// Reverse SD sort to show "more recent" files first, according to the card's FAT.
|
||||
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
|
||||
#define SDCARD_RATHERRECENTFIRST
|
||||
|
||||
// Add an option in the menu to run all auto#.g files
|
||||
//#define MENU_ADDAUTOSTART
|
||||
|
||||
/**
|
||||
|
@ -684,69 +686,12 @@
|
|||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
// Default mesh area is an area with an inset margin on the print area.
|
||||
// Below are the macros that are used to define the borders for the mesh area,
|
||||
// made available here for specialized needs, ie dual extruder setup.
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define MESH_MIN_X (max(MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MIN_Y (max(MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define MESH_MAX_X (min(X_BED_SIZE - (MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MAX_Y (min(Y_BED_SIZE - (MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define MESH_MIN_X (max(X_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MIN_Y (max(Y_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MAX_X (min(X_MAX_POS - (MESH_INSET), X_BED_SIZE))
|
||||
#define MESH_MAX_Y (min(Y_MAX_POS - (MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define UBL_MESH_MIN_X (max(UBL_MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MIN_Y (max(UBL_MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_X (min(X_BED_SIZE - (UBL_MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_Y (min(Y_BED_SIZE - (UBL_MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define UBL_MESH_MIN_X (max(X_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MIN_Y (max(Y_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MAX_X (min(X_MAX_POS - (UBL_MESH_INSET), X_BED_SIZE))
|
||||
#define UBL_MESH_MAX_Y (min(Y_MAX_POS - (UBL_MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
//#define MESH_MIN_X MESH_INSET
|
||||
//#define MESH_MIN_Y MESH_INSET
|
||||
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
|
||||
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
|
|
@ -937,7 +937,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -950,6 +950,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -937,7 +937,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -950,6 +950,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -1063,7 +1063,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -1078,6 +1078,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -491,12 +491,14 @@
|
|||
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||
#define SD_DETECT_INVERTED
|
||||
|
||||
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||
|
||||
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||
// using:
|
||||
// Reverse SD sort to show "more recent" files first, according to the card's FAT.
|
||||
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
|
||||
#define SDCARD_RATHERRECENTFIRST
|
||||
|
||||
// Add an option in the menu to run all auto#.g files
|
||||
//#define MENU_ADDAUTOSTART
|
||||
|
||||
/**
|
||||
|
@ -686,69 +688,12 @@
|
|||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
// Default mesh area is an area with an inset margin on the print area.
|
||||
// Below are the macros that are used to define the borders for the mesh area,
|
||||
// made available here for specialized needs, ie dual extruder setup.
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define MESH_MIN_X (max(MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MIN_Y (max(MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define MESH_MAX_X (min(X_BED_SIZE - (MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MAX_Y (min(Y_BED_SIZE - (MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define MESH_MIN_X (max(X_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MIN_Y (max(Y_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MAX_X (min(X_MAX_POS - (MESH_INSET), X_BED_SIZE))
|
||||
#define MESH_MAX_Y (min(Y_MAX_POS - (MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define UBL_MESH_MIN_X (max(UBL_MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MIN_Y (max(UBL_MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_X (min(X_BED_SIZE - (UBL_MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_Y (min(Y_BED_SIZE - (UBL_MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define UBL_MESH_MIN_X (max(X_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MIN_Y (max(Y_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MAX_X (min(X_MAX_POS - (UBL_MESH_INSET), X_BED_SIZE))
|
||||
#define UBL_MESH_MAX_Y (min(Y_MAX_POS - (UBL_MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
//#define MESH_MIN_X MESH_INSET
|
||||
//#define MESH_MIN_Y MESH_INSET
|
||||
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
|
||||
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
|
|
@ -1057,7 +1057,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -1072,6 +1072,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -491,12 +491,14 @@
|
|||
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||
#define SD_DETECT_INVERTED
|
||||
|
||||
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||
|
||||
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||
// using:
|
||||
// Reverse SD sort to show "more recent" files first, according to the card's FAT.
|
||||
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
|
||||
#define SDCARD_RATHERRECENTFIRST
|
||||
|
||||
// Add an option in the menu to run all auto#.g files
|
||||
//#define MENU_ADDAUTOSTART
|
||||
|
||||
/**
|
||||
|
@ -686,69 +688,12 @@
|
|||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
// Default mesh area is an area with an inset margin on the print area.
|
||||
// Below are the macros that are used to define the borders for the mesh area,
|
||||
// made available here for specialized needs, ie dual extruder setup.
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define MESH_MIN_X (max(MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MIN_Y (max(MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define MESH_MAX_X (min(X_BED_SIZE - (MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MAX_Y (min(Y_BED_SIZE - (MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define MESH_MIN_X (max(X_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MIN_Y (max(Y_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MAX_X (min(X_MAX_POS - (MESH_INSET), X_BED_SIZE))
|
||||
#define MESH_MAX_Y (min(Y_MAX_POS - (MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define UBL_MESH_MIN_X (max(UBL_MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MIN_Y (max(UBL_MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_X (min(X_BED_SIZE - (UBL_MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_Y (min(Y_BED_SIZE - (UBL_MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define UBL_MESH_MIN_X (max(X_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MIN_Y (max(Y_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MAX_X (min(X_MAX_POS - (UBL_MESH_INSET), X_BED_SIZE))
|
||||
#define UBL_MESH_MAX_Y (min(Y_MAX_POS - (UBL_MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
//#define MESH_MIN_X MESH_INSET
|
||||
//#define MESH_MIN_Y MESH_INSET
|
||||
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
|
||||
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
|
|
@ -1052,7 +1052,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -1067,6 +1067,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -491,12 +491,14 @@
|
|||
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||
#define SD_DETECT_INVERTED
|
||||
|
||||
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||
|
||||
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||
// using:
|
||||
// Reverse SD sort to show "more recent" files first, according to the card's FAT.
|
||||
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
|
||||
#define SDCARD_RATHERRECENTFIRST
|
||||
|
||||
// Add an option in the menu to run all auto#.g files
|
||||
//#define MENU_ADDAUTOSTART
|
||||
|
||||
/**
|
||||
|
@ -686,69 +688,12 @@
|
|||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
// Default mesh area is an area with an inset margin on the print area.
|
||||
// Below are the macros that are used to define the borders for the mesh area,
|
||||
// made available here for specialized needs, ie dual extruder setup.
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define MESH_MIN_X (max(MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MIN_Y (max(MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define MESH_MAX_X (min(X_BED_SIZE - (MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MAX_Y (min(Y_BED_SIZE - (MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define MESH_MIN_X (max(X_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MIN_Y (max(Y_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MAX_X (min(X_MAX_POS - (MESH_INSET), X_BED_SIZE))
|
||||
#define MESH_MAX_Y (min(Y_MAX_POS - (MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define UBL_MESH_MIN_X (max(UBL_MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MIN_Y (max(UBL_MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_X (min(X_BED_SIZE - (UBL_MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_Y (min(Y_BED_SIZE - (UBL_MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define UBL_MESH_MIN_X (max(X_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MIN_Y (max(Y_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MAX_X (min(X_MAX_POS - (UBL_MESH_INSET), X_BED_SIZE))
|
||||
#define UBL_MESH_MAX_Y (min(Y_MAX_POS - (UBL_MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
//#define MESH_MIN_X MESH_INSET
|
||||
//#define MESH_MIN_Y MESH_INSET
|
||||
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
|
||||
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
|
|
@ -1055,7 +1055,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -1070,6 +1070,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -491,12 +491,14 @@
|
|||
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||
#define SD_DETECT_INVERTED
|
||||
|
||||
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||
|
||||
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||
// using:
|
||||
// Reverse SD sort to show "more recent" files first, according to the card's FAT.
|
||||
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
|
||||
#define SDCARD_RATHERRECENTFIRST
|
||||
|
||||
// Add an option in the menu to run all auto#.g files
|
||||
//#define MENU_ADDAUTOSTART
|
||||
|
||||
/**
|
||||
|
@ -686,69 +688,12 @@
|
|||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
// Default mesh area is an area with an inset margin on the print area.
|
||||
// Below are the macros that are used to define the borders for the mesh area,
|
||||
// made available here for specialized needs, ie dual extruder setup.
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define MESH_MIN_X (max(MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MIN_Y (max(MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define MESH_MAX_X (min(X_BED_SIZE - (MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MAX_Y (min(Y_BED_SIZE - (MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define MESH_MIN_X (max(X_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MIN_Y (max(Y_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MAX_X (min(X_MAX_POS - (MESH_INSET), X_BED_SIZE))
|
||||
#define MESH_MAX_Y (min(Y_MAX_POS - (MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define UBL_MESH_MIN_X (max(UBL_MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MIN_Y (max(UBL_MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_X (min(X_BED_SIZE - (UBL_MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_Y (min(Y_BED_SIZE - (UBL_MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define UBL_MESH_MIN_X (max(X_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MIN_Y (max(Y_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MAX_X (min(X_MAX_POS - (UBL_MESH_INSET), X_BED_SIZE))
|
||||
#define UBL_MESH_MAX_Y (min(Y_MAX_POS - (UBL_MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
//#define MESH_MIN_X MESH_INSET
|
||||
//#define MESH_MIN_Y MESH_INSET
|
||||
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
|
||||
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
|
|
@ -1055,7 +1055,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -1070,6 +1070,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -496,12 +496,14 @@
|
|||
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||
#define SD_DETECT_INVERTED
|
||||
|
||||
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||
|
||||
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||
// using:
|
||||
// Reverse SD sort to show "more recent" files first, according to the card's FAT.
|
||||
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
|
||||
#define SDCARD_RATHERRECENTFIRST
|
||||
|
||||
// Add an option in the menu to run all auto#.g files
|
||||
//#define MENU_ADDAUTOSTART
|
||||
|
||||
/**
|
||||
|
@ -691,69 +693,12 @@
|
|||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
// Default mesh area is an area with an inset margin on the print area.
|
||||
// Below are the macros that are used to define the borders for the mesh area,
|
||||
// made available here for specialized needs, ie dual extruder setup.
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define MESH_MIN_X (max(MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MIN_Y (max(MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define MESH_MAX_X (min(X_BED_SIZE - (MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MAX_Y (min(Y_BED_SIZE - (MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define MESH_MIN_X (max(X_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MIN_Y (max(Y_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MAX_X (min(X_MAX_POS - (MESH_INSET), X_BED_SIZE))
|
||||
#define MESH_MAX_Y (min(Y_MAX_POS - (MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define UBL_MESH_MIN_X (max(UBL_MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MIN_Y (max(UBL_MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_X (min(X_BED_SIZE - (UBL_MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_Y (min(Y_BED_SIZE - (UBL_MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define UBL_MESH_MIN_X (max(X_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MIN_Y (max(Y_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MAX_X (min(X_MAX_POS - (UBL_MESH_INSET), X_BED_SIZE))
|
||||
#define UBL_MESH_MAX_Y (min(Y_MAX_POS - (UBL_MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
//#define MESH_MIN_X MESH_INSET
|
||||
//#define MESH_MIN_Y MESH_INSET
|
||||
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
|
||||
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
|
|
@ -1064,7 +1064,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -1079,6 +1079,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -491,12 +491,14 @@
|
|||
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||
#define SD_DETECT_INVERTED
|
||||
|
||||
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||
|
||||
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||
// using:
|
||||
// Reverse SD sort to show "more recent" files first, according to the card's FAT.
|
||||
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
|
||||
#define SDCARD_RATHERRECENTFIRST
|
||||
|
||||
// Add an option in the menu to run all auto#.g files
|
||||
//#define MENU_ADDAUTOSTART
|
||||
|
||||
/**
|
||||
|
@ -686,69 +688,12 @@
|
|||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
// Default mesh area is an area with an inset margin on the print area.
|
||||
// Below are the macros that are used to define the borders for the mesh area,
|
||||
// made available here for specialized needs, ie dual extruder setup.
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define MESH_MIN_X (max(MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MIN_Y (max(MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define MESH_MAX_X (min(X_BED_SIZE - (MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MAX_Y (min(Y_BED_SIZE - (MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define MESH_MIN_X (max(X_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MIN_Y (max(Y_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MAX_X (min(X_MAX_POS - (MESH_INSET), X_BED_SIZE))
|
||||
#define MESH_MAX_Y (min(Y_MAX_POS - (MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define UBL_MESH_MIN_X (max(UBL_MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MIN_Y (max(UBL_MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_X (min(X_BED_SIZE - (UBL_MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_Y (min(Y_BED_SIZE - (UBL_MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define UBL_MESH_MIN_X (max(X_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MIN_Y (max(Y_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MAX_X (min(X_MAX_POS - (UBL_MESH_INSET), X_BED_SIZE))
|
||||
#define UBL_MESH_MAX_Y (min(Y_MAX_POS - (UBL_MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
//#define MESH_MIN_X MESH_INSET
|
||||
//#define MESH_MIN_Y MESH_INSET
|
||||
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
|
||||
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
|
|
@ -951,7 +951,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 45 // Mesh inset margin on print area
|
||||
#define MESH_INSET 45 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -964,6 +964,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -489,12 +489,14 @@
|
|||
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||
#define SD_DETECT_INVERTED
|
||||
|
||||
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||
|
||||
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||
// using:
|
||||
// Reverse SD sort to show "more recent" files first, according to the card's FAT.
|
||||
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
|
||||
#define SDCARD_RATHERRECENTFIRST
|
||||
|
||||
// Add an option in the menu to run all auto#.g files
|
||||
//#define MENU_ADDAUTOSTART
|
||||
|
||||
/**
|
||||
|
@ -684,69 +686,12 @@
|
|||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
// Default mesh area is an area with an inset margin on the print area.
|
||||
// Below are the macros that are used to define the borders for the mesh area,
|
||||
// made available here for specialized needs, ie dual extruder setup.
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define MESH_MIN_X (max(MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MIN_Y (max(MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define MESH_MAX_X (min(X_BED_SIZE - (MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MAX_Y (min(Y_BED_SIZE - (MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define MESH_MIN_X (max(X_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MIN_Y (max(Y_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MAX_X (min(X_MAX_POS - (MESH_INSET), X_BED_SIZE))
|
||||
#define MESH_MAX_Y (min(Y_MAX_POS - (MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define UBL_MESH_MIN_X (max(UBL_MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MIN_Y (max(UBL_MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_X (min(X_BED_SIZE - (UBL_MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_Y (min(Y_BED_SIZE - (UBL_MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define UBL_MESH_MIN_X (max(X_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MIN_Y (max(Y_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MAX_X (min(X_MAX_POS - (UBL_MESH_INSET), X_BED_SIZE))
|
||||
#define UBL_MESH_MAX_Y (min(Y_MAX_POS - (UBL_MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
//#define MESH_MIN_X MESH_INSET
|
||||
//#define MESH_MIN_Y MESH_INSET
|
||||
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
|
||||
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
|
|
@ -940,7 +940,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -953,6 +953,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -489,12 +489,14 @@
|
|||
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||
//#define SD_DETECT_INVERTED
|
||||
|
||||
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||
|
||||
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||
// using:
|
||||
// Reverse SD sort to show "more recent" files first, according to the card's FAT.
|
||||
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
|
||||
#define SDCARD_RATHERRECENTFIRST
|
||||
|
||||
// Add an option in the menu to run all auto#.g files
|
||||
//#define MENU_ADDAUTOSTART
|
||||
|
||||
/**
|
||||
|
@ -684,69 +686,12 @@
|
|||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
// Default mesh area is an area with an inset margin on the print area.
|
||||
// Below are the macros that are used to define the borders for the mesh area,
|
||||
// made available here for specialized needs, ie dual extruder setup.
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define MESH_MIN_X (max(MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MIN_Y (max(MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define MESH_MAX_X (min(X_BED_SIZE - (MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MAX_Y (min(Y_BED_SIZE - (MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define MESH_MIN_X (max(X_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MIN_Y (max(Y_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MAX_X (min(X_MAX_POS - (MESH_INSET), X_BED_SIZE))
|
||||
#define MESH_MAX_Y (min(Y_MAX_POS - (MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define UBL_MESH_MIN_X (max(UBL_MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MIN_Y (max(UBL_MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_X (min(X_BED_SIZE - (UBL_MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_Y (min(Y_BED_SIZE - (UBL_MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define UBL_MESH_MIN_X (max(X_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MIN_Y (max(Y_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MAX_X (min(X_MAX_POS - (UBL_MESH_INSET), X_BED_SIZE))
|
||||
#define UBL_MESH_MAX_Y (min(Y_MAX_POS - (UBL_MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
//#define MESH_MIN_X MESH_INSET
|
||||
//#define MESH_MIN_Y MESH_INSET
|
||||
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
|
||||
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
|
|
@ -924,7 +924,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -937,6 +937,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -932,7 +932,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -945,6 +945,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -489,12 +489,14 @@
|
|||
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||
#define SD_DETECT_INVERTED
|
||||
|
||||
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||
|
||||
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||
// using:
|
||||
// Reverse SD sort to show "more recent" files first, according to the card's FAT.
|
||||
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
|
||||
#define SDCARD_RATHERRECENTFIRST
|
||||
|
||||
// Add an option in the menu to run all auto#.g files
|
||||
//#define MENU_ADDAUTOSTART
|
||||
|
||||
/**
|
||||
|
@ -684,69 +686,12 @@
|
|||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
// Default mesh area is an area with an inset margin on the print area.
|
||||
// Below are the macros that are used to define the borders for the mesh area,
|
||||
// made available here for specialized needs, ie dual extruder setup.
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define MESH_MIN_X (max(MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MIN_Y (max(MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define MESH_MAX_X (min(X_BED_SIZE - (MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MAX_Y (min(Y_BED_SIZE - (MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define MESH_MIN_X (max(X_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MIN_Y (max(Y_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MAX_X (min(X_MAX_POS - (MESH_INSET), X_BED_SIZE))
|
||||
#define MESH_MAX_Y (min(Y_MAX_POS - (MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define UBL_MESH_MIN_X (max(UBL_MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MIN_Y (max(UBL_MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_X (min(X_BED_SIZE - (UBL_MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_Y (min(Y_BED_SIZE - (UBL_MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define UBL_MESH_MIN_X (max(X_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MIN_Y (max(Y_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MAX_X (min(X_MAX_POS - (UBL_MESH_INSET), X_BED_SIZE))
|
||||
#define UBL_MESH_MAX_Y (min(Y_MAX_POS - (UBL_MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
//#define MESH_MIN_X MESH_INSET
|
||||
//#define MESH_MIN_Y MESH_INSET
|
||||
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
|
||||
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
|
|
@ -942,7 +942,7 @@
|
|||
//========================= Unified Bed Leveling ============================
|
||||
//===========================================================================
|
||||
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
|
@ -955,6 +955,7 @@
|
|||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
|
|
|
@ -489,12 +489,14 @@
|
|||
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||
#define SD_DETECT_INVERTED
|
||||
|
||||
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||
|
||||
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||
// using:
|
||||
// Reverse SD sort to show "more recent" files first, according to the card's FAT.
|
||||
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
|
||||
#define SDCARD_RATHERRECENTFIRST
|
||||
|
||||
// Add an option in the menu to run all auto#.g files
|
||||
//#define MENU_ADDAUTOSTART
|
||||
|
||||
/**
|
||||
|
@ -684,69 +686,12 @@
|
|||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#endif
|
||||
|
||||
// Default mesh area is an area with an inset margin on the print area.
|
||||
// Below are the macros that are used to define the borders for the mesh area,
|
||||
// made available here for specialized needs, ie dual extruder setup.
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + MESH_INSET)
|
||||
#define MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#define MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define MESH_MIN_X (max(MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MIN_Y (max(MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define MESH_MAX_X (min(X_BED_SIZE - (MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define MESH_MAX_Y (min(Y_BED_SIZE - (MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define MESH_MIN_X (max(X_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MIN_Y (max(Y_MIN_POS + MESH_INSET, 0))
|
||||
#define MESH_MAX_X (min(X_MAX_POS - (MESH_INSET), X_BED_SIZE))
|
||||
#define MESH_MAX_Y (min(Y_MAX_POS - (MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#elif IS_SCARA
|
||||
#define UBL_MESH_MIN_X (X_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MIN_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS) + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_X (X_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MAX_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS - (UBL_MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define UBL_MESH_MIN_X (max(UBL_MESH_INSET, 0) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MIN_Y (max(UBL_MESH_INSET, 0) - (Y_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_X (min(X_BED_SIZE - (UBL_MESH_INSET), X_BED_SIZE) - (X_BED_SIZE) / 2)
|
||||
#define UBL_MESH_MAX_Y (min(Y_BED_SIZE - (UBL_MESH_INSET), Y_BED_SIZE) - (Y_BED_SIZE) / 2)
|
||||
#else
|
||||
#define UBL_MESH_MIN_X (max(X_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MIN_Y (max(Y_MIN_POS + UBL_MESH_INSET, 0))
|
||||
#define UBL_MESH_MAX_X (min(X_MAX_POS - (UBL_MESH_INSET), X_BED_SIZE))
|
||||
#define UBL_MESH_MAX_Y (min(Y_MAX_POS - (UBL_MESH_INSET), Y_BED_SIZE))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
//#define MESH_MIN_X MESH_INSET
|
||||
//#define MESH_MIN_Y MESH_INSET
|
||||
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
|
||||
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
|
|
@ -125,9 +125,9 @@
|
|||
SERIAL_ECHO_SP(spaces + 3);
|
||||
serial_echo_xy(GRID_MAX_POINTS_X - 1, GRID_MAX_POINTS_Y - 1);
|
||||
SERIAL_EOL();
|
||||
serial_echo_xy(UBL_MESH_MIN_X, UBL_MESH_MAX_Y);
|
||||
serial_echo_xy(MESH_MIN_X, MESH_MAX_Y);
|
||||
SERIAL_ECHO_SP(spaces);
|
||||
serial_echo_xy(UBL_MESH_MAX_X, UBL_MESH_MAX_Y);
|
||||
serial_echo_xy(MESH_MAX_X, MESH_MAX_Y);
|
||||
SERIAL_EOL();
|
||||
}
|
||||
else {
|
||||
|
@ -174,9 +174,9 @@
|
|||
}
|
||||
|
||||
if (map_type == 0) {
|
||||
serial_echo_xy(UBL_MESH_MIN_X, UBL_MESH_MIN_Y);
|
||||
serial_echo_xy(MESH_MIN_X, MESH_MIN_Y);
|
||||
SERIAL_ECHO_SP(spaces + 4);
|
||||
serial_echo_xy(UBL_MESH_MAX_X, UBL_MESH_MIN_Y);
|
||||
serial_echo_xy(MESH_MAX_X, MESH_MIN_Y);
|
||||
SERIAL_EOL();
|
||||
serial_echo_xy(0, 0);
|
||||
SERIAL_ECHO_SP(spaces + 5);
|
||||
|
|
|
@ -67,8 +67,8 @@ extern uint8_t ubl_cnt;
|
|||
void lcd_quick_feedback();
|
||||
#endif
|
||||
|
||||
#define MESH_X_DIST (float(UBL_MESH_MAX_X - (UBL_MESH_MIN_X)) / float(GRID_MAX_POINTS_X - 1))
|
||||
#define MESH_Y_DIST (float(UBL_MESH_MAX_Y - (UBL_MESH_MIN_Y)) / float(GRID_MAX_POINTS_Y - 1))
|
||||
#define MESH_X_DIST (float(MESH_MAX_X - (MESH_MIN_X)) / float(GRID_MAX_POINTS_X - 1))
|
||||
#define MESH_Y_DIST (float(MESH_MAX_Y - (MESH_MIN_Y)) / float(GRID_MAX_POINTS_Y - 1))
|
||||
|
||||
class unified_bed_leveling {
|
||||
private:
|
||||
|
@ -162,25 +162,25 @@ class unified_bed_leveling {
|
|||
// 15 is the maximum nubmer of grid points supported + 1 safety margin for now,
|
||||
// until determinism prevails
|
||||
constexpr static float _mesh_index_to_xpos[16] PROGMEM = {
|
||||
UBL_MESH_MIN_X + 0 * (MESH_X_DIST), UBL_MESH_MIN_X + 1 * (MESH_X_DIST),
|
||||
UBL_MESH_MIN_X + 2 * (MESH_X_DIST), UBL_MESH_MIN_X + 3 * (MESH_X_DIST),
|
||||
UBL_MESH_MIN_X + 4 * (MESH_X_DIST), UBL_MESH_MIN_X + 5 * (MESH_X_DIST),
|
||||
UBL_MESH_MIN_X + 6 * (MESH_X_DIST), UBL_MESH_MIN_X + 7 * (MESH_X_DIST),
|
||||
UBL_MESH_MIN_X + 8 * (MESH_X_DIST), UBL_MESH_MIN_X + 9 * (MESH_X_DIST),
|
||||
UBL_MESH_MIN_X + 10 * (MESH_X_DIST), UBL_MESH_MIN_X + 11 * (MESH_X_DIST),
|
||||
UBL_MESH_MIN_X + 12 * (MESH_X_DIST), UBL_MESH_MIN_X + 13 * (MESH_X_DIST),
|
||||
UBL_MESH_MIN_X + 14 * (MESH_X_DIST), UBL_MESH_MIN_X + 15 * (MESH_X_DIST)
|
||||
MESH_MIN_X + 0 * (MESH_X_DIST), MESH_MIN_X + 1 * (MESH_X_DIST),
|
||||
MESH_MIN_X + 2 * (MESH_X_DIST), MESH_MIN_X + 3 * (MESH_X_DIST),
|
||||
MESH_MIN_X + 4 * (MESH_X_DIST), MESH_MIN_X + 5 * (MESH_X_DIST),
|
||||
MESH_MIN_X + 6 * (MESH_X_DIST), MESH_MIN_X + 7 * (MESH_X_DIST),
|
||||
MESH_MIN_X + 8 * (MESH_X_DIST), MESH_MIN_X + 9 * (MESH_X_DIST),
|
||||
MESH_MIN_X + 10 * (MESH_X_DIST), MESH_MIN_X + 11 * (MESH_X_DIST),
|
||||
MESH_MIN_X + 12 * (MESH_X_DIST), MESH_MIN_X + 13 * (MESH_X_DIST),
|
||||
MESH_MIN_X + 14 * (MESH_X_DIST), MESH_MIN_X + 15 * (MESH_X_DIST)
|
||||
};
|
||||
|
||||
constexpr static float _mesh_index_to_ypos[16] PROGMEM = {
|
||||
UBL_MESH_MIN_Y + 0 * (MESH_Y_DIST), UBL_MESH_MIN_Y + 1 * (MESH_Y_DIST),
|
||||
UBL_MESH_MIN_Y + 2 * (MESH_Y_DIST), UBL_MESH_MIN_Y + 3 * (MESH_Y_DIST),
|
||||
UBL_MESH_MIN_Y + 4 * (MESH_Y_DIST), UBL_MESH_MIN_Y + 5 * (MESH_Y_DIST),
|
||||
UBL_MESH_MIN_Y + 6 * (MESH_Y_DIST), UBL_MESH_MIN_Y + 7 * (MESH_Y_DIST),
|
||||
UBL_MESH_MIN_Y + 8 * (MESH_Y_DIST), UBL_MESH_MIN_Y + 9 * (MESH_Y_DIST),
|
||||
UBL_MESH_MIN_Y + 10 * (MESH_Y_DIST), UBL_MESH_MIN_Y + 11 * (MESH_Y_DIST),
|
||||
UBL_MESH_MIN_Y + 12 * (MESH_Y_DIST), UBL_MESH_MIN_Y + 13 * (MESH_Y_DIST),
|
||||
UBL_MESH_MIN_Y + 14 * (MESH_Y_DIST), UBL_MESH_MIN_Y + 15 * (MESH_Y_DIST)
|
||||
MESH_MIN_Y + 0 * (MESH_Y_DIST), MESH_MIN_Y + 1 * (MESH_Y_DIST),
|
||||
MESH_MIN_Y + 2 * (MESH_Y_DIST), MESH_MIN_Y + 3 * (MESH_Y_DIST),
|
||||
MESH_MIN_Y + 4 * (MESH_Y_DIST), MESH_MIN_Y + 5 * (MESH_Y_DIST),
|
||||
MESH_MIN_Y + 6 * (MESH_Y_DIST), MESH_MIN_Y + 7 * (MESH_Y_DIST),
|
||||
MESH_MIN_Y + 8 * (MESH_Y_DIST), MESH_MIN_Y + 9 * (MESH_Y_DIST),
|
||||
MESH_MIN_Y + 10 * (MESH_Y_DIST), MESH_MIN_Y + 11 * (MESH_Y_DIST),
|
||||
MESH_MIN_Y + 12 * (MESH_Y_DIST), MESH_MIN_Y + 13 * (MESH_Y_DIST),
|
||||
MESH_MIN_Y + 14 * (MESH_Y_DIST), MESH_MIN_Y + 15 * (MESH_Y_DIST)
|
||||
};
|
||||
|
||||
static bool g26_debug_flag, has_control_of_lcd_panel;
|
||||
|
@ -196,14 +196,14 @@ class unified_bed_leveling {
|
|||
FORCE_INLINE static void set_z(const int8_t px, const int8_t py, const float &z) { z_values[px][py] = z; }
|
||||
|
||||
static int8_t get_cell_index_x(const float &x) {
|
||||
const int8_t cx = (x - (UBL_MESH_MIN_X)) * (1.0 / (MESH_X_DIST));
|
||||
const int8_t cx = (x - (MESH_MIN_X)) * (1.0 / (MESH_X_DIST));
|
||||
return constrain(cx, 0, (GRID_MAX_POINTS_X) - 1); // -1 is appropriate if we want all movement to the X_MAX
|
||||
} // position. But with this defined this way, it is possible
|
||||
// to extrapolate off of this point even further out. Probably
|
||||
// that is OK because something else should be keeping that from
|
||||
// happening and should not be worried about at this level.
|
||||
static int8_t get_cell_index_y(const float &y) {
|
||||
const int8_t cy = (y - (UBL_MESH_MIN_Y)) * (1.0 / (MESH_Y_DIST));
|
||||
const int8_t cy = (y - (MESH_MIN_Y)) * (1.0 / (MESH_Y_DIST));
|
||||
return constrain(cy, 0, (GRID_MAX_POINTS_Y) - 1); // -1 is appropriate if we want all movement to the Y_MAX
|
||||
} // position. But with this defined this way, it is possible
|
||||
// to extrapolate off of this point even further out. Probably
|
||||
|
@ -211,12 +211,12 @@ class unified_bed_leveling {
|
|||
// happening and should not be worried about at this level.
|
||||
|
||||
static int8_t find_closest_x_index(const float &x) {
|
||||
const int8_t px = (x - (UBL_MESH_MIN_X) + (MESH_X_DIST) * 0.5) * (1.0 / (MESH_X_DIST));
|
||||
const int8_t px = (x - (MESH_MIN_X) + (MESH_X_DIST) * 0.5) * (1.0 / (MESH_X_DIST));
|
||||
return WITHIN(px, 0, GRID_MAX_POINTS_X - 1) ? px : -1;
|
||||
}
|
||||
|
||||
static int8_t find_closest_y_index(const float &y) {
|
||||
const int8_t py = (y - (UBL_MESH_MIN_Y) + (MESH_Y_DIST) * 0.5) * (1.0 / (MESH_Y_DIST));
|
||||
const int8_t py = (y - (MESH_MIN_Y) + (MESH_Y_DIST) * 0.5) * (1.0 / (MESH_Y_DIST));
|
||||
return WITHIN(py, 0, GRID_MAX_POINTS_Y - 1) ? py : -1;
|
||||
}
|
||||
|
||||
|
@ -362,11 +362,11 @@ class unified_bed_leveling {
|
|||
}
|
||||
|
||||
FORCE_INLINE static float mesh_index_to_xpos(const uint8_t i) {
|
||||
return i < GRID_MAX_POINTS_X ? pgm_read_float(&_mesh_index_to_xpos[i]) : UBL_MESH_MIN_X + i * (MESH_X_DIST);
|
||||
return i < GRID_MAX_POINTS_X ? pgm_read_float(&_mesh_index_to_xpos[i]) : MESH_MIN_X + i * (MESH_X_DIST);
|
||||
}
|
||||
|
||||
FORCE_INLINE static float mesh_index_to_ypos(const uint8_t i) {
|
||||
return i < GRID_MAX_POINTS_Y ? pgm_read_float(&_mesh_index_to_ypos[i]) : UBL_MESH_MIN_Y + i * (MESH_Y_DIST);
|
||||
return i < GRID_MAX_POINTS_Y ? pgm_read_float(&_mesh_index_to_ypos[i]) : MESH_MIN_Y + i * (MESH_Y_DIST);
|
||||
}
|
||||
|
||||
static bool prepare_segmented_line_to(const float ltarget[XYZE], const float &feedrate);
|
||||
|
|
|
@ -415,7 +415,7 @@
|
|||
z2 -= get_z_correction(LOGICAL_X_POSITION(UBL_PROBE_PT_2_X), LOGICAL_Y_POSITION(UBL_PROBE_PT_2_Y)) /* + zprobe_zoffset */ ;
|
||||
z3 -= get_z_correction(LOGICAL_X_POSITION(UBL_PROBE_PT_3_X), LOGICAL_Y_POSITION(UBL_PROBE_PT_3_Y)) /* + zprobe_zoffset */ ;
|
||||
|
||||
do_blocking_move_to_xy(0.5 * (UBL_MESH_MAX_X - (UBL_MESH_MIN_X)), 0.5 * (UBL_MESH_MAX_Y - (UBL_MESH_MIN_Y)));
|
||||
do_blocking_move_to_xy(0.5 * (MESH_MAX_X - (MESH_MIN_X)), 0.5 * (MESH_MAX_Y - (MESH_MIN_Y)));
|
||||
tilt_mesh_based_on_3pts(z1, z2, z3);
|
||||
restore_ubl_active_state_and_leave();
|
||||
}
|
||||
|
@ -778,8 +778,8 @@
|
|||
restore_ubl_active_state_and_leave();
|
||||
|
||||
do_blocking_move_to_xy(
|
||||
constrain(lx - (X_PROBE_OFFSET_FROM_EXTRUDER), UBL_MESH_MIN_X, UBL_MESH_MAX_X),
|
||||
constrain(ly - (Y_PROBE_OFFSET_FROM_EXTRUDER), UBL_MESH_MIN_Y, UBL_MESH_MAX_Y)
|
||||
constrain(lx - (X_PROBE_OFFSET_FROM_EXTRUDER), MESH_MIN_X, MESH_MAX_X),
|
||||
constrain(ly - (Y_PROBE_OFFSET_FROM_EXTRUDER), MESH_MIN_Y, MESH_MAX_Y)
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -915,7 +915,7 @@
|
|||
save_ubl_active_state_and_disable(); // Disable bed level correction for probing
|
||||
|
||||
do_blocking_move_to_z(in_height);
|
||||
do_blocking_move_to_xy(0.5 * (UBL_MESH_MAX_X - (UBL_MESH_MIN_X)), 0.5 * (UBL_MESH_MAX_Y - (UBL_MESH_MIN_Y)));
|
||||
do_blocking_move_to_xy(0.5 * (MESH_MAX_X - (MESH_MIN_X)), 0.5 * (MESH_MAX_Y - (MESH_MIN_Y)));
|
||||
//, min(planner.max_feedrate_mm_s[X_AXIS], planner.max_feedrate_mm_s[Y_AXIS]) / 2.0);
|
||||
stepper.synchronize();
|
||||
|
||||
|
@ -1221,11 +1221,11 @@
|
|||
SERIAL_EOL();
|
||||
#endif
|
||||
|
||||
SERIAL_ECHOLNPAIR("UBL_MESH_MIN_X " STRINGIFY(UBL_MESH_MIN_X) "=", UBL_MESH_MIN_X);
|
||||
SERIAL_ECHOLNPAIR("UBL_MESH_MIN_Y " STRINGIFY(UBL_MESH_MIN_Y) "=", UBL_MESH_MIN_Y);
|
||||
SERIAL_ECHOLNPAIR("MESH_MIN_X " STRINGIFY(MESH_MIN_X) "=", MESH_MIN_X);
|
||||
SERIAL_ECHOLNPAIR("MESH_MIN_Y " STRINGIFY(MESH_MIN_Y) "=", MESH_MIN_Y);
|
||||
safe_delay(25);
|
||||
SERIAL_ECHOLNPAIR("UBL_MESH_MAX_X " STRINGIFY(UBL_MESH_MAX_X) "=", UBL_MESH_MAX_X);
|
||||
SERIAL_ECHOLNPAIR("UBL_MESH_MAX_Y " STRINGIFY(UBL_MESH_MAX_Y) "=", UBL_MESH_MAX_Y);
|
||||
SERIAL_ECHOLNPAIR("MESH_MAX_X " STRINGIFY(MESH_MAX_X) "=", MESH_MAX_X);
|
||||
SERIAL_ECHOLNPAIR("MESH_MAX_Y " STRINGIFY(MESH_MAX_Y) "=", MESH_MAX_Y);
|
||||
safe_delay(25);
|
||||
SERIAL_ECHOLNPAIR("GRID_MAX_POINTS_X ", GRID_MAX_POINTS_X);
|
||||
SERIAL_ECHOLNPAIR("GRID_MAX_POINTS_Y ", GRID_MAX_POINTS_Y);
|
||||
|
@ -1641,10 +1641,10 @@
|
|||
#if HAS_BED_PROBE
|
||||
|
||||
void unified_bed_leveling::tilt_mesh_based_on_probed_grid(const bool do_ubl_mesh_map) {
|
||||
constexpr int16_t x_min = max(MIN_PROBE_X, UBL_MESH_MIN_X),
|
||||
x_max = min(MAX_PROBE_X, UBL_MESH_MAX_X),
|
||||
y_min = max(MIN_PROBE_Y, UBL_MESH_MIN_Y),
|
||||
y_max = min(MAX_PROBE_Y, UBL_MESH_MAX_Y);
|
||||
constexpr int16_t x_min = max(MIN_PROBE_X, MESH_MIN_X),
|
||||
x_max = min(MAX_PROBE_X, MESH_MAX_X),
|
||||
y_min = max(MIN_PROBE_Y, MESH_MIN_Y),
|
||||
y_max = min(MAX_PROBE_Y, MESH_MAX_Y);
|
||||
|
||||
const float dx = float(x_max - x_min) / (g29_grid_size - 1.0),
|
||||
dy = float(y_max - y_min) / (g29_grid_size - 1.0);
|
||||
|
|
|
@ -622,8 +622,8 @@
|
|||
// in top of loop and again re-find same adjacent cell and use it, just less efficient
|
||||
// for mesh inset area.
|
||||
|
||||
int8_t cell_xi = (seg_rx - (UBL_MESH_MIN_X)) * (1.0 / (MESH_X_DIST)),
|
||||
cell_yi = (seg_ry - (UBL_MESH_MIN_Y)) * (1.0 / (MESH_X_DIST));
|
||||
int8_t cell_xi = (seg_rx - (MESH_MIN_X)) * (1.0 / (MESH_X_DIST)),
|
||||
cell_yi = (seg_ry - (MESH_MIN_Y)) * (1.0 / (MESH_X_DIST));
|
||||
|
||||
cell_xi = constrain(cell_xi, 0, (GRID_MAX_POINTS_X) - 1);
|
||||
cell_yi = constrain(cell_yi, 0, (GRID_MAX_POINTS_Y) - 1);
|
||||
|
|
|
@ -28,468 +28,468 @@
|
|||
#ifndef CONDITIONALS_LCD_H // Get the LCD defines which are needed first
|
||||
#define CONDITIONALS_LCD_H
|
||||
|
||||
#define LCD_HAS_DIRECTIONAL_BUTTONS (BUTTON_EXISTS(UP) || BUTTON_EXISTS(DWN) || BUTTON_EXISTS(LFT) || BUTTON_EXISTS(RT))
|
||||
#define LCD_HAS_DIRECTIONAL_BUTTONS (BUTTON_EXISTS(UP) || BUTTON_EXISTS(DWN) || BUTTON_EXISTS(LFT) || BUTTON_EXISTS(RT))
|
||||
|
||||
#if ENABLED(CARTESIO_UI)
|
||||
#if ENABLED(CARTESIO_UI)
|
||||
|
||||
#define DOGLCD
|
||||
#define ULTIPANEL
|
||||
#define DEFAULT_LCD_CONTRAST 90
|
||||
#define LCD_CONTRAST_MIN 60
|
||||
#define LCD_CONTRAST_MAX 140
|
||||
#define DOGLCD
|
||||
#define ULTIPANEL
|
||||
#define DEFAULT_LCD_CONTRAST 90
|
||||
#define LCD_CONTRAST_MIN 60
|
||||
#define LCD_CONTRAST_MAX 140
|
||||
|
||||
#elif ENABLED(MAKRPANEL)
|
||||
#elif ENABLED(MAKRPANEL)
|
||||
|
||||
#define U8GLIB_ST7565_64128N
|
||||
|
||||
#elif ENABLED(ANET_KEYPAD_LCD)
|
||||
|
||||
#define REPRAPWORLD_KEYPAD
|
||||
#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0
|
||||
#define ADC_KEYPAD
|
||||
#define ADC_KEY_NUM 8
|
||||
#define ULTIPANEL
|
||||
|
||||
// this helps to implement ADC_KEYPAD menus
|
||||
#define ENCODER_PULSES_PER_STEP 1
|
||||
#define ENCODER_STEPS_PER_MENU_ITEM 1
|
||||
#define REVERSE_MENU_DIRECTION
|
||||
|
||||
#elif ENABLED(ANET_FULL_GRAPHICS_LCD)
|
||||
|
||||
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
|
||||
|
||||
#elif ENABLED(BQ_LCD_SMART_CONTROLLER)
|
||||
|
||||
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
|
||||
|
||||
#elif ENABLED(miniVIKI) || ENABLED(VIKI2) || ENABLED(ELB_FULL_GRAPHIC_CONTROLLER) || ENABLED(AZSMZ_12864)
|
||||
|
||||
#define ULTRA_LCD //general LCD support, also 16x2
|
||||
#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
|
||||
#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store.
|
||||
|
||||
#if ENABLED(miniVIKI)
|
||||
#define LCD_CONTRAST_MIN 75
|
||||
#define LCD_CONTRAST_MAX 115
|
||||
#define DEFAULT_LCD_CONTRAST 95
|
||||
#define U8GLIB_ST7565_64128N
|
||||
#elif ENABLED(VIKI2)
|
||||
#define LCD_CONTRAST_MIN 0
|
||||
#define LCD_CONTRAST_MAX 255
|
||||
#define DEFAULT_LCD_CONTRAST 140
|
||||
#define U8GLIB_ST7565_64128N
|
||||
#elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
|
||||
#define LCD_CONTRAST_MIN 90
|
||||
#define LCD_CONTRAST_MAX 130
|
||||
#define DEFAULT_LCD_CONTRAST 110
|
||||
#define U8GLIB_LM6059_AF
|
||||
#define SD_DETECT_INVERTED
|
||||
#elif ENABLED(AZSMZ_12864)
|
||||
#define LCD_CONTRAST_MIN 120
|
||||
#define LCD_CONTRAST_MAX 255
|
||||
#define DEFAULT_LCD_CONTRAST 190
|
||||
#define U8GLIB_ST7565_64128N
|
||||
|
||||
#elif ENABLED(ANET_KEYPAD_LCD)
|
||||
|
||||
#define REPRAPWORLD_KEYPAD
|
||||
#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0
|
||||
#define ADC_KEYPAD
|
||||
#define ADC_KEY_NUM 8
|
||||
#define ULTIPANEL
|
||||
|
||||
// this helps to implement ADC_KEYPAD menus
|
||||
#define ENCODER_PULSES_PER_STEP 1
|
||||
#define ENCODER_STEPS_PER_MENU_ITEM 1
|
||||
#define REVERSE_MENU_DIRECTION
|
||||
|
||||
#elif ENABLED(ANET_FULL_GRAPHICS_LCD)
|
||||
|
||||
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
|
||||
|
||||
#elif ENABLED(BQ_LCD_SMART_CONTROLLER)
|
||||
|
||||
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
|
||||
|
||||
#elif ENABLED(miniVIKI) || ENABLED(VIKI2) || ENABLED(ELB_FULL_GRAPHIC_CONTROLLER) || ENABLED(AZSMZ_12864)
|
||||
|
||||
#define ULTRA_LCD //general LCD support, also 16x2
|
||||
#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
|
||||
#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store.
|
||||
|
||||
#if ENABLED(miniVIKI)
|
||||
#define LCD_CONTRAST_MIN 75
|
||||
#define LCD_CONTRAST_MAX 115
|
||||
#define DEFAULT_LCD_CONTRAST 95
|
||||
#define U8GLIB_ST7565_64128N
|
||||
#elif ENABLED(VIKI2)
|
||||
#define LCD_CONTRAST_MIN 0
|
||||
#define LCD_CONTRAST_MAX 255
|
||||
#define DEFAULT_LCD_CONTRAST 140
|
||||
#define U8GLIB_ST7565_64128N
|
||||
#elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
|
||||
#define LCD_CONTRAST_MIN 90
|
||||
#define LCD_CONTRAST_MAX 130
|
||||
#define DEFAULT_LCD_CONTRAST 110
|
||||
#define U8GLIB_LM6059_AF
|
||||
#define SD_DETECT_INVERTED
|
||||
#elif ENABLED(AZSMZ_12864)
|
||||
#define LCD_CONTRAST_MIN 120
|
||||
#define LCD_CONTRAST_MAX 255
|
||||
#define DEFAULT_LCD_CONTRAST 190
|
||||
#define U8GLIB_ST7565_64128N
|
||||
#endif
|
||||
|
||||
#elif ENABLED(OLED_PANEL_TINYBOY2)
|
||||
|
||||
#define U8GLIB_SSD1306
|
||||
#define ULTIPANEL
|
||||
#define REVERSE_ENCODER_DIRECTION
|
||||
#define REVERSE_MENU_DIRECTION
|
||||
|
||||
#elif ENABLED(RA_CONTROL_PANEL)
|
||||
|
||||
#define LCD_I2C_TYPE_PCA8574
|
||||
#define LCD_I2C_ADDRESS 0x27 // I2C Address of the port expander
|
||||
#define ULTIPANEL
|
||||
|
||||
#elif ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
|
||||
|
||||
#define DOGLCD
|
||||
#define U8GLIB_ST7920
|
||||
#define ULTIPANEL
|
||||
|
||||
#elif ENABLED(CR10_STOCKDISPLAY)
|
||||
|
||||
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
|
||||
#ifndef ST7920_DELAY_1
|
||||
#define ST7920_DELAY_1 DELAY_2_NOP
|
||||
#endif
|
||||
#ifndef ST7920_DELAY_2
|
||||
#define ST7920_DELAY_2 DELAY_2_NOP
|
||||
#endif
|
||||
#ifndef ST7920_DELAY_3
|
||||
#define ST7920_DELAY_3 DELAY_2_NOP
|
||||
#endif
|
||||
|
||||
#elif ENABLED(MKS_12864OLED)
|
||||
|
||||
#define REPRAP_DISCOUNT_SMART_CONTROLLER
|
||||
#define U8GLIB_SH1106
|
||||
|
||||
#elif ENABLED(MKS_MINI_12864)
|
||||
|
||||
#define MINIPANEL
|
||||
|
||||
#endif
|
||||
|
||||
#if ENABLED(MAKRPANEL) || ENABLED(MINIPANEL)
|
||||
#define DOGLCD
|
||||
#define ULTIPANEL
|
||||
#define DEFAULT_LCD_CONTRAST 17
|
||||
#elif ENABLED(OLED_PANEL_TINYBOY2)
|
||||
|
||||
#define U8GLIB_SSD1306
|
||||
#define ULTIPANEL
|
||||
#define REVERSE_ENCODER_DIRECTION
|
||||
#define REVERSE_MENU_DIRECTION
|
||||
|
||||
#elif ENABLED(RA_CONTROL_PANEL)
|
||||
|
||||
#define LCD_I2C_TYPE_PCA8574
|
||||
#define LCD_I2C_ADDRESS 0x27 // I2C Address of the port expander
|
||||
#define ULTIPANEL
|
||||
|
||||
#elif ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
|
||||
|
||||
#define DOGLCD
|
||||
#define U8GLIB_ST7920
|
||||
#define ULTIPANEL
|
||||
|
||||
#elif ENABLED(CR10_STOCKDISPLAY)
|
||||
|
||||
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
|
||||
#ifndef ST7920_DELAY_1
|
||||
#define ST7920_DELAY_1 DELAY_2_NOP
|
||||
#endif
|
||||
#ifndef ST7920_DELAY_2
|
||||
#define ST7920_DELAY_2 DELAY_2_NOP
|
||||
#endif
|
||||
#ifndef ST7920_DELAY_3
|
||||
#define ST7920_DELAY_3 DELAY_2_NOP
|
||||
#endif
|
||||
|
||||
// Generic support for SSD1306 / SH1106 OLED based LCDs.
|
||||
#if ENABLED(U8GLIB_SSD1306) || ENABLED(U8GLIB_SH1106)
|
||||
#define ULTRA_LCD //general LCD support, also 16x2
|
||||
#define DOGLCD // Support for I2C LCD 128x64 (Controller SSD1306 / SH1106 graphic Display Family)
|
||||
#elif ENABLED(MKS_12864OLED)
|
||||
|
||||
#define REPRAP_DISCOUNT_SMART_CONTROLLER
|
||||
#define U8GLIB_SH1106
|
||||
|
||||
#elif ENABLED(MKS_MINI_12864)
|
||||
|
||||
#define MINIPANEL
|
||||
|
||||
#endif
|
||||
|
||||
#if ENABLED(MAKRPANEL) || ENABLED(MINIPANEL)
|
||||
#define DOGLCD
|
||||
#define ULTIPANEL
|
||||
#define DEFAULT_LCD_CONTRAST 17
|
||||
#endif
|
||||
|
||||
// Generic support for SSD1306 / SH1106 OLED based LCDs.
|
||||
#if ENABLED(U8GLIB_SSD1306) || ENABLED(U8GLIB_SH1106)
|
||||
#define ULTRA_LCD //general LCD support, also 16x2
|
||||
#define DOGLCD // Support for I2C LCD 128x64 (Controller SSD1306 / SH1106 graphic Display Family)
|
||||
#endif
|
||||
|
||||
#if ENABLED(PANEL_ONE) || ENABLED(U8GLIB_SH1106)
|
||||
|
||||
#define ULTIMAKERCONTROLLER
|
||||
|
||||
#elif ENABLED(MAKEBOARD_MINI_2_LINE_DISPLAY_1602)
|
||||
|
||||
#define REPRAP_DISCOUNT_SMART_CONTROLLER
|
||||
#define LCD_WIDTH 16
|
||||
#define LCD_HEIGHT 2
|
||||
|
||||
#endif
|
||||
|
||||
#if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) || ENABLED(LCD_FOR_MELZI)
|
||||
#define DOGLCD
|
||||
#define U8GLIB_ST7920
|
||||
#define REPRAP_DISCOUNT_SMART_CONTROLLER
|
||||
#endif
|
||||
|
||||
#if ENABLED(ULTIMAKERCONTROLLER) \
|
||||
|| ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER) \
|
||||
|| ENABLED(G3D_PANEL) \
|
||||
|| ENABLED(RIGIDBOT_PANEL)
|
||||
#define ULTIPANEL
|
||||
#endif
|
||||
|
||||
#if ENABLED(REPRAPWORLD_KEYPAD)
|
||||
#define NEWPANEL
|
||||
#if ENABLED(ULTIPANEL) && !defined(REPRAPWORLD_KEYPAD_MOVE_STEP)
|
||||
#define REPRAPWORLD_KEYPAD_MOVE_STEP 1.0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if ENABLED(PANEL_ONE) || ENABLED(U8GLIB_SH1106)
|
||||
/**
|
||||
* I2C PANELS
|
||||
*/
|
||||
|
||||
#define ULTIMAKERCONTROLLER
|
||||
#if ENABLED(LCD_I2C_SAINSMART_YWROBOT)
|
||||
|
||||
#elif ENABLED(MAKEBOARD_MINI_2_LINE_DISPLAY_1602)
|
||||
// Note: This controller requires F.Malpartida's LiquidCrystal_I2C library
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
|
||||
|
||||
#define REPRAP_DISCOUNT_SMART_CONTROLLER
|
||||
#define LCD_I2C_TYPE_PCF8575
|
||||
#define LCD_I2C_ADDRESS 0x27 // I2C Address of the port expander
|
||||
#define ULTIPANEL
|
||||
|
||||
#elif ENABLED(LCD_I2C_PANELOLU2)
|
||||
|
||||
// PANELOLU2 LCD with status LEDs, separate encoder and click inputs
|
||||
|
||||
#define LCD_I2C_TYPE_MCP23017
|
||||
#define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander
|
||||
#define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD
|
||||
#define ULTIPANEL
|
||||
|
||||
#elif ENABLED(LCD_I2C_VIKI)
|
||||
|
||||
/**
|
||||
* Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs
|
||||
*
|
||||
* This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 )
|
||||
* Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory.
|
||||
* Note: The pause/stop/resume LCD button pin should be connected to the Arduino
|
||||
* BTN_ENC pin (or set BTN_ENC to -1 if not used)
|
||||
*/
|
||||
#define LCD_I2C_TYPE_MCP23017
|
||||
#define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander
|
||||
#define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD (requires LiquidTWI2 v1.2.3 or later)
|
||||
#define ULTIPANEL
|
||||
|
||||
#define ENCODER_FEEDRATE_DEADZONE 4
|
||||
|
||||
#define STD_ENCODER_PULSES_PER_STEP 1
|
||||
#define STD_ENCODER_STEPS_PER_MENU_ITEM 2
|
||||
|
||||
#elif ENABLED(G3D_PANEL)
|
||||
|
||||
#define STD_ENCODER_PULSES_PER_STEP 2
|
||||
#define STD_ENCODER_STEPS_PER_MENU_ITEM 1
|
||||
|
||||
#elif ENABLED(miniVIKI) || ENABLED(VIKI2) \
|
||||
|| ENABLED(ELB_FULL_GRAPHIC_CONTROLLER) \
|
||||
|| ENABLED(AZSMZ_12864) \
|
||||
|| ENABLED(OLED_PANEL_TINYBOY2) \
|
||||
|| ENABLED(BQ_LCD_SMART_CONTROLLER) \
|
||||
|| ENABLED(LCD_I2C_PANELOLU2) \
|
||||
|| ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER)
|
||||
#define STD_ENCODER_PULSES_PER_STEP 4
|
||||
#define STD_ENCODER_STEPS_PER_MENU_ITEM 1
|
||||
#endif
|
||||
|
||||
#ifndef STD_ENCODER_PULSES_PER_STEP
|
||||
#define STD_ENCODER_PULSES_PER_STEP 5
|
||||
#endif
|
||||
#ifndef STD_ENCODER_STEPS_PER_MENU_ITEM
|
||||
#define STD_ENCODER_STEPS_PER_MENU_ITEM 1
|
||||
#endif
|
||||
#ifndef ENCODER_PULSES_PER_STEP
|
||||
#define ENCODER_PULSES_PER_STEP STD_ENCODER_PULSES_PER_STEP
|
||||
#endif
|
||||
#ifndef ENCODER_STEPS_PER_MENU_ITEM
|
||||
#define ENCODER_STEPS_PER_MENU_ITEM STD_ENCODER_STEPS_PER_MENU_ITEM
|
||||
#endif
|
||||
#ifndef ENCODER_FEEDRATE_DEADZONE
|
||||
#define ENCODER_FEEDRATE_DEADZONE 6
|
||||
#endif
|
||||
|
||||
// Shift register panels
|
||||
// ---------------------
|
||||
// 2 wire Non-latching LCD SR from:
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection
|
||||
|
||||
#if ENABLED(SAV_3DLCD)
|
||||
#define SR_LCD_2W_NL // Non latching 2 wire shift register
|
||||
#define ULTIPANEL
|
||||
#endif
|
||||
|
||||
#if ENABLED(DOGLCD) // Change number of lines to match the DOG graphic display
|
||||
#ifndef LCD_WIDTH
|
||||
#define LCD_WIDTH 22
|
||||
#endif
|
||||
#ifndef LCD_HEIGHT
|
||||
#define LCD_HEIGHT 5
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if ENABLED(ULTIPANEL)
|
||||
#define NEWPANEL // Disable this if you actually have no click-encoder panel
|
||||
#define ULTRA_LCD
|
||||
#ifndef LCD_WIDTH
|
||||
#define LCD_WIDTH 20
|
||||
#endif
|
||||
#ifndef LCD_HEIGHT
|
||||
#define LCD_HEIGHT 4
|
||||
#endif
|
||||
#elif ENABLED(ULTRA_LCD) // no panel but just LCD
|
||||
#ifndef LCD_WIDTH
|
||||
#define LCD_WIDTH 16
|
||||
#endif
|
||||
#ifndef LCD_HEIGHT
|
||||
#define LCD_HEIGHT 2
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) || ENABLED(LCD_FOR_MELZI)
|
||||
#define DOGLCD
|
||||
#define U8GLIB_ST7920
|
||||
#define REPRAP_DISCOUNT_SMART_CONTROLLER
|
||||
#endif
|
||||
#if ENABLED(DOGLCD)
|
||||
/* Custom characters defined in font dogm_font_data_Marlin_symbols.h / Marlin_symbols.fon */
|
||||
// \x00 intentionally skipped to avoid problems in strings
|
||||
#define LCD_STR_REFRESH "\x01"
|
||||
#define LCD_STR_FOLDER "\x02"
|
||||
#define LCD_STR_ARROW_RIGHT "\x03"
|
||||
#define LCD_STR_UPLEVEL "\x04"
|
||||
#define LCD_STR_CLOCK "\x05"
|
||||
#define LCD_STR_FEEDRATE "\x06"
|
||||
#define LCD_STR_BEDTEMP "\x07"
|
||||
#define LCD_STR_THERMOMETER "\x08"
|
||||
#define LCD_STR_DEGREE "\x09"
|
||||
|
||||
#if ENABLED(ULTIMAKERCONTROLLER) \
|
||||
|| ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER) \
|
||||
|| ENABLED(G3D_PANEL) \
|
||||
|| ENABLED(RIGIDBOT_PANEL)
|
||||
#define ULTIPANEL
|
||||
#endif
|
||||
#define LCD_STR_SPECIAL_MAX '\x09'
|
||||
// Maximum here is 0x1F because 0x20 is ' ' (space) and the normal charsets begin.
|
||||
// Better stay below 0x10 because DISPLAY_CHARSET_HD44780_WESTERN begins here.
|
||||
|
||||
#if ENABLED(REPRAPWORLD_KEYPAD)
|
||||
#define NEWPANEL
|
||||
#if ENABLED(ULTIPANEL) && !defined(REPRAPWORLD_KEYPAD_MOVE_STEP)
|
||||
#define REPRAPWORLD_KEYPAD_MOVE_STEP 1.0
|
||||
// Symbol characters
|
||||
#define LCD_STR_FILAM_DIA "\xf8"
|
||||
#define LCD_STR_FILAM_MUL "\xa4"
|
||||
#else
|
||||
/* Custom characters defined in the first 8 characters of the LCD */
|
||||
#define LCD_BEDTEMP_CHAR 0x00 // Print only as a char. This will have 'unexpected' results when used in a string!
|
||||
#define LCD_DEGREE_CHAR 0x01
|
||||
#define LCD_STR_THERMOMETER "\x02" // Still used with string concatenation
|
||||
#define LCD_UPLEVEL_CHAR 0x03
|
||||
#define LCD_STR_REFRESH "\x04"
|
||||
#define LCD_STR_FOLDER "\x05"
|
||||
#define LCD_FEEDRATE_CHAR 0x06
|
||||
#define LCD_CLOCK_CHAR 0x07
|
||||
#define LCD_STR_ARROW_RIGHT ">" /* from the default character set */
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Default LCD contrast for dogm-like LCD displays
|
||||
*/
|
||||
#if ENABLED(DOGLCD)
|
||||
|
||||
#define HAS_LCD_CONTRAST ( \
|
||||
ENABLED(MAKRPANEL) \
|
||||
|| ENABLED(CARTESIO_UI) \
|
||||
|| ENABLED(VIKI2) \
|
||||
|| ENABLED(AZSMZ_12864) \
|
||||
|| ENABLED(miniVIKI) \
|
||||
|| ENABLED(ELB_FULL_GRAPHIC_CONTROLLER) \
|
||||
)
|
||||
|
||||
#if HAS_LCD_CONTRAST
|
||||
#ifndef LCD_CONTRAST_MIN
|
||||
#define LCD_CONTRAST_MIN 0
|
||||
#endif
|
||||
#ifndef LCD_CONTRAST_MAX
|
||||
#define LCD_CONTRAST_MAX 63
|
||||
#endif
|
||||
#ifndef DEFAULT_LCD_CONTRAST
|
||||
#define DEFAULT_LCD_CONTRAST 32
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
* I2C PANELS
|
||||
*/
|
||||
// Boot screens
|
||||
#if DISABLED(ULTRA_LCD)
|
||||
#undef SHOW_BOOTSCREEN
|
||||
#elif !defined(BOOTSCREEN_TIMEOUT)
|
||||
#define BOOTSCREEN_TIMEOUT 2500
|
||||
#endif
|
||||
|
||||
#if ENABLED(LCD_I2C_SAINSMART_YWROBOT)
|
||||
#define HAS_DEBUG_MENU ENABLED(LCD_PROGRESS_BAR_TEST)
|
||||
|
||||
// Note: This controller requires F.Malpartida's LiquidCrystal_I2C library
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
|
||||
// MK2 Multiplexer forces SINGLENOZZLE to be enabled
|
||||
#if ENABLED(MK2_MULTIPLEXER)
|
||||
#define SINGLENOZZLE
|
||||
#endif
|
||||
|
||||
#define LCD_I2C_TYPE_PCF8575
|
||||
#define LCD_I2C_ADDRESS 0x27 // I2C Address of the port expander
|
||||
#define ULTIPANEL
|
||||
|
||||
#elif ENABLED(LCD_I2C_PANELOLU2)
|
||||
|
||||
// PANELOLU2 LCD with status LEDs, separate encoder and click inputs
|
||||
|
||||
#define LCD_I2C_TYPE_MCP23017
|
||||
#define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander
|
||||
#define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD
|
||||
#define ULTIPANEL
|
||||
|
||||
#elif ENABLED(LCD_I2C_VIKI)
|
||||
|
||||
/**
|
||||
* Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs
|
||||
*
|
||||
* This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 )
|
||||
* Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory.
|
||||
* Note: The pause/stop/resume LCD button pin should be connected to the Arduino
|
||||
* BTN_ENC pin (or set BTN_ENC to -1 if not used)
|
||||
*/
|
||||
#define LCD_I2C_TYPE_MCP23017
|
||||
#define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander
|
||||
#define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD (requires LiquidTWI2 v1.2.3 or later)
|
||||
#define ULTIPANEL
|
||||
|
||||
#define ENCODER_FEEDRATE_DEADZONE 4
|
||||
|
||||
#define STD_ENCODER_PULSES_PER_STEP 1
|
||||
#define STD_ENCODER_STEPS_PER_MENU_ITEM 2
|
||||
|
||||
#elif ENABLED(G3D_PANEL)
|
||||
|
||||
#define STD_ENCODER_PULSES_PER_STEP 2
|
||||
#define STD_ENCODER_STEPS_PER_MENU_ITEM 1
|
||||
|
||||
#elif ENABLED(miniVIKI) || ENABLED(VIKI2) \
|
||||
|| ENABLED(ELB_FULL_GRAPHIC_CONTROLLER) \
|
||||
|| ENABLED(AZSMZ_12864) \
|
||||
|| ENABLED(OLED_PANEL_TINYBOY2) \
|
||||
|| ENABLED(BQ_LCD_SMART_CONTROLLER) \
|
||||
|| ENABLED(LCD_I2C_PANELOLU2) \
|
||||
|| ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER)
|
||||
#define STD_ENCODER_PULSES_PER_STEP 4
|
||||
#define STD_ENCODER_STEPS_PER_MENU_ITEM 1
|
||||
/**
|
||||
* Extruders have some combination of stepper motors and hotends
|
||||
* so we separate these concepts into the defines:
|
||||
*
|
||||
* EXTRUDERS - Number of Selectable Tools
|
||||
* HOTENDS - Number of hotends, whether connected or separate
|
||||
* E_STEPPERS - Number of actual E stepper motors
|
||||
* E_MANUAL - Number of E steppers for LCD move options
|
||||
* TOOL_E_INDEX - Index to use when getting/setting the tool state
|
||||
*
|
||||
*/
|
||||
#if ENABLED(SINGLENOZZLE) || ENABLED(MIXING_EXTRUDER) // One hotend, one thermistor, no XY offset
|
||||
#define HOTENDS 1
|
||||
#undef TEMP_SENSOR_1_AS_REDUNDANT
|
||||
#undef HOTEND_OFFSET_X
|
||||
#undef HOTEND_OFFSET_Y
|
||||
#else // Two hotends
|
||||
#define HOTENDS EXTRUDERS
|
||||
#if ENABLED(SWITCHING_NOZZLE) && !defined(HOTEND_OFFSET_Z)
|
||||
#define HOTEND_OFFSET_Z { 0 }
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef STD_ENCODER_PULSES_PER_STEP
|
||||
#define STD_ENCODER_PULSES_PER_STEP 5
|
||||
#endif
|
||||
#ifndef STD_ENCODER_STEPS_PER_MENU_ITEM
|
||||
#define STD_ENCODER_STEPS_PER_MENU_ITEM 1
|
||||
#endif
|
||||
#ifndef ENCODER_PULSES_PER_STEP
|
||||
#define ENCODER_PULSES_PER_STEP STD_ENCODER_PULSES_PER_STEP
|
||||
#endif
|
||||
#ifndef ENCODER_STEPS_PER_MENU_ITEM
|
||||
#define ENCODER_STEPS_PER_MENU_ITEM STD_ENCODER_STEPS_PER_MENU_ITEM
|
||||
#endif
|
||||
#ifndef ENCODER_FEEDRATE_DEADZONE
|
||||
#define ENCODER_FEEDRATE_DEADZONE 6
|
||||
#endif
|
||||
#define HOTEND_LOOP() for (int8_t e = 0; e < HOTENDS; e++)
|
||||
|
||||
// Shift register panels
|
||||
// ---------------------
|
||||
// 2 wire Non-latching LCD SR from:
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection
|
||||
#if HOTENDS == 1
|
||||
#define HOTEND_INDEX 0
|
||||
#else
|
||||
#define HOTEND_INDEX e
|
||||
#endif
|
||||
|
||||
#if ENABLED(SAV_3DLCD)
|
||||
#define SR_LCD_2W_NL // Non latching 2 wire shift register
|
||||
#define ULTIPANEL
|
||||
#endif
|
||||
|
||||
#if ENABLED(DOGLCD) // Change number of lines to match the DOG graphic display
|
||||
#ifndef LCD_WIDTH
|
||||
#define LCD_WIDTH 22
|
||||
#endif
|
||||
#ifndef LCD_HEIGHT
|
||||
#define LCD_HEIGHT 5
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if ENABLED(ULTIPANEL)
|
||||
#define NEWPANEL // Disable this if you actually have no click-encoder panel
|
||||
#define ULTRA_LCD
|
||||
#ifndef LCD_WIDTH
|
||||
#define LCD_WIDTH 20
|
||||
#endif
|
||||
#ifndef LCD_HEIGHT
|
||||
#define LCD_HEIGHT 4
|
||||
#endif
|
||||
#elif ENABLED(ULTRA_LCD) // no panel but just LCD
|
||||
#ifndef LCD_WIDTH
|
||||
#define LCD_WIDTH 16
|
||||
#endif
|
||||
#ifndef LCD_HEIGHT
|
||||
#define LCD_HEIGHT 2
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if ENABLED(DOGLCD)
|
||||
/* Custom characters defined in font dogm_font_data_Marlin_symbols.h / Marlin_symbols.fon */
|
||||
// \x00 intentionally skipped to avoid problems in strings
|
||||
#define LCD_STR_REFRESH "\x01"
|
||||
#define LCD_STR_FOLDER "\x02"
|
||||
#define LCD_STR_ARROW_RIGHT "\x03"
|
||||
#define LCD_STR_UPLEVEL "\x04"
|
||||
#define LCD_STR_CLOCK "\x05"
|
||||
#define LCD_STR_FEEDRATE "\x06"
|
||||
#define LCD_STR_BEDTEMP "\x07"
|
||||
#define LCD_STR_THERMOMETER "\x08"
|
||||
#define LCD_STR_DEGREE "\x09"
|
||||
|
||||
#define LCD_STR_SPECIAL_MAX '\x09'
|
||||
// Maximum here is 0x1F because 0x20 is ' ' (space) and the normal charsets begin.
|
||||
// Better stay below 0x10 because DISPLAY_CHARSET_HD44780_WESTERN begins here.
|
||||
|
||||
// Symbol characters
|
||||
#define LCD_STR_FILAM_DIA "\xf8"
|
||||
#define LCD_STR_FILAM_MUL "\xa4"
|
||||
#if ENABLED(SWITCHING_EXTRUDER) || ENABLED(MIXING_EXTRUDER) // Unified E axis
|
||||
#if ENABLED(MIXING_EXTRUDER)
|
||||
#define E_STEPPERS MIXING_STEPPERS
|
||||
#else
|
||||
/* Custom characters defined in the first 8 characters of the LCD */
|
||||
#define LCD_BEDTEMP_CHAR 0x00 // Print only as a char. This will have 'unexpected' results when used in a string!
|
||||
#define LCD_DEGREE_CHAR 0x01
|
||||
#define LCD_STR_THERMOMETER "\x02" // Still used with string concatenation
|
||||
#define LCD_UPLEVEL_CHAR 0x03
|
||||
#define LCD_STR_REFRESH "\x04"
|
||||
#define LCD_STR_FOLDER "\x05"
|
||||
#define LCD_FEEDRATE_CHAR 0x06
|
||||
#define LCD_CLOCK_CHAR 0x07
|
||||
#define LCD_STR_ARROW_RIGHT ">" /* from the default character set */
|
||||
#define E_STEPPERS 1 // One E stepper
|
||||
#endif
|
||||
#define E_MANUAL 1
|
||||
#define TOOL_E_INDEX 0
|
||||
#else
|
||||
#define E_STEPPERS EXTRUDERS
|
||||
#define E_MANUAL EXTRUDERS
|
||||
#define TOOL_E_INDEX current_block->active_extruder
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Default LCD contrast for dogm-like LCD displays
|
||||
*/
|
||||
#if ENABLED(DOGLCD)
|
||||
/**
|
||||
* DISTINCT_E_FACTORS affects how some E factors are accessed
|
||||
*/
|
||||
#if ENABLED(DISTINCT_E_FACTORS) && E_STEPPERS > 1
|
||||
#define XYZE_N (XYZ + E_STEPPERS)
|
||||
#define E_AXIS_N (E_AXIS + extruder)
|
||||
#else
|
||||
#undef DISTINCT_E_FACTORS
|
||||
#define XYZE_N XYZE
|
||||
#define E_AXIS_N E_AXIS
|
||||
#endif
|
||||
|
||||
#define HAS_LCD_CONTRAST ( \
|
||||
ENABLED(MAKRPANEL) \
|
||||
|| ENABLED(CARTESIO_UI) \
|
||||
|| ENABLED(VIKI2) \
|
||||
|| ENABLED(AZSMZ_12864) \
|
||||
|| ENABLED(miniVIKI) \
|
||||
|| ENABLED(ELB_FULL_GRAPHIC_CONTROLLER) \
|
||||
)
|
||||
|
||||
#if HAS_LCD_CONTRAST
|
||||
#ifndef LCD_CONTRAST_MIN
|
||||
#define LCD_CONTRAST_MIN 0
|
||||
#endif
|
||||
#ifndef LCD_CONTRAST_MAX
|
||||
#define LCD_CONTRAST_MAX 63
|
||||
#endif
|
||||
#ifndef DEFAULT_LCD_CONTRAST
|
||||
#define DEFAULT_LCD_CONTRAST 32
|
||||
#endif
|
||||
#endif
|
||||
/**
|
||||
* The BLTouch Probe emulates a servo probe
|
||||
* and uses "special" angles for its state.
|
||||
*/
|
||||
#if ENABLED(BLTOUCH)
|
||||
#ifndef Z_ENDSTOP_SERVO_NR
|
||||
#define Z_ENDSTOP_SERVO_NR 0
|
||||
#endif
|
||||
|
||||
// Boot screens
|
||||
#if DISABLED(ULTRA_LCD)
|
||||
#undef SHOW_BOOTSCREEN
|
||||
#elif !defined(BOOTSCREEN_TIMEOUT)
|
||||
#define BOOTSCREEN_TIMEOUT 2500
|
||||
#ifndef NUM_SERVOS
|
||||
#define NUM_SERVOS (Z_ENDSTOP_SERVO_NR + 1)
|
||||
#endif
|
||||
|
||||
#define HAS_DEBUG_MENU ENABLED(LCD_PROGRESS_BAR_TEST)
|
||||
|
||||
// MK2 Multiplexer forces SINGLENOZZLE to be enabled
|
||||
#if ENABLED(MK2_MULTIPLEXER)
|
||||
#define SINGLENOZZLE
|
||||
#undef DEACTIVATE_SERVOS_AFTER_MOVE
|
||||
#if NUM_SERVOS == 1
|
||||
#undef SERVO_DELAY
|
||||
#define SERVO_DELAY { 50 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Extruders have some combination of stepper motors and hotends
|
||||
* so we separate these concepts into the defines:
|
||||
*
|
||||
* EXTRUDERS - Number of Selectable Tools
|
||||
* HOTENDS - Number of hotends, whether connected or separate
|
||||
* E_STEPPERS - Number of actual E stepper motors
|
||||
* E_MANUAL - Number of E steppers for LCD move options
|
||||
* TOOL_E_INDEX - Index to use when getting/setting the tool state
|
||||
*
|
||||
*/
|
||||
#if ENABLED(SINGLENOZZLE) || ENABLED(MIXING_EXTRUDER) // One hotend, one thermistor, no XY offset
|
||||
#define HOTENDS 1
|
||||
#undef TEMP_SENSOR_1_AS_REDUNDANT
|
||||
#undef HOTEND_OFFSET_X
|
||||
#undef HOTEND_OFFSET_Y
|
||||
#else // Two hotends
|
||||
#define HOTENDS EXTRUDERS
|
||||
#if ENABLED(SWITCHING_NOZZLE) && !defined(HOTEND_OFFSET_Z)
|
||||
#define HOTEND_OFFSET_Z { 0 }
|
||||
#endif
|
||||
#ifndef BLTOUCH_DELAY
|
||||
#define BLTOUCH_DELAY 375
|
||||
#endif
|
||||
#undef Z_SERVO_ANGLES
|
||||
#define Z_SERVO_ANGLES { BLTOUCH_DEPLOY, BLTOUCH_STOW }
|
||||
|
||||
#define HOTEND_LOOP() for (int8_t e = 0; e < HOTENDS; e++)
|
||||
#define BLTOUCH_DEPLOY 10
|
||||
#define BLTOUCH_STOW 90
|
||||
#define BLTOUCH_SELFTEST 120
|
||||
#define BLTOUCH_RESET 160
|
||||
#define _TEST_BLTOUCH(P) (READ(P##_PIN) != P##_ENDSTOP_INVERTING)
|
||||
|
||||
#if HOTENDS == 1
|
||||
#define HOTEND_INDEX 0
|
||||
// Always disable probe pin inverting for BLTouch
|
||||
#undef Z_MIN_PROBE_ENDSTOP_INVERTING
|
||||
#define Z_MIN_PROBE_ENDSTOP_INVERTING false
|
||||
|
||||
#if ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)
|
||||
#undef Z_MIN_ENDSTOP_INVERTING
|
||||
#define Z_MIN_ENDSTOP_INVERTING false
|
||||
#define TEST_BLTOUCH() _TEST_BLTOUCH(Z_MIN)
|
||||
#else
|
||||
#define HOTEND_INDEX e
|
||||
#define TEST_BLTOUCH() _TEST_BLTOUCH(Z_MIN_PROBE)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if ENABLED(SWITCHING_EXTRUDER) || ENABLED(MIXING_EXTRUDER) // Unified E axis
|
||||
#if ENABLED(MIXING_EXTRUDER)
|
||||
#define E_STEPPERS MIXING_STEPPERS
|
||||
#else
|
||||
#define E_STEPPERS 1 // One E stepper
|
||||
#endif
|
||||
#define E_MANUAL 1
|
||||
#define TOOL_E_INDEX 0
|
||||
#else
|
||||
#define E_STEPPERS EXTRUDERS
|
||||
#define E_MANUAL EXTRUDERS
|
||||
#define TOOL_E_INDEX current_block->active_extruder
|
||||
#endif
|
||||
/**
|
||||
* Set a flag for a servo probe
|
||||
*/
|
||||
#define HAS_Z_SERVO_ENDSTOP (defined(Z_ENDSTOP_SERVO_NR) && Z_ENDSTOP_SERVO_NR >= 0)
|
||||
|
||||
/**
|
||||
* DISTINCT_E_FACTORS affects how some E factors are accessed
|
||||
*/
|
||||
#if ENABLED(DISTINCT_E_FACTORS) && E_STEPPERS > 1
|
||||
#define XYZE_N (XYZ + E_STEPPERS)
|
||||
#define E_AXIS_N (E_AXIS + extruder)
|
||||
#else
|
||||
#undef DISTINCT_E_FACTORS
|
||||
#define XYZE_N XYZE
|
||||
#define E_AXIS_N E_AXIS
|
||||
#endif
|
||||
/**
|
||||
* UBL has its own manual probing, so this just causes trouble.
|
||||
*/
|
||||
#if ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#undef PROBE_MANUALLY
|
||||
#endif
|
||||
|
||||
/**
|
||||
* The BLTouch Probe emulates a servo probe
|
||||
* and uses "special" angles for its state.
|
||||
*/
|
||||
#if ENABLED(BLTOUCH)
|
||||
#ifndef Z_ENDSTOP_SERVO_NR
|
||||
#define Z_ENDSTOP_SERVO_NR 0
|
||||
#endif
|
||||
#ifndef NUM_SERVOS
|
||||
#define NUM_SERVOS (Z_ENDSTOP_SERVO_NR + 1)
|
||||
#endif
|
||||
#undef DEACTIVATE_SERVOS_AFTER_MOVE
|
||||
#if NUM_SERVOS == 1
|
||||
#undef SERVO_DELAY
|
||||
#define SERVO_DELAY { 50 }
|
||||
#endif
|
||||
#ifndef BLTOUCH_DELAY
|
||||
#define BLTOUCH_DELAY 375
|
||||
#endif
|
||||
#undef Z_SERVO_ANGLES
|
||||
#define Z_SERVO_ANGLES { BLTOUCH_DEPLOY, BLTOUCH_STOW }
|
||||
/**
|
||||
* Set a flag for any enabled probe
|
||||
*/
|
||||
#define PROBE_SELECTED (ENABLED(PROBE_MANUALLY) || ENABLED(FIX_MOUNTED_PROBE) || ENABLED(Z_PROBE_ALLEN_KEY) || HAS_Z_SERVO_ENDSTOP || ENABLED(Z_PROBE_SLED) || ENABLED(SOLENOID_PROBE))
|
||||
|
||||
#define BLTOUCH_DEPLOY 10
|
||||
#define BLTOUCH_STOW 90
|
||||
#define BLTOUCH_SELFTEST 120
|
||||
#define BLTOUCH_RESET 160
|
||||
#define _TEST_BLTOUCH(P) (READ(P##_PIN) != P##_ENDSTOP_INVERTING)
|
||||
/**
|
||||
* Clear probe pin settings when no probe is selected
|
||||
*/
|
||||
#if !PROBE_SELECTED || ENABLED(PROBE_MANUALLY)
|
||||
#undef Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
|
||||
#undef Z_MIN_PROBE_ENDSTOP
|
||||
#endif
|
||||
|
||||
// Always disable probe pin inverting for BLTouch
|
||||
#undef Z_MIN_PROBE_ENDSTOP_INVERTING
|
||||
#define Z_MIN_PROBE_ENDSTOP_INVERTING false
|
||||
|
||||
#if ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)
|
||||
#undef Z_MIN_ENDSTOP_INVERTING
|
||||
#define Z_MIN_ENDSTOP_INVERTING false
|
||||
#define TEST_BLTOUCH() _TEST_BLTOUCH(Z_MIN)
|
||||
#else
|
||||
#define TEST_BLTOUCH() _TEST_BLTOUCH(Z_MIN_PROBE)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Set a flag for a servo probe
|
||||
*/
|
||||
#define HAS_Z_SERVO_ENDSTOP (defined(Z_ENDSTOP_SERVO_NR) && Z_ENDSTOP_SERVO_NR >= 0)
|
||||
|
||||
/**
|
||||
* UBL has its own manual probing, so this just causes trouble.
|
||||
*/
|
||||
#if ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#undef PROBE_MANUALLY
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Set a flag for any enabled probe
|
||||
*/
|
||||
#define PROBE_SELECTED (ENABLED(PROBE_MANUALLY) || ENABLED(FIX_MOUNTED_PROBE) || ENABLED(Z_PROBE_ALLEN_KEY) || HAS_Z_SERVO_ENDSTOP || ENABLED(Z_PROBE_SLED) || ENABLED(SOLENOID_PROBE))
|
||||
|
||||
/**
|
||||
* Clear probe pin settings when no probe is selected
|
||||
*/
|
||||
#if !PROBE_SELECTED || ENABLED(PROBE_MANUALLY)
|
||||
#undef Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
|
||||
#undef Z_MIN_PROBE_ENDSTOP
|
||||
#endif
|
||||
|
||||
#define HAS_SOFTWARE_ENDSTOPS (ENABLED(MIN_SOFTWARE_ENDSTOPS) || ENABLED(MAX_SOFTWARE_ENDSTOPS))
|
||||
#define HAS_RESUME_CONTINUE (ENABLED(NEWPANEL) || ENABLED(EMERGENCY_PARSER))
|
||||
#define HAS_COLOR_LEDS (ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632) || ENABLED(NEOPIXEL_LED))
|
||||
#define HAS_SOFTWARE_ENDSTOPS (ENABLED(MIN_SOFTWARE_ENDSTOPS) || ENABLED(MAX_SOFTWARE_ENDSTOPS))
|
||||
#define HAS_RESUME_CONTINUE (ENABLED(NEWPANEL) || ENABLED(EMERGENCY_PARSER))
|
||||
#define HAS_COLOR_LEDS (ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632) || ENABLED(NEOPIXEL_LED))
|
||||
|
||||
// For Re-ARM boards, always use the USB Emulated Serial Port unless RE_ARM_FORCE_SERIAL_PORT is defined
|
||||
#if MB(RAMPS_14_RE_ARM_EFB) || MB(RAMPS_14_RE_ARM_EEB) || MB(RAMPS_14_RE_ARM_EFF) || MB(RAMPS_14_RE_ARM_EEF) || MB(RAMPS_14_RE_ARM_SF)
|
||||
|
|
|
@ -28,1001 +28,1039 @@
|
|||
#ifndef CONDITIONALS_POST_H
|
||||
#define CONDITIONALS_POST_H
|
||||
|
||||
#define AVR_ATmega2560_FAMILY_PLUS_70 ( \
|
||||
MB(BQ_ZUM_MEGA_3D) \
|
||||
|| MB(MIGHTYBOARD_REVE) \
|
||||
|| MB(MINIRAMBO) \
|
||||
|| MB(SCOOVO_X9H) \
|
||||
)
|
||||
#define AVR_ATmega2560_FAMILY_PLUS_70 ( \
|
||||
MB(BQ_ZUM_MEGA_3D) \
|
||||
|| MB(MIGHTYBOARD_REVE) \
|
||||
|| MB(MINIRAMBO) \
|
||||
|| MB(SCOOVO_X9H) \
|
||||
)
|
||||
|
||||
#define IS_SCARA (ENABLED(MORGAN_SCARA) || ENABLED(MAKERARM_SCARA))
|
||||
#define IS_KINEMATIC (ENABLED(DELTA) || IS_SCARA)
|
||||
#define IS_CARTESIAN !IS_KINEMATIC
|
||||
#define IS_SCARA (ENABLED(MORGAN_SCARA) || ENABLED(MAKERARM_SCARA))
|
||||
#define IS_KINEMATIC (ENABLED(DELTA) || IS_SCARA)
|
||||
#define IS_CARTESIAN !IS_KINEMATIC
|
||||
|
||||
/**
|
||||
* Axis lengths and center
|
||||
*/
|
||||
#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))
|
||||
/**
|
||||
* Axis lengths and center
|
||||
*/
|
||||
#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))
|
||||
|
||||
// Defined only if the sanity-check is bypassed
|
||||
#ifndef X_BED_SIZE
|
||||
#define X_BED_SIZE X_MAX_LENGTH
|
||||
// Defined only if the sanity-check is bypassed
|
||||
#ifndef X_BED_SIZE
|
||||
#define X_BED_SIZE X_MAX_LENGTH
|
||||
#endif
|
||||
#ifndef Y_BED_SIZE
|
||||
#define Y_BED_SIZE Y_MAX_LENGTH
|
||||
#endif
|
||||
|
||||
// Require 0,0 bed center for Delta and SCARA
|
||||
#if IS_KINEMATIC
|
||||
#define BED_CENTER_AT_0_0
|
||||
#endif
|
||||
|
||||
// Define center values for future use
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define X_CENTER 0
|
||||
#define Y_CENTER 0
|
||||
#else
|
||||
#define X_CENTER ((X_BED_SIZE) / 2)
|
||||
#define Y_CENTER ((Y_BED_SIZE) / 2)
|
||||
#endif
|
||||
#define Z_CENTER ((Z_MIN_POS + Z_MAX_POS) / 2)
|
||||
|
||||
// Get the linear boundaries of the bed
|
||||
#define X_MIN_BED (X_CENTER - (X_BED_SIZE) / 2)
|
||||
#define X_MAX_BED (X_CENTER + (X_BED_SIZE) / 2)
|
||||
#define Y_MIN_BED (Y_CENTER - (Y_BED_SIZE) / 2)
|
||||
#define Y_MAX_BED (Y_CENTER + (Y_BED_SIZE) / 2)
|
||||
|
||||
/**
|
||||
* CoreXY, CoreXZ, and CoreYZ - and their reverse
|
||||
*/
|
||||
#define CORE_IS_XY (ENABLED(COREXY) || ENABLED(COREYX))
|
||||
#define CORE_IS_XZ (ENABLED(COREXZ) || ENABLED(COREZX))
|
||||
#define CORE_IS_YZ (ENABLED(COREYZ) || ENABLED(COREZY))
|
||||
#define IS_CORE (CORE_IS_XY || CORE_IS_XZ || CORE_IS_YZ)
|
||||
#if IS_CORE
|
||||
#if CORE_IS_XY
|
||||
#define CORE_AXIS_1 A_AXIS
|
||||
#define CORE_AXIS_2 B_AXIS
|
||||
#define NORMAL_AXIS Z_AXIS
|
||||
#elif CORE_IS_XZ
|
||||
#define CORE_AXIS_1 A_AXIS
|
||||
#define NORMAL_AXIS Y_AXIS
|
||||
#define CORE_AXIS_2 C_AXIS
|
||||
#elif CORE_IS_YZ
|
||||
#define NORMAL_AXIS X_AXIS
|
||||
#define CORE_AXIS_1 B_AXIS
|
||||
#define CORE_AXIS_2 C_AXIS
|
||||
#endif
|
||||
#ifndef Y_BED_SIZE
|
||||
#define Y_BED_SIZE Y_MAX_LENGTH
|
||||
#endif
|
||||
|
||||
// Require 0,0 bed center for Delta and SCARA
|
||||
#if IS_KINEMATIC
|
||||
#define BED_CENTER_AT_0_0
|
||||
#endif
|
||||
|
||||
// Define center values for future use
|
||||
#if ENABLED(BED_CENTER_AT_0_0)
|
||||
#define X_CENTER 0
|
||||
#define Y_CENTER 0
|
||||
#if (ENABLED(COREYX) || ENABLED(COREZX) || ENABLED(COREZY))
|
||||
#define CORESIGN(n) (-(n))
|
||||
#else
|
||||
#define X_CENTER ((X_BED_SIZE) / 2)
|
||||
#define Y_CENTER ((Y_BED_SIZE) / 2)
|
||||
#define CORESIGN(n) (n)
|
||||
#endif
|
||||
#define Z_CENTER ((Z_MIN_POS + Z_MAX_POS) / 2)
|
||||
#endif
|
||||
|
||||
// Get the linear boundaries of the bed
|
||||
#define X_MIN_BED (X_CENTER - (X_BED_SIZE) / 2)
|
||||
#define X_MAX_BED (X_CENTER + (X_BED_SIZE) / 2)
|
||||
#define Y_MIN_BED (Y_CENTER - (Y_BED_SIZE) / 2)
|
||||
#define Y_MAX_BED (Y_CENTER + (Y_BED_SIZE) / 2)
|
||||
/**
|
||||
* No adjustable bed on non-cartesians
|
||||
*/
|
||||
#if IS_KINEMATIC
|
||||
#undef LEVEL_BED_CORNERS
|
||||
#endif
|
||||
|
||||
/**
|
||||
* CoreXY, CoreXZ, and CoreYZ - and their reverse
|
||||
*/
|
||||
#define CORE_IS_XY (ENABLED(COREXY) || ENABLED(COREYX))
|
||||
#define CORE_IS_XZ (ENABLED(COREXZ) || ENABLED(COREZX))
|
||||
#define CORE_IS_YZ (ENABLED(COREYZ) || ENABLED(COREZY))
|
||||
#define IS_CORE (CORE_IS_XY || CORE_IS_XZ || CORE_IS_YZ)
|
||||
#if IS_CORE
|
||||
#if CORE_IS_XY
|
||||
#define CORE_AXIS_1 A_AXIS
|
||||
#define CORE_AXIS_2 B_AXIS
|
||||
#define NORMAL_AXIS Z_AXIS
|
||||
#elif CORE_IS_XZ
|
||||
#define CORE_AXIS_1 A_AXIS
|
||||
#define NORMAL_AXIS Y_AXIS
|
||||
#define CORE_AXIS_2 C_AXIS
|
||||
#elif CORE_IS_YZ
|
||||
#define NORMAL_AXIS X_AXIS
|
||||
#define CORE_AXIS_1 B_AXIS
|
||||
#define CORE_AXIS_2 C_AXIS
|
||||
#endif
|
||||
#if (ENABLED(COREYX) || ENABLED(COREZX) || ENABLED(COREZY))
|
||||
#define CORESIGN(n) (-(n))
|
||||
#else
|
||||
#define CORESIGN(n) (n)
|
||||
#endif
|
||||
#endif
|
||||
/**
|
||||
* SCARA cannot use SLOWDOWN and requires QUICKHOME
|
||||
*/
|
||||
#if IS_SCARA
|
||||
#undef SLOWDOWN
|
||||
#define QUICK_HOME
|
||||
#endif
|
||||
|
||||
/**
|
||||
* No adjustable bed on non-cartesians
|
||||
*/
|
||||
#if IS_KINEMATIC
|
||||
#undef LEVEL_BED_CORNERS
|
||||
#endif
|
||||
|
||||
/**
|
||||
* SCARA cannot use SLOWDOWN and requires QUICKHOME
|
||||
*/
|
||||
#if IS_SCARA
|
||||
#undef SLOWDOWN
|
||||
#define QUICK_HOME
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Set the home position based on settings or manual overrides
|
||||
*/
|
||||
#ifdef MANUAL_X_HOME_POS
|
||||
#define X_HOME_POS MANUAL_X_HOME_POS
|
||||
#elif ENABLED(BED_CENTER_AT_0_0)
|
||||
#if ENABLED(DELTA)
|
||||
#define X_HOME_POS 0
|
||||
#else
|
||||
#define X_HOME_POS ((X_BED_SIZE) * (X_HOME_DIR) * 0.5)
|
||||
#endif
|
||||
#else
|
||||
#if ENABLED(DELTA)
|
||||
#define X_HOME_POS (X_MIN_POS + (X_BED_SIZE) * 0.5)
|
||||
#else
|
||||
#define X_HOME_POS (X_HOME_DIR < 0 ? X_MIN_POS : X_MAX_POS)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef MANUAL_Y_HOME_POS
|
||||
#define Y_HOME_POS MANUAL_Y_HOME_POS
|
||||
#elif ENABLED(BED_CENTER_AT_0_0)
|
||||
#if ENABLED(DELTA)
|
||||
#define Y_HOME_POS 0
|
||||
#else
|
||||
#define Y_HOME_POS ((Y_BED_SIZE) * (Y_HOME_DIR) * 0.5)
|
||||
#endif
|
||||
#else
|
||||
#if ENABLED(DELTA)
|
||||
#define Y_HOME_POS (Y_MIN_POS + (Y_BED_SIZE) * 0.5)
|
||||
#else
|
||||
#define Y_HOME_POS (Y_HOME_DIR < 0 ? Y_MIN_POS : Y_MAX_POS)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef MANUAL_Z_HOME_POS
|
||||
#define Z_HOME_POS MANUAL_Z_HOME_POS
|
||||
#else
|
||||
#define Z_HOME_POS (Z_HOME_DIR < 0 ? Z_MIN_POS : Z_MAX_POS)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* If DELTA_HEIGHT isn't defined use the old setting
|
||||
*/
|
||||
#if ENABLED(DELTA) && !defined(DELTA_HEIGHT)
|
||||
#define DELTA_HEIGHT Z_HOME_POS
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Auto Bed Leveling and Z Probe Repeatability Test
|
||||
*/
|
||||
#define HOMING_Z_WITH_PROBE (HAS_BED_PROBE && Z_HOME_DIR < 0 && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN))
|
||||
|
||||
/**
|
||||
* Z Sled Probe requires Z_SAFE_HOMING
|
||||
*/
|
||||
#if ENABLED(Z_PROBE_SLED)
|
||||
#define Z_SAFE_HOMING
|
||||
#endif
|
||||
|
||||
/**
|
||||
* DELTA should ignore Z_SAFE_HOMING and SLOWDOWN
|
||||
*/
|
||||
/**
|
||||
* Set the home position based on settings or manual overrides
|
||||
*/
|
||||
#ifdef MANUAL_X_HOME_POS
|
||||
#define X_HOME_POS MANUAL_X_HOME_POS
|
||||
#elif ENABLED(BED_CENTER_AT_0_0)
|
||||
#if ENABLED(DELTA)
|
||||
#undef Z_SAFE_HOMING
|
||||
#undef SLOWDOWN
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Safe Homing Options
|
||||
*/
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
#ifndef Z_SAFE_HOMING_X_POINT
|
||||
#define Z_SAFE_HOMING_X_POINT X_CENTER
|
||||
#endif
|
||||
#ifndef Z_SAFE_HOMING_Y_POINT
|
||||
#define Z_SAFE_HOMING_Y_POINT Y_CENTER
|
||||
#endif
|
||||
#define X_TILT_FULCRUM Z_SAFE_HOMING_X_POINT
|
||||
#define Y_TILT_FULCRUM Z_SAFE_HOMING_Y_POINT
|
||||
#define X_HOME_POS 0
|
||||
#else
|
||||
#define X_TILT_FULCRUM X_HOME_POS
|
||||
#define Y_TILT_FULCRUM Y_HOME_POS
|
||||
#define X_HOME_POS ((X_BED_SIZE) * (X_HOME_DIR) * 0.5)
|
||||
#endif
|
||||
#else
|
||||
#if ENABLED(DELTA)
|
||||
#define X_HOME_POS (X_MIN_POS + (X_BED_SIZE) * 0.5)
|
||||
#else
|
||||
#define X_HOME_POS (X_HOME_DIR < 0 ? X_MIN_POS : X_MAX_POS)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef MANUAL_Y_HOME_POS
|
||||
#define Y_HOME_POS MANUAL_Y_HOME_POS
|
||||
#elif ENABLED(BED_CENTER_AT_0_0)
|
||||
#if ENABLED(DELTA)
|
||||
#define Y_HOME_POS 0
|
||||
#else
|
||||
#define Y_HOME_POS ((Y_BED_SIZE) * (Y_HOME_DIR) * 0.5)
|
||||
#endif
|
||||
#else
|
||||
#if ENABLED(DELTA)
|
||||
#define Y_HOME_POS (Y_MIN_POS + (Y_BED_SIZE) * 0.5)
|
||||
#else
|
||||
#define Y_HOME_POS (Y_HOME_DIR < 0 ? Y_MIN_POS : Y_MAX_POS)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef MANUAL_Z_HOME_POS
|
||||
#define Z_HOME_POS MANUAL_Z_HOME_POS
|
||||
#else
|
||||
#define Z_HOME_POS (Z_HOME_DIR < 0 ? Z_MIN_POS : Z_MAX_POS)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* If DELTA_HEIGHT isn't defined use the old setting
|
||||
*/
|
||||
#if ENABLED(DELTA) && !defined(DELTA_HEIGHT)
|
||||
#define DELTA_HEIGHT Z_HOME_POS
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Auto Bed Leveling and Z Probe Repeatability Test
|
||||
*/
|
||||
#define HOMING_Z_WITH_PROBE (HAS_BED_PROBE && Z_HOME_DIR < 0 && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN))
|
||||
|
||||
/**
|
||||
* Z Sled Probe requires Z_SAFE_HOMING
|
||||
*/
|
||||
#if ENABLED(Z_PROBE_SLED)
|
||||
#define Z_SAFE_HOMING
|
||||
#endif
|
||||
|
||||
/**
|
||||
* DELTA should ignore Z_SAFE_HOMING and SLOWDOWN
|
||||
*/
|
||||
#if ENABLED(DELTA)
|
||||
#undef Z_SAFE_HOMING
|
||||
#undef SLOWDOWN
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Safe Homing Options
|
||||
*/
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
#ifndef Z_SAFE_HOMING_X_POINT
|
||||
#define Z_SAFE_HOMING_X_POINT X_CENTER
|
||||
#endif
|
||||
#ifndef Z_SAFE_HOMING_Y_POINT
|
||||
#define Z_SAFE_HOMING_Y_POINT Y_CENTER
|
||||
#endif
|
||||
#define X_TILT_FULCRUM Z_SAFE_HOMING_X_POINT
|
||||
#define Y_TILT_FULCRUM Z_SAFE_HOMING_Y_POINT
|
||||
#else
|
||||
#define X_TILT_FULCRUM X_HOME_POS
|
||||
#define Y_TILT_FULCRUM Y_HOME_POS
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Host keep alive
|
||||
*/
|
||||
#ifndef DEFAULT_KEEPALIVE_INTERVAL
|
||||
#define DEFAULT_KEEPALIVE_INTERVAL 2
|
||||
#endif
|
||||
|
||||
#ifdef CPU_32_BIT
|
||||
/**
|
||||
* Host keep alive
|
||||
* Hidden options for developer
|
||||
*/
|
||||
#ifndef DEFAULT_KEEPALIVE_INTERVAL
|
||||
#define DEFAULT_KEEPALIVE_INTERVAL 2
|
||||
// Double stepping starts at STEP_DOUBLER_FREQUENCY + 1, quad stepping starts at STEP_DOUBLER_FREQUENCY * 2 + 1
|
||||
#ifndef STEP_DOUBLER_FREQUENCY
|
||||
#if ENABLED(LIN_ADVANCE)
|
||||
#define STEP_DOUBLER_FREQUENCY 60000 // Hz
|
||||
#else
|
||||
#define STEP_DOUBLER_FREQUENCY 80000 // Hz
|
||||
#endif
|
||||
#endif
|
||||
// Disable double / quad stepping
|
||||
//#define DISABLE_MULTI_STEPPING
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Provide a MAX_AUTORETRACT for older configs
|
||||
*/
|
||||
#if ENABLED(FWRETRACT) && !defined(MAX_AUTORETRACT)
|
||||
#define MAX_AUTORETRACT 99
|
||||
#endif
|
||||
|
||||
/**
|
||||
* MAX_STEP_FREQUENCY differs for TOSHIBA
|
||||
*/
|
||||
#if ENABLED(CONFIG_STEPPERS_TOSHIBA)
|
||||
#ifdef CPU_32_BIT
|
||||
/**
|
||||
* Hidden options for developer
|
||||
*/
|
||||
// Double stepping starts at STEP_DOUBLER_FREQUENCY + 1, quad stepping starts at STEP_DOUBLER_FREQUENCY * 2 + 1
|
||||
#ifndef STEP_DOUBLER_FREQUENCY
|
||||
#if ENABLED(LIN_ADVANCE)
|
||||
#define STEP_DOUBLER_FREQUENCY 60000 // Hz
|
||||
#else
|
||||
#define STEP_DOUBLER_FREQUENCY 80000 // Hz
|
||||
#endif
|
||||
#endif
|
||||
// Disable double / quad stepping
|
||||
//#define DISABLE_MULTI_STEPPING
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Provide a MAX_AUTORETRACT for older configs
|
||||
*/
|
||||
#if ENABLED(FWRETRACT) && !defined(MAX_AUTORETRACT)
|
||||
#define MAX_AUTORETRACT 99
|
||||
#endif
|
||||
|
||||
/**
|
||||
* MAX_STEP_FREQUENCY differs for TOSHIBA
|
||||
*/
|
||||
#if ENABLED(CONFIG_STEPPERS_TOSHIBA)
|
||||
#ifdef CPU_32_BIT
|
||||
#define MAX_STEP_FREQUENCY STEP_DOUBLER_FREQUENCY // Max step frequency for Toshiba Stepper Controllers, 96kHz is close to maximum for an Arduino Due
|
||||
#else
|
||||
#define MAX_STEP_FREQUENCY 10000 // Max step frequency for Toshiba Stepper Controllers
|
||||
#endif
|
||||
#define MAX_STEP_FREQUENCY STEP_DOUBLER_FREQUENCY // Max step frequency for Toshiba Stepper Controllers, 96kHz is close to maximum for an Arduino Due
|
||||
#else
|
||||
#ifdef CPU_32_BIT
|
||||
#define MAX_STEP_FREQUENCY (STEP_DOUBLER_FREQUENCY * 4) // Max step frequency for the Due is approx. 330kHz
|
||||
#else
|
||||
#define MAX_STEP_FREQUENCY 40000 // Max step frequency for Ultimaker (5000 pps / half step)
|
||||
#endif
|
||||
#define MAX_STEP_FREQUENCY 10000 // Max step frequency for Toshiba Stepper Controllers
|
||||
#endif
|
||||
|
||||
// MS1 MS2 Stepper Driver Microstepping mode table
|
||||
#define MICROSTEP1 LOW,LOW
|
||||
#define MICROSTEP2 HIGH,LOW
|
||||
#define MICROSTEP4 LOW,HIGH
|
||||
#define MICROSTEP8 HIGH,HIGH
|
||||
#ifdef __SAM3X8E__
|
||||
#if MB(ALLIGATOR)
|
||||
#define MICROSTEP16 LOW,LOW
|
||||
#define MICROSTEP32 HIGH,HIGH
|
||||
#else
|
||||
#define MICROSTEP16 HIGH,HIGH
|
||||
#endif
|
||||
#else
|
||||
#ifdef CPU_32_BIT
|
||||
#define MAX_STEP_FREQUENCY (STEP_DOUBLER_FREQUENCY * 4) // Max step frequency for the Due is approx. 330kHz
|
||||
#else
|
||||
#define MICROSTEP16 HIGH,HIGH
|
||||
#define MAX_STEP_FREQUENCY 40000 // Max step frequency for Ultimaker (5000 pps / half step)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Override here because this is set in Configuration_adv.h
|
||||
*/
|
||||
#if ENABLED(ULTIPANEL) && DISABLED(ELB_FULL_GRAPHIC_CONTROLLER)
|
||||
#undef SD_DETECT_INVERTED
|
||||
// MS1 MS2 Stepper Driver Microstepping mode table
|
||||
#define MICROSTEP1 LOW,LOW
|
||||
#define MICROSTEP2 HIGH,LOW
|
||||
#define MICROSTEP4 LOW,HIGH
|
||||
#define MICROSTEP8 HIGH,HIGH
|
||||
#ifdef __SAM3X8E__
|
||||
#if MB(ALLIGATOR)
|
||||
#define MICROSTEP16 LOW,LOW
|
||||
#define MICROSTEP32 HIGH,HIGH
|
||||
#else
|
||||
#define MICROSTEP16 HIGH,HIGH
|
||||
#endif
|
||||
#else
|
||||
#define MICROSTEP16 HIGH,HIGH
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Set defaults for missing (newer) options
|
||||
*/
|
||||
#ifndef DISABLE_INACTIVE_X
|
||||
#define DISABLE_INACTIVE_X DISABLE_X
|
||||
#endif
|
||||
#ifndef DISABLE_INACTIVE_Y
|
||||
#define DISABLE_INACTIVE_Y DISABLE_Y
|
||||
#endif
|
||||
#ifndef DISABLE_INACTIVE_Z
|
||||
#define DISABLE_INACTIVE_Z DISABLE_Z
|
||||
#endif
|
||||
#ifndef DISABLE_INACTIVE_E
|
||||
#define DISABLE_INACTIVE_E DISABLE_E
|
||||
#endif
|
||||
/**
|
||||
* Override here because this is set in Configuration_adv.h
|
||||
*/
|
||||
#if ENABLED(ULTIPANEL) && DISABLED(ELB_FULL_GRAPHIC_CONTROLLER)
|
||||
#undef SD_DETECT_INVERTED
|
||||
#endif
|
||||
|
||||
// Power Signal Control Definitions
|
||||
// By default use ATX definition
|
||||
#ifndef POWER_SUPPLY
|
||||
#define POWER_SUPPLY 1
|
||||
/**
|
||||
* Set defaults for missing (newer) options
|
||||
*/
|
||||
#ifndef DISABLE_INACTIVE_X
|
||||
#define DISABLE_INACTIVE_X DISABLE_X
|
||||
#endif
|
||||
#ifndef DISABLE_INACTIVE_Y
|
||||
#define DISABLE_INACTIVE_Y DISABLE_Y
|
||||
#endif
|
||||
#ifndef DISABLE_INACTIVE_Z
|
||||
#define DISABLE_INACTIVE_Z DISABLE_Z
|
||||
#endif
|
||||
#ifndef DISABLE_INACTIVE_E
|
||||
#define DISABLE_INACTIVE_E DISABLE_E
|
||||
#endif
|
||||
|
||||
// Power Signal Control Definitions
|
||||
// By default use ATX definition
|
||||
#ifndef POWER_SUPPLY
|
||||
#define POWER_SUPPLY 1
|
||||
#endif
|
||||
#if (POWER_SUPPLY == 1) // 1 = ATX
|
||||
#define PS_ON_AWAKE LOW
|
||||
#define PS_ON_ASLEEP HIGH
|
||||
#elif (POWER_SUPPLY == 2) // 2 = X-Box 360 203W
|
||||
#define PS_ON_AWAKE HIGH
|
||||
#define PS_ON_ASLEEP LOW
|
||||
#endif
|
||||
#define HAS_POWER_SWITCH (POWER_SUPPLY > 0 && PIN_EXISTS(PS_ON))
|
||||
|
||||
/**
|
||||
* Temp Sensor defines
|
||||
*/
|
||||
#if TEMP_SENSOR_0 == -3
|
||||
#define HEATER_0_USES_MAX6675
|
||||
#define MAX6675_IS_MAX31855
|
||||
#define MAX6675_TMIN -270
|
||||
#define MAX6675_TMAX 1800
|
||||
#elif TEMP_SENSOR_0 == -2
|
||||
#define HEATER_0_USES_MAX6675
|
||||
#define MAX6675_TMIN 0
|
||||
#define MAX6675_TMAX 1024
|
||||
#elif TEMP_SENSOR_0 == -1
|
||||
#define HEATER_0_USES_AD595
|
||||
#elif TEMP_SENSOR_0 == 0
|
||||
#undef HEATER_0_MINTEMP
|
||||
#undef HEATER_0_MAXTEMP
|
||||
#elif TEMP_SENSOR_0 > 0
|
||||
#define THERMISTORHEATER_0 TEMP_SENSOR_0
|
||||
#define HEATER_0_USES_THERMISTOR
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_1 <= -2
|
||||
#error "MAX6675 / MAX31855 Thermocouples not supported for TEMP_SENSOR_1"
|
||||
#elif TEMP_SENSOR_1 == -1
|
||||
#define HEATER_1_USES_AD595
|
||||
#elif TEMP_SENSOR_1 == 0
|
||||
#undef HEATER_1_MINTEMP
|
||||
#undef HEATER_1_MAXTEMP
|
||||
#elif TEMP_SENSOR_1 > 0
|
||||
#define THERMISTORHEATER_1 TEMP_SENSOR_1
|
||||
#define HEATER_1_USES_THERMISTOR
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_2 <= -2
|
||||
#error "MAX6675 / MAX31855 Thermocouples not supported for TEMP_SENSOR_2"
|
||||
#elif TEMP_SENSOR_2 == -1
|
||||
#define HEATER_2_USES_AD595
|
||||
#elif TEMP_SENSOR_2 == 0
|
||||
#undef HEATER_2_MINTEMP
|
||||
#undef HEATER_2_MAXTEMP
|
||||
#elif TEMP_SENSOR_2 > 0
|
||||
#define THERMISTORHEATER_2 TEMP_SENSOR_2
|
||||
#define HEATER_2_USES_THERMISTOR
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_3 <= -2
|
||||
#error "MAX6675 / MAX31855 Thermocouples not supported for TEMP_SENSOR_3"
|
||||
#elif TEMP_SENSOR_3 == -1
|
||||
#define HEATER_3_USES_AD595
|
||||
#elif TEMP_SENSOR_3 == 0
|
||||
#undef HEATER_3_MINTEMP
|
||||
#undef HEATER_3_MAXTEMP
|
||||
#elif TEMP_SENSOR_3 > 0
|
||||
#define THERMISTORHEATER_3 TEMP_SENSOR_3
|
||||
#define HEATER_3_USES_THERMISTOR
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_4 <= -2
|
||||
#error "MAX6675 / MAX31855 Thermocouples not supported for TEMP_SENSOR_4"
|
||||
#elif TEMP_SENSOR_4 == -1
|
||||
#define HEATER_4_USES_AD595
|
||||
#elif TEMP_SENSOR_4 == 0
|
||||
#undef HEATER_4_MINTEMP
|
||||
#undef HEATER_4_MAXTEMP
|
||||
#elif TEMP_SENSOR_4 > 0
|
||||
#define THERMISTORHEATER_4 TEMP_SENSOR_4
|
||||
#define HEATER_4_USES_THERMISTOR
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_BED <= -2
|
||||
#error "MAX6675 / MAX31855 Thermocouples not supported for TEMP_SENSOR_BED"
|
||||
#elif TEMP_SENSOR_BED == -1
|
||||
#define BED_USES_AD595
|
||||
#elif TEMP_SENSOR_BED == 0
|
||||
#undef BED_MINTEMP
|
||||
#undef BED_MAXTEMP
|
||||
#elif TEMP_SENSOR_BED > 0
|
||||
#define THERMISTORBED TEMP_SENSOR_BED
|
||||
#define BED_USES_THERMISTOR
|
||||
#endif
|
||||
|
||||
#ifdef __SAM3X8E__
|
||||
#define HEATER_USES_AD595 (ENABLED(HEATER_0_USES_AD595) || ENABLED(HEATER_1_USES_AD595) || ENABLED(HEATER_2_USES_AD595) || ENABLED(HEATER_3_USES_AD595))
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Flags for PID handling
|
||||
*/
|
||||
#define HAS_PID_HEATING (ENABLED(PIDTEMP) || ENABLED(PIDTEMPBED))
|
||||
#define HAS_PID_FOR_BOTH (ENABLED(PIDTEMP) && ENABLED(PIDTEMPBED))
|
||||
|
||||
/**
|
||||
* Default hotend offsets, if not defined
|
||||
*/
|
||||
#if HOTENDS > 1
|
||||
#ifndef HOTEND_OFFSET_X
|
||||
#define HOTEND_OFFSET_X { 0 } // X offsets for each extruder
|
||||
#endif
|
||||
#if (POWER_SUPPLY == 1) // 1 = ATX
|
||||
#define PS_ON_AWAKE LOW
|
||||
#define PS_ON_ASLEEP HIGH
|
||||
#elif (POWER_SUPPLY == 2) // 2 = X-Box 360 203W
|
||||
#define PS_ON_AWAKE HIGH
|
||||
#define PS_ON_ASLEEP LOW
|
||||
#ifndef HOTEND_OFFSET_Y
|
||||
#define HOTEND_OFFSET_Y { 0 } // Y offsets for each extruder
|
||||
#endif
|
||||
#define HAS_POWER_SWITCH (POWER_SUPPLY > 0 && PIN_EXISTS(PS_ON))
|
||||
|
||||
/**
|
||||
* Temp Sensor defines
|
||||
*/
|
||||
#if TEMP_SENSOR_0 == -3
|
||||
#define HEATER_0_USES_MAX6675
|
||||
#define MAX6675_IS_MAX31855
|
||||
#define MAX6675_TMIN -270
|
||||
#define MAX6675_TMAX 1800
|
||||
#elif TEMP_SENSOR_0 == -2
|
||||
#define HEATER_0_USES_MAX6675
|
||||
#define MAX6675_TMIN 0
|
||||
#define MAX6675_TMAX 1024
|
||||
#elif TEMP_SENSOR_0 == -1
|
||||
#define HEATER_0_USES_AD595
|
||||
#elif TEMP_SENSOR_0 == 0
|
||||
#undef HEATER_0_MINTEMP
|
||||
#undef HEATER_0_MAXTEMP
|
||||
#elif TEMP_SENSOR_0 > 0
|
||||
#define THERMISTORHEATER_0 TEMP_SENSOR_0
|
||||
#define HEATER_0_USES_THERMISTOR
|
||||
#if !defined(HOTEND_OFFSET_Z) && (ENABLED(DUAL_X_CARRIAGE) || ENABLED(SWITCHING_NOZZLE))
|
||||
#define HOTEND_OFFSET_Z { 0 }
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_1 <= -2
|
||||
#error "MAX6675 / MAX31855 Thermocouples not supported for TEMP_SENSOR_1"
|
||||
#elif TEMP_SENSOR_1 == -1
|
||||
#define HEATER_1_USES_AD595
|
||||
#elif TEMP_SENSOR_1 == 0
|
||||
#undef HEATER_1_MINTEMP
|
||||
#undef HEATER_1_MAXTEMP
|
||||
#elif TEMP_SENSOR_1 > 0
|
||||
#define THERMISTORHEATER_1 TEMP_SENSOR_1
|
||||
#define HEATER_1_USES_THERMISTOR
|
||||
/**
|
||||
* ARRAY_BY_EXTRUDERS based on EXTRUDERS
|
||||
*/
|
||||
#define ARRAY_BY_EXTRUDERS(...) ARRAY_N(EXTRUDERS, __VA_ARGS__)
|
||||
#define ARRAY_BY_EXTRUDERS1(v1) ARRAY_BY_EXTRUDERS(v1, v1, v1, v1, v1, v1)
|
||||
|
||||
/**
|
||||
* ARRAY_BY_HOTENDS based on HOTENDS
|
||||
*/
|
||||
#define ARRAY_BY_HOTENDS(...) ARRAY_N(HOTENDS, __VA_ARGS__)
|
||||
#define ARRAY_BY_HOTENDS1(v1) ARRAY_BY_HOTENDS(v1, v1, v1, v1, v1, v1)
|
||||
|
||||
/**
|
||||
* Z_DUAL_ENDSTOPS endstop reassignment
|
||||
*/
|
||||
#if ENABLED(Z_DUAL_ENDSTOPS)
|
||||
#define _XMIN_ 100
|
||||
#define _YMIN_ 200
|
||||
#define _ZMIN_ 300
|
||||
#define _XMAX_ 101
|
||||
#define _YMAX_ 201
|
||||
#define _ZMAX_ 301
|
||||
#if Z2_USE_ENDSTOP == _XMIN_
|
||||
#define USE_XMIN_PLUG
|
||||
#elif Z2_USE_ENDSTOP == _XMAX_
|
||||
#define USE_XMAX_PLUG
|
||||
#elif Z2_USE_ENDSTOP == _YMIN_
|
||||
#define USE_YMIN_PLUG
|
||||
#elif Z2_USE_ENDSTOP == _YMAX_
|
||||
#define USE_YMAX_PLUG
|
||||
#elif Z2_USE_ENDSTOP == _ZMIN_
|
||||
#define USE_ZMIN_PLUG
|
||||
#elif Z2_USE_ENDSTOP == _ZMAX_
|
||||
#define USE_ZMAX_PLUG
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_2 <= -2
|
||||
#error "MAX6675 / MAX31855 Thermocouples not supported for TEMP_SENSOR_2"
|
||||
#elif TEMP_SENSOR_2 == -1
|
||||
#define HEATER_2_USES_AD595
|
||||
#elif TEMP_SENSOR_2 == 0
|
||||
#undef HEATER_2_MINTEMP
|
||||
#undef HEATER_2_MAXTEMP
|
||||
#elif TEMP_SENSOR_2 > 0
|
||||
#define THERMISTORHEATER_2 TEMP_SENSOR_2
|
||||
#define HEATER_2_USES_THERMISTOR
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_3 <= -2
|
||||
#error "MAX6675 / MAX31855 Thermocouples not supported for TEMP_SENSOR_3"
|
||||
#elif TEMP_SENSOR_3 == -1
|
||||
#define HEATER_3_USES_AD595
|
||||
#elif TEMP_SENSOR_3 == 0
|
||||
#undef HEATER_3_MINTEMP
|
||||
#undef HEATER_3_MAXTEMP
|
||||
#elif TEMP_SENSOR_3 > 0
|
||||
#define THERMISTORHEATER_3 TEMP_SENSOR_3
|
||||
#define HEATER_3_USES_THERMISTOR
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_4 <= -2
|
||||
#error "MAX6675 / MAX31855 Thermocouples not supported for TEMP_SENSOR_4"
|
||||
#elif TEMP_SENSOR_4 == -1
|
||||
#define HEATER_4_USES_AD595
|
||||
#elif TEMP_SENSOR_4 == 0
|
||||
#undef HEATER_4_MINTEMP
|
||||
#undef HEATER_4_MAXTEMP
|
||||
#elif TEMP_SENSOR_4 > 0
|
||||
#define THERMISTORHEATER_4 TEMP_SENSOR_4
|
||||
#define HEATER_4_USES_THERMISTOR
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_BED <= -2
|
||||
#error "MAX6675 / MAX31855 Thermocouples not supported for TEMP_SENSOR_BED"
|
||||
#elif TEMP_SENSOR_BED == -1
|
||||
#define BED_USES_AD595
|
||||
#elif TEMP_SENSOR_BED == 0
|
||||
#undef BED_MINTEMP
|
||||
#undef BED_MAXTEMP
|
||||
#elif TEMP_SENSOR_BED > 0
|
||||
#define THERMISTORBED TEMP_SENSOR_BED
|
||||
#define BED_USES_THERMISTOR
|
||||
#endif
|
||||
|
||||
#ifdef __SAM3X8E__
|
||||
#define HEATER_USES_AD595 (ENABLED(HEATER_0_USES_AD595) || ENABLED(HEATER_1_USES_AD595) || ENABLED(HEATER_2_USES_AD595) || ENABLED(HEATER_3_USES_AD595))
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Flags for PID handling
|
||||
*/
|
||||
#define HAS_PID_HEATING (ENABLED(PIDTEMP) || ENABLED(PIDTEMPBED))
|
||||
#define HAS_PID_FOR_BOTH (ENABLED(PIDTEMP) && ENABLED(PIDTEMPBED))
|
||||
|
||||
/**
|
||||
* Default hotend offsets, if not defined
|
||||
*/
|
||||
#if HOTENDS > 1
|
||||
#ifndef HOTEND_OFFSET_X
|
||||
#define HOTEND_OFFSET_X { 0 } // X offsets for each extruder
|
||||
#endif
|
||||
#ifndef HOTEND_OFFSET_Y
|
||||
#define HOTEND_OFFSET_Y { 0 } // Y offsets for each extruder
|
||||
#endif
|
||||
#if !defined(HOTEND_OFFSET_Z) && (ENABLED(DUAL_X_CARRIAGE) || ENABLED(SWITCHING_NOZZLE))
|
||||
#define HOTEND_OFFSET_Z { 0 }
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
* ARRAY_BY_EXTRUDERS based on EXTRUDERS
|
||||
*/
|
||||
#define ARRAY_BY_EXTRUDERS(...) ARRAY_N(EXTRUDERS, __VA_ARGS__)
|
||||
#define ARRAY_BY_EXTRUDERS1(v1) ARRAY_BY_EXTRUDERS(v1, v1, v1, v1, v1, v1)
|
||||
|
||||
/**
|
||||
* ARRAY_BY_HOTENDS based on HOTENDS
|
||||
*/
|
||||
#define ARRAY_BY_HOTENDS(...) ARRAY_N(HOTENDS, __VA_ARGS__)
|
||||
#define ARRAY_BY_HOTENDS1(v1) ARRAY_BY_HOTENDS(v1, v1, v1, v1, v1, v1)
|
||||
|
||||
/**
|
||||
* Z_DUAL_ENDSTOPS endstop reassignment
|
||||
*/
|
||||
#if ENABLED(Z_DUAL_ENDSTOPS)
|
||||
#define _XMIN_ 100
|
||||
#define _YMIN_ 200
|
||||
#define _ZMIN_ 300
|
||||
#define _XMAX_ 101
|
||||
#define _YMAX_ 201
|
||||
#define _ZMAX_ 301
|
||||
#if Z_HOME_DIR > 0
|
||||
#if Z2_USE_ENDSTOP == _XMIN_
|
||||
#define USE_XMIN_PLUG
|
||||
#define Z2_MAX_ENDSTOP_INVERTING X_MIN_ENDSTOP_INVERTING
|
||||
#define Z2_MAX_PIN X_MIN_PIN
|
||||
#elif Z2_USE_ENDSTOP == _XMAX_
|
||||
#define USE_XMAX_PLUG
|
||||
#define Z2_MAX_ENDSTOP_INVERTING X_MAX_ENDSTOP_INVERTING
|
||||
#define Z2_MAX_PIN X_MAX_PIN
|
||||
#elif Z2_USE_ENDSTOP == _YMIN_
|
||||
#define USE_YMIN_PLUG
|
||||
#define Z2_MAX_ENDSTOP_INVERTING Y_MIN_ENDSTOP_INVERTING
|
||||
#define Z2_MAX_PIN Y_MIN_PIN
|
||||
#elif Z2_USE_ENDSTOP == _YMAX_
|
||||
#define USE_YMAX_PLUG
|
||||
#define Z2_MAX_ENDSTOP_INVERTING Y_MAX_ENDSTOP_INVERTING
|
||||
#define Z2_MAX_PIN Y_MAX_PIN
|
||||
#elif Z2_USE_ENDSTOP == _ZMIN_
|
||||
#define USE_ZMIN_PLUG
|
||||
#define Z2_MAX_ENDSTOP_INVERTING Z_MIN_ENDSTOP_INVERTING
|
||||
#define Z2_MAX_PIN Z_MIN_PIN
|
||||
#elif Z2_USE_ENDSTOP == _ZMAX_
|
||||
#define USE_ZMAX_PLUG
|
||||
#endif
|
||||
#if Z_HOME_DIR > 0
|
||||
#if Z2_USE_ENDSTOP == _XMIN_
|
||||
#define Z2_MAX_ENDSTOP_INVERTING X_MIN_ENDSTOP_INVERTING
|
||||
#define Z2_MAX_PIN X_MIN_PIN
|
||||
#elif Z2_USE_ENDSTOP == _XMAX_
|
||||
#define Z2_MAX_ENDSTOP_INVERTING X_MAX_ENDSTOP_INVERTING
|
||||
#define Z2_MAX_PIN X_MAX_PIN
|
||||
#elif Z2_USE_ENDSTOP == _YMIN_
|
||||
#define Z2_MAX_ENDSTOP_INVERTING Y_MIN_ENDSTOP_INVERTING
|
||||
#define Z2_MAX_PIN Y_MIN_PIN
|
||||
#elif Z2_USE_ENDSTOP == _YMAX_
|
||||
#define Z2_MAX_ENDSTOP_INVERTING Y_MAX_ENDSTOP_INVERTING
|
||||
#define Z2_MAX_PIN Y_MAX_PIN
|
||||
#elif Z2_USE_ENDSTOP == _ZMIN_
|
||||
#define Z2_MAX_ENDSTOP_INVERTING Z_MIN_ENDSTOP_INVERTING
|
||||
#define Z2_MAX_PIN Z_MIN_PIN
|
||||
#elif Z2_USE_ENDSTOP == _ZMAX_
|
||||
#define Z2_MAX_ENDSTOP_INVERTING Z_MAX_ENDSTOP_INVERTING
|
||||
#define Z2_MAX_PIN Z_MAX_PIN
|
||||
#else
|
||||
#define Z2_MAX_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#define Z2_MAX_ENDSTOP_INVERTING Z_MAX_ENDSTOP_INVERTING
|
||||
#define Z2_MAX_PIN Z_MAX_PIN
|
||||
#else
|
||||
#if Z2_USE_ENDSTOP == _XMIN_
|
||||
#define Z2_MIN_ENDSTOP_INVERTING X_MIN_ENDSTOP_INVERTING
|
||||
#define Z2_MIN_PIN X_MIN_PIN
|
||||
#elif Z2_USE_ENDSTOP == _XMAX_
|
||||
#define Z2_MIN_ENDSTOP_INVERTING X_MAX_ENDSTOP_INVERTING
|
||||
#define Z2_MIN_PIN X_MAX_PIN
|
||||
#elif Z2_USE_ENDSTOP == _YMIN_
|
||||
#define Z2_MIN_ENDSTOP_INVERTING Y_MIN_ENDSTOP_INVERTING
|
||||
#define Z2_MIN_PIN Y_MIN_PIN
|
||||
#elif Z2_USE_ENDSTOP == _YMAX_
|
||||
#define Z2_MIN_ENDSTOP_INVERTING Y_MAX_ENDSTOP_INVERTING
|
||||
#define Z2_MIN_PIN Y_MAX_PIN
|
||||
#elif Z2_USE_ENDSTOP == _ZMIN_
|
||||
#define Z2_MIN_ENDSTOP_INVERTING Z_MIN_ENDSTOP_INVERTING
|
||||
#define Z2_MIN_PIN Z_MIN_PIN
|
||||
#elif Z2_USE_ENDSTOP == _ZMAX_
|
||||
#define Z2_MIN_ENDSTOP_INVERTING Z_MAX_ENDSTOP_INVERTING
|
||||
#define Z2_MIN_PIN Z_MAX_PIN
|
||||
#else
|
||||
#define Z2_MIN_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#define Z2_MAX_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Is an endstop plug used for the Z2 endstop or the bed probe?
|
||||
#define IS_Z2_OR_PROBE(A,M) ( \
|
||||
(ENABLED(Z_DUAL_ENDSTOPS) && Z2_USE_ENDSTOP == _##A##M##_) \
|
||||
|| (ENABLED(Z_MIN_PROBE_ENDSTOP) && Z_MIN_PROBE_PIN == A##_##M##_PIN ) )
|
||||
|
||||
/**
|
||||
* Set ENDSTOPPULLUPS for active endstop switches
|
||||
*/
|
||||
#if ENABLED(ENDSTOPPULLUPS)
|
||||
#if ENABLED(USE_XMAX_PLUG)
|
||||
#define ENDSTOPPULLUP_XMAX
|
||||
#endif
|
||||
#if ENABLED(USE_YMAX_PLUG)
|
||||
#define ENDSTOPPULLUP_YMAX
|
||||
#endif
|
||||
#if ENABLED(USE_ZMAX_PLUG)
|
||||
#define ENDSTOPPULLUP_ZMAX
|
||||
#endif
|
||||
#if ENABLED(USE_XMIN_PLUG)
|
||||
#define ENDSTOPPULLUP_XMIN
|
||||
#endif
|
||||
#if ENABLED(USE_YMIN_PLUG)
|
||||
#define ENDSTOPPULLUP_YMIN
|
||||
#endif
|
||||
#if ENABLED(USE_ZMIN_PLUG)
|
||||
#define ENDSTOPPULLUP_ZMIN
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Shorthand for pin tests, used wherever needed
|
||||
*/
|
||||
|
||||
// Steppers
|
||||
#define HAS_X_ENABLE (PIN_EXISTS(X_ENABLE))
|
||||
#define HAS_X_DIR (PIN_EXISTS(X_DIR))
|
||||
#define HAS_X_STEP (PIN_EXISTS(X_STEP))
|
||||
#define HAS_X_MICROSTEPS (PIN_EXISTS(X_MS1))
|
||||
|
||||
#define HAS_X2_ENABLE (PIN_EXISTS(X2_ENABLE))
|
||||
#define HAS_X2_DIR (PIN_EXISTS(X2_DIR))
|
||||
#define HAS_X2_STEP (PIN_EXISTS(X2_STEP))
|
||||
#define HAS_Y_MICROSTEPS (PIN_EXISTS(Y_MS1))
|
||||
|
||||
#define HAS_Y_ENABLE (PIN_EXISTS(Y_ENABLE))
|
||||
#define HAS_Y_DIR (PIN_EXISTS(Y_DIR))
|
||||
#define HAS_Y_STEP (PIN_EXISTS(Y_STEP))
|
||||
#define HAS_Z_MICROSTEPS (PIN_EXISTS(Z_MS1))
|
||||
|
||||
#define HAS_Y2_ENABLE (PIN_EXISTS(Y2_ENABLE))
|
||||
#define HAS_Y2_DIR (PIN_EXISTS(Y2_DIR))
|
||||
#define HAS_Y2_STEP (PIN_EXISTS(Y2_STEP))
|
||||
|
||||
#define HAS_Z_ENABLE (PIN_EXISTS(Z_ENABLE))
|
||||
#define HAS_Z_DIR (PIN_EXISTS(Z_DIR))
|
||||
#define HAS_Z_STEP (PIN_EXISTS(Z_STEP))
|
||||
|
||||
#define HAS_Z2_ENABLE (PIN_EXISTS(Z2_ENABLE))
|
||||
#define HAS_Z2_DIR (PIN_EXISTS(Z2_DIR))
|
||||
#define HAS_Z2_STEP (PIN_EXISTS(Z2_STEP))
|
||||
|
||||
// Extruder steppers and solenoids
|
||||
#define HAS_E0_ENABLE (PIN_EXISTS(E0_ENABLE))
|
||||
#define HAS_E0_DIR (PIN_EXISTS(E0_DIR))
|
||||
#define HAS_E0_STEP (PIN_EXISTS(E0_STEP))
|
||||
#define HAS_E0_MICROSTEPS (PIN_EXISTS(E0_MS1))
|
||||
#define HAS_SOLENOID_0 (PIN_EXISTS(SOL0))
|
||||
|
||||
#define HAS_E1_ENABLE (PIN_EXISTS(E1_ENABLE))
|
||||
#define HAS_E1_DIR (PIN_EXISTS(E1_DIR))
|
||||
#define HAS_E1_STEP (PIN_EXISTS(E1_STEP))
|
||||
#define HAS_E1_MICROSTEPS (PIN_EXISTS(E1_MS1))
|
||||
#define HAS_SOLENOID_1 (PIN_EXISTS(SOL1))
|
||||
|
||||
#define HAS_E2_ENABLE (PIN_EXISTS(E2_ENABLE))
|
||||
#define HAS_E2_DIR (PIN_EXISTS(E2_DIR))
|
||||
#define HAS_E2_STEP (PIN_EXISTS(E2_STEP))
|
||||
#define HAS_E2_MICROSTEPS (PIN_EXISTS(E2_MS1))
|
||||
#define HAS_SOLENOID_2 (PIN_EXISTS(SOL2))
|
||||
|
||||
#define HAS_E3_ENABLE (PIN_EXISTS(E3_ENABLE))
|
||||
#define HAS_E3_DIR (PIN_EXISTS(E3_DIR))
|
||||
#define HAS_E3_STEP (PIN_EXISTS(E3_STEP))
|
||||
#define HAS_E3_MICROSTEPS (PIN_EXISTS(E3_MS1))
|
||||
#define HAS_SOLENOID_3 (PIN_EXISTS(SOL3))
|
||||
|
||||
#define HAS_E4_ENABLE (PIN_EXISTS(E4_ENABLE))
|
||||
#define HAS_E4_DIR (PIN_EXISTS(E4_DIR))
|
||||
#define HAS_E4_STEP (PIN_EXISTS(E4_STEP))
|
||||
#define HAS_E4_MICROSTEPS (PIN_EXISTS(E4_MS1))
|
||||
#define HAS_SOLENOID_4 (PIN_EXISTS(SOL4))
|
||||
|
||||
// Endstops and bed probe
|
||||
#define HAS_X_MIN (PIN_EXISTS(X_MIN) && !IS_Z2_OR_PROBE(X,MIN))
|
||||
#define HAS_X_MAX (PIN_EXISTS(X_MAX) && !IS_Z2_OR_PROBE(X,MAX))
|
||||
#define HAS_Y_MIN (PIN_EXISTS(Y_MIN) && !IS_Z2_OR_PROBE(Y,MIN))
|
||||
#define HAS_Y_MAX (PIN_EXISTS(Y_MAX) && !IS_Z2_OR_PROBE(Y,MAX))
|
||||
#define HAS_Z_MIN (PIN_EXISTS(Z_MIN) && !IS_Z2_OR_PROBE(Z,MIN))
|
||||
#define HAS_Z_MAX (PIN_EXISTS(Z_MAX) && !IS_Z2_OR_PROBE(Z,MAX))
|
||||
#define HAS_Z2_MIN (PIN_EXISTS(Z2_MIN))
|
||||
#define HAS_Z2_MAX (PIN_EXISTS(Z2_MAX))
|
||||
#define HAS_Z_MIN_PROBE_PIN (PIN_EXISTS(Z_MIN_PROBE))
|
||||
|
||||
// Thermistors
|
||||
#define HAS_TEMP_0 (PIN_EXISTS(TEMP_0) && TEMP_SENSOR_0 != 0 && TEMP_SENSOR_0 > -2)
|
||||
#define HAS_TEMP_1 (PIN_EXISTS(TEMP_1) && TEMP_SENSOR_1 != 0 && TEMP_SENSOR_1 > -2)
|
||||
#define HAS_TEMP_2 (PIN_EXISTS(TEMP_2) && TEMP_SENSOR_2 != 0 && TEMP_SENSOR_2 > -2)
|
||||
#define HAS_TEMP_3 (PIN_EXISTS(TEMP_3) && TEMP_SENSOR_3 != 0 && TEMP_SENSOR_3 > -2)
|
||||
#define HAS_TEMP_4 (PIN_EXISTS(TEMP_4) && TEMP_SENSOR_4 != 0 && TEMP_SENSOR_4 > -2)
|
||||
#define HAS_TEMP_HOTEND (HAS_TEMP_0 || ENABLED(HEATER_0_USES_MAX6675))
|
||||
#define HAS_TEMP_BED (PIN_EXISTS(TEMP_BED) && TEMP_SENSOR_BED != 0 && TEMP_SENSOR_BED > -2)
|
||||
|
||||
// Heaters
|
||||
#define HAS_HEATER_0 (PIN_EXISTS(HEATER_0))
|
||||
#define HAS_HEATER_1 (PIN_EXISTS(HEATER_1))
|
||||
#define HAS_HEATER_2 (PIN_EXISTS(HEATER_2))
|
||||
#define HAS_HEATER_3 (PIN_EXISTS(HEATER_3))
|
||||
#define HAS_HEATER_4 (PIN_EXISTS(HEATER_4))
|
||||
#define HAS_HEATER_BED (PIN_EXISTS(HEATER_BED))
|
||||
|
||||
// Thermal protection
|
||||
#define HAS_THERMALLY_PROTECTED_BED (ENABLED(THERMAL_PROTECTION_BED) && HAS_TEMP_BED && HAS_HEATER_BED)
|
||||
#define WATCH_HOTENDS (ENABLED(THERMAL_PROTECTION_HOTENDS) && WATCH_TEMP_PERIOD > 0)
|
||||
#define WATCH_THE_BED (HAS_THERMALLY_PROTECTED_BED && WATCH_BED_TEMP_PERIOD > 0)
|
||||
|
||||
// Auto fans
|
||||
#define HAS_AUTO_FAN_0 (PIN_EXISTS(E0_AUTO_FAN))
|
||||
#define HAS_AUTO_FAN_1 (HOTENDS > 1 && PIN_EXISTS(E1_AUTO_FAN))
|
||||
#define HAS_AUTO_FAN_2 (HOTENDS > 2 && PIN_EXISTS(E2_AUTO_FAN))
|
||||
#define HAS_AUTO_FAN_3 (HOTENDS > 3 && PIN_EXISTS(E3_AUTO_FAN))
|
||||
#define HAS_AUTO_FAN_4 (HOTENDS > 4 && PIN_EXISTS(E4_AUTO_FAN))
|
||||
#define HAS_AUTO_FAN (HAS_AUTO_FAN_0 || HAS_AUTO_FAN_1 || HAS_AUTO_FAN_2 || HAS_AUTO_FAN_3)
|
||||
#define AUTO_1_IS_0 (E1_AUTO_FAN_PIN == E0_AUTO_FAN_PIN)
|
||||
#define AUTO_2_IS_0 (E2_AUTO_FAN_PIN == E0_AUTO_FAN_PIN)
|
||||
#define AUTO_2_IS_1 (E2_AUTO_FAN_PIN == E1_AUTO_FAN_PIN)
|
||||
#define AUTO_3_IS_0 (E3_AUTO_FAN_PIN == E0_AUTO_FAN_PIN)
|
||||
#define AUTO_3_IS_1 (E3_AUTO_FAN_PIN == E1_AUTO_FAN_PIN)
|
||||
#define AUTO_3_IS_2 (E3_AUTO_FAN_PIN == E2_AUTO_FAN_PIN)
|
||||
#define AUTO_4_IS_0 (E4_AUTO_FAN_PIN == E0_AUTO_FAN_PIN)
|
||||
#define AUTO_4_IS_1 (E4_AUTO_FAN_PIN == E1_AUTO_FAN_PIN)
|
||||
#define AUTO_4_IS_2 (E4_AUTO_FAN_PIN == E2_AUTO_FAN_PIN)
|
||||
#define AUTO_4_IS_3 (E4_AUTO_FAN_PIN == E3_AUTO_FAN_PIN)
|
||||
|
||||
// Other fans
|
||||
#define HAS_FAN0 (PIN_EXISTS(FAN))
|
||||
#define HAS_FAN1 (PIN_EXISTS(FAN1) && CONTROLLER_FAN_PIN != FAN1_PIN && E0_AUTO_FAN_PIN != FAN1_PIN && E1_AUTO_FAN_PIN != FAN1_PIN && E2_AUTO_FAN_PIN != FAN1_PIN && E3_AUTO_FAN_PIN != FAN1_PIN)
|
||||
#define HAS_FAN2 (PIN_EXISTS(FAN2) && CONTROLLER_FAN_PIN != FAN2_PIN && E0_AUTO_FAN_PIN != FAN2_PIN && E1_AUTO_FAN_PIN != FAN2_PIN && E2_AUTO_FAN_PIN != FAN2_PIN && E3_AUTO_FAN_PIN != FAN2_PIN)
|
||||
#define HAS_CONTROLLER_FAN (PIN_EXISTS(CONTROLLER_FAN))
|
||||
|
||||
// Servos
|
||||
#define HAS_SERVOS (defined(NUM_SERVOS) && NUM_SERVOS > 0)
|
||||
#define HAS_SERVO_0 (PIN_EXISTS(SERVO0))
|
||||
#define HAS_SERVO_1 (PIN_EXISTS(SERVO1))
|
||||
#define HAS_SERVO_2 (PIN_EXISTS(SERVO2))
|
||||
#define HAS_SERVO_3 (PIN_EXISTS(SERVO3))
|
||||
|
||||
// Sensors
|
||||
#define HAS_FILAMENT_WIDTH_SENSOR (PIN_EXISTS(FILWIDTH))
|
||||
#define HAS_FIL_RUNOUT (PIN_EXISTS(FIL_RUNOUT))
|
||||
|
||||
// User Interface
|
||||
#define HAS_HOME (PIN_EXISTS(HOME))
|
||||
#define HAS_KILL (PIN_EXISTS(KILL))
|
||||
#define HAS_SUICIDE (PIN_EXISTS(SUICIDE))
|
||||
#define HAS_PHOTOGRAPH (PIN_EXISTS(PHOTOGRAPH))
|
||||
#define HAS_BUZZER (PIN_EXISTS(BEEPER) || ENABLED(LCD_USE_I2C_BUZZER))
|
||||
#define HAS_CASE_LIGHT (PIN_EXISTS(CASE_LIGHT) && ENABLED(CASE_LIGHT_ENABLE))
|
||||
|
||||
// Digital control
|
||||
#define HAS_MICROSTEPS (HAS_X_MICROSTEPS || HAS_Y_MICROSTEPS || HAS_Z_MICROSTEPS || HAS_E0_MICROSTEPS || HAS_E1_MICROSTEPS || HAS_E2_MICROSTEPS || HAS_E3_MICROSTEPS || HAS_E4_MICROSTEPS)
|
||||
#define HAS_STEPPER_RESET (PIN_EXISTS(STEPPER_RESET))
|
||||
#define HAS_DIGIPOTSS (PIN_EXISTS(DIGIPOTSS))
|
||||
#define HAS_MOTOR_CURRENT_PWM (PIN_EXISTS(MOTOR_CURRENT_PWM_XY) || PIN_EXISTS(MOTOR_CURRENT_PWM_Z) || PIN_EXISTS(MOTOR_CURRENT_PWM_E))
|
||||
|
||||
/**
|
||||
* This setting is also used by M109 when trying to calculate
|
||||
* a ballpark safe margin to prevent wait-forever situation.
|
||||
*/
|
||||
#ifndef EXTRUDE_MINTEMP
|
||||
#define EXTRUDE_MINTEMP 170
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Helper Macros for heaters and extruder fan
|
||||
*/
|
||||
#define WRITE_HEATER_0P(v) WRITE(HEATER_0_PIN, v)
|
||||
#if HOTENDS > 1 || ENABLED(HEATERS_PARALLEL)
|
||||
#define WRITE_HEATER_1(v) WRITE(HEATER_1_PIN, v)
|
||||
#if HOTENDS > 2
|
||||
#define WRITE_HEATER_2(v) WRITE(HEATER_2_PIN, v)
|
||||
#if HOTENDS > 3
|
||||
#define WRITE_HEATER_3(v) WRITE(HEATER_3_PIN, v)
|
||||
#if HOTENDS > 4
|
||||
#define WRITE_HEATER_4(v) WRITE(HEATER_4_PIN, v)
|
||||
#endif // HOTENDS > 4
|
||||
#endif // HOTENDS > 3
|
||||
#endif // HOTENDS > 2
|
||||
#endif // HOTENDS > 1
|
||||
#if ENABLED(HEATERS_PARALLEL)
|
||||
#define WRITE_HEATER_0(v) { WRITE_HEATER_0P(v); WRITE_HEATER_1(v); }
|
||||
#else
|
||||
#define WRITE_HEATER_0(v) WRITE_HEATER_0P(v)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Heated bed requires settings
|
||||
*/
|
||||
#if HAS_HEATER_BED
|
||||
#ifndef MAX_BED_POWER
|
||||
#define MAX_BED_POWER 255
|
||||
#endif
|
||||
#ifndef HEATER_BED_INVERTING
|
||||
#define HEATER_BED_INVERTING false
|
||||
#endif
|
||||
#define WRITE_HEATER_BED(v) WRITE(HEATER_BED_PIN, (v) ^ HEATER_BED_INVERTING)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Up to 3 PWM fans
|
||||
*/
|
||||
#if HAS_FAN2
|
||||
#define FAN_COUNT 3
|
||||
#elif HAS_FAN1
|
||||
#define FAN_COUNT 2
|
||||
#elif HAS_FAN0
|
||||
#define FAN_COUNT 1
|
||||
#else
|
||||
#define FAN_COUNT 0
|
||||
#endif
|
||||
|
||||
#if HAS_FAN0
|
||||
#define WRITE_FAN(v) WRITE(FAN_PIN, v)
|
||||
#define WRITE_FAN0(v) WRITE_FAN(v)
|
||||
#endif
|
||||
#if HAS_FAN1
|
||||
#define WRITE_FAN1(v) WRITE(FAN1_PIN, v)
|
||||
#endif
|
||||
#if HAS_FAN2
|
||||
#define WRITE_FAN2(v) WRITE(FAN2_PIN, v)
|
||||
#endif
|
||||
#define WRITE_FAN_N(n, v) WRITE_FAN##n(v)
|
||||
|
||||
/**
|
||||
* Part Cooling fan multipliexer
|
||||
*/
|
||||
#define HAS_FANMUX PIN_EXISTS(FANMUX0)
|
||||
|
||||
/**
|
||||
* Servos and probes
|
||||
*/
|
||||
|
||||
#if HAS_SERVOS
|
||||
#ifndef Z_ENDSTOP_SERVO_NR
|
||||
#define Z_ENDSTOP_SERVO_NR -1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define PROBE_PIN_CONFIGURED (HAS_Z_MIN_PROBE_PIN || (HAS_Z_MIN && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)))
|
||||
#define HAS_BED_PROBE (PROBE_SELECTED && PROBE_PIN_CONFIGURED && DISABLED(PROBE_MANUALLY))
|
||||
|
||||
#if ENABLED(Z_PROBE_ALLEN_KEY)
|
||||
#define PROBE_IS_TRIGGERED_WHEN_STOWED_TEST
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Bed Probe dependencies
|
||||
*/
|
||||
#if HAS_BED_PROBE
|
||||
#if ENABLED(ENDSTOPPULLUPS) && HAS_Z_MIN_PROBE_PIN
|
||||
#define ENDSTOPPULLUP_ZMIN_PROBE
|
||||
#endif
|
||||
#ifndef Z_PROBE_OFFSET_RANGE_MIN
|
||||
#define Z_PROBE_OFFSET_RANGE_MIN -20
|
||||
#endif
|
||||
#ifndef Z_PROBE_OFFSET_RANGE_MAX
|
||||
#define Z_PROBE_OFFSET_RANGE_MAX 20
|
||||
#endif
|
||||
#ifndef XY_PROBE_SPEED
|
||||
#ifdef HOMING_FEEDRATE_XY
|
||||
#define XY_PROBE_SPEED HOMING_FEEDRATE_XY
|
||||
#else
|
||||
#define XY_PROBE_SPEED 4000
|
||||
#endif
|
||||
#endif
|
||||
#if Z_CLEARANCE_BETWEEN_PROBES > Z_CLEARANCE_DEPLOY_PROBE
|
||||
#define _Z_CLEARANCE_DEPLOY_PROBE Z_CLEARANCE_BETWEEN_PROBES
|
||||
#if Z2_USE_ENDSTOP == _XMIN_
|
||||
#define Z2_MIN_ENDSTOP_INVERTING X_MIN_ENDSTOP_INVERTING
|
||||
#define Z2_MIN_PIN X_MIN_PIN
|
||||
#elif Z2_USE_ENDSTOP == _XMAX_
|
||||
#define Z2_MIN_ENDSTOP_INVERTING X_MAX_ENDSTOP_INVERTING
|
||||
#define Z2_MIN_PIN X_MAX_PIN
|
||||
#elif Z2_USE_ENDSTOP == _YMIN_
|
||||
#define Z2_MIN_ENDSTOP_INVERTING Y_MIN_ENDSTOP_INVERTING
|
||||
#define Z2_MIN_PIN Y_MIN_PIN
|
||||
#elif Z2_USE_ENDSTOP == _YMAX_
|
||||
#define Z2_MIN_ENDSTOP_INVERTING Y_MAX_ENDSTOP_INVERTING
|
||||
#define Z2_MIN_PIN Y_MAX_PIN
|
||||
#elif Z2_USE_ENDSTOP == _ZMIN_
|
||||
#define Z2_MIN_ENDSTOP_INVERTING Z_MIN_ENDSTOP_INVERTING
|
||||
#define Z2_MIN_PIN Z_MIN_PIN
|
||||
#elif Z2_USE_ENDSTOP == _ZMAX_
|
||||
#define Z2_MIN_ENDSTOP_INVERTING Z_MAX_ENDSTOP_INVERTING
|
||||
#define Z2_MIN_PIN Z_MAX_PIN
|
||||
#else
|
||||
#define _Z_CLEARANCE_DEPLOY_PROBE Z_CLEARANCE_DEPLOY_PROBE
|
||||
#define Z2_MIN_ENDSTOP_INVERTING false
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Is an endstop plug used for the Z2 endstop or the bed probe?
|
||||
#define IS_Z2_OR_PROBE(A,M) ( \
|
||||
(ENABLED(Z_DUAL_ENDSTOPS) && Z2_USE_ENDSTOP == _##A##M##_) \
|
||||
|| (ENABLED(Z_MIN_PROBE_ENDSTOP) && Z_MIN_PROBE_PIN == A##_##M##_PIN ) )
|
||||
|
||||
/**
|
||||
* Set ENDSTOPPULLUPS for active endstop switches
|
||||
*/
|
||||
#if ENABLED(ENDSTOPPULLUPS)
|
||||
#if ENABLED(USE_XMAX_PLUG)
|
||||
#define ENDSTOPPULLUP_XMAX
|
||||
#endif
|
||||
#if ENABLED(USE_YMAX_PLUG)
|
||||
#define ENDSTOPPULLUP_YMAX
|
||||
#endif
|
||||
#if ENABLED(USE_ZMAX_PLUG)
|
||||
#define ENDSTOPPULLUP_ZMAX
|
||||
#endif
|
||||
#if ENABLED(USE_XMIN_PLUG)
|
||||
#define ENDSTOPPULLUP_XMIN
|
||||
#endif
|
||||
#if ENABLED(USE_YMIN_PLUG)
|
||||
#define ENDSTOPPULLUP_YMIN
|
||||
#endif
|
||||
#if ENABLED(USE_ZMIN_PLUG)
|
||||
#define ENDSTOPPULLUP_ZMIN
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Shorthand for pin tests, used wherever needed
|
||||
*/
|
||||
|
||||
// Steppers
|
||||
#define HAS_X_ENABLE (PIN_EXISTS(X_ENABLE))
|
||||
#define HAS_X_DIR (PIN_EXISTS(X_DIR))
|
||||
#define HAS_X_STEP (PIN_EXISTS(X_STEP))
|
||||
#define HAS_X_MICROSTEPS (PIN_EXISTS(X_MS1))
|
||||
|
||||
#define HAS_X2_ENABLE (PIN_EXISTS(X2_ENABLE))
|
||||
#define HAS_X2_DIR (PIN_EXISTS(X2_DIR))
|
||||
#define HAS_X2_STEP (PIN_EXISTS(X2_STEP))
|
||||
#define HAS_Y_MICROSTEPS (PIN_EXISTS(Y_MS1))
|
||||
|
||||
#define HAS_Y_ENABLE (PIN_EXISTS(Y_ENABLE))
|
||||
#define HAS_Y_DIR (PIN_EXISTS(Y_DIR))
|
||||
#define HAS_Y_STEP (PIN_EXISTS(Y_STEP))
|
||||
#define HAS_Z_MICROSTEPS (PIN_EXISTS(Z_MS1))
|
||||
|
||||
#define HAS_Y2_ENABLE (PIN_EXISTS(Y2_ENABLE))
|
||||
#define HAS_Y2_DIR (PIN_EXISTS(Y2_DIR))
|
||||
#define HAS_Y2_STEP (PIN_EXISTS(Y2_STEP))
|
||||
|
||||
#define HAS_Z_ENABLE (PIN_EXISTS(Z_ENABLE))
|
||||
#define HAS_Z_DIR (PIN_EXISTS(Z_DIR))
|
||||
#define HAS_Z_STEP (PIN_EXISTS(Z_STEP))
|
||||
|
||||
#define HAS_Z2_ENABLE (PIN_EXISTS(Z2_ENABLE))
|
||||
#define HAS_Z2_DIR (PIN_EXISTS(Z2_DIR))
|
||||
#define HAS_Z2_STEP (PIN_EXISTS(Z2_STEP))
|
||||
|
||||
// Extruder steppers and solenoids
|
||||
#define HAS_E0_ENABLE (PIN_EXISTS(E0_ENABLE))
|
||||
#define HAS_E0_DIR (PIN_EXISTS(E0_DIR))
|
||||
#define HAS_E0_STEP (PIN_EXISTS(E0_STEP))
|
||||
#define HAS_E0_MICROSTEPS (PIN_EXISTS(E0_MS1))
|
||||
#define HAS_SOLENOID_0 (PIN_EXISTS(SOL0))
|
||||
|
||||
#define HAS_E1_ENABLE (PIN_EXISTS(E1_ENABLE))
|
||||
#define HAS_E1_DIR (PIN_EXISTS(E1_DIR))
|
||||
#define HAS_E1_STEP (PIN_EXISTS(E1_STEP))
|
||||
#define HAS_E1_MICROSTEPS (PIN_EXISTS(E1_MS1))
|
||||
#define HAS_SOLENOID_1 (PIN_EXISTS(SOL1))
|
||||
|
||||
#define HAS_E2_ENABLE (PIN_EXISTS(E2_ENABLE))
|
||||
#define HAS_E2_DIR (PIN_EXISTS(E2_DIR))
|
||||
#define HAS_E2_STEP (PIN_EXISTS(E2_STEP))
|
||||
#define HAS_E2_MICROSTEPS (PIN_EXISTS(E2_MS1))
|
||||
#define HAS_SOLENOID_2 (PIN_EXISTS(SOL2))
|
||||
|
||||
#define HAS_E3_ENABLE (PIN_EXISTS(E3_ENABLE))
|
||||
#define HAS_E3_DIR (PIN_EXISTS(E3_DIR))
|
||||
#define HAS_E3_STEP (PIN_EXISTS(E3_STEP))
|
||||
#define HAS_E3_MICROSTEPS (PIN_EXISTS(E3_MS1))
|
||||
#define HAS_SOLENOID_3 (PIN_EXISTS(SOL3))
|
||||
|
||||
#define HAS_E4_ENABLE (PIN_EXISTS(E4_ENABLE))
|
||||
#define HAS_E4_DIR (PIN_EXISTS(E4_DIR))
|
||||
#define HAS_E4_STEP (PIN_EXISTS(E4_STEP))
|
||||
#define HAS_E4_MICROSTEPS (PIN_EXISTS(E4_MS1))
|
||||
#define HAS_SOLENOID_4 (PIN_EXISTS(SOL4))
|
||||
|
||||
// Endstops and bed probe
|
||||
#define HAS_X_MIN (PIN_EXISTS(X_MIN) && !IS_Z2_OR_PROBE(X,MIN))
|
||||
#define HAS_X_MAX (PIN_EXISTS(X_MAX) && !IS_Z2_OR_PROBE(X,MAX))
|
||||
#define HAS_Y_MIN (PIN_EXISTS(Y_MIN) && !IS_Z2_OR_PROBE(Y,MIN))
|
||||
#define HAS_Y_MAX (PIN_EXISTS(Y_MAX) && !IS_Z2_OR_PROBE(Y,MAX))
|
||||
#define HAS_Z_MIN (PIN_EXISTS(Z_MIN) && !IS_Z2_OR_PROBE(Z,MIN))
|
||||
#define HAS_Z_MAX (PIN_EXISTS(Z_MAX) && !IS_Z2_OR_PROBE(Z,MAX))
|
||||
#define HAS_Z2_MIN (PIN_EXISTS(Z2_MIN))
|
||||
#define HAS_Z2_MAX (PIN_EXISTS(Z2_MAX))
|
||||
#define HAS_Z_MIN_PROBE_PIN (PIN_EXISTS(Z_MIN_PROBE))
|
||||
|
||||
// Thermistors
|
||||
#define HAS_TEMP_0 (PIN_EXISTS(TEMP_0) && TEMP_SENSOR_0 != 0 && TEMP_SENSOR_0 > -2)
|
||||
#define HAS_TEMP_1 (PIN_EXISTS(TEMP_1) && TEMP_SENSOR_1 != 0 && TEMP_SENSOR_1 > -2)
|
||||
#define HAS_TEMP_2 (PIN_EXISTS(TEMP_2) && TEMP_SENSOR_2 != 0 && TEMP_SENSOR_2 > -2)
|
||||
#define HAS_TEMP_3 (PIN_EXISTS(TEMP_3) && TEMP_SENSOR_3 != 0 && TEMP_SENSOR_3 > -2)
|
||||
#define HAS_TEMP_4 (PIN_EXISTS(TEMP_4) && TEMP_SENSOR_4 != 0 && TEMP_SENSOR_4 > -2)
|
||||
#define HAS_TEMP_HOTEND (HAS_TEMP_0 || ENABLED(HEATER_0_USES_MAX6675))
|
||||
#define HAS_TEMP_BED (PIN_EXISTS(TEMP_BED) && TEMP_SENSOR_BED != 0 && TEMP_SENSOR_BED > -2)
|
||||
|
||||
// Heaters
|
||||
#define HAS_HEATER_0 (PIN_EXISTS(HEATER_0))
|
||||
#define HAS_HEATER_1 (PIN_EXISTS(HEATER_1))
|
||||
#define HAS_HEATER_2 (PIN_EXISTS(HEATER_2))
|
||||
#define HAS_HEATER_3 (PIN_EXISTS(HEATER_3))
|
||||
#define HAS_HEATER_4 (PIN_EXISTS(HEATER_4))
|
||||
#define HAS_HEATER_BED (PIN_EXISTS(HEATER_BED))
|
||||
|
||||
// Thermal protection
|
||||
#define HAS_THERMALLY_PROTECTED_BED (ENABLED(THERMAL_PROTECTION_BED) && HAS_TEMP_BED && HAS_HEATER_BED)
|
||||
#define WATCH_HOTENDS (ENABLED(THERMAL_PROTECTION_HOTENDS) && WATCH_TEMP_PERIOD > 0)
|
||||
#define WATCH_THE_BED (HAS_THERMALLY_PROTECTED_BED && WATCH_BED_TEMP_PERIOD > 0)
|
||||
|
||||
// Auto fans
|
||||
#define HAS_AUTO_FAN_0 (PIN_EXISTS(E0_AUTO_FAN))
|
||||
#define HAS_AUTO_FAN_1 (HOTENDS > 1 && PIN_EXISTS(E1_AUTO_FAN))
|
||||
#define HAS_AUTO_FAN_2 (HOTENDS > 2 && PIN_EXISTS(E2_AUTO_FAN))
|
||||
#define HAS_AUTO_FAN_3 (HOTENDS > 3 && PIN_EXISTS(E3_AUTO_FAN))
|
||||
#define HAS_AUTO_FAN_4 (HOTENDS > 4 && PIN_EXISTS(E4_AUTO_FAN))
|
||||
#define HAS_AUTO_FAN (HAS_AUTO_FAN_0 || HAS_AUTO_FAN_1 || HAS_AUTO_FAN_2 || HAS_AUTO_FAN_3)
|
||||
#define AUTO_1_IS_0 (E1_AUTO_FAN_PIN == E0_AUTO_FAN_PIN)
|
||||
#define AUTO_2_IS_0 (E2_AUTO_FAN_PIN == E0_AUTO_FAN_PIN)
|
||||
#define AUTO_2_IS_1 (E2_AUTO_FAN_PIN == E1_AUTO_FAN_PIN)
|
||||
#define AUTO_3_IS_0 (E3_AUTO_FAN_PIN == E0_AUTO_FAN_PIN)
|
||||
#define AUTO_3_IS_1 (E3_AUTO_FAN_PIN == E1_AUTO_FAN_PIN)
|
||||
#define AUTO_3_IS_2 (E3_AUTO_FAN_PIN == E2_AUTO_FAN_PIN)
|
||||
#define AUTO_4_IS_0 (E4_AUTO_FAN_PIN == E0_AUTO_FAN_PIN)
|
||||
#define AUTO_4_IS_1 (E4_AUTO_FAN_PIN == E1_AUTO_FAN_PIN)
|
||||
#define AUTO_4_IS_2 (E4_AUTO_FAN_PIN == E2_AUTO_FAN_PIN)
|
||||
#define AUTO_4_IS_3 (E4_AUTO_FAN_PIN == E3_AUTO_FAN_PIN)
|
||||
|
||||
// Other fans
|
||||
#define HAS_FAN0 (PIN_EXISTS(FAN))
|
||||
#define HAS_FAN1 (PIN_EXISTS(FAN1) && CONTROLLER_FAN_PIN != FAN1_PIN && E0_AUTO_FAN_PIN != FAN1_PIN && E1_AUTO_FAN_PIN != FAN1_PIN && E2_AUTO_FAN_PIN != FAN1_PIN && E3_AUTO_FAN_PIN != FAN1_PIN)
|
||||
#define HAS_FAN2 (PIN_EXISTS(FAN2) && CONTROLLER_FAN_PIN != FAN2_PIN && E0_AUTO_FAN_PIN != FAN2_PIN && E1_AUTO_FAN_PIN != FAN2_PIN && E2_AUTO_FAN_PIN != FAN2_PIN && E3_AUTO_FAN_PIN != FAN2_PIN)
|
||||
#define HAS_CONTROLLER_FAN (PIN_EXISTS(CONTROLLER_FAN))
|
||||
|
||||
// Servos
|
||||
#define HAS_SERVOS (defined(NUM_SERVOS) && NUM_SERVOS > 0)
|
||||
#define HAS_SERVO_0 (PIN_EXISTS(SERVO0))
|
||||
#define HAS_SERVO_1 (PIN_EXISTS(SERVO1))
|
||||
#define HAS_SERVO_2 (PIN_EXISTS(SERVO2))
|
||||
#define HAS_SERVO_3 (PIN_EXISTS(SERVO3))
|
||||
|
||||
// Sensors
|
||||
#define HAS_FILAMENT_WIDTH_SENSOR (PIN_EXISTS(FILWIDTH))
|
||||
#define HAS_FIL_RUNOUT (PIN_EXISTS(FIL_RUNOUT))
|
||||
|
||||
// User Interface
|
||||
#define HAS_HOME (PIN_EXISTS(HOME))
|
||||
#define HAS_KILL (PIN_EXISTS(KILL))
|
||||
#define HAS_SUICIDE (PIN_EXISTS(SUICIDE))
|
||||
#define HAS_PHOTOGRAPH (PIN_EXISTS(PHOTOGRAPH))
|
||||
#define HAS_BUZZER (PIN_EXISTS(BEEPER) || ENABLED(LCD_USE_I2C_BUZZER))
|
||||
#define HAS_CASE_LIGHT (PIN_EXISTS(CASE_LIGHT) && ENABLED(CASE_LIGHT_ENABLE))
|
||||
|
||||
// Digital control
|
||||
#define HAS_MICROSTEPS (HAS_X_MICROSTEPS || HAS_Y_MICROSTEPS || HAS_Z_MICROSTEPS || HAS_E0_MICROSTEPS || HAS_E1_MICROSTEPS || HAS_E2_MICROSTEPS || HAS_E3_MICROSTEPS || HAS_E4_MICROSTEPS)
|
||||
#define HAS_STEPPER_RESET (PIN_EXISTS(STEPPER_RESET))
|
||||
#define HAS_DIGIPOTSS (PIN_EXISTS(DIGIPOTSS))
|
||||
#define HAS_MOTOR_CURRENT_PWM (PIN_EXISTS(MOTOR_CURRENT_PWM_XY) || PIN_EXISTS(MOTOR_CURRENT_PWM_Z) || PIN_EXISTS(MOTOR_CURRENT_PWM_E))
|
||||
|
||||
/**
|
||||
* This setting is also used by M109 when trying to calculate
|
||||
* a ballpark safe margin to prevent wait-forever situation.
|
||||
*/
|
||||
#ifndef EXTRUDE_MINTEMP
|
||||
#define EXTRUDE_MINTEMP 170
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Helper Macros for heaters and extruder fan
|
||||
*/
|
||||
#define WRITE_HEATER_0P(v) WRITE(HEATER_0_PIN, v)
|
||||
#if HOTENDS > 1 || ENABLED(HEATERS_PARALLEL)
|
||||
#define WRITE_HEATER_1(v) WRITE(HEATER_1_PIN, v)
|
||||
#if HOTENDS > 2
|
||||
#define WRITE_HEATER_2(v) WRITE(HEATER_2_PIN, v)
|
||||
#if HOTENDS > 3
|
||||
#define WRITE_HEATER_3(v) WRITE(HEATER_3_PIN, v)
|
||||
#if HOTENDS > 4
|
||||
#define WRITE_HEATER_4(v) WRITE(HEATER_4_PIN, v)
|
||||
#endif // HOTENDS > 4
|
||||
#endif // HOTENDS > 3
|
||||
#endif // HOTENDS > 2
|
||||
#endif // HOTENDS > 1
|
||||
#if ENABLED(HEATERS_PARALLEL)
|
||||
#define WRITE_HEATER_0(v) { WRITE_HEATER_0P(v); WRITE_HEATER_1(v); }
|
||||
#else
|
||||
#define WRITE_HEATER_0(v) WRITE_HEATER_0P(v)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Heated bed requires settings
|
||||
*/
|
||||
#if HAS_HEATER_BED
|
||||
#ifndef MAX_BED_POWER
|
||||
#define MAX_BED_POWER 255
|
||||
#endif
|
||||
#ifndef HEATER_BED_INVERTING
|
||||
#define HEATER_BED_INVERTING false
|
||||
#endif
|
||||
#define WRITE_HEATER_BED(v) WRITE(HEATER_BED_PIN, (v) ^ HEATER_BED_INVERTING)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Up to 3 PWM fans
|
||||
*/
|
||||
#if HAS_FAN2
|
||||
#define FAN_COUNT 3
|
||||
#elif HAS_FAN1
|
||||
#define FAN_COUNT 2
|
||||
#elif HAS_FAN0
|
||||
#define FAN_COUNT 1
|
||||
#else
|
||||
#define FAN_COUNT 0
|
||||
#endif
|
||||
|
||||
#if HAS_FAN0
|
||||
#define WRITE_FAN(v) WRITE(FAN_PIN, v)
|
||||
#define WRITE_FAN0(v) WRITE_FAN(v)
|
||||
#endif
|
||||
#if HAS_FAN1
|
||||
#define WRITE_FAN1(v) WRITE(FAN1_PIN, v)
|
||||
#endif
|
||||
#if HAS_FAN2
|
||||
#define WRITE_FAN2(v) WRITE(FAN2_PIN, v)
|
||||
#endif
|
||||
#define WRITE_FAN_N(n, v) WRITE_FAN##n(v)
|
||||
|
||||
/**
|
||||
* Part Cooling fan multipliexer
|
||||
*/
|
||||
#define HAS_FANMUX PIN_EXISTS(FANMUX0)
|
||||
|
||||
/**
|
||||
* Servos and probes
|
||||
*/
|
||||
|
||||
#if HAS_SERVOS
|
||||
#ifndef Z_ENDSTOP_SERVO_NR
|
||||
#define Z_ENDSTOP_SERVO_NR -1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define PROBE_PIN_CONFIGURED (HAS_Z_MIN_PROBE_PIN || (HAS_Z_MIN && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)))
|
||||
#define HAS_BED_PROBE (PROBE_SELECTED && PROBE_PIN_CONFIGURED && DISABLED(PROBE_MANUALLY))
|
||||
|
||||
#if ENABLED(Z_PROBE_ALLEN_KEY)
|
||||
#define PROBE_IS_TRIGGERED_WHEN_STOWED_TEST
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Bed Probe dependencies
|
||||
*/
|
||||
#if HAS_BED_PROBE
|
||||
#if ENABLED(ENDSTOPPULLUPS) && HAS_Z_MIN_PROBE_PIN
|
||||
#define ENDSTOPPULLUP_ZMIN_PROBE
|
||||
#endif
|
||||
#ifndef Z_PROBE_OFFSET_RANGE_MIN
|
||||
#define Z_PROBE_OFFSET_RANGE_MIN -20
|
||||
#endif
|
||||
#ifndef Z_PROBE_OFFSET_RANGE_MAX
|
||||
#define Z_PROBE_OFFSET_RANGE_MAX 20
|
||||
#endif
|
||||
#ifndef XY_PROBE_SPEED
|
||||
#ifdef HOMING_FEEDRATE_XY
|
||||
#define XY_PROBE_SPEED HOMING_FEEDRATE_XY
|
||||
#else
|
||||
#define XY_PROBE_SPEED 4000
|
||||
#endif
|
||||
#endif
|
||||
#if Z_CLEARANCE_BETWEEN_PROBES > Z_CLEARANCE_DEPLOY_PROBE
|
||||
#define _Z_CLEARANCE_DEPLOY_PROBE Z_CLEARANCE_BETWEEN_PROBES
|
||||
#else
|
||||
#undef X_PROBE_OFFSET_FROM_EXTRUDER
|
||||
#undef Y_PROBE_OFFSET_FROM_EXTRUDER
|
||||
#undef Z_PROBE_OFFSET_FROM_EXTRUDER
|
||||
#define X_PROBE_OFFSET_FROM_EXTRUDER 0
|
||||
#define Y_PROBE_OFFSET_FROM_EXTRUDER 0
|
||||
#define Z_PROBE_OFFSET_FROM_EXTRUDER 0
|
||||
#define _Z_CLEARANCE_DEPLOY_PROBE Z_CLEARANCE_DEPLOY_PROBE
|
||||
#endif
|
||||
#else
|
||||
#undef X_PROBE_OFFSET_FROM_EXTRUDER
|
||||
#undef Y_PROBE_OFFSET_FROM_EXTRUDER
|
||||
#undef Z_PROBE_OFFSET_FROM_EXTRUDER
|
||||
#define X_PROBE_OFFSET_FROM_EXTRUDER 0
|
||||
#define Y_PROBE_OFFSET_FROM_EXTRUDER 0
|
||||
#define Z_PROBE_OFFSET_FROM_EXTRUDER 0
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Heater & Fan Pausing
|
||||
*/
|
||||
#if FAN_COUNT == 0
|
||||
#undef PROBING_FANS_OFF
|
||||
/**
|
||||
* Heater & Fan Pausing
|
||||
*/
|
||||
#if FAN_COUNT == 0
|
||||
#undef PROBING_FANS_OFF
|
||||
#endif
|
||||
#define QUIET_PROBING (HAS_BED_PROBE && (ENABLED(PROBING_HEATERS_OFF) || ENABLED(PROBING_FANS_OFF) || DELAY_BEFORE_PROBING > 0))
|
||||
#define HEATER_IDLE_HANDLER (ENABLED(ADVANCED_PAUSE_FEATURE) || ENABLED(PROBING_HEATERS_OFF))
|
||||
|
||||
/**
|
||||
* Only constrain Z on DELTA / SCARA machines
|
||||
*/
|
||||
#if IS_KINEMATIC
|
||||
#undef MIN_SOFTWARE_ENDSTOP_X
|
||||
#undef MIN_SOFTWARE_ENDSTOP_Y
|
||||
#undef MAX_SOFTWARE_ENDSTOP_X
|
||||
#undef MAX_SOFTWARE_ENDSTOP_Y
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Delta radius/rod trimmers/angle trimmers
|
||||
*/
|
||||
#if ENABLED(DELTA)
|
||||
#ifndef DELTA_PROBEABLE_RADIUS
|
||||
#define DELTA_PROBEABLE_RADIUS DELTA_PRINTABLE_RADIUS
|
||||
#endif
|
||||
#define QUIET_PROBING (HAS_BED_PROBE && (ENABLED(PROBING_HEATERS_OFF) || ENABLED(PROBING_FANS_OFF) || DELAY_BEFORE_PROBING > 0))
|
||||
#define HEATER_IDLE_HANDLER (ENABLED(ADVANCED_PAUSE_FEATURE) || ENABLED(PROBING_HEATERS_OFF))
|
||||
#ifndef DELTA_CALIBRATION_RADIUS
|
||||
#define DELTA_CALIBRATION_RADIUS DELTA_PRINTABLE_RADIUS - 10
|
||||
#endif
|
||||
#ifndef DELTA_ENDSTOP_ADJ
|
||||
#define DELTA_ENDSTOP_ADJ { 0, 0, 0 }
|
||||
#endif
|
||||
#ifndef DELTA_TOWER_ANGLE_TRIM
|
||||
#define DELTA_TOWER_ANGLE_TRIM {0, 0, 0}
|
||||
#endif
|
||||
#ifndef DELTA_RADIUS_TRIM_TOWER
|
||||
#define DELTA_RADIUS_TRIM_TOWER {0, 0, 0}
|
||||
#endif
|
||||
#ifndef DELTA_DIAGONAL_ROD_TRIM_TOWER
|
||||
#define DELTA_DIAGONAL_ROD_TRIM_TOWER {0, 0, 0}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Only constrain Z on DELTA / SCARA machines
|
||||
*/
|
||||
/**
|
||||
* Set granular options based on the specific type of leveling
|
||||
*/
|
||||
#define UBL_DELTA (ENABLED(AUTO_BED_LEVELING_UBL) && (ENABLED(DELTA) || ENABLED(UBL_GRANULAR_SEGMENTATION_FOR_CARTESIAN)))
|
||||
#define ABL_PLANAR (ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_3POINT))
|
||||
#define ABL_GRID (ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR))
|
||||
#define OLDSCHOOL_ABL (ABL_PLANAR || ABL_GRID)
|
||||
#define HAS_ABL (OLDSCHOOL_ABL || ENABLED(AUTO_BED_LEVELING_UBL))
|
||||
#define HAS_LEVELING (HAS_ABL || ENABLED(MESH_BED_LEVELING))
|
||||
#define HAS_AUTOLEVEL (HAS_ABL && DISABLED(PROBE_MANUALLY))
|
||||
#define HAS_MESH (ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL) || ENABLED(MESH_BED_LEVELING))
|
||||
#define PLANNER_LEVELING (OLDSCHOOL_ABL || ENABLED(MESH_BED_LEVELING) || UBL_DELTA)
|
||||
#define HAS_PROBING_PROCEDURE (HAS_ABL || ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST))
|
||||
#if HAS_PROBING_PROCEDURE
|
||||
#define PROBE_BED_WIDTH abs(RIGHT_PROBE_BED_POSITION - (LEFT_PROBE_BED_POSITION))
|
||||
#define PROBE_BED_HEIGHT abs(BACK_PROBE_BED_POSITION - (FRONT_PROBE_BED_POSITION))
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Bed Probing rectangular bounds
|
||||
* These can be further constrained in code for Delta and SCARA
|
||||
*/
|
||||
#if ENABLED(DELTA)
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MIN_PROBE_X (X_CENTER - (DELTA_PROBEABLE_RADIUS))
|
||||
#define MIN_PROBE_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS))
|
||||
#define MAX_PROBE_X (X_CENTER + DELTA_PROBEABLE_RADIUS)
|
||||
#define MAX_PROBE_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS)
|
||||
#elif IS_SCARA
|
||||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#define MIN_PROBE_X (X_CENTER - (SCARA_PRINTABLE_RADIUS))
|
||||
#define MIN_PROBE_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS))
|
||||
#define MAX_PROBE_X (X_CENTER + SCARA_PRINTABLE_RADIUS)
|
||||
#define MAX_PROBE_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS)
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on bed limits
|
||||
#define MIN_PROBE_X (max(X_MIN_BED, X_MIN_POS + X_PROBE_OFFSET_FROM_EXTRUDER))
|
||||
#define MIN_PROBE_Y (max(Y_MIN_BED, Y_MIN_POS + Y_PROBE_OFFSET_FROM_EXTRUDER))
|
||||
#define MAX_PROBE_X (min(X_MAX_BED, X_MAX_POS + X_PROBE_OFFSET_FROM_EXTRUDER))
|
||||
#define MAX_PROBE_Y (min(Y_MAX_BED, Y_MAX_POS + Y_PROBE_OFFSET_FROM_EXTRUDER))
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Default mesh area is an area with an inset margin on the print area.
|
||||
*/
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if IS_KINEMATIC
|
||||
#undef MIN_SOFTWARE_ENDSTOP_X
|
||||
#undef MIN_SOFTWARE_ENDSTOP_Y
|
||||
#undef MAX_SOFTWARE_ENDSTOP_X
|
||||
#undef MAX_SOFTWARE_ENDSTOP_Y
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Delta endstops, radius/rod trimmers, angle trimmers
|
||||
*/
|
||||
#if ENABLED(DELTA)
|
||||
#ifndef DELTA_CALIBRATION_RADIUS
|
||||
#define DELTA_CALIBRATION_RADIUS DELTA_PRINTABLE_RADIUS - 10
|
||||
#endif
|
||||
#ifndef DELTA_ENDSTOP_ADJ
|
||||
#define DELTA_ENDSTOP_ADJ { 0, 0, 0 }
|
||||
#endif
|
||||
#ifndef DELTA_TOWER_ANGLE_TRIM
|
||||
#define DELTA_TOWER_ANGLE_TRIM {0, 0, 0}
|
||||
#endif
|
||||
#ifndef DELTA_RADIUS_TRIM_TOWER
|
||||
#define DELTA_RADIUS_TRIM_TOWER {0, 0, 0}
|
||||
#endif
|
||||
#ifndef DELTA_DIAGONAL_ROD_TRIM_TOWER
|
||||
#define DELTA_DIAGONAL_ROD_TRIM_TOWER {0, 0, 0}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Set granular options based on the specific type of leveling
|
||||
*/
|
||||
|
||||
#define UBL_DELTA (ENABLED(AUTO_BED_LEVELING_UBL) && (ENABLED(DELTA) || ENABLED(UBL_GRANULAR_SEGMENTATION_FOR_CARTESIAN)))
|
||||
#define ABL_PLANAR (ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_3POINT))
|
||||
#define ABL_GRID (ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR))
|
||||
#define OLDSCHOOL_ABL (ABL_PLANAR || ABL_GRID)
|
||||
#define HAS_ABL (OLDSCHOOL_ABL || ENABLED(AUTO_BED_LEVELING_UBL))
|
||||
#define HAS_LEVELING (HAS_ABL || ENABLED(MESH_BED_LEVELING))
|
||||
#define HAS_AUTOLEVEL (HAS_ABL && DISABLED(PROBE_MANUALLY))
|
||||
#define HAS_MESH (ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL) || ENABLED(MESH_BED_LEVELING))
|
||||
#define PLANNER_LEVELING (OLDSCHOOL_ABL || ENABLED(MESH_BED_LEVELING) || UBL_DELTA)
|
||||
#define HAS_PROBING_PROCEDURE (HAS_ABL || ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST))
|
||||
#if HAS_PROBING_PROCEDURE
|
||||
#define PROBE_BED_WIDTH abs(RIGHT_PROBE_BED_POSITION - (LEFT_PROBE_BED_POSITION))
|
||||
#define PROBE_BED_HEIGHT abs(BACK_PROBE_BED_POSITION - (FRONT_PROBE_BED_POSITION))
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Buzzer/Speaker
|
||||
*/
|
||||
#if ENABLED(LCD_USE_I2C_BUZZER)
|
||||
#ifndef LCD_FEEDBACK_FREQUENCY_HZ
|
||||
#define LCD_FEEDBACK_FREQUENCY_HZ 1000
|
||||
#endif
|
||||
#ifndef LCD_FEEDBACK_FREQUENCY_DURATION_MS
|
||||
#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100
|
||||
#endif
|
||||
#else
|
||||
#ifndef LCD_FEEDBACK_FREQUENCY_HZ
|
||||
#define LCD_FEEDBACK_FREQUENCY_HZ 5000
|
||||
#endif
|
||||
#ifndef LCD_FEEDBACK_FREQUENCY_DURATION_MS
|
||||
#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 2
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
* VIKI2, miniVIKI, and AZSMZ_12864 require DOGLCD_SCK and DOGLCD_MOSI to be defined.
|
||||
*/
|
||||
#if ENABLED(VIKI2) || ENABLED(miniVIKI) || ENABLED(AZSMZ_12864)
|
||||
#ifndef DOGLCD_SCK
|
||||
#define DOGLCD_SCK SCK_PIN
|
||||
#endif
|
||||
#ifndef DOGLCD_MOSI
|
||||
#define DOGLCD_MOSI MOSI_PIN
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Z_HOMING_HEIGHT / Z_CLEARANCE_BETWEEN_PROBES
|
||||
*/
|
||||
#ifndef Z_HOMING_HEIGHT
|
||||
#ifndef Z_CLEARANCE_BETWEEN_PROBES
|
||||
#define Z_HOMING_HEIGHT 0
|
||||
#else
|
||||
#define Z_HOMING_HEIGHT Z_CLEARANCE_BETWEEN_PROBES
|
||||
#endif
|
||||
#endif
|
||||
#ifndef Z_CLEARANCE_BETWEEN_PROBES
|
||||
#define Z_CLEARANCE_BETWEEN_PROBES Z_HOMING_HEIGHT
|
||||
#endif
|
||||
#if Z_CLEARANCE_BETWEEN_PROBES > Z_HOMING_HEIGHT
|
||||
#define MANUAL_PROBE_HEIGHT Z_CLEARANCE_BETWEEN_PROBES
|
||||
#else
|
||||
#define MANUAL_PROBE_HEIGHT Z_HOMING_HEIGHT
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Bed Probing rectangular bounds
|
||||
* These can be further constrained in code for Delta and SCARA
|
||||
*/
|
||||
#if ENABLED(DELTA)
|
||||
#ifndef DELTA_PROBEABLE_RADIUS
|
||||
#define DELTA_PROBEABLE_RADIUS DELTA_PRINTABLE_RADIUS
|
||||
#endif
|
||||
// Probing points may be verified at compile time within the radius
|
||||
// using static_assert(HYPOT2(X2-X1,Y2-Y1)<=sq(DELTA_PRINTABLE_RADIUS),"bad probe point!")
|
||||
// so that may be added to SanityCheck.h in the future.
|
||||
#define MIN_PROBE_X (X_CENTER - (DELTA_PROBEABLE_RADIUS))
|
||||
#define MIN_PROBE_Y (Y_CENTER - (DELTA_PROBEABLE_RADIUS))
|
||||
#define MAX_PROBE_X (X_CENTER + DELTA_PROBEABLE_RADIUS)
|
||||
#define MAX_PROBE_Y (Y_CENTER + DELTA_PROBEABLE_RADIUS)
|
||||
#elif IS_SCARA
|
||||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#define MIN_PROBE_X (X_CENTER - (SCARA_PRINTABLE_RADIUS))
|
||||
#define MIN_PROBE_Y (Y_CENTER - (SCARA_PRINTABLE_RADIUS))
|
||||
#define MAX_PROBE_X (X_CENTER + SCARA_PRINTABLE_RADIUS)
|
||||
#define MAX_PROBE_Y (Y_CENTER + SCARA_PRINTABLE_RADIUS)
|
||||
#define _MESH_MIN_X (MIN_PROBE_X + MESH_INSET)
|
||||
#define _MESH_MIN_Y (MIN_PROBE_Y + MESH_INSET)
|
||||
#define _MESH_MAX_X (MAX_PROBE_X - (MESH_INSET))
|
||||
#define _MESH_MAX_Y (MAX_PROBE_Y - (MESH_INSET))
|
||||
#else
|
||||
// Boundaries for Cartesian probing based on bed limits
|
||||
#define MIN_PROBE_X (max(X_MIN_POS + X_PROBE_OFFSET_FROM_EXTRUDER, X_MIN_BED))
|
||||
#define MIN_PROBE_Y (max(Y_MIN_POS + Y_PROBE_OFFSET_FROM_EXTRUDER, Y_MIN_BED))
|
||||
#define MAX_PROBE_X (min(X_MAX_POS + X_PROBE_OFFSET_FROM_EXTRUDER, X_MAX_BED))
|
||||
#define MAX_PROBE_Y (min(Y_MAX_POS + Y_PROBE_OFFSET_FROM_EXTRUDER, Y_MAX_BED))
|
||||
// Boundaries for Cartesian probing based on set limits
|
||||
#define _MESH_MIN_X (max(X_MIN_BED + MESH_INSET, X_MIN_POS + X_PROBE_OFFSET_FROM_EXTRUDER))
|
||||
#define _MESH_MIN_Y (max(Y_MIN_BED + MESH_INSET, Y_MIN_POS + Y_PROBE_OFFSET_FROM_EXTRUDER))
|
||||
#define _MESH_MAX_X (min(X_MAX_BED - (MESH_INSET), X_MAX_POS + X_PROBE_OFFSET_FROM_EXTRUDER))
|
||||
#define _MESH_MAX_Y (min(Y_MAX_BED - (MESH_INSET), Y_MAX_POS + Y_PROBE_OFFSET_FROM_EXTRUDER))
|
||||
#endif
|
||||
|
||||
// Stepper pulse duration, in cycles
|
||||
#define STEP_PULSE_CYCLES ((MINIMUM_STEPPER_PULSE) * CYCLES_PER_MICROSECOND)
|
||||
#ifdef CPU_32_BIT
|
||||
// Add additional delay for between direction signal and pulse signal of stepper
|
||||
#ifndef STEPPER_DIRECTION_DELAY
|
||||
#define STEPPER_DIRECTION_DELAY 0 // time in microseconds
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef __SAM3X8E__ //todo: hal: broken hal encapsulation
|
||||
#undef UI_VOLTAGE_LEVEL
|
||||
#undef RADDS_DISPLAY
|
||||
#undef MOTOR_CURRENT
|
||||
#endif
|
||||
|
||||
#if ENABLED(SDCARD_SORT_ALPHA)
|
||||
#define HAS_FOLDER_SORTING (FOLDER_SORTING || ENABLED(SDSORT_GCODE))
|
||||
#endif
|
||||
|
||||
// Updated G92 behavior shifts the workspace
|
||||
#define HAS_POSITION_SHIFT DISABLED(NO_WORKSPACE_OFFSETS)
|
||||
// The home offset also shifts the coordinate space
|
||||
#define HAS_HOME_OFFSET (DISABLED(NO_WORKSPACE_OFFSETS) || ENABLED(DELTA))
|
||||
// Either offset yields extra calculations on all moves
|
||||
#define HAS_WORKSPACE_OFFSET (HAS_POSITION_SHIFT || HAS_HOME_OFFSET)
|
||||
// M206 doesn't apply to DELTA
|
||||
#define HAS_M206_COMMAND (HAS_HOME_OFFSET && DISABLED(DELTA))
|
||||
|
||||
// LCD timeout to status screen default is 15s
|
||||
#ifndef LCD_TIMEOUT_TO_STATUS
|
||||
#define LCD_TIMEOUT_TO_STATUS 15000
|
||||
#endif
|
||||
|
||||
/**
|
||||
* DELTA_SEGMENT_MIN_LENGTH for UBL_DELTA
|
||||
* These may be overridden in Configuration if a smaller area is wanted
|
||||
*/
|
||||
#if UBL_DELTA
|
||||
#ifndef DELTA_SEGMENT_MIN_LENGTH
|
||||
#if IS_SCARA
|
||||
#define DELTA_SEGMENT_MIN_LENGTH 0.25 // SCARA minimum segment size is 0.25mm
|
||||
#elif ENABLED(DELTA)
|
||||
#define DELTA_SEGMENT_MIN_LENGTH 0.10 // mm (still subject to DELTA_SEGMENTS_PER_SECOND)
|
||||
#else // CARTESIAN
|
||||
#define DELTA_SEGMENT_MIN_LENGTH 1.00 // mm (similar to G2/G3 arc segmentation)
|
||||
#endif
|
||||
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#ifndef MESH_MIN_X
|
||||
#define MESH_MIN_X _MESH_MIN_X
|
||||
#endif
|
||||
#ifndef MESH_MIN_Y
|
||||
#define MESH_MIN_Y _MESH_MIN_Y
|
||||
#endif
|
||||
#ifndef MESH_MAX_X
|
||||
#define MESH_MAX_X _MESH_MAX_X
|
||||
#endif
|
||||
#ifndef MESH_MAX_Y
|
||||
#define MESH_MAX_Y _MESH_MAX_Y
|
||||
#endif
|
||||
#endif
|
||||
#endif // MESH_BED_LEVELING || AUTO_BED_LEVELING_UBL
|
||||
|
||||
// Shorthand
|
||||
#define GRID_MAX_POINTS ((GRID_MAX_POINTS_X) * (GRID_MAX_POINTS_Y))
|
||||
|
||||
// Add commands that need sub-codes to this list
|
||||
#define USE_GCODE_SUBCODES ENABLED(G38_PROBE_TARGET)
|
||||
|
||||
// MESH_BED_LEVELING overrides PROBE_MANUALLY
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#undef PROBE_MANUALLY
|
||||
/**
|
||||
* Buzzer/Speaker
|
||||
*/
|
||||
#if ENABLED(LCD_USE_I2C_BUZZER)
|
||||
#ifndef LCD_FEEDBACK_FREQUENCY_HZ
|
||||
#define LCD_FEEDBACK_FREQUENCY_HZ 1000
|
||||
#endif
|
||||
#ifndef LCD_FEEDBACK_FREQUENCY_DURATION_MS
|
||||
#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100
|
||||
#endif
|
||||
#else
|
||||
#ifndef LCD_FEEDBACK_FREQUENCY_HZ
|
||||
#define LCD_FEEDBACK_FREQUENCY_HZ 5000
|
||||
#endif
|
||||
#ifndef LCD_FEEDBACK_FREQUENCY_DURATION_MS
|
||||
#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 2
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Parking Extruder
|
||||
#if ENABLED(PARKING_EXTRUDER)
|
||||
#ifndef PARKING_EXTRUDER_GRAB_DISTANCE
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 0
|
||||
#endif
|
||||
#ifndef PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE HIGH
|
||||
/**
|
||||
* VIKI2, miniVIKI, and AZSMZ_12864 require DOGLCD_SCK and DOGLCD_MOSI to be defined.
|
||||
*/
|
||||
#if ENABLED(VIKI2) || ENABLED(miniVIKI) || ENABLED(AZSMZ_12864)
|
||||
#ifndef DOGLCD_SCK
|
||||
#define DOGLCD_SCK SCK_PIN
|
||||
#endif
|
||||
#ifndef DOGLCD_MOSI
|
||||
#define DOGLCD_MOSI MOSI_PIN
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Z_HOMING_HEIGHT / Z_CLEARANCE_BETWEEN_PROBES
|
||||
*/
|
||||
#ifndef Z_HOMING_HEIGHT
|
||||
#ifndef Z_CLEARANCE_BETWEEN_PROBES
|
||||
#define Z_HOMING_HEIGHT 0
|
||||
#else
|
||||
#define Z_HOMING_HEIGHT Z_CLEARANCE_BETWEEN_PROBES
|
||||
#endif
|
||||
#endif
|
||||
#ifndef Z_CLEARANCE_BETWEEN_PROBES
|
||||
#define Z_CLEARANCE_BETWEEN_PROBES Z_HOMING_HEIGHT
|
||||
#endif
|
||||
#if Z_CLEARANCE_BETWEEN_PROBES > Z_HOMING_HEIGHT
|
||||
#define MANUAL_PROBE_HEIGHT Z_CLEARANCE_BETWEEN_PROBES
|
||||
#else
|
||||
#define MANUAL_PROBE_HEIGHT Z_HOMING_HEIGHT
|
||||
#endif
|
||||
|
||||
// Stepper pulse duration, in cycles
|
||||
#define STEP_PULSE_CYCLES ((MINIMUM_STEPPER_PULSE) * CYCLES_PER_MICROSECOND)
|
||||
#ifdef CPU_32_BIT
|
||||
// Add additional delay for between direction signal and pulse signal of stepper
|
||||
#ifndef STEPPER_DIRECTION_DELAY
|
||||
#define STEPPER_DIRECTION_DELAY 0 // time in microseconds
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef __SAM3X8E__ //todo: hal: broken hal encapsulation
|
||||
#undef UI_VOLTAGE_LEVEL
|
||||
#undef RADDS_DISPLAY
|
||||
#undef MOTOR_CURRENT
|
||||
#endif
|
||||
|
||||
#if ENABLED(SDCARD_SORT_ALPHA)
|
||||
#define HAS_FOLDER_SORTING (FOLDER_SORTING || ENABLED(SDSORT_GCODE))
|
||||
#endif
|
||||
|
||||
// Updated G92 behavior shifts the workspace
|
||||
#define HAS_POSITION_SHIFT DISABLED(NO_WORKSPACE_OFFSETS)
|
||||
// The home offset also shifts the coordinate space
|
||||
#define HAS_HOME_OFFSET (DISABLED(NO_WORKSPACE_OFFSETS) || ENABLED(DELTA))
|
||||
// Either offset yields extra calculations on all moves
|
||||
#define HAS_WORKSPACE_OFFSET (HAS_POSITION_SHIFT || HAS_HOME_OFFSET)
|
||||
// M206 doesn't apply to DELTA
|
||||
#define HAS_M206_COMMAND (HAS_HOME_OFFSET && DISABLED(DELTA))
|
||||
|
||||
// LCD timeout to status screen default is 15s
|
||||
#ifndef LCD_TIMEOUT_TO_STATUS
|
||||
#define LCD_TIMEOUT_TO_STATUS 15000
|
||||
#endif
|
||||
|
||||
/**
|
||||
* DELTA_SEGMENT_MIN_LENGTH for UBL_DELTA
|
||||
*/
|
||||
#if UBL_DELTA
|
||||
#ifndef DELTA_SEGMENT_MIN_LENGTH
|
||||
#if IS_SCARA
|
||||
#define DELTA_SEGMENT_MIN_LENGTH 0.25 // SCARA minimum segment size is 0.25mm
|
||||
#elif ENABLED(DELTA)
|
||||
#define DELTA_SEGMENT_MIN_LENGTH 0.10 // mm (still subject to DELTA_SEGMENTS_PER_SECOND)
|
||||
#else // CARTESIAN
|
||||
#define DELTA_SEGMENT_MIN_LENGTH 1.00 // mm (similar to G2/G3 arc segmentation)
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Use float instead of double. Needs profiling.
|
||||
#if defined(ARDUINO_ARCH_SAM) && ENABLED(DELTA_FAST_SQRT)
|
||||
#undef ATAN2
|
||||
#undef FABS
|
||||
#undef POW
|
||||
#undef SQRT
|
||||
#undef CEIL
|
||||
#undef FLOOR
|
||||
#undef LROUND
|
||||
#undef FMOD
|
||||
#define ATAN2(y, x) atan2f(y, x)
|
||||
#define FABS(x) fabsf(x)
|
||||
#define POW(x, y) powf(x, y)
|
||||
#define SQRT(x) sqrtf(x)
|
||||
#define CEIL(x) ceilf(x)
|
||||
#define FLOOR(x) floorf(x)
|
||||
#define LROUND(x) lroundf(x)
|
||||
#define FMOD(x, y) fmodf(x, y)
|
||||
// Shorthand
|
||||
#define GRID_MAX_POINTS ((GRID_MAX_POINTS_X) * (GRID_MAX_POINTS_Y))
|
||||
|
||||
// Add commands that need sub-codes to this list
|
||||
#define USE_GCODE_SUBCODES ENABLED(G38_PROBE_TARGET)
|
||||
|
||||
// MESH_BED_LEVELING overrides PROBE_MANUALLY
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#undef PROBE_MANUALLY
|
||||
#endif
|
||||
|
||||
// Parking Extruder
|
||||
#if ENABLED(PARKING_EXTRUDER)
|
||||
#ifndef PARKING_EXTRUDER_GRAB_DISTANCE
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 0
|
||||
#endif
|
||||
|
||||
#ifdef TEENSYDUINO
|
||||
#undef max
|
||||
#define max(a,b) ((a)>(b)?(a):(b))
|
||||
#undef min
|
||||
#define min(a,b) ((a)<(b)?(a):(b))
|
||||
|
||||
#define NOT_A_PIN 0 // For PINS_DEBUGGING
|
||||
#ifndef PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE HIGH
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Use float instead of double. Needs profiling.
|
||||
#if defined(ARDUINO_ARCH_SAM) && ENABLED(DELTA_FAST_SQRT)
|
||||
#undef ATAN2
|
||||
#undef FABS
|
||||
#undef POW
|
||||
#undef SQRT
|
||||
#undef CEIL
|
||||
#undef FLOOR
|
||||
#undef LROUND
|
||||
#undef FMOD
|
||||
#define ATAN2(y, x) atan2f(y, x)
|
||||
#define FABS(x) fabsf(x)
|
||||
#define POW(x, y) powf(x, y)
|
||||
#define SQRT(x) sqrtf(x)
|
||||
#define CEIL(x) ceilf(x)
|
||||
#define FLOOR(x) floorf(x)
|
||||
#define LROUND(x) lroundf(x)
|
||||
#define FMOD(x, y) fmodf(x, y)
|
||||
#endif
|
||||
|
||||
#ifdef TEENSYDUINO
|
||||
#undef max
|
||||
#define max(a,b) ((a)>(b)?(a):(b))
|
||||
#undef min
|
||||
#define min(a,b) ((a)<(b)?(a):(b))
|
||||
|
||||
#define NOT_A_PIN 0 // For PINS_DEBUGGING
|
||||
#endif
|
||||
|
||||
#endif // CONDITIONALS_POST_H
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
#include "../core/boards.h"
|
||||
#include "../core/macros.h"
|
||||
#include "Version.h"
|
||||
#include "SPI.h"
|
||||
#include "../HAL/SPI.h"
|
||||
#include "../../Configuration.h"
|
||||
#include "Conditionals_LCD.h"
|
||||
#include "../../Configuration_adv.h"
|
||||
|
|
|
@ -1,52 +0,0 @@
|
|||
#include <stdint.h>
|
||||
|
||||
|
||||
#ifndef SPI_FULL_SPEED
|
||||
|
||||
/**
|
||||
* SPI speed where 0 <= index <= 6
|
||||
*
|
||||
* Approximate rates :
|
||||
*
|
||||
* 0 : 8 - 10 MHz
|
||||
* 1 : 4 - 5 MHz
|
||||
* 2 : 2 - 2.5 MHz
|
||||
* 3 : 1 - 1.25 MHz
|
||||
* 4 : 500 - 625 kHz
|
||||
* 5 : 250 - 312 kHz
|
||||
* 6 : 125 - 156 kHz
|
||||
*
|
||||
* On AVR, actual speed is F_CPU/2^(1 + index).
|
||||
* On other platforms, speed should be in range given above where possible.
|
||||
*/
|
||||
|
||||
/** Set SCK to max rate */
|
||||
#define SPI_FULL_SPEED 0
|
||||
/** Set SCK rate to half max rate. */
|
||||
#define SPI_HALF_SPEED 1
|
||||
/** Set SCK rate to quarter max rate. */
|
||||
#define SPI_QUARTER_SPEED 2
|
||||
/** Set SCK rate to 1/8 max rate. */
|
||||
#define SPI_EIGHTH_SPEED 3
|
||||
/** Set SCK rate to 1/16 of max rate. */
|
||||
#define SPI_SIXTEENTH_SPEED 4
|
||||
/** Set SCK rate to 1/32 of max rate. */
|
||||
#define SPI_SPEED_5 5
|
||||
/** Set SCK rate to 1/64 of max rate. */
|
||||
#define SPI_SPEED_6 6
|
||||
|
||||
// Standard SPI functions
|
||||
/** Initialise SPI bus */
|
||||
void spiBegin(void);
|
||||
/** Configure SPI for specified SPI speed */
|
||||
void spiInit(uint8_t spiRate);
|
||||
/** Write single byte to SPI */
|
||||
void spiSend(uint8_t b);
|
||||
/** Read single byte from SPI */
|
||||
uint8_t spiRec(void);
|
||||
/** Read from SPI into buffer */
|
||||
void spiRead(uint8_t* buf, uint16_t nbyte);
|
||||
/** Write token and then write from 512 byte buffer to SPI (for SD card) */
|
||||
void spiSendBlock(uint8_t token, const uint8_t* buf);
|
||||
|
||||
#endif
|
|
@ -26,6 +26,9 @@
|
|||
* Test configuration values for errors at compile-time.
|
||||
*/
|
||||
|
||||
#ifndef _SANITYCHECK_H_
|
||||
#define _SANITYCHECK_H_
|
||||
|
||||
/**
|
||||
* Require gcc 4.7 or newer (first included with Arduino 1.6.8) for C++11 features.
|
||||
*/
|
||||
|
@ -212,6 +215,10 @@
|
|||
#error "ADVANCE was removed in Marlin 1.1.6. Please use LIN_ADVANCE."
|
||||
#elif defined(NEOPIXEL_RGBW_LED)
|
||||
#error "NEOPIXEL_RGBW_LED is now NEOPIXEL_LED. Please update your configuration."
|
||||
#elif defined(UBL_MESH_INSET)
|
||||
#error "UBL_MESH_INSET is now just MESH_INSET. Please update your configuration."
|
||||
#elif defined(UBL_MESH_MIN_X) || defined(UBL_MESH_MIN_Y) || defined(UBL_MESH_MAX_X) || defined(UBL_MESH_MAX_Y)
|
||||
#error "UBL_MESH_(MIN|MAX)_[XY] is now just MESH_(MIN|MAX)_[XY]. Please update your configuration."
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
@ -1379,5 +1386,6 @@ static_assert(COUNT(sanity_arr_1) <= XYZE_N, "DEFAULT_AXIS_STEPS_PER_UNIT has to
|
|||
static_assert(COUNT(sanity_arr_2) <= XYZE_N, "DEFAULT_MAX_FEEDRATE has too many elements.");
|
||||
static_assert(COUNT(sanity_arr_3) <= XYZE_N, "DEFAULT_MAX_ACCELERATION has too many elements.");
|
||||
|
||||
|
||||
#include "../HAL/HAL_SanityCheck.h" // get CPU specific checks
|
||||
|
||||
#endif // _SANITYCHECK_H_
|
||||
|
|
|
@ -20,6 +20,11 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#ifndef _VERSION_H_
|
||||
#define _VERSION_H_
|
||||
|
||||
#include "MarlinConfig.h"
|
||||
|
||||
/**
|
||||
* This file is the standard Marlin version identifier file, all fields can be
|
||||
* overriden by the ones defined on _Version.h by using the Configuration.h
|
||||
|
@ -48,7 +53,7 @@
|
|||
* here we define this default string as the date where the latest release
|
||||
* version was tagged.
|
||||
*/
|
||||
#define STRING_DISTRIBUTION_DATE "2017-07-27 12:00"
|
||||
#define STRING_DISTRIBUTION_DATE "2017-10-19 12:00"
|
||||
|
||||
/**
|
||||
* Required minimum Configuration.h and Configuration_adv.h file versions.
|
||||
|
@ -92,3 +97,5 @@
|
|||
#define WEBSITE_URL "http://marlinfw.org"
|
||||
|
||||
#endif // USE_AUTOMATIC_VERSIONING
|
||||
|
||||
#endif // _VERSION_H_
|
||||
|
|
Reference in a new issue