Prusa MINI Firmware overview
Conditionals_LCD.h File Reference

Go to the source code of this file.

Macros

#define HAS_SSD1306_OLED_I2C   ANY(U8GLIB_SSD1306, U8GLIB_SSD1309, U8GLIB_SH1106)
 
#define STD_ENCODER_PULSES_PER_STEP   5
 
#define STD_ENCODER_STEPS_PER_MENU_ITEM   1
 
#define ENCODER_PULSES_PER_STEP   STD_ENCODER_PULSES_PER_STEP
 
#define ENCODER_STEPS_PER_MENU_ITEM   STD_ENCODER_STEPS_PER_MENU_ITEM
 
#define ENCODER_FEEDRATE_DEADZONE   6
 
#define HAS_SPI_LCD   ENABLED(ULTRA_LCD)
 
#define HAS_DISPLAY   (HAS_SPI_LCD || ENABLED(EXTENSIBLE_UI))
 
#define HAS_GRAPHICAL_LCD   ENABLED(DOGLCD)
 
#define HAS_CHARACTER_LCD   (HAS_SPI_LCD && !HAS_GRAPHICAL_LCD)
 
#define HAS_LCD_MENU   (ENABLED(ULTIPANEL) && DISABLED(NO_LCD_MENUS))
 
#define HAS_ADC_BUTTONS   ENABLED(ADC_KEYPAD)
 
#define HOTENDS   EXTRUDERS
 
#define E_STEPPERS   EXTRUDERS
 
#define E_MANUAL   EXTRUDERS
 
#define HOTEND_LOOP()   for (int8_t e = 0; e < HOTENDS; e++)
 
#define DO_SWITCH_EXTRUDER   (ENABLED(SWITCHING_EXTRUDER) && (DISABLED(SWITCHING_NOZZLE) || SWITCHING_EXTRUDER_SERVO_NR != SWITCHING_NOZZLE_SERVO_NR))
 
#define SWITCHING_NOZZLE_TWO_SERVOS   defined(SWITCHING_NOZZLE_E1_SERVO_NR)
 
#define HAS_HOTEND_OFFSET   (HOTENDS > 1)
 
#define HAS_DUPLICATION_MODE   EITHER(DUAL_X_CARRIAGE, MULTI_NOZZLE_DUPLICATION)
 
#define XYZE_N   XYZE
 
#define E_AXIS_N(E)   E_AXIS
 
#define UNUSED_E(E)   UNUSED(E)
 
#define PREHEAT_1_LABEL   "PLA"
 
#define PREHEAT_2_LABEL   "ABS"
 
#define HAS_Z_SERVO_PROBE   (defined(Z_PROBE_SERVO_NR) && Z_PROBE_SERVO_NR >= 0)
 
#define HAS_BED_PROBE   (HAS_Z_SERVO_PROBE || ANY(FIX_MOUNTED_PROBE, TOUCH_MI_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, SOLENOID_PROBE, SENSORLESS_PROBING, RACK_AND_PINION_PROBE))
 
#define PROBE_SELECTED   (HAS_BED_PROBE || EITHER(PROBE_MANUALLY, MESH_BED_LEVELING))
 
#define HAS_CUSTOM_PROBE_PIN   DISABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)
 
#define HOMING_Z_WITH_PROBE   (Z_HOME_DIR < 0 && !HAS_CUSTOM_PROBE_PIN)
 
#define Z_PROBE_LOW_POINT   -5
 
#define HAS_SOFTWARE_ENDSTOPS   EITHER(MIN_SOFTWARE_ENDSTOPS, MAX_SOFTWARE_ENDSTOPS)
 
#define HAS_RESUME_CONTINUE   ANY(EXTENSIBLE_UI, NEWPANEL, EMERGENCY_PARSER)
 
#define HAS_COLOR_LEDS   ANY(BLINKM, RGB_LED, RGBW_LED, PCA9632, PCA9533, NEOPIXEL_LED)
 
#define HAS_LEDS_OFF_FLAG   (BOTH(PRINTER_EVENT_LEDS, SDSUPPORT) && HAS_RESUME_CONTINUE)
 
#define HAS_PRINT_PROGRESS   EITHER(SDSUPPORT, LCD_SET_PROGRESS_MANUALLY)
 
#define HAS_PRINT_PROGRESS_PERMYRIAD   (HAS_PRINT_PROGRESS && EITHER(PRINT_PROGRESS_SHOW_DECIMALS, SHOW_REMAINING_TIME))
 
#define HAS_SERVICE_INTERVALS   (ENABLED(PRINTCOUNTER) && (SERVICE_INTERVAL_1 > 0 || SERVICE_INTERVAL_2 > 0 || SERVICE_INTERVAL_3 > 0))
 
#define HAS_FILAMENT_SENSOR   ENABLED(FILAMENT_RUNOUT_SENSOR)
 
#define Z_MULTI_STEPPER_DRIVERS   EITHER(Z_DUAL_STEPPER_DRIVERS, Z_TRIPLE_STEPPER_DRIVERS)
 
#define Z_MULTI_ENDSTOPS   EITHER(Z_DUAL_ENDSTOPS, Z_TRIPLE_ENDSTOPS)
 
#define HAS_EXTRA_ENDSTOPS   (EITHER(X_DUAL_ENDSTOPS, Y_DUAL_ENDSTOPS) || Z_MULTI_ENDSTOPS)
 
#define HAS_GAMES   ANY(MARLIN_BRICKOUT, MARLIN_INVADERS, MARLIN_SNAKE, MARLIN_MAZE)
 
#define HAS_GAME_MENU   (1 < ENABLED(MARLIN_BRICKOUT) + ENABLED(MARLIN_INVADERS) + ENABLED(MARLIN_SNAKE) + ENABLED(MARLIN_MAZE))
 
#define IS_SCARA   ENABLED(MORGAN_SCARA)
 
#define IS_KINEMATIC   (ENABLED(DELTA) || IS_SCARA)
 
#define IS_CARTESIAN   !IS_KINEMATIC
 
#define INVERT_X_DIR   false
 
#define INVERT_Y_DIR   false
 
#define INVERT_Z_DIR   false
 
#define INVERT_E_DIR   false
 
#define IS_RE_ARM_BOARD   MB(RAMPS_14_RE_ARM_EFB, RAMPS_14_RE_ARM_EEB, RAMPS_14_RE_ARM_EFF, RAMPS_14_RE_ARM_EEF, RAMPS_14_RE_ARM_SF)
 
#define HAS_SDCARD_CONNECTION   EITHER(TARGET_LPC1768, ADAFRUIT_GRAND_CENTRAL_M4)
 
#define HAS_LINEAR_E_JERK   (DISABLED(CLASSIC_JERK) && ENABLED(LIN_ADVANCE))
 
#define SPI_SPEED   SPI_FULL_SPEED
 

Macro Definition Documentation

◆ HAS_SSD1306_OLED_I2C

#define HAS_SSD1306_OLED_I2C   ANY(U8GLIB_SSD1306, U8GLIB_SSD1309, U8GLIB_SH1106)

Marlin 3D Printer Firmware Copyright (c) 2019 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/. Conditionals_LCD.h Conditionals that need to be set before Configuration_adv.h or pins.h

◆ STD_ENCODER_PULSES_PER_STEP

#define STD_ENCODER_PULSES_PER_STEP   5

SPI Ultipanels I2C Panels

◆ STD_ENCODER_STEPS_PER_MENU_ITEM

#define STD_ENCODER_STEPS_PER_MENU_ITEM   1

◆ ENCODER_PULSES_PER_STEP

#define ENCODER_PULSES_PER_STEP   STD_ENCODER_PULSES_PER_STEP

◆ ENCODER_STEPS_PER_MENU_ITEM

#define ENCODER_STEPS_PER_MENU_ITEM   STD_ENCODER_STEPS_PER_MENU_ITEM

◆ ENCODER_FEEDRATE_DEADZONE

#define ENCODER_FEEDRATE_DEADZONE   6

◆ HAS_SPI_LCD

#define HAS_SPI_LCD   ENABLED(ULTRA_LCD)

◆ HAS_DISPLAY

#define HAS_DISPLAY   (HAS_SPI_LCD || ENABLED(EXTENSIBLE_UI))

◆ HAS_GRAPHICAL_LCD

#define HAS_GRAPHICAL_LCD   ENABLED(DOGLCD)

◆ HAS_CHARACTER_LCD

#define HAS_CHARACTER_LCD   (HAS_SPI_LCD && !HAS_GRAPHICAL_LCD)

◆ HAS_LCD_MENU

#define HAS_LCD_MENU   (ENABLED(ULTIPANEL) && DISABLED(NO_LCD_MENUS))

◆ HAS_ADC_BUTTONS

#define HAS_ADC_BUTTONS   ENABLED(ADC_KEYPAD)

◆ HOTENDS

#define HOTENDS   EXTRUDERS

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

◆ E_STEPPERS

#define E_STEPPERS   EXTRUDERS

◆ E_MANUAL

#define E_MANUAL   EXTRUDERS

◆ HOTEND_LOOP

#define HOTEND_LOOP ( )    for (int8_t e = 0; e < HOTENDS; e++)

◆ DO_SWITCH_EXTRUDER

#define DO_SWITCH_EXTRUDER   (ENABLED(SWITCHING_EXTRUDER) && (DISABLED(SWITCHING_NOZZLE) || SWITCHING_EXTRUDER_SERVO_NR != SWITCHING_NOZZLE_SERVO_NR))

◆ SWITCHING_NOZZLE_TWO_SERVOS

#define SWITCHING_NOZZLE_TWO_SERVOS   defined(SWITCHING_NOZZLE_E1_SERVO_NR)

◆ HAS_HOTEND_OFFSET

#define HAS_HOTEND_OFFSET   (HOTENDS > 1)

◆ HAS_DUPLICATION_MODE

#define HAS_DUPLICATION_MODE   EITHER(DUAL_X_CARRIAGE, MULTI_NOZZLE_DUPLICATION)

◆ XYZE_N

#define XYZE_N   XYZE

DISTINCT_E_FACTORS affects how some E factors are accessed

◆ E_AXIS_N

#define E_AXIS_N (   E)    E_AXIS

◆ UNUSED_E

#define UNUSED_E (   E)    UNUSED(E)

◆ PREHEAT_1_LABEL

#define PREHEAT_1_LABEL   "PLA"

The BLTouch Probe emulates a servo probe and uses "special" angles for its state.

◆ PREHEAT_2_LABEL

#define PREHEAT_2_LABEL   "ABS"

◆ HAS_Z_SERVO_PROBE

#define HAS_Z_SERVO_PROBE   (defined(Z_PROBE_SERVO_NR) && Z_PROBE_SERVO_NR >= 0)

Set a flag for a servo probe

◆ HAS_BED_PROBE

#define HAS_BED_PROBE   (HAS_Z_SERVO_PROBE || ANY(FIX_MOUNTED_PROBE, TOUCH_MI_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, SOLENOID_PROBE, SENSORLESS_PROBING, RACK_AND_PINION_PROBE))

Set flags for enabled probes

◆ PROBE_SELECTED

#define PROBE_SELECTED   (HAS_BED_PROBE || EITHER(PROBE_MANUALLY, MESH_BED_LEVELING))

◆ HAS_CUSTOM_PROBE_PIN

#define HAS_CUSTOM_PROBE_PIN   DISABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)

◆ HOMING_Z_WITH_PROBE

#define HOMING_Z_WITH_PROBE   (Z_HOME_DIR < 0 && !HAS_CUSTOM_PROBE_PIN)

◆ Z_PROBE_LOW_POINT

#define Z_PROBE_LOW_POINT   -5

◆ HAS_SOFTWARE_ENDSTOPS

#define HAS_SOFTWARE_ENDSTOPS   EITHER(MIN_SOFTWARE_ENDSTOPS, MAX_SOFTWARE_ENDSTOPS)

◆ HAS_RESUME_CONTINUE

#define HAS_RESUME_CONTINUE   ANY(EXTENSIBLE_UI, NEWPANEL, EMERGENCY_PARSER)

◆ HAS_COLOR_LEDS

#define HAS_COLOR_LEDS   ANY(BLINKM, RGB_LED, RGBW_LED, PCA9632, PCA9533, NEOPIXEL_LED)

◆ HAS_LEDS_OFF_FLAG

#define HAS_LEDS_OFF_FLAG   (BOTH(PRINTER_EVENT_LEDS, SDSUPPORT) && HAS_RESUME_CONTINUE)

◆ HAS_PRINT_PROGRESS

#define HAS_PRINT_PROGRESS   EITHER(SDSUPPORT, LCD_SET_PROGRESS_MANUALLY)

◆ HAS_PRINT_PROGRESS_PERMYRIAD

#define HAS_PRINT_PROGRESS_PERMYRIAD   (HAS_PRINT_PROGRESS && EITHER(PRINT_PROGRESS_SHOW_DECIMALS, SHOW_REMAINING_TIME))

◆ HAS_SERVICE_INTERVALS

#define HAS_SERVICE_INTERVALS   (ENABLED(PRINTCOUNTER) && (SERVICE_INTERVAL_1 > 0 || SERVICE_INTERVAL_2 > 0 || SERVICE_INTERVAL_3 > 0))

◆ HAS_FILAMENT_SENSOR

#define HAS_FILAMENT_SENSOR   ENABLED(FILAMENT_RUNOUT_SENSOR)

◆ Z_MULTI_STEPPER_DRIVERS

#define Z_MULTI_STEPPER_DRIVERS   EITHER(Z_DUAL_STEPPER_DRIVERS, Z_TRIPLE_STEPPER_DRIVERS)

◆ Z_MULTI_ENDSTOPS

#define Z_MULTI_ENDSTOPS   EITHER(Z_DUAL_ENDSTOPS, Z_TRIPLE_ENDSTOPS)

◆ HAS_EXTRA_ENDSTOPS

#define HAS_EXTRA_ENDSTOPS   (EITHER(X_DUAL_ENDSTOPS, Y_DUAL_ENDSTOPS) || Z_MULTI_ENDSTOPS)

◆ HAS_GAMES

#define HAS_GAMES   ANY(MARLIN_BRICKOUT, MARLIN_INVADERS, MARLIN_SNAKE, MARLIN_MAZE)

◆ HAS_GAME_MENU

#define HAS_GAME_MENU   (1 < ENABLED(MARLIN_BRICKOUT) + ENABLED(MARLIN_INVADERS) + ENABLED(MARLIN_SNAKE) + ENABLED(MARLIN_MAZE))

◆ IS_SCARA

#define IS_SCARA   ENABLED(MORGAN_SCARA)

◆ IS_KINEMATIC

#define IS_KINEMATIC   (ENABLED(DELTA) || IS_SCARA)

◆ IS_CARTESIAN

#define IS_CARTESIAN   !IS_KINEMATIC

◆ INVERT_X_DIR

#define INVERT_X_DIR   false

◆ INVERT_Y_DIR

#define INVERT_Y_DIR   false

◆ INVERT_Z_DIR

#define INVERT_Z_DIR   false

◆ INVERT_E_DIR

#define INVERT_E_DIR   false

◆ IS_RE_ARM_BOARD

#define IS_RE_ARM_BOARD   MB(RAMPS_14_RE_ARM_EFB, RAMPS_14_RE_ARM_EEB, RAMPS_14_RE_ARM_EFF, RAMPS_14_RE_ARM_EEF, RAMPS_14_RE_ARM_SF)

◆ HAS_SDCARD_CONNECTION

#define HAS_SDCARD_CONNECTION   EITHER(TARGET_LPC1768, ADAFRUIT_GRAND_CENTRAL_M4)

◆ HAS_LINEAR_E_JERK

#define HAS_LINEAR_E_JERK   (DISABLED(CLASSIC_JERK) && ENABLED(LIN_ADVANCE))

◆ SPI_SPEED

#define SPI_SPEED   SPI_FULL_SPEED