Merge bugfix-2.0.x into 2.0.x
This commit is contained in:
@ -26,6 +26,7 @@
|
||||
* Conditionals that need to be set before Configuration_adv.h or pins.h
|
||||
*/
|
||||
|
||||
// Kinematics
|
||||
#if ENABLED(MORGAN_SCARA)
|
||||
#define IS_SCARA 1
|
||||
#define IS_KINEMATIC 1
|
||||
@ -35,10 +36,26 @@
|
||||
#define IS_CARTESIAN 1
|
||||
#endif
|
||||
|
||||
// MKS_LCD12864 is a variant of MKS_MINI_12864
|
||||
#if ENABLED(MKS_LCD12864)
|
||||
#define MKS_MINI_12864
|
||||
#endif
|
||||
|
||||
/**
|
||||
* General Flags that may be set below by specific LCDs
|
||||
*
|
||||
* DOGLCD : Run a Graphical LCD through U8GLib (with MarlinUI)
|
||||
* IS_ULTIPANEL : Define LCD_PINS_D5/6/7 for direct-connected "Ultipanel" LCDs
|
||||
* IS_ULTRA_LCD : Ultra LCD, not necessarily Ultipanel. Used most often with NEWPANEL.
|
||||
* IS_RRD_SC : Common RRD Smart Controller digital interface pins
|
||||
* IS_RRD_FG_SC : Common RRD Full Graphical Smart Controller digital interface pins
|
||||
* U8GLIB_ST7920 : Most common DOGM display SPI interface, supporting a "lightweight" display mode.
|
||||
* U8GLIB_SH1106 : SH1106 OLED with I2C interface via U8GLib
|
||||
* IS_U8GLIB_SSD1306 : SSD1306 OLED with I2C interface via U8GLib
|
||||
* U8GLIB_SSD1309 : SSD1309 OLED with I2C interface via U8GLib
|
||||
* U8GLIB_ST7565_64128N : ST7565 128x64 LCD with SPI interface via U8GLib
|
||||
* U8GLIB_LM6059_AF : LM6059 with Hardware SPI via U8GLib
|
||||
*/
|
||||
#if EITHER(MKS_MINI_12864, ENDER2_STOCKDISPLAY)
|
||||
|
||||
#define MINIPANEL
|
||||
@ -48,6 +65,11 @@
|
||||
#define DOGLCD
|
||||
#define IS_ULTIPANEL
|
||||
|
||||
#elif EITHER(DWIN_MARLINUI_PORTRAIT, DWIN_MARLINUI_LANDSCAPE)
|
||||
|
||||
#define IS_DWIN_MARLINUI 1
|
||||
#define IS_ULTIPANEL
|
||||
|
||||
#elif ENABLED(ZONESTAR_LCD)
|
||||
|
||||
#define ADC_KEYPAD
|
||||
@ -85,7 +107,6 @@
|
||||
|
||||
#elif ANY(miniVIKI, VIKI2, ELB_FULL_GRAPHIC_CONTROLLER, AZSMZ_12864)
|
||||
|
||||
#define IS_ULTRA_LCD
|
||||
#define DOGLCD
|
||||
#define IS_ULTIPANEL
|
||||
|
||||
@ -196,6 +217,28 @@
|
||||
#define LCD_WIDTH 16
|
||||
#define LCD_HEIGHT 2
|
||||
|
||||
#elif EITHER(TFTGLCD_PANEL_SPI, TFTGLCD_PANEL_I2C)
|
||||
|
||||
#define IS_TFTGLCD_PANEL 1
|
||||
#define IS_ULTIPANEL // Note that IS_ULTIPANEL leads to HAS_WIRED_LCD
|
||||
|
||||
#if ENABLED(SDSUPPORT) && DISABLED(LCD_PROGRESS_BAR)
|
||||
#define LCD_PROGRESS_BAR
|
||||
#endif
|
||||
#if ENABLED(TFTGLCD_PANEL_I2C)
|
||||
#define LCD_USE_I2C_BUZZER // Enable buzzer on LCD for I2C and SPI buses (LiquidTWI2 not required)
|
||||
#define LCD_I2C_ADDRESS 0x27 // Must be equal to panel's I2C slave addres
|
||||
#endif
|
||||
#define STD_ENCODER_PULSES_PER_STEP 2
|
||||
#define STD_ENCODER_STEPS_PER_MENU_ITEM 1
|
||||
#define LCD_WIDTH 20 // 20 or 24 chars in line
|
||||
#define LCD_HEIGHT 10 // Character lines
|
||||
#define LCD_CONTRAST_MIN 127
|
||||
#define LCD_CONTRAST_MAX 255
|
||||
#define DEFAULT_LCD_CONTRAST 250
|
||||
#define CONVERT_TO_EXT_ASCII // Use extended 128-255 symbols from ASCII table.
|
||||
// At this time present conversion only for cyrillic - bg, ru and uk languages.
|
||||
// First 7 ASCII symbols in panel font must be replaced with Marlin's special symbols.
|
||||
#endif
|
||||
|
||||
#if ENABLED(IS_RRD_FG_SC)
|
||||
@ -234,9 +277,9 @@
|
||||
|
||||
// 128x64 I2C OLED LCDs - SSD1306/SSD1309/SH1106
|
||||
#if ANY(U8GLIB_SSD1306, U8GLIB_SSD1309, U8GLIB_SH1106)
|
||||
#define HAS_SSD1306_OLED_I2C 1
|
||||
#define HAS_U8GLIB_I2C_OLED 1
|
||||
#endif
|
||||
#if HAS_SSD1306_OLED_I2C
|
||||
#if HAS_U8GLIB_I2C_OLED
|
||||
#define IS_ULTRA_LCD
|
||||
#define DOGLCD
|
||||
#endif
|
||||
@ -402,7 +445,6 @@
|
||||
#define IS_ULTRA_LCD
|
||||
#define NEWPANEL
|
||||
#endif
|
||||
|
||||
#if ENABLED(IS_ULTRA_LCD)
|
||||
#define ULTRA_LCD
|
||||
#endif
|
||||
@ -436,11 +478,13 @@
|
||||
#endif
|
||||
|
||||
#if ENABLED(ULTRA_LCD)
|
||||
#define HAS_SPI_LCD 1
|
||||
#define HAS_WIRED_LCD 1
|
||||
#if ENABLED(DOGLCD)
|
||||
#define HAS_GRAPHICAL_LCD 1
|
||||
#define HAS_MARLINUI_U8GLIB 1
|
||||
#elif IS_TFTGLCD_PANEL
|
||||
// Neither DOGM nor HD44780. Fully customized interface.
|
||||
#elif DISABLED(HAS_GRAPHICAL_TFT)
|
||||
#define HAS_CHARACTER_LCD 1
|
||||
#define HAS_MARLINUI_HD44780 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@ -451,7 +495,7 @@
|
||||
#define HAS_ADC_BUTTONS 1
|
||||
#endif
|
||||
|
||||
#if HAS_GRAPHICAL_LCD
|
||||
#if HAS_MARLINUI_U8GLIB
|
||||
#ifndef LCD_PIXEL_WIDTH
|
||||
#define LCD_PIXEL_WIDTH 128
|
||||
#endif
|
||||
@ -468,7 +512,6 @@
|
||||
* 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
|
||||
*
|
||||
*/
|
||||
|
||||
#if EXTRUDERS == 0
|
||||
@ -481,6 +524,8 @@
|
||||
#undef MK2_MULTIPLEXER
|
||||
#undef PRUSA_MMU2
|
||||
#undef HOTEND_IDLE_TIMEOUT
|
||||
#elif EXTRUDERS > 1
|
||||
#define HAS_MULTI_EXTRUDER 1
|
||||
#endif
|
||||
|
||||
#if ENABLED(SWITCHING_EXTRUDER) // One stepper for every two EXTRUDERS
|
||||
@ -780,8 +825,3 @@
|
||||
#ifndef EXTRUDE_MINTEMP
|
||||
#define EXTRUDE_MINTEMP 170
|
||||
#endif
|
||||
|
||||
// This flag indicates if Neopixel pins are shared or separated
|
||||
#if EITHER(MULTIPLE_NEOPIXEL_TYPES, NEOPIXEL2_INSERIES)
|
||||
#define CONJOINED_NEOPIXEL 1
|
||||
#endif
|
||||
|
@ -56,6 +56,15 @@
|
||||
#undef SHOW_TEMP_ADC_VALUES
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_BED == 0
|
||||
#undef THERMAL_PROTECTION_BED
|
||||
#undef THERMAL_PROTECTION_BED_PERIOD
|
||||
#endif
|
||||
|
||||
#if TEMP_SENSOR_CHAMBER == 0
|
||||
#undef THERMAL_PROTECTION_CHAMBER
|
||||
#endif
|
||||
|
||||
#if ENABLED(MIXING_EXTRUDER) && (ENABLED(RETRACT_SYNC_MIXING) || BOTH(FILAMENT_LOAD_UNLOAD_GCODES, FILAMENT_UNLOAD_ALL_EXTRUDERS))
|
||||
#define HAS_MIXER_SYNC_CHANNEL 1
|
||||
#endif
|
||||
@ -187,6 +196,9 @@
|
||||
#ifndef ACTION_ON_CANCEL
|
||||
#define ACTION_ON_CANCEL "cancel"
|
||||
#endif
|
||||
#ifndef ACTION_ON_START
|
||||
#define ACTION_ON_START "start"
|
||||
#endif
|
||||
#ifndef ACTION_ON_KILL
|
||||
#define ACTION_ON_KILL "poweroff"
|
||||
#endif
|
||||
@ -410,3 +422,37 @@
|
||||
#if ANY(AUTO_BED_LEVELING_UBL, AUTO_BED_LEVELING_LINEAR, Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS)
|
||||
#define NEED_LSF 1
|
||||
#endif
|
||||
|
||||
// Flag the indexed serial ports that are in use
|
||||
#define ANY_SERIAL_IS(N) (defined(SERIAL_PORT) && SERIAL_PORT == (N)) || (defined(SERIAL_PORT_2) && SERIAL_PORT_2 == (N)) || (defined(LCD_SERIAL_PORT) && LCD_SERIAL_PORT == (N))
|
||||
#if ANY_SERIAL_IS(-1)
|
||||
#define USING_SERIAL_DEFAULT
|
||||
#endif
|
||||
#if ANY_SERIAL_IS(0)
|
||||
#define USING_SERIAL_0 1
|
||||
#endif
|
||||
#if ANY_SERIAL_IS(1)
|
||||
#define USING_SERIAL_1 1
|
||||
#endif
|
||||
#if ANY_SERIAL_IS(2)
|
||||
#define USING_SERIAL_2 1
|
||||
#endif
|
||||
#if ANY_SERIAL_IS(3)
|
||||
#define USING_SERIAL_3 1
|
||||
#endif
|
||||
#if ANY_SERIAL_IS(4)
|
||||
#define USING_SERIAL_4 1
|
||||
#endif
|
||||
#if ANY_SERIAL_IS(5)
|
||||
#define USING_SERIAL_5 1
|
||||
#endif
|
||||
#if ANY_SERIAL_IS(6)
|
||||
#define USING_SERIAL_6 1
|
||||
#endif
|
||||
#if ANY_SERIAL_IS(7)
|
||||
#define USING_SERIAL_7 1
|
||||
#endif
|
||||
#if ANY_SERIAL_IS(8)
|
||||
#define USING_SERIAL_8 1
|
||||
#endif
|
||||
#undef ANY_SERIAL_IS
|
||||
|
@ -149,15 +149,17 @@
|
||||
#define CORE_AXIS_2 C_AXIS
|
||||
#endif
|
||||
#define CORESIGN(n) (ANY(COREYX, COREZX, COREZY) ? (-(n)) : (n))
|
||||
#elif ENABLED(MARKFORGED_XY)
|
||||
// Markforged kinematics
|
||||
#define CORE_AXIS_1 A_AXIS
|
||||
#define CORE_AXIS_2 B_AXIS
|
||||
#define NORMAL_AXIS Z_AXIS
|
||||
#endif
|
||||
|
||||
// Calibration codes only for non-core axes
|
||||
#if EITHER(BACKLASH_GCODE, CALIBRATION_GCODE)
|
||||
#if IS_CORE
|
||||
#define X_AXIS_INDEX 0
|
||||
#define Y_AXIS_INDEX 1
|
||||
#define Z_AXIS_INDEX 2
|
||||
#define CAN_CALIBRATE(A,B) (A##_AXIS_INDEX == B##_INDEX)
|
||||
#if EITHER(IS_CORE, MARKFORGED_XY)
|
||||
#define CAN_CALIBRATE(A,B) (_AXIS(A) == B)
|
||||
#else
|
||||
#define CAN_CALIBRATE(A,B) 1
|
||||
#endif
|
||||
@ -311,11 +313,15 @@
|
||||
#elif ENABLED(MAKRPANEL)
|
||||
#define _LCD_CONTRAST_INIT 17
|
||||
#elif ENABLED(MINIPANEL)
|
||||
#define _LCD_CONTRAST_INIT 150
|
||||
#define _LCD_CONTRAST_INIT 150
|
||||
#elif ENABLED(ZONESTAR_12864OLED)
|
||||
#define _LCD_CONTRAST_MIN 64
|
||||
#define _LCD_CONTRAST_INIT 128
|
||||
#define _LCD_CONTRAST_MAX 255
|
||||
#elif IS_TFTGLCD_PANEL
|
||||
#define _LCD_CONTRAST_MIN 0
|
||||
#define _LCD_CONTRAST_INIT 250
|
||||
#define _LCD_CONTRAST_MAX 255
|
||||
#endif
|
||||
|
||||
#ifdef _LCD_CONTRAST_INIT
|
||||
@ -2332,7 +2338,7 @@
|
||||
#define FILAMENT_CHANGE_SLOW_LOAD_LENGTH 0
|
||||
#endif
|
||||
|
||||
#if EXTRUDERS > 1 && !defined(TOOLCHANGE_FS_EXTRA_PRIME)
|
||||
#if HAS_MULTI_EXTRUDER && !defined(TOOLCHANGE_FS_EXTRA_PRIME)
|
||||
#define TOOLCHANGE_FS_EXTRA_PRIME 0
|
||||
#endif
|
||||
|
||||
@ -2451,9 +2457,9 @@
|
||||
/**
|
||||
* Buzzer/Speaker
|
||||
*/
|
||||
#if PIN_EXISTS(BEEPER) || EITHER(LCD_USE_I2C_BUZZER, PCA9632_BUZZER)
|
||||
#if PIN_EXISTS(BEEPER) || ANY(LCD_USE_I2C_BUZZER, PCA9632_BUZZER, IS_TFTGLCD_PANEL)
|
||||
#define HAS_BUZZER 1
|
||||
#if NONE(LCD_USE_I2C_BUZZER, PCA9632_BUZZER)
|
||||
#if PIN_EXISTS(BEEPER)
|
||||
#define USE_BEEPER 1
|
||||
#endif
|
||||
#endif
|
||||
@ -2481,7 +2487,7 @@
|
||||
/**
|
||||
* Make sure DOGLCD_SCK and DOGLCD_MOSI are defined.
|
||||
*/
|
||||
#if HAS_GRAPHICAL_LCD
|
||||
#if HAS_MARLINUI_U8GLIB
|
||||
#ifndef DOGLCD_SCK
|
||||
#define DOGLCD_SCK SCK_PIN
|
||||
#endif
|
||||
@ -2602,17 +2608,17 @@
|
||||
#define HAS_FOLDER_SORTING 1
|
||||
#endif
|
||||
|
||||
#if HAS_SPI_LCD
|
||||
#if HAS_WIRED_LCD
|
||||
// Get LCD character width/height, which may be overridden by pins, configs, etc.
|
||||
#ifndef LCD_WIDTH
|
||||
#if HAS_GRAPHICAL_LCD
|
||||
#if HAS_MARLINUI_U8GLIB
|
||||
#define LCD_WIDTH 21
|
||||
#else
|
||||
#define LCD_WIDTH TERN(ULTIPANEL, 20, 16)
|
||||
#endif
|
||||
#endif
|
||||
#ifndef LCD_HEIGHT
|
||||
#if HAS_GRAPHICAL_LCD
|
||||
#if HAS_MARLINUI_U8GLIB
|
||||
#define LCD_HEIGHT 5
|
||||
#else
|
||||
#define LCD_HEIGHT TERN(ULTIPANEL, 4, 2)
|
||||
@ -2620,6 +2626,10 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if BUTTONS_EXIST(EN1, EN2, ENC)
|
||||
#define HAS_ROTARY_ENCODER 1
|
||||
#endif
|
||||
|
||||
#if !NUM_SERIAL
|
||||
#undef BAUD_RATE_GCODE
|
||||
#elif NUM_SERIAL > 1
|
||||
|
@ -477,6 +477,18 @@
|
||||
#error "HOME_USING_SPREADCYCLE is now obsolete. Please remove it from Configuration_adv.h."
|
||||
#elif defined(DGUS_LCD)
|
||||
#error "DGUS_LCD is now DGUS_LCD_UI_(ORIGIN|FYSETC|HIPRECY). Please update your configuration."
|
||||
#elif defined(DGUS_SERIAL_PORT)
|
||||
#error "DGUS_SERIAL_PORT is now LCD_SERIAL_PORT. Please update your configuration."
|
||||
#elif defined(DGUS_BAUDRATE)
|
||||
#error "DGUS_BAUDRATE is now LCD_BAUDRATE. Please update your configuration."
|
||||
#elif defined(DGUS_STATS_RX_BUFFER_OVERRUNS)
|
||||
#error "DGUS_STATS_RX_BUFFER_OVERRUNS is now STATS_RX_BUFFER_OVERRUNS. Please update your configuration."
|
||||
#elif defined(DGUS_SERIAL_PORT)
|
||||
#error "DGUS_SERIAL_PORT is now LCD_SERIAL_PORT. Please update your configuration."
|
||||
#elif defined(ANYCUBIC_LCD_SERIAL_PORT)
|
||||
#error "ANYCUBIC_LCD_SERIAL_PORT is now LCD_SERIAL_PORT. Please update your configuration."
|
||||
#elif defined(INTERNAL_SERIAL_PORT)
|
||||
#error "INTERNAL_SERIAL_PORT is now MMU2_SERIAL_PORT. Please update your configuration."
|
||||
#elif defined(X_DUAL_ENDSTOPS_ADJUSTMENT)
|
||||
#error "X_DUAL_ENDSTOPS_ADJUSTMENT is now X2_ENDSTOP_ADJUSTMENT. Please update Configuration_adv.h."
|
||||
#elif defined(Y_DUAL_ENDSTOPS_ADJUSTMENT)
|
||||
@ -582,12 +594,10 @@
|
||||
#error "SERIAL_XON_XOFF and SERIAL_STATS_* features not supported on USB-native AVR devices."
|
||||
#endif
|
||||
|
||||
#if SERIAL_PORT > 7
|
||||
#error "Set SERIAL_PORT to the port on your board. Usually this is 0."
|
||||
#endif
|
||||
|
||||
#if defined(SERIAL_PORT_2) && NUM_SERIAL < 2
|
||||
#error "SERIAL_PORT_2 is not supported for your MOTHERBOARD. Disable it to continue."
|
||||
#ifndef SERIAL_PORT
|
||||
#error "SERIAL_PORT must be defined in Configuration.h"
|
||||
#elif defined(SERIAL_PORT_2) && SERIAL_PORT_2 == SERIAL_PORT
|
||||
#error "SERIAL_PORT_2 cannot be the same as SERIAL_PORT. Please update your configuration."
|
||||
#endif
|
||||
|
||||
/**
|
||||
@ -670,7 +680,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
* LCD Info Screen Style
|
||||
*/
|
||||
#if LCD_INFO_SCREEN_STYLE > 0
|
||||
#if HAS_GRAPHICAL_LCD || LCD_WIDTH < 20 || LCD_HEIGHT < 4
|
||||
#if HAS_MARLINUI_U8GLIB || LCD_WIDTH < 20 || LCD_HEIGHT < 4
|
||||
#error "Alternative LCD_INFO_SCREEN_STYLE requires 20x4 Character LCD."
|
||||
#elif LCD_INFO_SCREEN_STYLE > 1
|
||||
#error "LCD_INFO_SCREEN_STYLE only has options 0 and 1 at this time."
|
||||
@ -683,17 +693,17 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
#if ENABLED(LCD_PROGRESS_BAR)
|
||||
#if NONE(SDSUPPORT, LCD_SET_PROGRESS_MANUALLY)
|
||||
#error "LCD_PROGRESS_BAR requires SDSUPPORT or LCD_SET_PROGRESS_MANUALLY."
|
||||
#elif !HAS_CHARACTER_LCD
|
||||
#error "LCD_PROGRESS_BAR requires a character LCD."
|
||||
#elif HAS_GRAPHICAL_LCD
|
||||
#elif NONE(HAS_MARLINUI_HD44780, IS_TFTGLCD_PANEL)
|
||||
#error "LCD_PROGRESS_BAR only applies to HD44780 character LCD and TFTGLCD_PANEL_(SPI|I2C)."
|
||||
#elif HAS_MARLINUI_U8GLIB
|
||||
#error "LCD_PROGRESS_BAR does not apply to graphical displays."
|
||||
#elif ENABLED(FILAMENT_LCD_DISPLAY)
|
||||
#error "LCD_PROGRESS_BAR and FILAMENT_LCD_DISPLAY are not fully compatible. Comment out this line to use both."
|
||||
#elif PROGRESS_MSG_EXPIRE < 0
|
||||
#error "PROGRESS_MSG_EXPIRE must be greater than or equal to 0."
|
||||
#endif
|
||||
#elif ENABLED(LCD_SET_PROGRESS_MANUALLY) && NONE(HAS_GRAPHICAL_LCD, HAS_GRAPHICAL_TFT, EXTENSIBLE_UI)
|
||||
#error "LCD_SET_PROGRESS_MANUALLY requires LCD_PROGRESS_BAR, Graphical LCD, TFT, or EXTENSIBLE_UI."
|
||||
#elif ENABLED(LCD_SET_PROGRESS_MANUALLY) && NONE(HAS_MARLINUI_U8GLIB, HAS_GRAPHICAL_TFT, HAS_MARLINUI_HD44780, EXTENSIBLE_UI)
|
||||
#error "LCD_SET_PROGRESS_MANUALLY requires LCD_PROGRESS_BAR, Character LCD, Graphical LCD, TFT, or EXTENSIBLE_UI."
|
||||
#endif
|
||||
|
||||
#if !HAS_LCD_MENU && ENABLED(SD_REPRINT_LAST_SELECTED_FILE)
|
||||
@ -703,9 +713,9 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
/**
|
||||
* Custom Boot and Status screens
|
||||
*/
|
||||
#if ENABLED(SHOW_CUSTOM_BOOTSCREEN) && NONE(HAS_GRAPHICAL_LCD, TOUCH_UI_FTDI_EVE)
|
||||
#if ENABLED(SHOW_CUSTOM_BOOTSCREEN) && NONE(HAS_MARLINUI_U8GLIB, TOUCH_UI_FTDI_EVE)
|
||||
#error "SHOW_CUSTOM_BOOTSCREEN requires Graphical LCD or TOUCH_UI_FTDI_EVE."
|
||||
#elif ENABLED(CUSTOM_STATUS_SCREEN_IMAGE) && !HAS_GRAPHICAL_LCD
|
||||
#elif ENABLED(CUSTOM_STATUS_SCREEN_IMAGE) && !HAS_MARLINUI_U8GLIB
|
||||
#error "CUSTOM_STATUS_SCREEN_IMAGE requires a Graphical LCD."
|
||||
#endif
|
||||
|
||||
@ -764,13 +774,15 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
#if ENABLED(BABYSTEPPING)
|
||||
#if ENABLED(SCARA)
|
||||
#error "BABYSTEPPING is not implemented for SCARA yet."
|
||||
#elif BOTH(MARKFORGED_XY, BABYSTEP_XY)
|
||||
#error "BABYSTEPPING only implemented for Z axis on MarkForged."
|
||||
#elif BOTH(DELTA, BABYSTEP_XY)
|
||||
#error "BABYSTEPPING only implemented for Z axis on deltabots."
|
||||
#elif BOTH(BABYSTEP_ZPROBE_OFFSET, MESH_BED_LEVELING)
|
||||
#error "MESH_BED_LEVELING and BABYSTEP_ZPROBE_OFFSET is not a valid combination"
|
||||
#elif ENABLED(BABYSTEP_ZPROBE_OFFSET) && !HAS_BED_PROBE
|
||||
#error "BABYSTEP_ZPROBE_OFFSET requires a probe."
|
||||
#elif ENABLED(BABYSTEP_ZPROBE_GFX_OVERLAY) && !HAS_GRAPHICAL_LCD
|
||||
#elif ENABLED(BABYSTEP_ZPROBE_GFX_OVERLAY) && !HAS_MARLINUI_U8GLIB
|
||||
#error "BABYSTEP_ZPROBE_GFX_OVERLAY requires a Graphical LCD."
|
||||
#elif ENABLED(BABYSTEP_ZPROBE_GFX_OVERLAY) && DISABLED(BABYSTEP_ZPROBE_OFFSET)
|
||||
#error "BABYSTEP_ZPROBE_GFX_OVERLAY requires a BABYSTEP_ZPROBE_OFFSET."
|
||||
@ -787,6 +799,8 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
#if ENABLED(BABYSTEP_XY)
|
||||
static_assert(BABYSTEP_MULTIPLICATOR_XY <= 0.25f, "BABYSTEP_MULTIPLICATOR_XY must be less than or equal to 0.25mm.");
|
||||
#endif
|
||||
#elif ENABLED(BABYSTEP_DISPLAY_TOTAL) && ANY(TFT_320x240, TFT_320x240_SPI, TFT_480x320, TFT_480x320_SPI)
|
||||
#error "New Color UI (TFT_320x240, TFT_320x240_SPI, TFT_480x320, TFT_480x320_SPI) does not support BABYSTEP_DISPLAY_TOTAL yet."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@ -861,7 +875,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
/**
|
||||
* Options only for EXTRUDERS > 1
|
||||
*/
|
||||
#if EXTRUDERS > 1
|
||||
#if HAS_MULTI_EXTRUDER
|
||||
|
||||
#if EXTRUDERS > 8
|
||||
#error "Marlin supports a maximum of 8 EXTRUDERS."
|
||||
@ -983,7 +997,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
* Mixing Extruder requirements
|
||||
*/
|
||||
#if ENABLED(MIXING_EXTRUDER)
|
||||
#if EXTRUDERS > 1
|
||||
#if HAS_MULTI_EXTRUDER
|
||||
#error "For MIXING_EXTRUDER set MIXING_STEPPERS > 1 instead of EXTRUDERS > 1."
|
||||
#elif MIXING_STEPPERS < 2
|
||||
#error "You must set MIXING_STEPPERS >= 2 for a mixing extruder."
|
||||
@ -1129,7 +1143,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
/**
|
||||
* Required LCD language
|
||||
*/
|
||||
#if HAS_CHARACTER_LCD && !defined(DISPLAY_CHARSET_HD44780)
|
||||
#if HAS_MARLINUI_HD44780 && !defined(DISPLAY_CHARSET_HD44780)
|
||||
#error "You must set DISPLAY_CHARSET_HD44780 to JAPANESE, WESTERN or CYRILLIC for your LCD controller."
|
||||
#endif
|
||||
|
||||
@ -1155,8 +1169,9 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
+ ENABLED(COREYZ) \
|
||||
+ ENABLED(COREYX) \
|
||||
+ ENABLED(COREZX) \
|
||||
+ ENABLED(COREZY)
|
||||
#error "Please enable only one of DELTA, MORGAN_SCARA, COREXY, COREYX, COREXZ, COREZX, COREYZ, or COREZY."
|
||||
+ ENABLED(COREZY) \
|
||||
+ ENABLED(MARKFORGED_XY)
|
||||
#error "Please enable only one of DELTA, MORGAN_SCARA, COREXY, COREYX, COREXZ, COREZX, COREYZ, COREZY, or MARKFORGED_XY."
|
||||
#endif
|
||||
|
||||
/**
|
||||
@ -1450,7 +1465,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if ENABLED(MESH_EDIT_GFX_OVERLAY) && !BOTH(AUTO_BED_LEVELING_UBL, HAS_GRAPHICAL_LCD)
|
||||
#if ENABLED(MESH_EDIT_GFX_OVERLAY) && !BOTH(AUTO_BED_LEVELING_UBL, HAS_MARLINUI_U8GLIB)
|
||||
#error "MESH_EDIT_GFX_OVERLAY requires AUTO_BED_LEVELING_UBL and a Graphical LCD."
|
||||
#endif
|
||||
|
||||
@ -1576,8 +1591,8 @@ static_assert(hbm[Z_AXIS] >= 0, "HOMING_BUMP_MM.Z must be greater than or equal
|
||||
#if ENABLED(DUAL_X_CARRIAGE)
|
||||
#if EXTRUDERS < 2
|
||||
#error "DUAL_X_CARRIAGE requires 2 (or more) extruders."
|
||||
#elif CORE_IS_XY || CORE_IS_XZ
|
||||
#error "DUAL_X_CARRIAGE cannot be used with COREXY, COREYX, COREXZ, or COREZX."
|
||||
#elif ANY(CORE_IS_XY, CORE_IS_XZ, MARKFORGED_XY)
|
||||
#error "DUAL_X_CARRIAGE cannot be used with COREXY, COREYX, COREXZ, COREZX, or MARKFORGED_XY."
|
||||
#elif !GOOD_AXIS_PINS(X2)
|
||||
#error "DUAL_X_CARRIAGE requires X2 stepper pins to be defined."
|
||||
#elif !HAS_X_MAX
|
||||
@ -2116,18 +2131,20 @@ static_assert(hbm[Z_AXIS] >= 0, "HOMING_BUMP_MM.Z must be greater than or equal
|
||||
#if !(_RGB_TEST && PIN_EXISTS(RGB_LED_W))
|
||||
#error "RGBW_LED requires RGB_LED_R_PIN, RGB_LED_G_PIN, RGB_LED_B_PIN, and RGB_LED_W_PIN."
|
||||
#endif
|
||||
#elif ENABLED(NEOPIXEL_LED)
|
||||
#if !(PIN_EXISTS(NEOPIXEL) && NEOPIXEL_PIXELS > 0)
|
||||
#endif
|
||||
#undef _RGB_TEST
|
||||
|
||||
// NeoPixel requirements
|
||||
#if ENABLED(NEOPIXEL_LED)
|
||||
#if !PIN_EXISTS(NEOPIXEL) || NEOPIXEL_PIXELS == 0
|
||||
#error "NEOPIXEL_LED requires NEOPIXEL_PIN and NEOPIXEL_PIXELS."
|
||||
#endif
|
||||
#elif ENABLED(NEOPIXEL2_SEPARATE)
|
||||
#if !(PIN_EXISTS(NEOPIXEL2) && NEOPIXEL2_PIXELS > 0)
|
||||
#error "NEOPIXEL2 requires NEOPIXEL2_PIN and NEOPIXEL2_PIXELS."
|
||||
#elif ENABLED(NEOPIXEL2_SEPARATE) && !(defined(NEOPIXEL2_TYPE) && PIN_EXISTS(NEOPIXEL2) && NEOPIXEL2_PIXELS > 0)
|
||||
#error "NEOPIXEL2_SEPARATE requires NEOPIXEL2_TYPE, NEOPIXEL2_PIN and NEOPIXEL2_PIXELS."
|
||||
#elif ENABLED(NEO2_COLOR_PRESETS) && DISABLED(NEOPIXEL2_SEPARATE)
|
||||
#error "NEO2_COLOR_PRESETS requires NEOPIXEL2_SEPARATE to be enabled."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#undef _RGB_TEST
|
||||
|
||||
#if DISABLED(NO_COMPILE_TIME_PWM)
|
||||
#define _TEST_PWM(P) PWM_PIN(P)
|
||||
#else
|
||||
@ -2175,16 +2192,16 @@ static_assert(hbm[Z_AXIS] >= 0, "HOMING_BUMP_MM.Z must be greater than or equal
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Make sure features that need to write to the SD card are
|
||||
* disabled unless write support is enabled.
|
||||
* Make sure features that need to write to the SD card can
|
||||
*/
|
||||
#if ENABLED(SDCARD_READONLY)
|
||||
#if ENABLED(SDCARD_READONLY) && ANY(POWER_LOSS_RECOVERY, BINARY_FILE_TRANSFER, SDCARD_EEPROM_EMULATION)
|
||||
#undef SDCARD_READONLY
|
||||
#if ENABLED(POWER_LOSS_RECOVERY)
|
||||
#error "POWER_LOSS_RECOVERY is incompatible with SDCARD_READONLY."
|
||||
#warning "Either disable SDCARD_READONLY or disable POWER_LOSS_RECOVERY."
|
||||
#elif ENABLED(BINARY_FILE_TRANSFER)
|
||||
#error "BINARY_FILE_TRANSFER is incompatible with SDCARD_READONLY."
|
||||
#warning "Either disable SDCARD_READONLY or disable BINARY_FILE_TRANSFER."
|
||||
#elif ENABLED(SDCARD_EEPROM_EMULATION)
|
||||
#error "SDCARD_EEPROM_EMULATION is incompatible with SDCARD_READONLY."
|
||||
#warning "Either disable SDCARD_READONLY or disable SDCARD_EEPROM_EMULATION."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@ -2257,7 +2274,9 @@ static_assert(hbm[Z_AXIS] >= 0, "HOMING_BUMP_MM.Z must be greater than or equal
|
||||
+ ENABLED(TFT_LVGL_UI_FSMC) \
|
||||
+ ENABLED(TFT_LVGL_UI_SPI) \
|
||||
+ ENABLED(ANYCUBIC_LCD_I3MEGA) \
|
||||
+ ENABLED(ANYCUBIC_LCD_CHIRON)
|
||||
+ ENABLED(ANYCUBIC_LCD_CHIRON) \
|
||||
+ ENABLED(TFTGLCD_PANEL_SPI) \
|
||||
+ ENABLED(TFTGLCD_PANEL_I2C)
|
||||
#error "Please select only one LCD controller option."
|
||||
#endif
|
||||
|
||||
@ -2273,6 +2292,25 @@ static_assert(hbm[Z_AXIS] >= 0, "HOMING_BUMP_MM.Z must be greater than or equal
|
||||
#error "Please enable only one LCD_SCREEN_ROT_* option: 0, 90, 180, or 270."
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Serial displays require a dedicated serial port
|
||||
*/
|
||||
#ifdef LCD_SERIAL_PORT
|
||||
#if LCD_SERIAL_PORT == SERIAL_PORT
|
||||
#error "LCD_SERIAL_PORT cannot be the same as SERIAL_PORT. Please update your configuration."
|
||||
#elif defined(SERIAL_PORT_2) && LCD_SERIAL_PORT == SERIAL_PORT_2
|
||||
#error "LCD_SERIAL_PORT cannot be the same as SERIAL_PORT_2. Please update your configuration."
|
||||
#endif
|
||||
#else
|
||||
#if HAS_DGUS_LCD
|
||||
#error "The DGUS LCD requires LCD_SERIAL_PORT to be defined in Configuration.h"
|
||||
#elif EITHER(ANYCUBIC_LCD_I3MEGA, ANYCUBIC_LCD_CHIRON)
|
||||
#error "The ANYCUBIC LCD requires LCD_SERIAL_PORT to be defined in Configuration.h"
|
||||
#elif ENABLED(MALYAN_LCD)
|
||||
#error "MALYAN_LCD requires LCD_SERIAL_PORT to be defined in Configuration.h"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
* FYSETC Mini 12864 RGB backlighting required
|
||||
*/
|
||||
@ -2533,6 +2571,8 @@ static_assert(hbm[Z_AXIS] >= 0, "HOMING_BUMP_MM.Z must be greater than or equal
|
||||
#error "CoreXZ requires both X and Z to use sensorless homing if either one does."
|
||||
#elif CORE_IS_YZ && Y_SENSORLESS != Z_SENSORLESS && !HOMING_Z_WITH_PROBE
|
||||
#error "CoreYZ requires both Y and Z to use sensorless homing if either one does."
|
||||
#elif ENABLED(MARKFORGED_XY) && X_SENSORLESS != Y_SENSORLESS
|
||||
#error "MARKFORGED_XY requires both X and Y to use sensorless homing if either one does."
|
||||
#endif
|
||||
|
||||
// Other TMC feature requirements
|
||||
@ -2848,6 +2888,10 @@ static_assert( _ARR_TEST(3,0) && _ARR_TEST(3,1) && _ARR_TEST(3,2)
|
||||
#error "BACKLASH_COMPENSATION requires BACKLASH_DISTANCE_MM."
|
||||
#elif !defined(BACKLASH_CORRECTION)
|
||||
#error "BACKLASH_COMPENSATION requires BACKLASH_CORRECTION."
|
||||
#elif ENABLED(MARKFORGED_XY)
|
||||
constexpr float backlash_arr[] = BACKLASH_DISTANCE_MM;
|
||||
static_assert(!backlash_arr[CORE_AXIS_1] && !backlash_arr[CORE_AXIS_2],
|
||||
"BACKLASH_COMPENSATION can only apply to " STRINGIFY(NORMAL_AXIS) " on a MarkForged system.");
|
||||
#elif IS_CORE
|
||||
constexpr float backlash_arr[] = BACKLASH_DISTANCE_MM;
|
||||
static_assert(!backlash_arr[CORE_AXIS_1] && !backlash_arr[CORE_AXIS_2],
|
||||
@ -3039,11 +3083,9 @@ static_assert( _ARR_TEST(3,0) && _ARR_TEST(3,1) && _ARR_TEST(3,2)
|
||||
#undef _PIN_CONFLICT
|
||||
#endif
|
||||
|
||||
#if !HAS_GRAPHICAL_LCD
|
||||
#if !HAS_MARLINUI_U8GLIB
|
||||
#if ENABLED(PRINT_PROGRESS_SHOW_DECIMALS)
|
||||
#error "PRINT_PROGRESS_SHOW_DECIMALS currently requires a Graphical LCD."
|
||||
#elif ENABLED(SHOW_REMAINING_TIME)
|
||||
#error "SHOW_REMAINING_TIME currently requires a Graphical LCD."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@ -3093,7 +3135,7 @@ static_assert( _ARR_TEST(3,0) && _ARR_TEST(3,1) && _ARR_TEST(3,2)
|
||||
* Sanity check for WIFI
|
||||
*/
|
||||
#if EITHER(ESP3D_WIFISUPPORT, WIFISUPPORT) && DISABLED(ARDUINO_ARCH_ESP32)
|
||||
#error "ESP3D_WIFISUPPORT or WIFISUPPORT requires an ESP32 controller."
|
||||
#error "ESP3D_WIFISUPPORT or WIFISUPPORT requires an ESP32 MOTHERBOARD."
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
@ -42,7 +42,7 @@
|
||||
* version was tagged.
|
||||
*/
|
||||
#ifndef STRING_DISTRIBUTION_DATE
|
||||
#define STRING_DISTRIBUTION_DATE "2020-08-28"
|
||||
#define STRING_DISTRIBUTION_DATE "2020-09-29"
|
||||
#endif
|
||||
|
||||
/**
|
||||
@ -52,7 +52,7 @@
|
||||
* to alert users to major changes.
|
||||
*/
|
||||
|
||||
#define MARLIN_HEX_VERSION 020006
|
||||
#define MARLIN_HEX_VERSION 020007
|
||||
#ifndef REQUIRED_CONFIGURATION_H_VERSION
|
||||
#define REQUIRED_CONFIGURATION_H_VERSION MARLIN_HEX_VERSION
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user