# 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.

# 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: ar29
#   Step GPIO pin (triggered high). This parameter must be provided.
dir_pin: !ar28
#   Direction GPIO pin (high indicates positive direction). This
#   parameter must be provided.
enable_pin: !ar25
#   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: ^ar0
#   Endstop switch detection pin. 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: False
#   If true, homes in a positive direction (away from zero). The
#   default is False.
#homing_stepper_phases: 0
#   One may optionally set this to the number of phases of the stepper
#   motor driver (which is the number of micro-steps multiplied by
#   four). When set, the phase of the stepper driver will be used
#   during homing to improve the accuracy of the endstop switch.
#homing_endstop_accuracy: 0.200
#   Sets the expected accuracy (in mm) of the endstop. This represents
#   the maximum error distance the endstop may trigger (eg, if an
#   endstop may occasionally trigger 100um early or up to 100um late
#   then set this to 0.200 for 200um). This setting is used with
#   homing_stepper_phases and is only useful if that parameter is also
#   configured.
#homing_endstop_phase: 0
#   This specifies the phase of the stepper motor driver to expect
#   when hitting the endstop. This setting is only meaningful if
#   homing_stepper_phases is also set. Only set this value if one is
#   sure the stepper motor driver is reset every time the mcu is
#   reset. If this is not set, but homing_stepper_phases is set, then
#   the stepper phase will be detected on the first home and that
#   phase will be used on all subsequent homes.
position_min: -0.25
#   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.

# 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: ar27
dir_pin: ar26
enable_pin: !ar25
step_distance: .0225
endstop_pin: ^ar1
position_min: -0.25
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: ar23
dir_pin: !ar22
enable_pin: !ar25
step_distance: .005
endstop_pin: ^ar2
position_min: 0.1
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
[extruder]
step_pin: ar19
dir_pin: ar18
enable_pin: !ar25
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). 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: ar4
#   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", or "AD595". This parameter must be provided.
sensor_pin: analog1
#   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. The default is 5 volts.
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_deriv_time: 2.0
#   A time value (in seconds) over which the derivative in the pid
#   will be smoothed to reduce the impact of measurement noise. The
#   default is 2 seconds.
#pid_integral_max:
#   The maximum "windup" the integral term may accumulate. The default
#   is to use the same value as max_power.
#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
#   Minimum temperature in Celsius (mcu will shutdown if not
#   met). This parameter must be provided.
max_temp: 210
#   Maximum temperature (mcu will shutdown if temperature is above
#   this value). This parameter must be provided.

# The heater_bed section describes a heated bed (if present - omit
# section if not present).
[heater_bed]
heater_pin: ar3
sensor_type: EPCOS 100K B57560G104F
sensor_pin: analog0
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

# Extruder print fan (omit section if fan not present)
[fan]
pin: ar14
#   PWM output pin controlling the fan. This parameter must be
#   provided.
#hard_pwm: 0
#   Set this value to force hardware PWM instead of software PWM. Set
#   to 1 to force a hardware PWM at the fastest rate; set to a higher
#   number to force hardware PWM with the given cycle time in clock
#   ticks. The default is 0 which enables software PWM with a cycle
#   time of 10ms.
#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. 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: arduino
#   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; set baud to 1200) 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'.
custom:
#   This option may be used to specify a set of custom
#   micro-controller commands to be sent at the start of the
#   connection. It may be used to configure the initial settings of
#   LEDs, to configure micro-stepping pins, to configure a digipot,
#   etc.

# 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.
#motor_off_time: 600
#   Time (in seconds) of idle time before the printer will try to
#   disable active motors. The default is 600 seconds.
#junction_deviation: 0.02
#   Distance (in mm) used to control the internal approximated
#   centripetal velocity cornering algorithm. A larger number will
#   permit higher "cornering speeds" at the junction of two moves. The
#   default is 0.02mm.