#--------------------------------------------------------------------
#
# DEFAULT CONFIG FILE FOR BigTreeTech TFT CONTROLLERS
#
#--------------------------------------------------------------------


#--------------------------------------------------------------------
# Supported TFT Variants
#--------------------------------------------------------------------
#
# BIGTREE_TFT24_V1_1    / BIGTREE_TFT28_V1_0 / BIGTREE_TFT28_V3_0
# BIGTREE_TFT35_V1_0    / BIGTREE_TFT35_V1_1 / BIGTREE_TFT35_V1_2
# BIGTREE_TFT35_V2_0    / BIGTREE_TFT35_V3_0 / BIGTREE_TFT35_E3_V3_0
# BIGTREE_TFT35_B1_V3_0 / BIGTREE_TFT43_V3_0 / BIGTREE_TFT50_V3_0
# BIGTREE_TFT70_V3_0
#
# BIGTREE_GD_TFT24_V1_1    / BIGTREE_GD_TFT35_V2_0    / BIGTREE_GD_TFT35_V3_0
# BIGTREE_GD_TFT35_E3_V3_0 / BIGTREE_GD_TFT35_B1_V3_0 / BIGTREE_GD_TFT43_V3_0
# BIGTREE_GD_TFT50_V3_0    / BIGTREE_GD_TFT70_V3_0
#
# MKS_TFT28_V3_0 / MKS_TFT28_V4_0 / MKS_TFT28_NEW_GENIUS
# MKS_TFT32_V1_3 / MKS_TFT32_V1_4 / MKS_TFT32L_V3_0
# MKS_TFT35_V1_0
#
# MKS_GD_TFT28_V1_2_4
#
# Firmware source: https://github.com/bigtreetech/BIGTREETECH-TouchScreenFirmware


#--------------------------------------------------------------------
# Supported Marlin Firmware Versions
#--------------------------------------------------------------------
#
# Minimum Marlin firmware version: 2.1.1
# Distribution date: 2022-09-22
# Firmware source: https://github.com/MarlinFirmware/Marlin/releases
#
# To use all the features and functionalities supported by the TFT,
# the following options must be enabled in Marlin firmware.
#
# General options which MUST be always activated:
#   EEPROM_SETTINGS (in Configuration.h)
#   BABYSTEPPING (in Configuration_adv.h)
#   AUTO_REPORT_TEMPERATURES (in Configuration_adv.h)
#   AUTO_REPORT_POSITION (in Configuration_adv.h)
#   EXTENDED_CAPABILITIES_REPORT (in Configuration_adv.h)
#   M115_GEOMETRY_REPORT (in Configuration_adv.h)
#   M114_DETAIL (in Configuration_adv.h)
#   REPORT_FAN_CHANGE (in Configuration_adv.h)
#
# Options to support printing from onboard media:
#   SDSUPPORT (in Configuration.h)
#   LONG_FILENAME_HOST_SUPPORT (in Configuration_adv.h)
#   AUTO_REPORT_SD_STATUS (in Configuration_adv.h)
#   SDCARD_CONNECTION ONBOARD (in Configuration_adv.h)
#
# Options to support dialog with host:
#   EMERGENCY_PARSER (in Configuration_adv.h)
#   SERIAL_FLOAT_PRECISION 4 (in Configuration_adv.h)
#   HOST_ACTION_COMMANDS (in Configuration_adv.h)
#   HOST_PROMPT_SUPPORT (in Configuration_adv.h)
#   HOST_STATUS_NOTIFICATIONS (in Configuration_adv.h)
#
# Options to support M73 with host:
#   Options to support dialog with host (as pre requisite)
#   SET_PROGRESS_MANUALLY (in Configuration_adv.h)
#   M73_REPORT (in Configuration_adv.h)
#
# Options to support ADVANCED_OK with host:
#   ADVANCED_OK (in Configuration_adv.h)
#
# Options to support M600 with host & (Un)Load menu:
#   Options to support dialog with host (as pre requisite)
#   NOZZLE_PARK_FEATURE (in Configuration.h)
#   ADVANCED_PAUSE_FEATURE (in Configuration_adv.h)
#   PARK_HEAD_ON_PAUSE (in Configuration_adv.h)
#   FILAMENT_LOAD_UNLOAD_GCODES (in Configuration_adv.h)
#
# Options to fully support Bed Leveling menu:
#   Z_MIN_PROBE_REPEATABILITY_TEST (in Configuration.h)
#   G26_MESH_VALIDATION (in Configuration.h)
#   Z_STEPPER_AUTO_ALIGN (in Configuration_adv.h)


#--------------------------------------------------------------------
# General Settings
#--------------------------------------------------------------------

#### Serial Ports (Primary and Supplementary)
# Serial ports connected to devices such as Printer, ESP3D, OctoPrint and other Controllers.
# In order to successfully establish a communication through a serial port, set a baudrate
# matching the baudrate configured on the connected device.
# Disable the serial port when it is not in use and/or not connected to a device (floating) to
# avoid to receive and process wrong data due to possible electromagnetic interference (EMI).
#
# NOTES:
#   - Serial port P1 is the primary serial connection to the printer and cannot be disabled.
#   - A baudrate of 250000 works in most cases, but you can try a lower speed if you
#     commonly experience drop-outs during host printing.
#     You may try up to 1000000 to speed up SD file transfer.
#
#   Format: [serial_port: P1:<baudrate> P2:<baudrate> P3:<baudrate> P4:<baudrate>
#   Target port: P1: Printer
#                P2: WIFI    (e.g. ESP3D)
#                P3: UART 3  (e.g. OctoPrint)
#                P4: UART 4
#   Value range: P1: [min: 1, max: 11]
#                P2: [min: 0, max: 11]
#                P3: [min: 0, max: 11]
#                P4: [min: 0, max: 11]
#   Options: [OFF (port disabled): 0, 2400: 1, 9600: 2, 19200: 3, 38400: 4, 57600: 5, 115200: 6, 230400: 7, 250000: 8, 500000: 9, 921600: 10, 1000000: 11]
serial_port:P1:6 P2:8 P3:0 P4:0

#### TX Slots
# Used/effective only in case "advanced_ok" is also enabled.
# Maximum number of G-code TX slots used by the TFT for the communication with the printer.
#
# NOTES:
#   - It requires "advanced_ok" to be enabled.
#   - This setting allows a sort of static "ADVANCED_OK" feature implementation on TFT side just in
#     case "ADVANCED_OK" feature is disabled in Marlin firmware. You have to set it according to the
#     following key requirements:
#     - a value not bigger than "BUFSIZE" configured in Configuration_adv.h in Marlin firmware.
#     - "RX_BUFFER_SIZE" properly configured in Configuration_adv.h in Marlin firmware.
#       To be safe you need (MAX_CMD_SIZE * BUFSIZE) RX buffer. By default this is 96 * 4 bytes so
#       you would need to at least set RX_BUFFER_SIZE to 512 bytes, practically half of that will
#       be enough, but more is better/safer.
#   - Typically, a value of 2 is enough to keep the printer busy most of the time while preventing
#     buffer overruns on RX buffer. Thus, 2 is the suggested value in case users want to use the
#     static ADVANCED_OK feature allowed by this setting.
#
#   Value range: [min: 2, max: 16]
tx_slots:2

#### Advanced OK
# If enabled:
# - if "ADVANCED_OK" feature is enabled in Configuration_adv.h in Marlin firmware, the TFT will use
#   the available G-code TX slots indication provided by the mainboard to schedule the transmission
#   of multiple G-codes, if any, for a maximum of the given indication.
# - if "ADVANCED_OK" feature is disabled in Configuration_adv.h in Marlin firmware, the TFT will
#   support the transmission of G-codes according to the configured "tx_slots" setting.
# If disabled, the TFT will provide the standard transmission logic based on one G-code per time.
#
# NOTE: Disable it in case:
#       - no ADVANCED_OK feature is requested/needed by the user.
#       - ADVANCED_OK feature is not providing good printing results or if the mainboard notifies
#         frequent error ACK messages (e.g. unknown command) to the TFT during printing.
#       - COMMAND_CHECKSUM feature (see description of next setting "command_checksum") is
#         requested/needed by the user.
#
#   Options: [disable: 0, enable: 1]
advanced_ok:1

#### Command Checksum
# The TFT enriches each G-code to be sent to the mainboard adding a leading sequential line number
# and a trailing checksum appended after an "*" character used as separator.
# The checksum is based on algorithm "CheckSum8 Xor" and it is calculated on the G-code with the
# applied line number. E.g. "G28" is firstly enriched with a line number (e.g. "N1 G28") and finally
# a checksum calculated on that enriched G-code is appended (e.g. "N1 G28*18").
# A data integrity check (sequential line number check and checksum check) will be performed on the
# mainboard. In case of data mismatch (e.g. data corruption due to EMI on communication serial line):
# - the mainboard will send to the TFT an error ACK message followed by a "Resend: " ACK message to
#   ask TFT to resend the G-code with the requested line number.
# - the TFT will check the presence on an internal buffer of the G-code with the requested line number:
#   - if found, the G-code is resent for a maximum of 3 attempts.
#   - if not found or the maximum number of attempts has been reached, the TFT will reset the line
#     number with an "M110" G-code (immediately sent bypassing any other enqueued G-code) to the
#     requested line number just to try to avoid further retransmission requests for the same line
#     number or for any out of synch command already sent to the mainboard (e.g. in case ADVANCED_OK
#     feature is enabled in TFT).
#
# NOTE: Disable it in case:
#       - printing is controlled by a remote host (e.g. ESP3D, OctoPrint etc.) and a COMMAND_CHECKSUM
#         feature is enabled and managed by the remote host. Otherwise (COMMAND_CHECKSUM feature also
#         enabled in TFT), the TFT's COMMAND_CHECKSUM feature will always replace the one provided by
#         the remote host causing conflicts in case data mismatch will be notified by the mainboard.
#       - ADVANCED_OK feature is enabled in TFT. Otherwise, any out of synch command already sent to
#         the mainboard will be discarded by the mainboard and not resent by the TFT due the current
#         implementation of COMMAND_CHECKSUM feature on the TFT buffers only the last sent command
#         and not all the pending commands.
#
#   Options: [disable: 0, enable: 1]
command_checksum:0

#### Emulated M600
# The TFT intercepts the M600 G-code (filament change) and emulates the handling logic
# otherwise provided by Marlin firmware.
#
# NOTE: Enable it in case Marlin firmware does not properly support M600 on the mainboard.
#
#   Options: [disable: 0, enable: 1]
emulated_m600:1

#### Emulated M109 And M190
# The TFT intercepts the blocking M109 and M190 G-codes (set target hotend and bed temperatures)
# and converts them to the non-blocking M104 and M140 G-codes respectively.
#
# NOTE: Enable it so the TFT can still communicate with Marlin firmware even if the target
#       temperature is not reached yet. Otherwise the communication (TFT<->Marlin) will be
#       frozen until desired/set temperatures are obtained.
#
#   Options: [disable: 0, enable: 1]
emulated_m109_m190:1

#### Event LED
# When printing from TFT SD card / TFT USB disk, the TFT periodically sets the printer's (neopixel)
# LED color and TFT's knob LED color, if any, according to the current nozzle and bed temperatures.
#
# NOTE: If "emulated_m109_m190" is disabled (heating controlled by printer), the TFT cannot control the
#       printer's (neopixel) LED during heating. It will control only the TFT's knob LED, if any.
#
#   Options: [disable: 0, enable: 1]
event_led:1

#### G-code File Comment Parsing
# The TFT parses and processes extra information provided by the slicer as comments in the G-code file.
# If enabled, the current implementation parses and processes print time and print layer information
# from the G-code file (nothing else).
# If disabled, the "layer_disp_type" setting provided in "UI Settings" section becomes redundant.
#
# NOTE: Enable it in case the slicer (e.g. Cura) supports extra information.
#
#   Options: [disable: 0, enable: 1]
file_comment_parsing:1


#--------------------------------------------------------------------
# UI Settings
#--------------------------------------------------------------------

#### Rotated UI
# Rotate UI by 180 degrees.
#   Options: [disable: 0, enable: 1]
rotated_ui:0

#### Touch Mode Language
# Select the language to use on the LCD while in Touch Mode.
#
# NOTE: To add/flash a second language copy the required "language_xx.ini" file from
#       "Language Packs" folder to the SD root folder.
#       Then press the reset button to load/flash the copied language file.
#
#   Options: [Primary Language (english): 0, Secondary Language: 1]
language:0

#### Status Screen
# Select the default home screen while in Touch Mode.
# If enabled, the Status Screen menu will become the default home screen.
# If disabled, the Main menu will become the default home screen.
#
# NOTE: Both the Status Screen and Main menus display the current temperature, fan and speeds.
#       Furthermore, the Status Screen menu provides the status area reporting the printer notifications.
#
#   Options: [disable: 0, enable: 1]
status_screen:1

#### Touch Mode Colors
# Set colors used in Touch Mode.
#
# NOTE: Select an option from the provided list or set the color (RGB888 format) hex value directly
#       (start with "0x"), such as: Red: 0xFF0000, Green: 0x00FF00, Blue: 0x0000FF.
#
#   Options: [ WHITE: 0,  BLACK: 1,  RED: 2,  GREEN: 3,      BLUE: 4,       CYAN: 5,  MAGENTA: 6,    YELLOW: 7,
#             ORANGE: 8, PURPLE: 9, LIME: 10, BROWN: 11, DARKBLUE: 12, DARKGREEN: 13,    GRAY: 14, DARKGRAY: 15]

## Title background color
title_background_color:1

## Menu background color
menu_background_color:1

## Menu font color
menu_font_color:0

## Reminder font color, such as: "No print attached", "Busy processing", etc.
reminder_font_color:2

## Status (e.g. volume reminder, ABL probing point etc.) font color, such as: "Card inserted", "Card removed"
status_font_color:5

## Background color for X Y Z position display in Status Screen menu
status_xyz_bg_color:15

## List View border color
list_border_color:15

## List View button background color
list_button_bg_color:15

## Color used by the Mesh Editor menu for drawing the mesh with the minimum value in the grid
mesh_min_color:7

## Color used by the Mesh Editor menu for drawing the mesh with the maximum value in the grid
mesh_max_color:2

#### Terminal Text Color Scheme
# Color scheme for displaying text in Terminal menu.
#   Options: [Material Dark: 0, Material Light: 1, High Contrast: 2]
#     Material Dark:  Dark background with light font color and orange command font color.
#     Material Light: Light background with dark font color and orange command font color.
#     High Contrast:  Black background with white font color and orange command font color.
terminal_color_scheme:0

#### Notification Style For ACK Messages
# Set the notification style to use for displaying the ACK messages which start with "echo:".
#
# NOTE: The OFF value is applied to any ACK message type (e.g. even to known echo ACK).
#       It means that any kind of ACK message is silently discarded.
#
#   Options: [OFF: 0, POPUP: 1, TOAST: 2]
#     OFF:   No notification. The message is ignored.
#     POPUP: Display a popup window for user confirmation.
#     TOAST: A non-blocking toast notification is displayed for few seconds. No user interaction is needed.
ack_notification:1

#### Files Sorting
# Sort files and folders based on the selected option.
#
# NOTE: Only applicable for files in TFT SD card and TFT USB disk.
#
#   Options: [Date Newest First: 0, Date Oldest First: 1, Name Ascending: 2, Name Descending: 3]
files_sort_by:0

#### Files List Mode
# Display files in list mode instead of icon mode.
#   Options: [disable: 0, enable: 1]
files_list_mode:1

#### Filename Extension
# Display fullname for files listed in List Mode / Icon Mode menu.
# If disabled, any filename extension starting with ".g" or ".G" (e.g. ".g", ".gco", ".gcode" etc.) will be hidden.
#   Options: [disable: 0, enable: 1]
filename_extension:1

#### Fan Speed In Percentage
# Show fan speed in percentage. If disabled fan speed will be displayed as PWM values.
#   Options: [disable: 0, enable: 1]
fan_speed_percentage:1

#### Persistent Temperature Info
# Show persistent temperature info in all menus.
#   Options: [disable: 0, enable: 1]
persistent_info:0

#### Temperature And Wait ACK In Terminal
# Show "temperature" and "wait" ACK in Terminal menu.
#   Options: [disable: 0, enable: 1]
terminal_ack:0

#### Notification M117
# If enabled, any notification received from Marlin through "//action:notification" is also
# stored on the notification screen. The notification screen reporting the history of the
# received notifications is displayed pressing on the notification bar.
#
# NOTE: Marlin notifications are also always displayed on the Status Screen menu.
#       Furthermore, they are also displayed on the notification bar as toast messages
#       in case the current menu is not the Status Screen menu.
#
#   Options: [disable: 0, enable: 1]
notification_m117:0

#### Progress Source
# This sets the source of the progress calculation, G-code file advance based mode or time based mode:
# - File mode is a simple file progress, it tells you the percentage of the G-codes executed.
#   It doesn't reflect the amount of work done, only in a very few cases (ex. a 2D shape expanded
#   vertically like a cylinder, cube etc.).
# - Time mode is very close to the real amount of work done, but it is still not perfect and it relies
#   on the estimate the slicer has done (see notes below).
#
# NOTES:
#   - Time mode needs info from the G-code file such as the elapsed time or the remaining time. This info
#     can be supplied as "M73 Rxx" G-code or as comment. Both must be generated by the slicer. If comment
#     is used than "file_comment_parsing" has to be enabled for it to take effect.
#     If that info is missing (comment or "M73 Rxx"), the progress source defaults to option 0 (file mode).
#   - If "M73 Pxx" is present in the G-code file then file or time based progress modes will be overriden
#     by that.
#
#   Options: [File mode: 0, Time mode: 1]
prog_source:1

#### Progress Numeric Display Mode During Print
# This sets the default display type for print progress numeric display. It can be changed during
# print by pressing the hourglass icon. At each click it will alter between the 3 variants.
#
# NOTE: It needs info from the G-code file such as the elapsed time or the remaining time. This info can
#       be supplied as "M73 Rxx" G-code or as comment. Both must be generated by the slicer. If comment
#       is used than "file_comment_parsing" has to be enabled for it to take effect.
#       If that info is missing (comment or "M73 Rxx"), the display defaults to option 0 (percentage &
#       elapsed time).
#
#   Options: [Percentage & Elapsed time: 0, Percentage & Remaining time: 1, Elapsed time & Remaining time: 2]
prog_disp_type:2

#### Current Layer Display Mode During Print
# This sets the default display type for the printing layer. It can be changed during print by
# pressing the nozzle icon. At each click it will alter between the 3 variants.
#
# NOTES:
#   - It requires "file_comment_parsing" to be enabled.
#   - This feature uses the layer number comments added by slicers at the starting of each layer.
#   - Some slicers may not include the total number of layers in the G-code file. In this case only
#     the current layer will be displayed. To display total number of layers, a comment should be
#     added at the beginning of the G-code file in the format "; Layer count: xx".
#     Separators can be " ", ":", "_" or "=".
#   - If the total number of layers exceeds 999, this information will not be displayed because
#     there is not enough space for both current and total layer number to be shown.
#   - If PrusaSlicer is used, to enable the layer number display, the following comment lines must
#     be added in Printer Settings -> Custom G-code section:
#     - In After layer change G-code section:
#       ";LAYER:[layer_num]"
#     - In Start G-code section:
#       ";LAYER_COUNT:[total_layer_count]"
#
#   Options: [Layer height: 0, Layer number: 1, Both - height & number: 2]
layer_disp_type:0


#--------------------------------------------------------------------
# Marlin Mode Settings (only for TFT24 V1.1 & TFT28/TFT35/TFT43/TFT50/TFT70 V3.0)
#--------------------------------------------------------------------

#### Default Mode
# Set Marlin/Touch Mode as the default mode at startup.
#
# NOTE: Mode switching is possible only for Marlin Mode and Touch Mode by a long press of
#       1.5 seconds on the display or holding down the encoder button for 1.5 seconds.
#
#   Options: [Marlin Mode: 0, Touch Mode: 1, Blocked Marlin Mode: 2, Blocked Touch Mode: 3]
default_mode:1

#### Serial Always ON
# Keep UART (serial communication) alive in Marlin Mode.
# Allows seamless OctoPrint UART connection to the TFT's UART/serial expansion port
# no matter which mode the TFT is in.
#   Options: [disable: 0, enable: 1]
serial_always_on:0

#### Marlin Mode Background & Font Colors
# Set colors used in Marlin Mode.
#
# NOTE: Select an option from the provided list or set the color (RGB888 format) hex value directly
#       (start with "0x"), such as: Red: 0xFF0000, Green: 0x00FF00, Blue: 0x0000FF.
#
#   Options: [ WHITE: 0,  BLACK: 1,  RED: 2,  GREEN: 3,      BLUE: 4,       CYAN: 5,  MAGENTA: 6,    YELLOW: 7,
#             ORANGE: 8, PURPLE: 9, LIME: 10, BROWN: 11, DARKBLUE: 12, DARKGREEN: 13,    GRAY: 14, DARKGRAY: 15]

## Marlin Mode background color
marlin_background_color:1

## Marlin Mode font color
marlin_font_color:0

#### Fullscreen Marlin Mode
# Run Marlin Mode in fullscreen.
#
# NOTE: Disable is recommended for TFT24.
#
#   Options: [disable: 0, enable: 1]
marlin_fullscreen:0

#### Show Marlin Mode Title
# Show banner text at the top of the TFT in Marlin Mode.
#   Options: [disable: 0, enable: 1]
marlin_show_title:0

#### Marlin Mode Title
# Banner text displayed at the top of the TFT in Marlin Mode.
#   Value range: [min: 3, max: 20 characters]
marlin_title:Marlin Mode

#### Marlin Mode Type
# Select Marlin Mode type.
#   Options: [128x64 Full Graphic LCD: 0, 20x4 Character LCD: 1]
marlin_type:0


#--------------------------------------------------------------------
# Printer / Machine Settings
#--------------------------------------------------------------------

#### Hotend Count
#   Value range: [min: 0, max: 6]
hotend_count:1

#### Heated Bed Support
# Enable/disable presence of heated bed.
#
# NOTE: Disable it to let the TFT auto-detect if bed heating is enabled in Marlin firmware.
#
#   Options: [disable: 0, enable: 1]
heated_bed:1

#### Heated Chamber Support
# Enable/disable presence of heated chamber.
#
# NOTE: Disable it to let the TFT auto-detect if chamber heating is enabled in Marlin firmware.
#
#   Options: [disable: 0, enable: 1]
heated_chamber:0

#### Extruder Count
# Set extruder count.
#
# NOTE: This value is overridden by the TFT if provided by Marlin firmware.
#
#   Value range: [min: 0, max: 6]
ext_count:1

#### Fan Count
#   Value range: [min: 1, max: 6]
fan_count:1

#### Controller Fan Support
# Enable/disable controller fan speed control for Active and Idle cooling if Marlin
# firmware supports controller fan (M710).
#   Options: [disable: 0, enable: 1]
controller_fan:0

#### Bed / Extruder / Chamber Maximum Temperatures
#   Format: [max_temp: T0:<max temp> T1:<max temp> T2:<max temp> T3:<max temp> T4:<max temp> T5:<max temp> BED:<max temp> CHAMBER:<max temp>]
#   Unit: [temperature in °C]
#   Value range: hotend:  [min: 20, max: 1000]
#                bed:     [min: 20, max: 400]
#                chamber: [min: 20, max: 200]
max_temp:T0:275 T1:275 T2:275 T3:275 T4:275 T5:275 BED:150 CHAMBER:60

#### Cold Extrusion Minimum Temperature
# Minimum temperature needed to extrude/retract.
# Any extrusion/retraction below this temperature will be prevented.
#   Unit: [temperature in °C]
#   Value range: [min: 20, max: 1000]
min_temp:190

#### Fan Maximum PWM Speed
# Set minimum and maximum fan speed allowed by the printer for Cooling Fans & Controller Fan.
# Cooling fans have index from F0 to F5.
# Controller fan has index CtA and CtI (Active and Idle). It requires "controller_fan" to be enabled.
#   Format: [fan_max: F0:<max PWM> F1:<max PWM> F2:<max PWM> F3:<max PWM> F4:<max PWM> F5:<max PWM> CtA:<max PWM> CtI:<max PWM>]
#   Unit: [PWM]
#   Value range: [min: 25, max: 255]
fan_max:F0:255 F1:255 F2:255 F3:255 F4:255 F5:255 CtA:255 CtI:255

#### Machine Size / Build Area
# The TFT will auto-detect the machine size (min and max) in Marlin firmware (requires
# enabling "M115_GEOMETRY_REPORT" in Configuration_adv.h in Marlin firmware).
#   Format: [size_min: X<minimum distance> Y<minimum distance> Z<minimum distance>]
#           [size_max: X<maximum distance> Y<maximum distance> Z<maximum distance>]
#   Unit: [distance in mm]
#   Value range: [min: -2000, max: 2000]
size_min:X0 Y0 Z0
size_max:X235 Y235 Z250

#### X & Y Move Speeds/Feedrates
# Move speeds used in Move menu to move X and Y axes.
#   Format: [move_speed: S<feedrate> N<feedrate> F<feedrate>]
#   Unit: [feedrate in mm/min]
#   Value range: [min: 10, max: 12000]
xy_speed:S1000 N3000 F5000

#### Z Speeds/Feedrates
# Move speeds used in Move menu to move Z axis.
#   Format: [move_speed: S<feedrate> N<feedrate> F<feedrate>]
#   Unit: [feedrate in mm/min]
#   Value range: [min: 10, max: 12000]
z_speed:S500 N1000 F2000

#### Extruder Speeds/Feedrates
# Speed settings used to extrude/retract.
#   Format: [ext_speed: S<feedrate> N<feedrate> F<feedrate>]
#   Unit: [feedrate in mm/min]
#   Value range: [min: 10, max: 12000]
ext_speed:S60 N600 F1200

#### Auto Load Bed Leveling Data
# If enabled, load bed leveling data and turn leveling on at startup sending gcode "M420 S1".
#
# NOTE: If enabled, it is required:
#       1) EEPROM and a bed leveling type (e.g. UBL) enabled in Marlin.
#       2) A valid mesh saved on EEPROM (it is required to enable bed leveling).
#          If the mesh is invalid / incomplete leveling will not be enabled.
#
#   Options: [disable: 0, enable: 1]
auto_load_leveling:1

#### Onboard / Printer Media Support
# Enable/disable presence of onboard media.
#
# NOTE: Auto-detect option is currently available (supported) by Marlin firmware.
#       Auto-detect is not available for other firmwares like Smoothieware.
#
#   Options: [disable: 0, enable: 1, auto-detect: 2]
onboard_sd:2

#### M27 Printing Status Refresh Time
# M27 printing status refresh time (this will be used if SD_AUTOREPORT is not detected by the TFT).
#   Unit: [time in seconds]
#   Value range: [min: 1, max: 100]
M27_refresh_time:3

#### M27 Always Active
# Keep polling M27 even if not printing (e.g. SD print not started from TFT).
#   Options: [disable: 0, enable: 1]
M27_always_active:1

#### Long File Names Support
# Enable/disable support to long file names.
#
# NOTE: Auto-detect option is currently available (supported) by Marlin firmware.
#       Auto-detect is not available for other firmwares like Smoothieware.
#
#   Options: [disable: 0, enable: 1, auto-detect: 2]
long_filename:2

#### Pause/Nozzle Park Settings
# These settings are used when a print is paused or in any feature which requires moving/parking the nozzle
# before performing a task like in (Un)Load or Extruder Tuning menus.

## Pause Retract Length
#   Format: [pause_retract: R<retract length> P<resume purge length>]
#   Unit: [length in mm]
#   Value range: [min: 0.0, max: 20.0]
pause_retract:R15.0 P16.0

## Pause XY Position
# NOTES:
#   - It MUST BE a value >= 0 for a Cartesian printer.
#   - It MUST BE a value <= 0 for a Delta printer.
#
#   Format: [pause_pos: X<position> Y<position>]
#   Unit: [position in mm]
#   Value range: [min: -2000.0, max: 2000.0]
pause_pos:X10.0 Y10.0

## Pause Z Raise
# Raise Z axis by this value relative to the current layer height.
#   Unit: [distance in mm]
#   Value range: [min: 0.0, max: 2000.0]
pause_z_raise:10.0

## Pause Feed Rate
# Feedrate to use when moving an axis when printing is paused.
#   Format: [pause_feedrate: XY<feedrate> Z<feedrate> E<feedrate>]
#   Unit: [feedrate in mm/min]
#   Value range: [min: 10, max: 12000]
pause_feedrate:XY6000 Z6000 E600

#### Leveling Settings
# These settings are used for leveling.

## Leveling Edge Distance (Manual Leveling, Leveling Corner)
# Inset distance from bed edges. This distance is added to minimum X & Y bed coordinates and
# subtracted from maximum X & Y bed coordinates to calculate manual leveling points.
# For Leveling Corner, the default distance is the maximum between this setting value and
# the rounded probe offset X/Y values configured in Marlin firmware.
#   Unit: [distance in mm]
#   Value range: [min: 0, max: 2000]
level_edge_distance:20

## Leveling Z Position (Manual Leveling, Leveling Corner, Mesh Leveling, Probe/Home Offset, Mesh Tuner)
# For Manual Leveling and MBL, lower Z axis to this absolute position after reaching a leveling point.
# For Probe/Home Offset and ABL in Mesh Tuner, raise Z axis by this relative position after reaching
# a leveling point.
#   Unit: [position in mm]
#   Value range: [min: 0.0, max: 2000.0]
level_z_pos:0.2

## Leveling Z Raise (Manual Leveling, Leveling Corner, Mesh Leveling)
# Raise Z axis by this relative value before moving to another point during leveling/probing procedures.
#   Unit: [distance in mm]
#   Value range: [min: 0.0, max: 2000.0]
level_z_raise:10.0

## Leveling Feed Rate (Manual Leveling, Leveling Corner, Mesh Leveling)
# Feedrate to use when moving an axis during leveling/probing procedures.
#   Format: [level_feedrate: XY<feedrate> Z<feedrate>]
#   Unit: [feedrate in mm/min]
#   Value range: [min: 10, max: 12000]
level_feedrate:XY6000 Z6000

#### Inverted Axes (Manual Leveling, Leveling Corner, Move, Probe Offset)
# Used by Manual Leveling, Leveling Corner, Move and Probe Offset menus in order axis matches the actual axis movement.
#
# NOTE: The Y axis of different printer (move hotbed or move nozzle) move in different directions.
#       So Y axis leveling inversion can't follow up inverted_axis[Y_AXIS].
#       We separate a single variable "LY" (Leveling Y axis) to deal with the Y axis leveling movement direction.
#
#   Format: [X<option> Y<option> Z<option> LY<option>]
#   Options: [disable: 0, enable: 1]
inverted_axis:X0 Y0 Z0 LY0

#### Probing For Z Offset (Probe Offset)
# Used by the Probe Offset menu for the Z offset tuning process.
# If enabled, after homing a probing in the center of the bed is performed and then the nozzle
# is moved to the XY probing point.
# If disabled, after homing the nozzle is moved directly to the XY homing point. This is useful
# in case Marlin firmware is configured to use the probe for Z axis homing (e.g.
# "USE_PROBE_FOR_Z_HOMING" enabled in Marlin firmware) to avoid a second probing after homing.
#
# NOTES:
#   - Enable it in case Marlin firmware is not configured to use the probe for Z axis homing
#     (e.g. "USE_PROBE_FOR_Z_HOMING" disabled in Marlin firmware) or the XY probing point set
#     for homing is not reachable by the nozzle (e.g. due to HW limitations/constraints or
#     printer specific configuration).
#   - Disable it (preferably) in case Marlin firmware is configured to use the probe for Z axis
#     homing (e.g. "USE_PROBE_FOR_Z_HOMING" enabled in Marlin firmware).
#
#   Options: [disable: 0, enable: 1]
probing_z_offset:1

#### Probing Z Raise (Probe Offset, Mesh Editor)
# Used by the Probe Offset / Mesh Editor menu for the Z offset / Z height tuning process.
# Raise / drop Z axis by this relative value after homing (G28) before starting to probe a point.
#
# NOTES:
#   - It MUST BE a value >= 0 (e.g. 20) for a Cartesian printer to avoid crashing into the bed.
#   - It MUST BE a value <= 0 (e.g. -50) for a Delta printer to avoid crashing into the top of the tower.
#
#   Unit: [distance in mm]
#   Value range: [min: -2000.0, max: 2000.0]
probing_z_raise:20.0

#### Z Steppers Auto-Alignment (ABL)
# It allows to align multiple Z stepper motors using a bed probe by probing one position per stepper.
# Enable this setting to show an icon in ABL menu allowing to run G34 command (it requires
# "Z_STEPPER_AUTO_ALIGN" enabled in Configuration_adv.h in Marlin firmware).
#
# NOTE: Only for Marlin printers with one stepper driver per Z stepper motor and no Z timing belt.
#
#   Options: [disable: 0, enable: 1]
z_steppers_alignment:0

#### TouchMI Settings (ABL)
# Enable this option for displaying TouchMI sensor settings in ABL menu (Init, Z Offset, Save, Test).
#   Options: [disable: 0, enable: 1]
touchmi_sensor:0

#### Preheat Temperatures
#   Format: [preheat_name_X:<name>]
#           [preheat_temp_X:T<hotend temp> B<bed temp>]
#   Unit: [temperature in °C]
#   Value range: name:        [min: 3, max: 20 characters]
#                hotend temp: [min: 20, max: 1000]
#                bed temp:    [min: 20, max: 400]
preheat_name_1:PLA
preheat_temp_1:T210 B60

preheat_name_2:PETG
preheat_temp_2:T240 B70

preheat_name_3:ABS
preheat_temp_3:T230 B90

preheat_name_4:WOOD
preheat_temp_4:T170 B50

preheat_name_5:TPU
preheat_temp_5:T220 B50

preheat_name_6:NYLON
preheat_temp_6:T250 B90


#--------------------------------------------------------------------
# Power Supply Settings (only if connected to TFT controller)
#--------------------------------------------------------------------

#### Active HIGH Power Supply Logic
# Used in case it is supported by the TFT.
# The power supply uses this HIGH signal logic to stay ON.
# The power supply uses the opposite of this logic to stay OFF.
#   Options: [disable: 0, enable: 1]
ps_active_high:1

#### Power Supply Auto Shutdown Mode
# Used in case it is supported by the TFT.
# Enable power supply auto shutdown after a print is finished when hotend temperature drops below target value.
#   Options: [disable: 0, enable: 1, auto-detect: 2]
ps_auto_shutdown:0

#### Power Supply Auto Shutdown Temperature
# Maximum hotend temperature for automatic shutdown after printing, if automatic shutdown is enabled.
# The printer will shutdown automatically if the hotend temperature is below this value.
# If the hotend temperature is higher than this value the fans will be turned on to cooldown and it
# will wait for the hotend temperature to drop below this value before shutting down automatically.
#   Unit: [temperature in °C]
#   Value range: [min: 20, max: 1000]
ps_auto_shutdown_temp:50


#--------------------------------------------------------------------
# Filament Runout Settings (only if connected to TFT controller)
#--------------------------------------------------------------------

# NOTES for users having a filament sensor connected to the mainboard:
#   1) Define "fil_runout:0" below to disable the sensor handling on the TFT.
#   2) Configure the sensor in the firmware of your mainboard.
#   3) Add M75 to "start_gcode" and M77 to "end_gcode" of the TFT (or your slicer).

#### Filament Runout Sensor
# Select the type of filament runout sensor and its default enabled/disabled state.
#
# NOTE: Smart Filament Sensor (SFS) (value 2 or 3) is a sensor based on an encoder disc that
#       toggles runout pin as filament moves (e.g. the BigTreeTech SFS).
#
#   Options: [Normal Disabled: 0, Normal Enabled: 1, Smart Disabled: 2, Smart Enabled: 3]
fil_runout:1

#### Inverted Filament Runout Sensor Logic
# The sensor uses an inverted logic.
# Disable it in case filament runout is triggered by a LOW signal.
# Enable it in case filament runout is triggered by a HIGH signal.
#   Options: [disable: 0, enable: 1]
fil_runout_inverted:1

#### NC (Normal Close) Filament Runout Sensor
# The sensor is of type NC.
#   Options: [Normal Open: 0, Normal Close: 1]
fil_runout_nc:1

#### Filament Runout Noise Threshold
# Pause print when filament runout is detected at least for this time period.
#   Unit: [time in milliseconds]
#   Value range: [min: 10, max: 1800]
fil_runout_noise_threshold:100

#### Smart Filament Runout Detection
# Used in conjunction with an SFS (Smart Filament Sensor) based on an encoder disc that
# toggles runout pin as filament moves.
#
# NOTE: This setting is taken into account by the TFT only in case "fil_runout" setting is
#       set to 2 or 3 (an SFS is used).
#
#   Unit: [distance in mm]
#   Value range: [min: 1, max: 50]
fil_runout_distance:7


#--------------------------------------------------------------------
# Power Loss Recovery & BTT UPS Settings
#--------------------------------------------------------------------

#### Power Loss Recovery Mode
# Enable/disable power loss recovery mode.
# If enabled, a recovery file named "Printing.sys", created in the same media (e.g. TFT SD card) of the file
# that is being printed, containing the current print status is updated during the print and deleted on print
# completion. In case of a power failure, the recovery file is used to restore the print from the outage point.
# After a power failure, a popup message asking to restore the failed print is prompted when browsing the media
# containing the recovery file.
#
# NOTE: Disable it in case issues such as the loss of media (e.g. read error messages from TFT SD card) during
#       the print are experienced.
#
#   Options: [disable: 0, enable: 1]
pl_recovery:1

#### Power Loss Recovery Homing
# Home before power loss recovery.
#   Options: [disable: 0, enable: 1]
pl_recovery_home:0

#### Power Loss Recovery Z Raise
# Raise Z axis on resume (on power loss with UPS).
#   Unit: [distance in mm]
#   Value range: [min: 0.0, max: 2000.0]
pl_recovery_z_raise:10.0

#### BTT Mini UPS Support
# Enable backup power/UPS to move Z axis on power loss.
#   Options: [disable: 0, enable: 1]
btt_mini_ups:0


#--------------------------------------------------------------------
# Other Device-Specific Settings
#--------------------------------------------------------------------

#### Sounds / Buzzer
# Set sound ON or OFF.
#
# NOTE: Error messages from printer will always play the error sound.
#
# Settings:
#   touch_sound:  Enable/disable this to control touch feedback sound.
#   toast_sound:  Enable/disable this to control all toast notification sounds.
#   alert_sound:  Enable/disable this to control all popup and alert sounds
#                 like print finish alert, dialog sound etc.
#   heater_sound: Enable/disable this to control acoustic feedback when temperature
#                 has reached the desired value on heaters (nozzle, bed, chamber).
#
#   Options: [disable: 0, enable: 1]
touch_sound:1
toast_sound:1
alert_sound:1
heater_sound:1

#### LCD Brightness Levels (only for TFT28/TFT35/TFT43/TFT50/TFT70 V3.0)
# Brightness levels for LCD.
#   Options: [OFF: 0, 5%: 1, 10%: 2, 20%: 3, 30%: 4, 40%: 5, 50%: 6, 60%: 7, 70%: 8, 80%: 9, 90%: 10, 100%: 11]

## LCD brightness level
lcd_brightness:11

## LCD brightness level when device is idle
lcd_idle_brightness:5

#### LCD Idle Time (only for TFT28/TFT35/TFT43/TFT50/TFT70 V3.0)
# The LCD screen will dim to idle brightness, if the display is not touched for the
# period of the LCD idle time.
#   Options: [OFF: 0, 5sec: 1, 10sec: 2, 30sec: 3, 1min: 4, 2min: 5, 5min: 6, 10min: 7]
lcd_idle_time:4

#### LCD Lock On Idle (only for TFT28/TFT35/TFT43/TFT50/TFT70 V3.0)
# If enabled, when the LCD is idle (dimmed) then the first touch on the display will
# simply restore the normal LCD brightness. The touch is then skipped, preventing to
# trigger any undesired action due to the dimmed display.
#
# NOTE: The lock is always avoided if the LCD brightness is restored by the use of
#       rotary encoder instead of touching the display.
#
#   Options: [disable: 0, enable: 1]
lcd_lock_on_idle:0

#### LED Color
# Printer's LED color used by some features such as Event LED and PID processes.
#   Format: [led_color: R:<component> G:<component> B:<component> W:<component> P:<component> I:<component>
#   Target component: R: Red
#                     G: Green
#                     B: Blue
#                     W: White;     NEOPIXEL or RGB(W)
#                     P: Intensity; NEOPIXEL
#                     I: Index;     NEOPIXEL
#   Value range: [min: 0, max: 255]
led_color:R:255 G:255 B:255 W:255 P:255 I:255

#### LED Always ON
# Keep printers's LED on at startup and after Event LED and PID processes terminate.
# The printer's LED color is configured in "led_color".
#   Options: [disable: 0, enable: 1]
led_always_on:0

#### Knob LED Color (only for TFT28/TFT35_E3/TFT43/TFT50/TFT70 V3.0)
# Knob LED color at startup.
#   Options: [OFF: 0, WHITE: 1, RED: 2, ORANGE: 3, YELLOW: 4, GREEN: 5, BLUE: 6, INDIGO: 7, VIOLET: 8]
knob_led_color:0

#### Knob LED Idle State (only for TFT28/TFT35_E3/TFT43/TFT50/TFT70 V3.0)
# If enabled, when the LCD is idle (dimmed) then the knob LED will be also switched off.
#   Options: [disable: 0, enable: 1]
knob_led_idle:1

#### Knob LED Pixels (only for TFT28/TFT35_E3/TFT43/TFT50/TFT70 V3.0)
# Set the number of LEDs in the strip connected to "Neopixel" port of TFT.
# It shares the same signal line as "knob_led_color". 0 means the default number in TFT hardware.
# Greater than 0 means the number of LEDs in the strip.
#   Value range: [min: 0, max: 200]
neopixel_pixels:0


#--------------------------------------------------------------------
# Custom G-code Commands
#--------------------------------------------------------------------

#### Custom G-code Commands
# Up to 15 custom G-code commands that will be available in the Custom menu.
#
# Usage:
#   - To enable a custom command, remove "#" at the beginning of custom commands label & G-code.
#   - To disable a custom command, add "#" at the beginning of custom commands label & G-code.
#
# NOTE: If the values are left blank then default name and G-code will be used.
#
#   Value range: label: [min: 3, max: 75 characters]
#                G-code: [min: 3, max: 75 characters]
custom_label_1:Disable steppers
custom_gcode_1:M84\n
custom_label_2:Init sd card
custom_gcode_2:M21\n
custom_label_3:Release sd card
custom_gcode_3:M22\n
custom_label_4:Restore leveling
custom_gcode_4:M420 S1\n
custom_label_5:Save to EEPROM
custom_gcode_5:M500\n
custom_label_6:Restore from EEPROM
custom_gcode_6:M501\n
custom_label_7:EEPROM defaults
custom_gcode_7:M502\n
#custom_label_8:custom8
#custom_gcode_8:M105\n
#custom_label_9:custom9
#custom_gcode_9:M105\n
#custom_label_10:custom10
#custom_gcode_10:M105\n
#custom_label_11:custom11
#custom_gcode_11:M105\n
#custom_label_12:custom12
#custom_gcode_12:M105\n
#custom_label_13:custom13
#custom_gcode_13:M105\n
#custom_label_14:custom14
#custom_gcode_14:M105\n
#custom_label_15:custom15
#custom_gcode_15:M105\n


#--------------------------------------------------------------------
# Start, End & Cancel G-code Commands
#--------------------------------------------------------------------

# NOTES for users having a filament sensor connected to the mainboard:
#   1) Enable the start/end G-code below.
#   2) Add the following commands to the start/end G-code:
#      - start_gcode: M75\n
#      - end_gcode: M77\n

#### Start G-code Status
#   Options: [disable: 0, enable: 1]
start_gcode_enabled:0

#### End G-code Status
#   Options: [disable: 0, enable: 1]
end_gcode_enabled:0

#### Cancel G-code Status
#   Options: [disable: 0, enable: 1]
cancel_gcode_enabled:0

#### Start G-code
# This G-code will run before starting a print if "start_gcode_enabled" is enabled.
#   Value range: [min: 3, max: 75 characters]
start_gcode:G28 XY R20\n

#### End G-code
# This G-code will run after a print is completed if "end_gcode_enabled" is enabled.
#   Value range: [min: 3, max: 75 characters]
end_gcode:M104 S0\nM140 S0\nM107\nM18\n

#### Cancel G-code
# This G-code will run when a print is cancelled if "cancel_gcode_enabled" is enabled.
#   Value range: [min: 3, max: 75 characters]
cancel_gcode:M104 S0\nM140 S0\nG28 XY R10\nM107\nM18\n
