#
# Marlin Firmware
# config.ini - Options to apply before the build
#
[config:base]
#
# ini_use_config - A comma-separated list of actions to apply to the Configuration files.
#                  The actions will be applied in the listed order.
#  - none
#    Ignore this file and don't apply any configuration options
#
#  - base
#    Just apply the options in config:base to the configuration
#
#  - minimal
#    Just apply the options in config:minimal to the configuration
#
#  - all
#    Apply all 'config:*' sections in this file to the configuration
#
#  - another.ini
#    Load another INI file with a path relative to this config.ini file (i.e., within Marlin/)
#
#  - https://me.myserver.com/path/to/configs
#    Fetch configurations from any URL.
#
#  - example/Creality/Ender-5 Plus @ bugfix-2.1.x
#    Fetch example configuration files from the MarlinFirmware/Configurations repository
#    https://raw.githubusercontent.com/MarlinFirmware/Configurations/bugfix-2.1.x/config/examples/Creality/Ender-5%20Plus/
#
#  - example/default @ release-2.0.9.7
#    Fetch default configuration files from the MarlinFirmware/Configurations repository
#    https://raw.githubusercontent.com/MarlinFirmware/Configurations/release-2.0.9.7/config/default/
#
#  - [disable]
#    Comment out all #defines in both Configuration.h and Configuration_adv.h. This is useful
#    to start with a clean slate before applying any config: options, so only the options explicitly
#    set in config.ini will be enabled in the configuration.
#
#  - [flatten] (Not yet implemented)
#    Produce a flattened set of Configuration.h and Configuration_adv.h files with only the enabled
#    #defines and no comments. A clean look, but context-free.
#
ini_use_config                           = none

# Load all config: sections in this file
;ini_use_config                          = all
# Disable everything and apply subsequent config:base options
;ini_use_config                          = [disable], base
# Load config file relative to Marlin/
;ini_use_config                          = another.ini
# Download configurations from GitHub
;ini_use_config                          = example/Creality/Ender-5 Plus @ bugfix-2.1.x
# Download configurations from your server
;ini_use_config                          = https://me.myserver.com/path/to/configs
# Evaluate config:base and do a config dump
;ini_use_config                          = base
;config_export                           = 2

[config:minimal]
motherboard                              = BOARD_RAMPS_14_EFB
serial_port                              = 0
baudrate                                 = 250000

string_config_h_author                   = "(default from config.ini)"

capabilities_report                      = on
extended_capabilities_report             = on

use_watchdog                             = on
thermal_protection_hotends               = on
thermal_protection_hysteresis            = 4
thermal_protection_period                = 40

bufsize                                  = 4
block_buffer_size                        = 16
max_cmd_size                             = 96

extruders                                = 1
temp_sensor_0                            = 1

temp_hysteresis                          = 3
heater_0_mintemp                         = 5
heater_0_maxtemp                         = 275

pidtemp                                  = on
pid_k1                                   = 0.95
pid_max                                  = 255
pid_functional_range                     = 20

default_kp                               = 22.20
default_ki                               = 1.08
default_kd                               = 114.00

temp_sensor_bed                          = 1
bed_check_interval                       = 5000
bed_mintemp                              = 5
bed_maxtemp                              = 150

thermal_protection_bed                   = on
thermal_protection_bed_hysteresis        = 2
thermal_protection_bed_period            = 20

x_driver_type                            = A4988
y_driver_type                            = A4988
z_driver_type                            = A4988
e0_driver_type                           = A4988

x_bed_size                               = 200
x_min_pos                                = 0
x_max_pos                                = X_BED_SIZE

y_bed_size                               = 200
y_min_pos                                = 0
y_max_pos                                = Y_BED_SIZE

z_min_pos                                = 0
z_max_pos                                = 200

x_home_dir                               = -1
y_home_dir                               = -1
z_home_dir                               = -1

x_min_endstop_hit_state                  = HIGH
y_min_endstop_hit_state                  = HIGH
z_min_endstop_hit_state                  = HIGH

default_axis_steps_per_unit              = { 80, 80, 400, 500 }
axis_relative_modes                      = { false, false, false, false }
default_max_feedrate                     = { 300, 300, 5, 25 }
default_max_acceleration                 = { 3000, 3000, 100, 10000 }

homing_feedrate_mm_m                     = { (50*60), (50*60), (4*60) }
homing_bump_divisor                      = { 2, 2, 4 }

x_enable_on                              = LOW
y_enable_on                              = LOW
z_enable_on                              = LOW
e_enable_on                              = LOW

invert_x_dir                             = false
invert_y_dir                             = true
invert_z_dir                             = false
invert_e0_dir                            = false

step_state_e                             = HIGH
step_state_x                             = HIGH
step_state_y                             = HIGH
step_state_z                             = HIGH

proportional_font_ratio                  = 1.0
default_nominal_filament_dia             = 1.75

junction_deviation_mm                    = 0.013

default_acceleration                     = 3000
default_travel_acceleration              = 3000
default_retract_acceleration             = 3000

default_minimumfeedrate                  = 0.0
default_mintravelfeedrate                = 0.0

min_steps_per_segment                    = 6
default_minsegmenttime                   = 20000

[config:basic]
hotend_overshoot                         = 15
bed_overshoot                            = 10
max_bed_power                            = 255

busy_while_heating                       = on
host_keepalive_feature                   = on
default_keepalive_interval               = 2
printjob_timer_autostart                 = on

jd_handle_small_segments                 = on
validate_homing_endstops                 = on
editable_steps_per_unit                  = on

eeprom_boot_silent                       = on
eeprom_chitchat                          = on

endstoppullups                           = on

prevent_cold_extrusion                   = on
extrude_mintemp                          = 170
prevent_lengthy_extrude                  = on
extrude_maxlength                        = 200

min_software_endstops                    = on
max_software_endstops                    = on
min_software_endstop_x                   = on
min_software_endstop_y                   = on
min_software_endstop_z                   = on
max_software_endstop_x                   = on
max_software_endstop_y                   = on
max_software_endstop_z                   = on

preheat_1_label                          = "PLA"
preheat_1_temp_hotend                    = 180
preheat_1_temp_bed                       = 70
preheat_1_fan_speed                      = 0

preheat_2_label                          = "ABS"
preheat_2_temp_hotend                    = 240
preheat_2_temp_bed                       = 110
preheat_2_fan_speed                      = 0

temp_bed_hysteresis                      = 3
temp_bed_residency_time                  = 10
temp_bed_window                          = 1
temp_residency_time                      = 10
temp_window                              = 1

[config:advanced]
arc_support                              = on
min_arc_segment_mm                       = 0.1
max_arc_segment_mm                       = 1.0
min_circle_segments                      = 72
n_arc_correction                         = 25

auto_report_temperatures                 = on

autotemp                                 = on
autotemp_min                             = 210
autotemp_max                             = 250
autotemp_factor                          = 0.1f
autotemp_oldweight                       = 0.98

default_stepper_timeout_sec              = 120
disable_idle_x                           = on
disable_idle_y                           = on
disable_idle_z                           = on
disable_idle_e                           = on

e0_auto_fan_pin                          = -1

faster_gcode_parser                      = on
debug_flags_gcode                        = on

homing_bump_mm                           = { 5, 5, 2 }

slowdown                                 = on
slowdown_divisor                         = 2
multistepping_limit                      = 16

serial_overrun_protection                = on
tx_buffer_size                           = 0

watch_temp_increase                      = 2
watch_temp_period                        = 40

watch_bed_temp_increase                  = 2
watch_bed_temp_period                    = 60
