# This file serves as documentation for config parameters. One may
# copy and edit this file to configure a new cartesian style
# printer. For delta style printers, see the "example-delta.cfg"
# file. For corexy/h-bot style printers, see the "example-corexy.cfg"
# file. Only common config sections are described here - see the
# "example-extras.cfg" file for configuring less common devices.

# DO NOT COPY THIS FILE WITHOUT CAREFULLY READING AND UPDATING IT
# FIRST. Incorrectly configured parameters may cause damage.

# A note on pin names: pins may be configured with a hardware name
# (such as "PA4") or with an Arduino alias name (such as "ar29" or
# "analog3"). In order to use Arduino names, the pin_map variable in
# the mcu section must be present and have a value of "arduino".
# Pin names may be preceded by an '!' to indicate that a reverse
# polarity should be used (eg, trigger on low instead of high). Input
# pins may be preceded by a '^' to indicate that a hardware pull-up
# resistor should be enabled for the pin.


# The stepper_x section is used to describe the stepper controlling
# the X axis in a cartesian robot.
[stepper_x]
step_pin: ar54
#   Step GPIO pin (triggered high). This parameter must be provided.
dir_pin: ar55
#   Direction GPIO pin (high indicates positive direction). This
#   parameter must be provided.
enable_pin: !ar38
#   Enable pin (default is enable high; use ! to indicate enable
#   low). If this parameter is not provided then the stepper motor
#   driver must always be enabled.
step_distance: .0225
#   Distance in mm that each step causes the axis to travel. This
#   parameter must be provided.
endstop_pin: ^ar3
#   Endstop switch detection pin. This parameter must be provided for
#   the X, Y, and Z steppers on cartesian style printers.
#position_min: 0
#   Minimum valid distance (in mm) the user may command the stepper to
#   move to.  The default is 0mm.
position_endstop: 0
#   Location of the endstop (in mm). This parameter must be provided
#   for the X, Y, and Z steppers on cartesian style printers.
position_max: 200
#   Maximum valid distance (in mm) the user may command the stepper to
#   move to. This parameter must be provided for the X, Y, and Z
#   steppers on cartesian style printers.
#homing_speed: 5.0
#   Maximum velocity (in mm/s) of the stepper when homing. The default
#   is 5mm/s.
#homing_retract_dist: 5.0
#   Distance to backoff (in mm) before homing a second time during
#   homing. The default is 5mm.
#homing_positive_dir:
#   If true, homing will cause the stepper to move in a positive
#   direction (away from zero); if false, home towards zero. The
#   default is true if position_endstop is near position_max and false
#   if near position_min.

# The stepper_y section is used to describe the stepper controlling
# the Y axis in a cartesian robot. It has the same settings as the
# stepper_x section.
[stepper_y]
step_pin: ar60
dir_pin: !ar61
enable_pin: !ar56
step_distance: .0225
endstop_pin: ^ar14
position_endstop: 0
position_max: 200

# The stepper_z section is used to describe the stepper controlling
# the Z axis in a cartesian robot. It has the same settings as the
# stepper_x section.
[stepper_z]
step_pin: ar46
dir_pin: ar48
enable_pin: !ar62
step_distance: .005
endstop_pin: ^ar18
position_endstop: 0.5
position_max: 200

# The extruder section is used to describe both the stepper
# controlling the printer extruder and the heater parameters for the
# nozzle. The stepper configuration has the same settings as the
# stepper_x section and the heater configuration has the same settings
# as the heater_bed section (described below).
[extruder]
step_pin: ar26
dir_pin: ar28
enable_pin: !ar24
step_distance: .004242
nozzle_diameter: 0.500
#   Diameter of the nozzle orifice (in mm). This parameter must be
#   provided.
filament_diameter: 3.500
#   Diameter of the raw filament (in mm) as it enters the
#   extruder. This parameter must be provided.
#max_extrude_cross_section:
#   Maximum area of the cross section of an extrusion line (in
#   mm^2). This setting prevents excessive amounts of extrusion during
#   relatively small XY moves. If a move requests an extrusion rate
#   that would exceed this value it will cause an error to be
#   returned. The default is: 4.0 * nozzle_diameter^2
#max_extrude_only_distance: 50.0
#   Maximum length (in mm of raw filament) that an extrude only move
#   may be. If an extrude only move requests a distance greater than
#   this value it will cause an error to be returned. The default is
#   50mm.
#max_extrude_only_velocity:
#   Maximum velocity (in mm/s) of the extruder motor for extrude only
#   moves. If this is not specified then it is calculated to match the
#   limit an XY printing move with a max_extrude_cross_section
#   extrusion would have.
#max_extrude_only_accel:
#   Maximum acceleration (in mm/s^2) of the extruder motor for extrude
#   only moves. If this is not specified then it is calculated to
#   match the limit an XY printing move with a
#   max_extrude_cross_section extrusion would have.
#pressure_advance: 0.0
#   The amount of raw filament to push into the extruder during
#   extruder acceleration. An equal amount of filament is retracted
#   during deceleration. It is measured in millimeters per
#   millimeter/second. The default is 0, which disables pressure
#   advance.
#pressure_advance_lookahead_time: 0.010
#   A time (in seconds) to "look ahead" at future extrusion moves when
#   calculating pressure advance. This is used to reduce the
#   application of pressure advance during cornering moves that would
#   otherwise cause retraction followed immediately by pressure
#   buildup. This setting only applies if pressure_advance is
#   non-zero. The default is 0.010 (10 milliseconds).
#
# The remaining variables describe the extruder heater.
heater_pin: ar10
#   PWM output pin controlling the heater. This parameter must be
#   provided.
#max_power: 1.0
#   The maximum power (expressed as a value from 0.0 to 1.0) that the
#   heater_pin may be set to. The value 1.0 allows the pin to be set
#   fully enabled for extended periods, while a value of 0.5 would
#   allow the pin to be enabled for no more than half the time. This
#   setting may be used to limit the total power output (over extended
#   periods) to the heater. The default is 1.0.
sensor_type: EPCOS 100K B57560G104F
#   Type of sensor - this may be "EPCOS 100K B57560G104F", "ATC
#   Semitec 104GT-2", "NTC 100K beta 3950", "Honeywell 100K
#   135-104LAG-J01", "NTC 100K MGB18-104F39050L32", "AD595", "PT100
#   INA826", "MAX6675", "MAX31855", "MAX31856", or "MAX31865".
#   Additional sensor types may be available - see the
#   example-extras.cfg file for details. This parameter must be
#   provided.
sensor_pin: analog13
#   Analog input pin connected to the sensor. This parameter must be
#   provided.
#pullup_resistor: 4700
#   The resistance (in ohms) of the pullup attached to the
#   thermistor. This parameter is only valid when the sensor is a
#   thermistor. The default is 4700 ohms.
#adc_voltage: 5.0
#   The ADC comparison voltage. This parameter is only valid when the
#   sensor is an AD595 or "PT100 INA826". The default is 5 volts.
#smooth_time: 2.0
#   A time value (in seconds) over which temperature measurements will
#   be smoothed to reduce the impact of measurement noise. The default
#   is 2 seconds.
control: pid
#   Control algorithm (either pid or watermark). This parameter must
#   be provided.
pid_Kp: 22.2
#   Kp is the "proportional" constant for the pid. This parameter must
#   be provided for PID heaters.
pid_Ki: 1.08
#   Ki is the "integral" constant for the pid. This parameter must be
#   provided for PID heaters.
pid_Kd: 114
#   Kd is the "derivative" constant for the pid. This parameter must
#   be provided for PID heaters.
#pid_integral_max:
#   The maximum "windup" the integral term may accumulate. The default
#   is to use the same value as max_power.
#pwm_cycle_time: 0.100
#   Time in seconds for each software PWM cycle of the heater. It is
#   not recommended to set this unless there is an electrical
#   requirement to switch the heater faster than 10 times a second.
#   The default is 0.100 seconds.
#min_extrude_temp: 170
#   The minimum temperature (in Celsius) at which extruder move
#   commands may be issued. The default is 170 Celsius.
min_temp: 0
max_temp: 210
#   The maximum range of valid temperatures (in Celsius) that the
#   heater must remain within. This controls a safety feature
#   implemented in the micro-controller code - should the measured
#   temperature ever fall outside this range then the micro-controller
#   will go into a shutdown state. This check can help detect some
#   heater and sensor hardware failures. Set this range just wide
#   enough so that reasonable temperatures do not result in an
#   error. These parameters must be provided.

# The heater_bed section describes a heated bed (if present - omit
# section if not present).
[heater_bed]
heater_pin: ar8
sensor_type: EPCOS 100K B57560G104F
sensor_pin: analog14
control: watermark
#max_delta: 2.0
#   On 'watermark' controlled heaters this is the number of degrees in
#   Celsius above the target temperature before disabling the heater
#   as well as the number of degrees below the target before
#   re-enabling the heater. The default is 2 degrees Celsius.
min_temp: 0
max_temp: 110

# Print cooling fan (omit section if fan not present).
[fan]
pin: ar9
#   PWM output pin controlling the fan. This parameter must be
#   provided.
#max_power: 1.0
#   The maximum power (expressed as a value from 0.0 to 1.0) that the
#   pin may be set to. The value 1.0 allows the pin to be set fully
#   enabled for extended periods, while a value of 0.5 would allow the
#   pin to be enabled for no more than half the time. This setting may
#   be used to limit the total power output (over extended periods) to
#   the fan. If this value is less than 1.0 then fan speed requests
#   will be scaled between zero and max_power (for example, if
#   max_power is .9 and a fan speed of 80% is requested then the fan
#   power will be set to 72%). The default is 1.0.
#shutdown_speed: 0
#   The desired fan speed (expressed as a value from 0.0 to 1.0) if
#   the micro-controller software enters an error state. The default
#   is 0.
#cycle_time: 0.010
#   The amount of time (in seconds) for each PWM power cycle to the
#   fan. It is recommended this be 10 milliseconds or greater when
#   using software based PWM. The default is 0.010 seconds.
#hardware_pwm: False
#   Enable this to use hardware PWM instead of software PWM. The
#   default is False.
#kick_start_time: 0.100
#   Time (in seconds) to run the fan at full speed when first enabling
#   it (helps get the fan spinning). The default is 0.100 seconds.

# Micro-controller information.
[mcu]
serial: /dev/ttyACM0
#   The serial port to connect to the MCU. If unsure (or if it
#   changes) see the "Where's my serial port?" section of the FAQ. The
#   default is /dev/ttyS0
#baud: 250000
#   The baud rate to use. The default is 250000.
pin_map: arduino
#   This option may be used to enable Arduino pin name aliases. The
#   default is to not enable the aliases.
#restart_method:
#   This controls the mechanism the host will use to reset the
#   micro-controller. The choices are 'arduino', 'rpi_usb', and
#   'command'. The 'arduino' method (toggle DTR) is common on Arduino
#   boards and clones. The 'rpi_usb' method is useful on Raspberry Pi
#   boards with micro-controllers powered over USB - it briefly
#   disables power to all USB ports to accomplish a micro-controller
#   reset. The 'command' method involves sending a Klipper command to
#   the micro-controller so that it can reset itself. The default is
#   'arduino' if the micro-controller communicates over a serial port,
#   'command' otherwise.

# The printer section controls high level printer settings.
[printer]
kinematics: cartesian
#   This option must be "cartesian" for cartesian printers.
max_velocity: 500
#   Maximum velocity (in mm/s) of the toolhead (relative to the
#   print). This parameter must be specified.
max_accel: 3000
#   Maximum acceleration (in mm/s^2) of the toolhead (relative to the
#   print). This parameter must be specified.
#max_accel_to_decel:
#   A pseudo acceleration (in mm/s^2) controlling how fast the
#   toolhead may go from acceleration to deceleration. It is used to
#   reduce the top speed of short zig-zag moves (and thus reduce
#   printer vibration from these moves). The default is half of
#   max_accel.
max_z_velocity: 25
#   For cartesian printers this sets the maximum velocity (in mm/s) of
#   movement along the z axis. This setting can be used to restrict
#   the maximum speed of the z stepper motor on cartesian
#   printers. The default is to use max_velocity for max_z_velocity.
max_z_accel: 30
#   For cartesian printers this sets the maximum acceleration (in
#   mm/s^2) of movement along the z axis. It limits the acceleration
#   of the z stepper motor on cartesian printers. The default is to
#   use max_accel for max_z_accel.
#square_corner_velocity: 5.0
#   The maximum velocity (in mm/s) that the toolhead may travel a 90
#   degree corner at. A non-zero value can reduce changes in extruder
#   flow rates by enabling instantaneous velocity changes of the
#   toolhead during cornering. This value configures the internal
#   centripetal velocity cornering algorithm; corners with angles
#   larger than 90 degrees will have a higher cornering velocity while
#   corners with angles less than 90 degrees will have a lower
#   cornering velocity. If this is set to zero then the toolhead will
#   decelerate to zero at each corner. The default is 5mm/s.


# Looking for more options? Check the example-extras.cfg file.
