Skip to content

Instantly share code, notes, and snippets.

@aganov
Last active January 4, 2024 13:02

Revisions

  1. aganov renamed this gist Jan 4, 2024. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  2. aganov created this gist Jan 4, 2024.
    903 changes: 903 additions & 0 deletions config.patch
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,903 @@
    diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h
    index 9acdc107ca..2a53d61ff9 100644
    --- a/Marlin/Configuration.h
    +++ b/Marlin/Configuration.h
    @@ -61,14 +61,14 @@
    // @section info

    // Author info of this build printed to the host during boot and M115
    -#define STRING_CONFIG_H_AUTHOR "(none, default config)" // Who made the changes.
    +#define STRING_CONFIG_H_AUTHOR "(Alex)" // Who made the changes.
    //#define CUSTOM_VERSION_FILE Version.h // Path from the root directory (no quotes)

    // @section machine

    // Choose the name from boards.h that matches your setup
    #ifndef MOTHERBOARD
    - #define MOTHERBOARD BOARD_RAMPS_14_EFB
    + #define MOTHERBOARD BOARD_BTT_SKR_V1_3
    #endif

    /**
    @@ -79,7 +79,7 @@
    *
    * :[-1, 0, 1, 2, 3, 4, 5, 6, 7]
    */
    -#define SERIAL_PORT 0
    +#define SERIAL_PORT -1

    /**
    * Serial Port Baud Rate
    @@ -92,7 +92,7 @@
    *
    * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
    */
    -#define BAUDRATE 250000
    +#define BAUDRATE 115200

    //#define BAUD_RATE_GCODE // Enable G-code M575 to set the baud rate

    @@ -101,7 +101,7 @@
    * Currently Ethernet (-2) is only supported on Teensy 4.1 boards.
    * :[-2, -1, 0, 1, 2, 3, 4, 5, 6, 7]
    */
    -//#define SERIAL_PORT_2 -1
    +#define SERIAL_PORT_2 0
    //#define BAUDRATE_2 250000 // :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000] Enable to override BAUDRATE

    /**
    @@ -112,11 +112,20 @@
    //#define SERIAL_PORT_3 1
    //#define BAUDRATE_3 250000 // :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000] Enable to override BAUDRATE

    +/**
    + * Select a serial port to communicate with RS485 protocol
    + * :[-1, 0, 1, 2, 3, 4, 5, 6, 7]
    + */
    +//#define RS485_SERIAL_PORT 1
    +#ifdef RS485_SERIAL_PORT
    + //#define RS485_BUS_BUFFER_SIZE 128
    +#endif
    +
    // Enable the Bluetooth serial interface on AT90USB devices
    //#define BLUETOOTH

    // Name displayed in the LCD "Ready" message and Info menu
    -//#define CUSTOM_MACHINE_NAME "3D Printer"
    +#define CUSTOM_MACHINE_NAME "Ender 3"

    // Printer's unique ID, used by some programs to differentiate between machines.
    // Choose your own or use a service like https://www.uuidgenerator.net/version4
    @@ -139,9 +148,9 @@
    * TMC5130, TMC5130_STANDALONE, TMC5160, TMC5160_STANDALONE
    * :['A4988', 'A5984', 'DRV8825', 'LV8729', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2160', 'TMC2160_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC2209', 'TMC2209_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE', 'TMC5160', 'TMC5160_STANDALONE']
    */
    -#define X_DRIVER_TYPE A4988
    -#define Y_DRIVER_TYPE A4988
    -#define Z_DRIVER_TYPE A4988
    +#define X_DRIVER_TYPE TMC2208
    +#define Y_DRIVER_TYPE TMC2208
    +#define Z_DRIVER_TYPE TMC2208
    //#define X2_DRIVER_TYPE A4988
    //#define Y2_DRIVER_TYPE A4988
    //#define Z2_DRIVER_TYPE A4988
    @@ -153,7 +162,7 @@
    //#define U_DRIVER_TYPE A4988
    //#define V_DRIVER_TYPE A4988
    //#define W_DRIVER_TYPE A4988
    -#define E0_DRIVER_TYPE A4988
    +#define E0_DRIVER_TYPE TMC2208
    //#define E1_DRIVER_TYPE A4988
    //#define E2_DRIVER_TYPE A4988
    //#define E3_DRIVER_TYPE A4988
    @@ -636,7 +645,7 @@
    #define HEATER_5_MAXTEMP 275
    #define HEATER_6_MAXTEMP 275
    #define HEATER_7_MAXTEMP 275
    -#define BED_MAXTEMP 150
    +#define BED_MAXTEMP 125
    #define CHAMBER_MAXTEMP 60

    /**
    @@ -673,16 +682,17 @@
    //#define PID_PARAMS_PER_HOTEND // Use separate PID parameters for each extruder (useful for mismatched extruders)
    // Set/get with G-code: M301 E[extruder number, 0-2]

    + // Creality Ender-3
    #if ENABLED(PID_PARAMS_PER_HOTEND)
    // Specify up to one value per hotend here, according to your setup.
    // If there are fewer values, the last one applies to the remaining hotends.
    - #define DEFAULT_Kp_LIST { 22.20, 22.20 }
    - #define DEFAULT_Ki_LIST { 1.08, 1.08 }
    - #define DEFAULT_Kd_LIST { 114.00, 114.00 }
    + #define DEFAULT_Kp_LIST { 21.73, 21.73 }
    + #define DEFAULT_Ki_LIST { 1.54, 1.54 }
    + #define DEFAULT_Kd_LIST { 76.55, 76.55 }
    #else
    - #define DEFAULT_Kp 22.20
    - #define DEFAULT_Ki 1.08
    - #define DEFAULT_Kd 114.00
    + #define DEFAULT_Kp 21.73
    + #define DEFAULT_Ki 1.54
    + #define DEFAULT_Kd 76.55
    #endif
    #else
    #define BANG_MAX 255 // Limit hotend current while in bang-bang mode; 255=full current
    @@ -833,8 +843,8 @@
    #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
    // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.

    - //#define PID_EDIT_MENU // Add PID editing to the "Advanced Settings" menu. (~700 bytes of flash)
    - //#define PID_AUTOTUNE_MENU // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of flash)
    + #define PID_EDIT_MENU // Add PID editing to the "Advanced Settings" menu. (~700 bytes of flash)
    + #define PID_AUTOTUNE_MENU // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of flash)
    #endif

    // @section safety
    @@ -1136,7 +1146,7 @@
    //#define ENDSTOPPULLUP_UMAX
    //#define ENDSTOPPULLUP_VMAX
    //#define ENDSTOPPULLUP_WMAX
    - //#define ENDSTOPPULLUP_ZMIN_PROBE
    + #define ENDSTOPPULLUP_ZMIN_PROBE
    #endif

    // Enable pulldown for all endstops to prevent a floating state
    @@ -1234,14 +1244,14 @@
    * Override with M92
    * X, Y, Z [, I [, J [, K...]]], E0 [, E1[, E2...]]
    */
    -#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 500 }
    +#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 93 }

    /**
    * Default Max Feed Rate (linear=mm/s, rotational=°/s)
    * Override with M203
    * X, Y, Z [, I [, J [, K...]]], E0 [, E1[, E2...]]
    */
    -#define DEFAULT_MAX_FEEDRATE { 300, 300, 5, 25 }
    +#define DEFAULT_MAX_FEEDRATE { 500, 500, 5, 25 }

    //#define LIMITED_MAX_FR_EDITING // Limit edit via M203 or LCD to DEFAULT_MAX_FEEDRATE * 2
    #if ENABLED(LIMITED_MAX_FR_EDITING)
    @@ -1254,7 +1264,7 @@
    * Override with M201
    * X, Y, Z [, I [, J [, K...]]], E0 [, E1[, E2...]]
    */
    -#define DEFAULT_MAX_ACCELERATION { 3000, 3000, 100, 10000 }
    +#define DEFAULT_MAX_ACCELERATION { 500, 500, 100, 5000 }

    //#define LIMITED_MAX_ACCEL_EDITING // Limit edit via M201 or LCD to DEFAULT_MAX_ACCELERATION * 2
    #if ENABLED(LIMITED_MAX_ACCEL_EDITING)
    @@ -1269,9 +1279,9 @@
    * M204 R Retract Acceleration
    * M204 T Travel Acceleration
    */
    -#define DEFAULT_ACCELERATION 3000 // X, Y, Z and E acceleration for printing moves
    -#define DEFAULT_RETRACT_ACCELERATION 3000 // E acceleration for retracts
    -#define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z acceleration for travel (non printing) moves
    +#define DEFAULT_ACCELERATION 500 // X, Y, Z ... and E acceleration for printing moves
    +#define DEFAULT_RETRACT_ACCELERATION 500 // E acceleration for retracts
    +#define DEFAULT_TRAVEL_ACCELERATION 500 // X, Y, Z ... acceleration for travel (non printing) moves

    /**
    * Default Jerk limits (mm/s)
    @@ -1311,7 +1321,7 @@
    * https://blog.kyneticcnc.com/2018/10/computing-junction-deviation-for-marlin.html
    */
    #if DISABLED(CLASSIC_JERK)
    - #define JUNCTION_DEVIATION_MM 0.013 // (mm) Distance from real junction edge
    + #define JUNCTION_DEVIATION_MM 0.08 // (mm) Distance from real junction edge
    #define JD_HANDLE_SMALL_SEGMENTS // Use curvature estimation instead of just the junction angle
    // for small segments (< 1mm) with large junction angles (> 135°).
    #endif
    @@ -1400,7 +1410,7 @@
    /**
    * The BLTouch probe uses a Hall effect sensor and emulates a servo.
    */
    -//#define BLTOUCH
    +#define BLTOUCH

    /**
    * MagLev V4 probe by MDD
    @@ -1564,7 +1574,7 @@
    * | [-] |
    * O-- FRONT --+
    */
    -#define NOZZLE_TO_PROBE_OFFSET { 10, 10, 0 }
    +#define NOZZLE_TO_PROBE_OFFSET { -46.5, -6, 0 }

    // Enable and set to use a specific tool for probing. Disable to allow any tool.
    #define PROBING_TOOL 0
    @@ -1574,7 +1584,7 @@

    // Most probes should stay away from the edges of the bed, but
    // with NOZZLE_AS_PROBE this can be negative for a wider probing area.
    -#define PROBING_MARGIN 10
    +#define PROBING_MARGIN 30

    // X and Y axis travel speed (mm/min) between probes
    #define XY_PROBE_FEEDRATE (133*60)
    @@ -1727,12 +1737,12 @@
    // @section extruder

    //#define DISABLE_E // Disable the extruder when not stepping
    -#define DISABLE_OTHER_EXTRUDERS // Keep only the active extruder enabled
    +//#define DISABLE_OTHER_EXTRUDERS // Keep only the active extruder enabled

    // @section motion

    // Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
    -#define INVERT_X_DIR false
    +#define INVERT_X_DIR true
    #define INVERT_Y_DIR true
    #define INVERT_Z_DIR false
    //#define INVERT_I_DIR false
    @@ -1745,7 +1755,7 @@
    // @section extruder

    // For direct drive extruder v9 set to true, for geared extruder set to false.
    -#define INVERT_E0_DIR false
    +#define INVERT_E0_DIR true
    #define INVERT_E1_DIR false
    #define INVERT_E2_DIR false
    #define INVERT_E3_DIR false
    @@ -1804,8 +1814,8 @@
    // @section geometry

    // The size of the printable area
    -#define X_BED_SIZE 200
    -#define Y_BED_SIZE 200
    +#define X_BED_SIZE 235
    +#define Y_BED_SIZE 235

    // Travel limits (linear=mm, rotational=°) after homing, corresponding to endstop positions.
    #define X_MIN_POS 0
    @@ -1813,7 +1823,7 @@
    #define Z_MIN_POS 0
    #define X_MAX_POS X_BED_SIZE
    #define Y_MAX_POS Y_BED_SIZE
    -#define Z_MAX_POS 200
    +#define Z_MAX_POS 250
    //#define I_MIN_POS 0
    //#define I_MAX_POS 50
    //#define J_MIN_POS 0
    @@ -1841,7 +1851,7 @@
    #if ENABLED(MIN_SOFTWARE_ENDSTOPS)
    #define MIN_SOFTWARE_ENDSTOP_X
    #define MIN_SOFTWARE_ENDSTOP_Y
    - #define MIN_SOFTWARE_ENDSTOP_Z
    + //#define MIN_SOFTWARE_ENDSTOP_Z
    #define MIN_SOFTWARE_ENDSTOP_I
    #define MIN_SOFTWARE_ENDSTOP_J
    #define MIN_SOFTWARE_ENDSTOP_K
    @@ -2024,7 +2034,7 @@
    */
    //#define AUTO_BED_LEVELING_3POINT
    //#define AUTO_BED_LEVELING_LINEAR
    -//#define AUTO_BED_LEVELING_BILINEAR
    +#define AUTO_BED_LEVELING_BILINEAR
    //#define AUTO_BED_LEVELING_UBL
    //#define MESH_BED_LEVELING

    @@ -2254,7 +2264,7 @@
    * - Allows Z homing only when XY positions are known and trusted.
    * - If stepper drivers sleep, XY homing may be required again before Z homing.
    */
    -//#define Z_SAFE_HOMING
    +#define Z_SAFE_HOMING

    #if ENABLED(Z_SAFE_HOMING)
    #define Z_SAFE_HOMING_X_POINT X_CENTER // (mm) X point for Z homing
    @@ -2263,7 +2273,7 @@
    #endif

    // Homing speeds (linear=mm/min, rotational=°/min)
    -#define HOMING_FEEDRATE_MM_M { (50*60), (50*60), (4*60) }
    +#define HOMING_FEEDRATE_MM_M { (20*60), (20*60), (4*60) }

    // Validate that endstops are triggered on homing moves
    #define VALIDATE_HOMING_ENDSTOPS
    @@ -2341,7 +2351,7 @@
    * M501 - Read settings from EEPROM. (i.e., Throw away unsaved changes)
    * M502 - Revert settings to "factory" defaults. (Follow with M500 to init the EEPROM.)
    */
    -//#define EEPROM_SETTINGS // Persistent storage with M500 and M501
    +#define EEPROM_SETTINGS // Persistent storage with M500 and M501
    //#define DISABLE_M503 // Saves ~2700 bytes of flash. Disable for release!
    #define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save flash.
    #define EEPROM_BOOT_SILENT // Keep M503 quiet and only give errors during first load
    @@ -2380,16 +2390,16 @@
    // Preheat Constants - Up to 10 are supported without changes
    //
    #define PREHEAT_1_LABEL "PLA"
    -#define PREHEAT_1_TEMP_HOTEND 180
    -#define PREHEAT_1_TEMP_BED 70
    +#define PREHEAT_1_TEMP_HOTEND 210
    +#define PREHEAT_1_TEMP_BED 50
    #define PREHEAT_1_TEMP_CHAMBER 35
    -#define PREHEAT_1_FAN_SPEED 0 // Value from 0 to 255
    +#define PREHEAT_1_FAN_SPEED 255 // Value from 0 to 255

    #define PREHEAT_2_LABEL "ABS"
    #define PREHEAT_2_TEMP_HOTEND 240
    -#define PREHEAT_2_TEMP_BED 110
    +#define PREHEAT_2_TEMP_BED 70
    #define PREHEAT_2_TEMP_CHAMBER 35
    -#define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255
    +#define PREHEAT_2_FAN_SPEED 255 // Value from 0 to 255

    // @section motion

    @@ -2404,7 +2414,7 @@
    * P1 Raise the nozzle always to Z-park height.
    * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
    */
    -//#define NOZZLE_PARK_FEATURE
    +#define NOZZLE_PARK_FEATURE

    #if ENABLED(NOZZLE_PARK_FEATURE)
    // Specify a park position as { X, Y, Z_raise }
    @@ -2616,7 +2626,7 @@
    *
    * :['JAPANESE', 'WESTERN', 'CYRILLIC']
    */
    -#define DISPLAY_CHARSET_HD44780 JAPANESE
    +#define DISPLAY_CHARSET_HD44780 WESTERN

    /**
    * Info Screen Style (0:Classic, 1:Průša)
    @@ -2631,7 +2641,7 @@
    * SD Card support is disabled by default. If your controller has an SD slot,
    * you must uncomment the following option or it won't work.
    */
    -//#define SDSUPPORT
    +#define SDSUPPORT

    /**
    * SD CARD: ENABLE CRC
    @@ -3026,7 +3036,7 @@
    //
    // Connect to EXP1 on RAMPS and compatible boards.
    //
    -//#define CR10_STOCKDISPLAY
    +#define CR10_STOCKDISPLAY

    //
    // Ender-2 OEM display, a variant of the MKS_MINI_12864
    diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h
    index 10316ac928..ceeb8a04c5 100644
    --- a/Marlin/Configuration_adv.h
    +++ b/Marlin/Configuration_adv.h
    @@ -681,7 +681,7 @@
    * Multiple extruders can be assigned to the same pin in which case
    * the fan will turn on when any selected extruder is above the threshold.
    */
    -#define E0_AUTO_FAN_PIN -1
    +#define E0_AUTO_FAN_PIN P2_04
    #define E1_AUTO_FAN_PIN -1
    #define E2_AUTO_FAN_PIN -1
    #define E3_AUTO_FAN_PIN -1
    @@ -859,19 +859,19 @@
    * - Define the extra endstop pins here to override defaults. No auto-assignment.
    */
    #if HAS_X2_STEPPER && DISABLED(DUAL_X_CARRIAGE)
    - //#define INVERT_X2_VS_X_DIR // X2 direction signal is the opposite of X
    + #define INVERT_X2_VS_X_DIR // X2 direction signal is the opposite of X
    //#define X_DUAL_ENDSTOPS // X2 has its own endstop
    #if ENABLED(X_DUAL_ENDSTOPS)
    - //#define X2_STOP_PIN X_MAX_PIN // X2 endstop pin override
    + #define X2_STOP_PIN X_MAX_PIN // X2 endstop pin override
    #define X2_ENDSTOP_ADJUSTMENT 0 // X2 offset relative to X endstop
    #endif
    #endif

    #if HAS_Y2_STEPPER
    - //#define INVERT_Y2_VS_Y_DIR // Y2 direction signal is the opposite of Y
    + #define INVERT_Y2_VS_Y_DIR // Y2 direction signal is the opposite of Y
    //#define Y_DUAL_ENDSTOPS // Y2 has its own endstop
    #if ENABLED(Y_DUAL_ENDSTOPS)
    - //#define Y2_STOP_PIN Y_MAX_PIN // Y2 endstop pin override
    + #define Y2_STOP_PIN Y_MAX_PIN // Y2 endstop pin override
    #define Y2_ENDSTOP_ADJUSTMENT 0 // Y2 offset relative to Y endstop
    #endif
    #endif
    @@ -884,20 +884,20 @@

    //#define Z_MULTI_ENDSTOPS // Other Z axes have their own endstops
    #if ENABLED(Z_MULTI_ENDSTOPS)
    - //#define Z2_STOP_PIN X_MAX_PIN // Z2 endstop pin override
    + #define Z2_STOP_PIN X_MAX_PIN // Z2 endstop pin override
    #define Z2_ENDSTOP_ADJUSTMENT 0 // Z2 offset relative to Z endstop
    #endif
    #ifdef Z3_DRIVER_TYPE
    //#define INVERT_Z3_VS_Z_DIR // Z3 direction signal is the opposite of Z
    #if ENABLED(Z_MULTI_ENDSTOPS)
    - //#define Z3_STOP_PIN Y_MAX_PIN // Z3 endstop pin override
    + #define Z3_STOP_PIN Y_MAX_PIN // Z3 endstop pin override
    #define Z3_ENDSTOP_ADJUSTMENT 0 // Z3 offset relative to Z endstop
    #endif
    #endif
    #ifdef Z4_DRIVER_TYPE
    //#define INVERT_Z4_VS_Z_DIR // Z4 direction signal is the opposite of Z
    #if ENABLED(Z_MULTI_ENDSTOPS)
    - //#define Z4_STOP_PIN Z_MAX_PIN // Z4 endstop pin override
    + #define Z4_STOP_PIN Z_MAX_PIN // Z4 endstop pin override
    #define Z4_ENDSTOP_ADJUSTMENT 0 // Z4 offset relative to Z endstop
    #endif
    #endif
    @@ -931,7 +931,7 @@
    //#define HOMING_BACKOFF_POST_MM { 2, 2, 2 } // (linear=mm, rotational=°) Backoff from endstops after homing
    //#define XY_COUNTERPART_BACKOFF_MM 0 // (mm) Backoff X after homing Y, and vice-versa

    -//#define QUICK_HOME // If G28 contains XY do a diagonal move first
    +#define QUICK_HOME // If G28 contains XY do a diagonal move first
    //#define HOME_Y_BEFORE_X // If G28 contains XY home Y before X
    //#define HOME_Z_FIRST // Home Z first. Requires a real endstop (not a probe).
    //#define CODEPENDENT_XY_HOMING // If X/Y can't home without homing Y/X first
    @@ -982,7 +982,7 @@
    * differs, a mode set EEPROM write will be completed at initialization.
    * Use the option below to force an EEPROM write to a V3.1 probe regardless.
    */
    - //#define BLTOUCH_SET_5V_MODE
    + #define BLTOUCH_SET_5V_MODE

    // Safety: Enable voltage mode settings in the LCD menu.
    //#define BLTOUCH_LCD_VOLTAGE_MENU
    @@ -1107,7 +1107,7 @@
    * M4: 40 = Clockwise, 41 = Counter-Clockwise
    * M5: 50 = Clockwise, 51 = Counter-Clockwise
    */
    - #define TRAMMING_SCREW_THREAD 30
    + #define TRAMMING_SCREW_THREAD 40

    #endif

    @@ -1492,14 +1492,14 @@
    #endif

    #if HAS_BED_PROBE && ANY(HAS_MARLINUI_MENU, HAS_TFT_LVGL_UI)
    - //#define PROBE_OFFSET_WIZARD // Add a Probe Z Offset calibration option to the LCD menu
    + #define PROBE_OFFSET_WIZARD // Add a Probe Z Offset calibration option to the LCD menu
    #if ENABLED(PROBE_OFFSET_WIZARD)
    /**
    * Enable to init the Probe Z-Offset when starting the Wizard.
    * Use a height slightly above the estimated nozzle-to-probe Z offset.
    * For example, with an offset of -5, consider a starting height of -4.
    */
    - //#define PROBE_OFFSET_WIZARD_START_Z -4.0
    + #define PROBE_OFFSET_WIZARD_START_Z -4.0

    // Set a convenient position to do the calibration (probing point and nozzle/bed-distance)
    //#define PROBE_OFFSET_WIZARD_XY_POS { X_CENTER, Y_CENTER }
    @@ -1528,7 +1528,7 @@
    #endif

    // Include a page of printer information in the LCD Main Menu
    - //#define LCD_INFO_MENU
    + #define LCD_INFO_MENU
    #if ENABLED(LCD_INFO_MENU)
    //#define LCD_PRINTER_INFO_IS_BOOTSCREEN // Show bootscreen(s) instead of Printer Info pages
    #endif
    @@ -1583,12 +1583,12 @@
    //#define BOOT_MARLIN_LOGO_ANIMATED // Animated Marlin logo. Costs ~3260 (or ~940) bytes of flash.
    #endif
    #if ANY(HAS_MARLINUI_U8GLIB, TOUCH_UI_FTDI_EVE)
    - //#define SHOW_CUSTOM_BOOTSCREEN // Show the bitmap in Marlin/_Bootscreen.h on startup.
    + #define SHOW_CUSTOM_BOOTSCREEN // Show the bitmap in Marlin/_Bootscreen.h on startup.
    #endif
    #endif

    #if HAS_MARLINUI_U8GLIB
    - //#define CUSTOM_STATUS_SCREEN_IMAGE // Show the bitmap in Marlin/_Statusscreen.h on the status screen.
    + #define CUSTOM_STATUS_SCREEN_IMAGE // Show the bitmap in Marlin/_Statusscreen.h on the status screen.
    #endif

    //#define SOUND_MENU_ITEM // Add a mute option to the LCD menu
    @@ -1602,7 +1602,7 @@
    //#define LCD_TIMEOUT_TO_STATUS 15000 // (ms)

    // Scroll a longer status message into view
    - //#define STATUS_MESSAGE_SCROLLING
    + #define STATUS_MESSAGE_SCROLLING

    // Apply a timeout to low-priority status messages
    //#define STATUS_MESSAGE_TIMEOUT_SEC 30 // (seconds)
    @@ -1704,7 +1704,7 @@
    //#define SD_DETECT_STATE HIGH

    //#define SD_IGNORE_AT_STARTUP // Don't mount the SD card when starting up
    - //#define SDCARD_READONLY // Read-only SD card (to save over 2K of flash)
    + #define SDCARD_READONLY // Read-only SD card (to save over 2K of flash)

    //#define GCODE_REPEAT_MARKERS // Enable G-code M808 to set repeat markers and do looping

    @@ -1811,7 +1811,7 @@
    //#define LONG_FILENAME_WRITE_SUPPORT // Create / delete files with long filenames via M28, M30, and Binary Transfer Protocol
    //#define M20_TIMESTAMP_SUPPORT // Include timestamps by adding the 'T' flag to M20 commands

    - //#define SCROLL_LONG_FILENAMES // Scroll long filenames in the SD card menu
    + #define SCROLL_LONG_FILENAMES // Scroll long filenames in the SD card menu

    //#define SD_ABORT_NO_COOLDOWN // Leave the heaters on after Stop Print (not recommended!)

    @@ -1912,7 +1912,7 @@
    *
    * :[ 'LCD', 'ONBOARD', 'CUSTOM_CABLE' ]
    */
    - //#define SDCARD_CONNECTION LCD
    + #define SDCARD_CONNECTION ONBOARD

    // Enable if SD detect is rendered useless (e.g., by using an SD extender)
    //#define NO_SD_DETECT
    @@ -2262,7 +2262,7 @@
    *
    * Warning: Does not respect endstops!
    */
    -//#define BABYSTEPPING
    +#define BABYSTEPPING
    #if ENABLED(BABYSTEPPING)
    //#define EP_BABYSTEPPING // M293/M294 babystepping with EMERGENCY_PARSER support
    //#define BABYSTEP_WITHOUT_HOMING
    @@ -2273,7 +2273,7 @@
    #define BABYSTEP_MULTIPLICATOR_Z 1 // (steps or mm) Steps or millimeter distance for each Z babystep
    #define BABYSTEP_MULTIPLICATOR_XY 1 // (steps or mm) Steps or millimeter distance for each XY babystep

    - //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
    + #define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
    #if ENABLED(DOUBLECLICK_FOR_Z_BABYSTEPPING)
    #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
    // Note: Extra time may be added to mitigate controller latency.
    @@ -2283,9 +2283,9 @@
    #endif
    #endif

    - //#define BABYSTEP_DISPLAY_TOTAL // Display total babysteps since last G28
    + #define BABYSTEP_DISPLAY_TOTAL // Display total babysteps since last G28

    - //#define BABYSTEP_ZPROBE_OFFSET // Combine M851 Z and Babystepping
    + #define BABYSTEP_ZPROBE_OFFSET // Combine M851 Z and Babystepping
    #if ENABLED(BABYSTEP_ZPROBE_OFFSET)
    //#define BABYSTEP_HOTEND_Z_OFFSET // For multiple hotends, babystep relative Z offsets
    //#define BABYSTEP_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
    @@ -2377,10 +2377,10 @@
    * the probe to be unable to reach any points.
    */
    #if PROBE_SELECTED && !IS_KINEMATIC
    - //#define PROBING_MARGIN_LEFT PROBING_MARGIN
    - //#define PROBING_MARGIN_RIGHT PROBING_MARGIN
    - //#define PROBING_MARGIN_FRONT PROBING_MARGIN
    - //#define PROBING_MARGIN_BACK PROBING_MARGIN
    + #define PROBING_MARGIN_LEFT PROBING_MARGIN
    + #define PROBING_MARGIN_RIGHT PROBING_MARGIN
    + #define PROBING_MARGIN_FRONT PROBING_MARGIN
    + #define PROBING_MARGIN_BACK PROBING_MARGIN
    #endif

    #if ANY(MESH_BED_LEVELING, AUTO_BED_LEVELING_UBL)
    @@ -2884,7 +2884,7 @@
    *
    * Enable PARK_HEAD_ON_PAUSE to add the G-code M125 Pause and Park.
    */
    -//#define ADVANCED_PAUSE_FEATURE
    +#define ADVANCED_PAUSE_FEATURE
    #if ENABLED(ADVANCED_PAUSE_FEATURE)
    #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (mm/s) Initial retract feedrate.
    #define PAUSE_PARK_RETRACT_LENGTH 2 // (mm) Initial retract.
    @@ -2924,7 +2924,7 @@
    //#define FILAMENT_CHANGE_RESUME_ON_INSERT // Automatically continue / load filament when runout sensor is triggered again.
    //#define PAUSE_REHEAT_FAST_RESUME // Reduce number of waits by not prompting again post-timeout before continuing.

    - //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change.
    + #define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change.
    //#define HOME_BEFORE_FILAMENT_CHANGE // If needed, home before parking for filament change

    //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu.
    @@ -2969,7 +2969,7 @@
    #define INTERPOLATE true

    #if AXIS_IS_TMC_CONFIG(X)
    - #define X_CURRENT 800 // (mA) RMS current. Multiply by 1.414 for peak current.
    + #define X_CURRENT 580 // (mA) RMS current. Multiply by 1.414 for peak current.
    #define X_CURRENT_HOME X_CURRENT // (mA) RMS current for sensorless homing
    #define X_MICROSTEPS 16 // 0..256
    #define X_RSENSE 0.11 // Multiplied x1000 for TMC26X
    @@ -2989,7 +2989,7 @@
    #endif

    #if AXIS_IS_TMC_CONFIG(Y)
    - #define Y_CURRENT 800
    + #define Y_CURRENT 580
    #define Y_CURRENT_HOME Y_CURRENT
    #define Y_MICROSTEPS 16
    #define Y_RSENSE 0.11
    @@ -3009,7 +3009,7 @@
    #endif

    #if AXIS_IS_TMC_CONFIG(Z)
    - #define Z_CURRENT 800
    + #define Z_CURRENT 580
    #define Z_CURRENT_HOME Z_CURRENT
    #define Z_MICROSTEPS 16
    #define Z_RSENSE 0.11
    @@ -3109,7 +3109,7 @@
    #endif

    #if AXIS_IS_TMC_CONFIG(E0)
    - #define E0_CURRENT 800
    + #define E0_CURRENT 650
    #define E0_MICROSTEPS 16
    #define E0_RSENSE 0.11
    #define E0_CHAIN_POS -1
    @@ -3282,7 +3282,7 @@
    #define STEALTHCHOP_U
    #define STEALTHCHOP_V
    #define STEALTHCHOP_W
    - #define STEALTHCHOP_E
    + //#define STEALTHCHOP_E
    #endif

    /**
    @@ -3300,7 +3300,7 @@
    * Define your own with:
    * { <off_time[1..15]>, <hysteresis_end[-3..12]>, hysteresis_start[1..8] }
    */
    - #define CHOPPER_TIMING CHOPPER_DEFAULT_12V // All axes (override below)
    + #define CHOPPER_TIMING CHOPPER_DEFAULT_24V // All axes (override below)
    //#define CHOPPER_TIMING_X CHOPPER_TIMING // For X Axes (override below)
    //#define CHOPPER_TIMING_X2 CHOPPER_TIMING_X
    //#define CHOPPER_TIMING_Y CHOPPER_TIMING // For Y Axes (override below)
    @@ -3450,7 +3450,7 @@
    * Enable M122 debugging command for TMC stepper drivers.
    * M122 S0/1 will enable continuous reporting.
    */
    - //#define TMC_DEBUG
    + #define TMC_DEBUG

    /**
    * You can set your own advanced settings by filling in predefined functions.
    @@ -4114,10 +4114,10 @@
    * Host Prompt Support enables Marlin to use the host for user prompts so
    * filament runout and other processes can be managed from the host side.
    */
    -//#define HOST_ACTION_COMMANDS
    +#define HOST_ACTION_COMMANDS
    #if ENABLED(HOST_ACTION_COMMANDS)
    //#define HOST_PAUSE_M76 // Tell the host to pause in response to M76
    - //#define HOST_PROMPT_SUPPORT // Initiate host prompts to get user feedback
    + #define HOST_PROMPT_SUPPORT // Initiate host prompts to get user feedback
    #if ENABLED(HOST_PROMPT_SUPPORT)
    //#define HOST_STATUS_NOTIFICATIONS // Send some status messages to the host as notifications
    #endif
    diff --git a/Marlin/_Bootscreen.h b/Marlin/_Bootscreen.h
    new file mode 100644
    index 0000000000..17589ea403
    --- /dev/null
    +++ b/Marlin/_Bootscreen.h
    @@ -0,0 +1,121 @@
    +/**
    + * Marlin 3D Printer Firmware
    + * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
    + *
    + */
    +#pragma once
    +
    +/**
    + * Custom Boot Screen bitmap
    + *
    + * Place this file in the root with your configuration files
    + * and enable SHOW_CUSTOM_BOOTSCREEN in Configuration.h.
    + *
    + * Use the Marlin Bitmap Converter to make your own:
    + * https://marlinfw.org/tools/u8glib/converter.html
    + */
    +
    +#define CUSTOM_BOOTSCREEN_TIMEOUT 1000
    +#define CUSTOM_BOOTSCREEN_BMPWIDTH 81
    +#define CUSTOM_BOOTSCREEN_INVERTED
    +
    +const unsigned char custom_start_bmp[] PROGMEM = {
    + B11111111,B11111111,B11111111,B11111111,B11101111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,
    + B11111111,B11111111,B11111111,B11111111,B11101111,B11101111,B11111111,B11111111,B11111111,B11111111,B11111111,
    + B11111111,B11111111,B11111111,B11111111,B11100111,B11011111,B11111111,B11111111,B11111111,B11111111,B11111111,
    + B11111111,B11111111,B11111111,B11111111,B11100111,B11011111,B11111111,B11111111,B11111111,B11111111,B11111111,
    + B11111111,B11111111,B11111111,B11111111,B11100011,B11011111,B11111111,B11111111,B11111111,B11111111,B11111111,
    + B11111111,B11111111,B11111111,B11111111,B11110011,B11001111,B11111111,B11111111,B11111111,B11111111,B11111111,
    + B11111111,B11111111,B11111111,B11100001,B11100001,B11001111,B11111111,B11111111,B11111111,B11111111,B11111111,
    + B11111111,B11111110,B01111000,B00000000,B00000000,B00000011,B11011101,B11111111,B11111111,B11111111,B11111111,
    + B11111110,B11111111,B10000000,B01111110,B00000000,B00000001,B11101110,B11111111,B11111111,B11111111,B11111111,
    + B11111110,B01111101,B11001111,B11111100,B00000000,B00000000,B11110111,B01111111,B11111111,B11111111,B11111111,
    + B11111111,B10001110,B00000110,B00000000,B00000000,B00000000,B01111011,B10111111,B11111111,B11111111,B11111111,
    + B11111111,B11000000,B00000000,B00000000,B00000000,B00000000,B01111101,B11011111,B11111111,B11111111,B11111111,
    + B11111111,B11111100,B00000001,B11111110,B00000000,B00000000,B00111110,B11100111,B11111111,B11111111,B11111111,
    + B11111111,B11111111,B11111111,B11111100,B00000000,B00000011,B00011111,B01110011,B11111111,B11111111,B11111111,
    + B11111111,B11111111,B11111111,B11111000,B00000000,B00000001,B10001111,B10000001,B11111111,B11111111,B11111111,
    + B11111111,B11111111,B11111111,B11100000,B00000000,B00000000,B10000011,B11111001,B11111111,B11111111,B11111111,
    + B11111111,B11111111,B11111111,B00000000,B11111100,B00000000,B00000000,B11110000,B11111111,B11111111,B11111111,
    + B11111111,B11111111,B11100000,B00001111,B11111111,B11000000,B00000000,B00000000,B11111111,B11111111,B11111111,
    + B11111111,B11111110,B00000011,B11111111,B11111111,B11000000,B00000000,B00000000,B11111111,B11111111,B11111111,
    + B11111111,B11111111,B11111111,B11111111,B11111001,B00000000,B00000000,B00000000,B11111111,B11111111,B11111111,
    + B11111111,B11111111,B11111111,B11111111,B11111100,B00000000,B00000111,B11000000,B11111111,B11111111,B11111111,
    + B11111111,B11111111,B11111111,B11111111,B11111111,B00000000,B00000111,B11100000,B11111111,B11111111,B11111111,
    + B11111111,B11111111,B11111111,B11111111,B11111111,B11100000,B00000111,B11110001,B11111111,B11111111,B11111111,
    + B11111111,B11111111,B11111111,B11111111,B11111111,B11111100,B00000111,B11111001,B11111111,B11111111,B11111111,
    + B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B00000011,B11111001,B11111111,B11111111,B11111111,
    + B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B10000011,B11111001,B11111111,B11111111,B11111111,
    + B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11000011,B11111111,B11111111,B11111111,B11111111,
    + B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11100001,B11111111,B11111111,B11111111,B11111111,
    + B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11110000,B10111111,B11111111,B11111111,B11111111,
    + B11111111,B11111111,B11111111,B11111111,B11111111,B11111011,B11111000,B00111111,B11111111,B11111111,B11111111,
    + B11111111,B11111111,B11111111,B11111111,B11111111,B11111001,B11111000,B00111111,B11111111,B11111111,B11111111,
    + B11111111,B11111111,B11111111,B11111111,B11111111,B01111110,B11110000,B11111111,B11111111,B11111111,B11111111,
    + B11111111,B11111111,B11111111,B11111111,B11111111,B10001110,B00000011,B11111111,B11111111,B11111111,B11111111,
    + B11111111,B11111111,B11111111,B11111111,B11111111,B11100000,B00011111,B11111111,B11111111,B11111111,B11111111,
    + B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,
    + B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,
    + B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B01111111,B11111111,B11111111,B11111111,
    + B11111111,B00000000,B00000000,B01111111,B11111111,B11111111,B11111000,B01111111,B11111111,B11111111,B11111111,
    + B11111111,B10000000,B00000000,B01111111,B11111111,B11111111,B11100000,B01111111,B11111111,B11111111,B11111111,
    + B11111111,B11000011,B11111100,B11111111,B11111111,B11111111,B11111000,B11111111,B11111111,B11111111,B11111111,
    + B11111111,B11000011,B11111100,B11111111,B11111111,B11111111,B11111000,B11111111,B11111111,B11111111,B11111111,
    + B11111111,B10000111,B11111101,B11111111,B11111111,B11111111,B11110001,B11111111,B11111111,B11111111,B11111111,
    + B11111111,B10000111,B11111111,B11111111,B11111111,B11111111,B11110001,B11111111,B11111111,B11111111,B11111111,
    + B11111111,B00001111,B11100111,B11110011,B00001111,B11111100,B00100011,B11111100,B00111111,B11111111,B11111111,
    + B11111111,B00001111,B11101111,B10000000,B00000111,B11110000,B00000011,B11110000,B00011110,B00000000,B01111111,
    + B11111110,B00011111,B11001111,B10000001,B10000111,B11000111,B10000111,B11000111,B00001100,B00000000,B01111111,
    + B11111110,B00000000,B00011111,B11000111,B11000111,B10001111,B11000111,B10011111,B00001111,B00001100,B11111111,
    + B11111110,B00000000,B00011111,B10000111,B10001111,B00011111,B10001111,B00011111,B00001111,B00011111,B11111111,
    + B11111100,B00111111,B10011111,B10001111,B10001111,B00011111,B10001110,B00000000,B00011110,B00111111,B11111111,
    + B11111100,B01111111,B00111111,B00001111,B00011110,B00111111,B00011110,B00111111,B11111110,B00111111,B11111111,
    + B11111000,B01111111,B11111111,B00011111,B00011100,B00111111,B00011100,B01111111,B11111100,B01111111,B11111111,
    + B11111000,B11111111,B11111111,B00011110,B00011100,B01111110,B00011100,B01111111,B11111100,B01111111,B11111111,
    + B11110000,B11111111,B11001110,B00111110,B00111100,B01111110,B00111100,B01111111,B10111000,B11111111,B11111111,
    + B11110000,B11111111,B10011110,B00111100,B00111000,B01111100,B00111000,B01111110,B01111000,B11111111,B11111111,
    + B11100001,B11111111,B00111100,B01111100,B01111000,B01111100,B01111000,B00111100,B11110001,B11111111,B11111111,
    + B11100001,B11111000,B00111000,B01111000,B01111000,B00010000,B00011000,B00000001,B11110001,B11111111,B11111111,
    + B00000000,B00000000,B01100000,B00100000,B00111100,B00000000,B01111100,B00000111,B10000000,B01111111,B11111111,
    + B11111111,B11111111,B11111111,B11111111,B11111110,B00011111,B11111110,B00011111,B11111111,B11111111,B11111111
    +};
    +
    +// Saves 345 bytes
    +#define COMPACT_CUSTOM_BOOTSCREEN
    +const unsigned char custom_start_bmp_rle[293] PROGMEM = {
    + 0x1F, 0x13, 0x0F, 0x47, 0x06, 0x0F, 0x3F, 0x14, 0x0F, 0x40, 0x14, 0x0F, 0x40, 0x23, 0x0F, 0x41,
    + 0x13, 0x1F, 0x37, 0x33, 0x32, 0x1F, 0x2B, 0x13, 0xF0, 0x93, 0x02, 0x0F, 0x18, 0x08, 0x75, 0xF0,
    + 0x03, 0x02, 0x0F, 0x17, 0x14, 0x02, 0x19, 0xF0, 0x23, 0x02, 0x0F, 0x18, 0x22, 0x51, 0xF0, 0xA3,
    + 0x02, 0x0F, 0x18, 0xF1, 0x74, 0x02, 0x0F, 0x1B, 0x87, 0xF0, 0x34, 0x02, 0x1F, 0x29, 0xF0, 0x01,
    + 0x24, 0x02, 0x1F, 0x27, 0xF0, 0x21, 0x24, 0x5F, 0x24, 0xF0, 0x50, 0x46, 0x1F, 0x21, 0x75, 0xF0,
    + 0x23, 0x3F, 0x1B, 0x8D, 0xF0, 0x6F, 0x17, 0x6F, 0x04, 0xF0, 0x6F, 0x2D, 0x10, 0xF0, 0x8F, 0x2E,
    + 0xE4, 0x5F, 0x30, 0xC5, 0x4F, 0x33, 0x96, 0x2F, 0x37, 0x67, 0x1F, 0x39, 0x56, 0x1F, 0x3A, 0x46,
    + 0x1F, 0x3B, 0x3F, 0x45, 0x3F, 0x45, 0x30, 0x0F, 0x3B, 0x06, 0x4F, 0x3B, 0x15, 0x4F, 0x36, 0x05,
    + 0x03, 0x3F, 0x39, 0x22, 0x6F, 0x3D, 0x7F, 0xFD, 0x0F, 0x17, 0xF0, 0x1F, 0x0C, 0x3F, 0x18, 0xF0,
    + 0x0F, 0x0A, 0x5F, 0x19, 0x37, 0x1F, 0x0D, 0x2F, 0x1A, 0x37, 0x1F, 0x0D, 0x2F, 0x19, 0x38, 0x0F,
    + 0x0D, 0x2F, 0x1A, 0x3F, 0x17, 0x2F, 0x19, 0x36, 0x16, 0x11, 0x39, 0x30, 0x27, 0x3F, 0x0E, 0x36,
    + 0x04, 0xB6, 0x95, 0x63, 0x9D, 0x36, 0x14, 0x51, 0x34, 0x23, 0x34, 0x22, 0x31, 0xAD, 0xB6, 0x24,
    + 0x23, 0x25, 0x23, 0x14, 0x33, 0x31, 0x1E, 0xB5, 0x33, 0x23, 0x25, 0x23, 0x24, 0x33, 0x2F, 0x03,
    + 0x36, 0x15, 0x24, 0x23, 0x25, 0x22, 0xB3, 0x2F, 0x04, 0x26, 0x15, 0x33, 0x23, 0x25, 0x23, 0x2C,
    + 0x2F, 0x03, 0x3E, 0x24, 0x22, 0x35, 0x22, 0x2C, 0x2F, 0x04, 0x2F, 0x00, 0x23, 0x32, 0x25, 0x32,
    + 0x2C, 0x2F, 0x03, 0x39, 0x12, 0x24, 0x23, 0x25, 0x23, 0x27, 0x02, 0x2F, 0x04, 0x38, 0x13, 0x23,
    + 0x32, 0x34, 0x32, 0x35, 0x13, 0x2F, 0x03, 0x38, 0x13, 0x24, 0x23, 0x34, 0x23, 0x43, 0x13, 0x2F,
    + 0x04, 0x35, 0x42, 0x33, 0x33, 0x50, 0x61, 0x94, 0x2F, 0x01, 0xF0, 0x11, 0x60, 0x63, 0xA4, 0x63,
    + 0x7F, 0x26, 0x3B, 0x3F, 0x0D
    +};
    diff --git a/Marlin/_Statusscreen.h b/Marlin/_Statusscreen.h
    new file mode 100644
    index 0000000000..d1e2f4a642
    --- /dev/null
    +++ b/Marlin/_Statusscreen.h
    @@ -0,0 +1,62 @@
    +/**
    + * Marlin 3D Printer Firmware
    + * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
    + *
    + */
    +#pragma once
    +
    +/**
    + * Custom Status Screen bitmap
    + *
    + * Place this file in the root with your configuration files
    + * and enable CUSTOM_STATUS_SCREEN_IMAGE in Configuration.h.
    + *
    + * Use the Marlin Bitmap Converter to make your own:
    + * https://marlinfw.org/tools/u8glib/converter.html
    + */
    +
    +//
    +// Status Screen Logo bitmap
    +//
    +#define STATUS_LOGO_Y 8
    +#define STATUS_LOGO_WIDTH 39
    +
    +const unsigned char status_logo_bmp[] PROGMEM = {
    + B11111000,B00000001,B10000000,B00000000,B00001100,
    + B01001000,B00000000,B10000000,B00000000,B00010010,
    + B01000011,B11000011,B10001100,B11010000,B00000010,
    + B01110001,B00100100,B10010010,B01100111,B11001100,
    + B01000001,B00100100,B10011110,B01000000,B00000010,
    + B01001001,B00100100,B10010000,B01000000,B00010010,
    + B11111011,B10110011,B11001110,B11100000,B00001100
    +};
    +
    +//
    +// Use default bitmaps
    +//
    +#define STATUS_HOTEND_ANIM
    +#define STATUS_BED_ANIM
    +#define STATUS_HEATERS_XSPACE 20
    +#if HOTENDS < 2
    + #define STATUS_HEATERS_X 48
    + #define STATUS_BED_X 72
    +#else
    + #define STATUS_HEATERS_X 40
    + #define STATUS_BED_X 80
    +#endif
    diff --git a/config/README.md b/config/README.md
    index b19527ccc3..985577a30d 100644
    --- a/config/README.md
    +++ b/config/README.md
    @@ -1,9 +1,14 @@
    -# Where have all the configurations gone?
    +## SKR 1.3 Board

    -Marlin configurations for specific machines are now maintained in their own repository at:
    +These files configure Marlin for an Ender 3 with `BOARD_BTT_SKR_V1_3` board installed with silent stepper drivers and a BLTouch/CR Touch probe. The probe is configured to use the dedicated BLTouch port on the board, so you can remove the Z endstop entirely.

    -## https://github.com/MarlinFirmware/Configurations/tree/bugfix-2.1.x
    +Features included:

    -Configuration files for use with the nightly `bugfix-2.1.x` branch can be downloaded from:
    + - BLTouch/CR Touch
    + - TMC2208 Stepper Drivers
    + - Advanced Pause for Filament Change (`M600`)
    + - Nozzle Parking

    -## https://github.com/MarlinFirmware/Configurations/archive/bugfix-2.1.x.zip
    +### Nozzle to Probe Offsets
    +
    +You'll need to to adjust the `NOZZLE_TO_PROBE_OFFSET` values according to your probe's mounting location. This example is based on the Ender 3 BLTouch mount posted at https://www.thingiverse.com/thing:3584158
    diff --git a/platformio.ini b/platformio.ini
    index 5249b790f2..1bea9f8f96 100644
    --- a/platformio.ini
    +++ b/platformio.ini
    @@ -13,7 +13,7 @@
    [platformio]
    src_dir = Marlin
    boards_dir = buildroot/share/PlatformIO/boards
    -default_envs = mega2560
    +default_envs = LPC1768
    include_dir = Marlin
    extra_configs =
    Marlin/config.ini