# This file serves as documentation for config parameters of # additional devices that may be configured on a printer. The snippets # in this file may be copied into the main printer.cfg file. See the # "example.cfg" file for description of common config parameters. # # Note, where an extra config section creates additional pins, the # section defining the pins must be listed in the config file before # any sections using those pins. # Z height probe. One may define this section to enable Z height # probing hardware. When this section is enabled, PROBE and # QUERY_PROBE extended g-code commands become available. The probe # section also creates a virtual probe:z_virtual_endstop pin. One may # set the stepper_z endstop_pin to this virtual pin on cartesian style # printers that use the probe in place of a z endstop. #[probe] #pin: ar15 # Probe detection pin. This parameter must be provided. #z_offset: # The distance (in mm) between the bed and the nozzle when the probe # triggers. This parameter must be provided. #speed: 5.0 # Speed (in mm/s) of the Z axis when probing. The default is 5mm/s. #activate_gcode: # A list of G-Code commands (one per line) to execute prior to each # probe attempt. This may be useful if the probe needs to be # activated in some way. The default is to not run any special # G-Code commands on activation. #deactivate_gcode: # A list of G-Code commands (one per line) to execute after each # probe attempt completes. The default is to not run any special # G-Code commands on deactivation. # Bed tilt compensation. One may define a [bed_tilt] config section to # enable move transformations that account for a tilted bed. #[bed_tilt] #x_adjust: 0 # The amount to add to each move's Z height for each mm on the X # axis. The default is 0. #y_adjust: 0 # The amount to add to each move's Z height for each mm on the Y # axis. The default is 0. # The remaining parameters control a BED_TILT_CALIBRATE extended # g-code command that may be used to calibrate appropriate x and y # adjustment parameters. #points: # A newline separated list of X,Y points that should be probed # during a BED_TILT_CALIBRATE command. The default is to not enable # the command. #speed: 50 # The speed (in mm/s) of non-probing moves during the # calibration. The default is 50. #horizontal_move_z: 5 # The height (in mm) that the head should be commanded to move to # just prior to starting a probe operation. The default is 5. #manual_probe: # If true, then BED_TILT_CALIBRATE will perform manual probing. If # false, then a PROBE command will be run at each probe # point. Manual probing is accomplished by manually jogging the Z # position of the print head at each probe point and then issuing a # NEXT extended g-code command to record the position at that # point. The default is false if a [probe] config section is present # and true otherwise. # Multiple Z stepper tilt adjustment. This feature enables independent # adjustment of multiple z steppers (see stepper_z1 section below) to # adjust for tilt. If this section is present then a Z_TILT_ADJUST # extended G-Code command becomes available. #[z_tilt] #z_positions: # A newline separated list of X,Y coordinates describing the # location of each Z stepper. The first entry corresponds to # stepper_z, the second to stepper_z1, the third to stepper_z2, # etc. This parameter must be provided. #points: # A newline separated list of X,Y points that should be probed # during a Z_TILT_ADJUST command. This parameter must be provided. #speed: 50 # The speed (in mm/s) of non-probing moves during the calibration. # The default is 50. #horizontal_move_z: 5 # The height (in mm) that the head should be commanded to move to # just prior to starting a probe operation. The default is 5. # In a multi-extruder printer add an additional extruder section for # each additional extruder. The additional extruder sections should be # named "extruder1", "extruder2", "extruder3", and so on. See the # "extruder" section in example.cfg for a description of available # parameters. #[extruder1] #step_pin: ar36 #dir_pin: ar34 #... #shared_heater: # If this extruder uses the same heater already defined for another # extruder then place the name of that extruder here. For example, # should extruder3 and extruder4 share a heater then the extruder3 # config section should define the heater and the extruder4 section # should specify "shared_heater: extruder3". The default is to not # reuse an existing heater. #deactivate_gcode: # A list of G-Code commands (one per line) to execute on a G-Code # tool change command (eg, "T1") that deactivates this extruder and # activates some other extruder. It only makes sense to define this # section on multi-extruder printers. The default is to not run any # special G-Code commands on deactivation. #activate_gcode: # A list of G-Code commands (one per line) to execute on a G-Code # tool change command (eg, "T0") that activates this extruder. It # only makes sense to define this section on multi-extruder # printers. The default is to not run any special G-Code commands on # activation. # Support for cartesian printers with dual carriages on a single # axis. The active carriage is set via the SET_DUAL_CARRIAGE extended # g-code command. The "SET_DUAL_CARRIAGE CARRIAGE=1" command will # activate the carriage defined in this section (CARRIAGE=0 will # return activation to the primary carriage). Dual carriage support is # typically combined with extra extruders - use the SET_DUAL_CARRIAGE # command in the activate_gcode / deactivate_gcode section of the # appropriate extruder. Be sure to also use that mechanism to park the # carriages during deactivation. #[dual_carriage] #axis: # The axis this extra carriage is on (either x or y). This parameter # must be provided. #step_pin: #dir_pin: #enable_pin: #step_distance: #endstop_pin: #position_endstop: #position_min: #position_max: # See the example.cfg for the definition of the above parameters. # Heater and temperature sensor verification. Heater verification is # automatically enabled for each heater that is configured on the # printer. Use verify_heater sections to change the default settings. #[verify_heater heater_config_name] #heating_gain: 2 # The minimum temperature (in Celsius) that the heater must increase # by when approaching a new target temperature. The default is 2. #check_gain_time: # The amount of time (in seconds) that the heating_gain must be met # in before an error is raised. The default is 20 seconds for # extruders and 60 seconds for heater_bed. #hysteresis: 5 # The difference between the target temperature and the current # temperature for the heater to be considered within range of the # target temperature. The default is 5. #max_error: 120 # The maximum temperature difference a heater that falls outside the # target temperature range may accumulate before an error is # raised. For example, if the target temperature is 200, the # hysteresis is 5, the max_error is 120, and the temperature is # reported at 185 degrees for 12 seconds then an error would be # raised (or 24 seconds at 190, or 120 seconds at 194, etc.). The # default is 120. # Multi-stepper axes. On a cartesian style printer, the stepper # controlling a given axis may have additional config blocks defining # steppers that should be stepped in concert with the primary # stepper. One may define any number of sections with a numeric suffix # starting at 1 (for example, "stepper_z1", "stepper_z2", etc.). #[stepper_z1] #step_pin: ar36 #dir_pin: ar34 #enable_pin: !ar30 #step_distance: .005 # See the example.cfg for the definition of the above parameters. #endstop_pin: ^ar19 # If an endstop_pin is defined for the additional stepper then the # stepper will home until the endstop is triggered. Otherwise, the # endstop will home until the endstop on the primary stepper for the # axis is triggered. # Stepper phase adjusted endstops. The following additional parameters # may be added to a stepper axis definition to improve the accuracy of # endstop switches. #[stepper_z] #homing_stepper_phases: # One may set this to the number of phases of the stepper motor # driver (which is the number of micro-steps multiplied by # four). This parameter must be provided if using stepper phase # adjustments. #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). The default is # homing_stepper_phases*step_distance. #homing_endstop_phase: # This specifies the phase of the stepper motor driver to expect # when hitting the endstop. 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, then the stepper phase will be detected on the first # home and that phase will be used on all subsequent homes. #homing_endstop_align_zero: False # If true then the code will arrange for the zero position on the # axis to occur at a full step on the stepper motor. (If used on the # Z axis and the print layer height is a multiple of a full step # distance then every layer will occur on a full step.) The default # is False. # Heater cooling fans (one may define any number of sections with a # "heater_fan" prefix). A "heater fan" is a fan that will be enabled # whenever its associated heater is active. By default, a heater_fan # has a shutdown_speed equal to max_power. #[heater_fan my_nozzle_fan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: # See the "fan" section in example.cfg for a description of the # above parameters. #heater: extruder # Name of the config section defining the heater that this fan is # associated with. The default is "extruder". #heater_temp: 50.0 # A temperature (in Celsius) that the heater must drop below before # the fan is disabled. The default is 50 Celsius. #fan_speed: 1.0 # The fan speed (expressed as a value from 0.0 to 1.0) that the fan # will be set to when its associated heater is enabled. The default # is 1.0 # Temperature-triggered cooling fans (one may define any number of # sections with a "temperature_fan" prefix). A "temperature fan" is a # fan that will be enabled whenever its associated sensor is above a # set temperature. By default, a temperature_fan has a shutdown_speed # equal to max_power. #[temperature_fan my_temp_fan] #pin: #max_power: #shutdown_speed: #cycle_time: #hardware_pwm: #kick_start_time: # See the "fan" section in example.cfg for a description of the # above parameters. #sensor_type: EPCOS 100K B57560G104F #sensor_pin: analog13 # See the "heater" section for details about the sensor_type and # sensor_pin parameters. #min_temp: 0 #max_temp: 100 # The maximum range of valid temperatures (in Celsius) that the # sensor 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. Set this range just wide enough so # that reasonable temperatures do not result in an error. These # parameters must be provided. #target_temp: 40.0 # A temperature (in Celsius) that will be the target temperature. # The default is 40 degrees. #max_speed: 1.0 # The fan speed (expressed as a value from 0.0 to 1.0) that the fan # will be set to when the sensor temperature exceeds the set value. # The default is 1.0. #min_speed: 0.3 # The minimum fan speed (expressed as a value from 0.0 to 1.0) that # the fan will be set to when the sensor temperature is the set # value. The default is 0.3. #control: watermark # Control algorithm (either watermark or pid). This parameter must # be provided. #pid_Kp: 40 # Kp is the "proportional" constant for the pid. This parameter must # be provided for PID heaters. #pid_Ki: 0.2 # Ki is the "integral" constant for the pid. This parameter must be # provided for PID heaters. #pid_Kd: 0.1 # 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. # Additional micro-controllers (one may define any number of sections # with an "mcu" prefix). Additional micro-controllers introduce # additional pins that may be configured as heaters, steppers, fans, # etc.. For example, if an "[mcu extra_mcu]" section is introduced, # then pins such as "extra_mcu:ar9" may then be used elsewhere in the # config (where "ar9" is a hardware pin name or alias name on the # given mcu). #[mcu my_extra_mcu] # See the "mcu" section in example.cfg for configuration parameters. # Servos (one may define any number of sections with a "servo" # prefix). The servos may be controlled using the SET_SERVO g-code # command. For example: SET_SERVO SERVO=my_servo ANGLE=180 #[servo my_servo] #pin: ar7 # PWM output pin controlling the servo. This parameter must be # provided. #maximum_servo_angle: 180 # The maximum angle (in degrees) that this servo can be set to. The # default is 180 degrees. #minimum_pulse_width: 0.001 # The minimum pulse width time (in seconds). This should correspond # with an angle of 0 degrees. The default is 0.001 seconds. #maximum_pulse_width: 0.002 # The maximum pulse width time (in seconds). This should correspond # with an angle of maximum_servo_angle. The default is 0.002 # seconds. # Statically configured digital output pins (one may define any number # of sections with a "static_digital_output" prefix). Pins configured # here will be setup as a GPIO output during MCU configuration. They # can not be changed at run-time. #[static_digital_output my_output_pins] #pins: # A comma separated list of pins to be set as GPIO output pins. The # pin will be set to a high level unless the pin name is prefaced # with "!". This parameter must be provided. # Run-time configurable output pins (one may define any number of # sections with an "output_pin" prefix). Pins configured here will be # setup as output pins and one may modify them at run-time using the # "SET_PIN PIN=my_pin VALUE=.1" extended g-code command. #[output_pin my_pin] #pin: # The pin to configure as an output. This parameter must be # provided. #pwm: False # Set if the output pin should be capable of pulse-width-modulation. # If this is true, the value fields should be between 0 and 1; if it # is false the value fields should be either 0 or 1. The default is # False. #static_value: # If this is set, then the pin is assigned to this value at startup # and the pin can not be changed during runtime. A static pin uses # slightly less ram in the micro-controller. The default is to use # runtime configuration of pins. #value: # The value to initially set the pin to during MCU # configuration. The default is 0 (for low voltage). #shutdown_value: # The value to set the pin to on an MCU shutdown event. The default # is 0 (for low voltage). #cycle_time: 0.100 # The amount of time (in seconds) per PWM cycle. It is recommended # this be 10 milliseconds or greater when using software based # PWM. The default is 0.100 seconds for pwm pins. #hardware_pwm: False # Enable this to use hardware PWM instead of software PWM. The # default is False. #scale: # This parameter can be used to alter how the 'value' and # 'shutdown_value' parameters are interpreted for pwm pins. If # provided, then the 'value' parameter should be between 0.0 and # 'scale'. This may be useful when configuring a PWM pin that # controls a stepper voltage reference. The 'scale' can be set to # the equivalent stepper amperage if the PWM were fully enabled, and # then the 'value' parameter can be specified using the desired # amperage for the stepper. The default is to not scale the 'value' # parameter. # Multiple pin outputs (one may define any number of sections with a # "multi_pin" prefix). A multi_pin output creates an internal pin # alias that can modify multiple output pins each time the alias pin # is set. For example, one could define a "[multi_pin my_fan]" object # containing two pins and then set "pin=multi_pin:my_fan" in the # "[fan]" section - on each fan change both output pins would be # updated. These aliases may not be used with stepper motor pins. #[multi_pin my_multi_pin] #pins: # A comma separated list of pins associated with this alias. This # parameter must be provided. # Statically configured AD5206 digipots connected via SPI bus (one may # define any number of sections with an "ad5206" prefix). #[ad5206 my_digipot] #enable_pin: # The pin corresponding to the AD5206 chip select line. This pin # will be set to low at the start of SPI messages and raised to high # after the message completes. This parameter must be provided. #channel_1: #channel_2: #channel_3: #channel_4: #channel_5: #channel_6: # The value to statically set the given AD5206 channel to. This is # typically set to a number between 0.0 and 1.0 with 1.0 being the # highest resistance and 0.0 being the lowest resistance. However, # the range may be changed with the 'scale' parameter (see # below). If a channel is not specified then it is left # unconfigured. #scale: # This parameter can be used to alter how the 'channel_x' parameters # are interpreted. If provided, then the 'channel_x' parameters # should be between 0.0 and 'scale'. This may be useful when the # AD5206 is used to set stepper voltage references. The 'scale' can # be set to the equivalent stepper amperage if the AD5206 were at # its highest resistance, and then the 'channel_x' parameters can be # specified using the desired amperage value for the stepper. The # default is to not scale the 'channel_x' parameters. # Statically configured MCP4451 digipot connected via I2C bus (one may # define any number of sections with an "mcp4451" prefix). #[mcp4451 my_digipot] #mcu: mcu # The name of the micro-controller that the MCP4451 chip is # connected to. The default is "mcu". #i2c_address: # The i2c address that the chip is using on the i2c bus. This # parameter must be provided. #wiper_0: #wiper_1: #wiper_2: #wiper_3: # The value to statically set the given MCP4451 "wiper" to. This is # typically set to a number between 0.0 and 1.0 with 1.0 being the # highest resistance and 0.0 being the lowest resistance. However, # the range may be changed with the 'scale' parameter (see # below). If a wiper is not specified then it is left unconfigured. #scale: # This parameter can be used to alter how the 'wiper_x' parameters # are interpreted. If provided, then the 'wiper_x' parameters should # be between 0.0 and 'scale'. This may be useful when the MCP4451 is # used to set stepper voltage references. The 'scale' can be set to # the equivalent stepper amperage if the MCP4451 were at its highest # resistance, and then the 'wiper_x' parameters can be specified # using the desired amperage value for the stepper. The default is # to not scale the 'wiper_x' parameters. # Configure a TMC2130 stepper motor driver via SPI bus. To use this # feature, define a config section with a "tmc2130" prefix followed by # the name of the corresponding stepper config section (for example, # "[tmc2130 stepper_x]"). #[tmc2130 stepper_x] #cs_pin: # The pin corresponding to the TMC2130 chip select line. This pin # will be set to low at the start of SPI messages and raised to high # after the message completes. This parameter must be provided. #microsteps: # The number of microsteps to configure the driver to use. Valid # values are 1, 2, 4, 8, 16, 32, 64, 128, 256. This parameter must # be provided. #interpolate: True # If true, enable TMC2130 step interpolation (the driver will # interally step at a rate of 256 micro-steps). The default is True. #run_current: # The amount of current (in amps) to configure the driver to use # during stepper movement. This parameter must be provided. #hold_current: # The amount of current (in amps) to configure the driver to use # when the stepper is not moving. The default is to use the same # value as run_current. #sense_resistor: 0.110 # The resistance (in ohms) of the motor sense resistor. The default # is 0.110 ohms. #stealthchop_threshold: 0 # The velocity (in mm/s) to set the "stealthChop" threshold to. When # set, "stealthChop" mode will be enabled if the stepper motor # velocity is below this value. The default is 0, which disables # "stealthChop" mode. #driver_IHOLDDELAY: 8 #driver_TPOWERDOWN: 0 #driver_BLANK_TIME_SELECT: 1 #driver_TOFF: 4 #driver_HEND: 7 #driver_HSTRT: 0 #driver_PWM_AUTOSCALE: True #driver_PWM_FREQ: 1 #driver_PWM_GRAD: 4 #driver_PWM_AMPL: 128 #driver_SGT: 0 # Set the given register during the configuration of the TMC2130 # chip. This may be used to set custom motor parameters. The # defaults for each parameter are next to the parameter name in the # above list. #diag1_pin: # The micro-controller pin attached to the DIAG1 line of the TMC2130 # chip. Setting this creates a "tmc2130_stepper_x:virtual_endstop" # virtual pin which may be used as the stepper's endstop_pin. Doing # this enables "sensorless homing". (Be sure to also set driver_SGT # to an appropriate sensitivity value.) The default is to not enable # sensorless homing. # Homing override. One may use this mechanism to run a series of # g-code commands in place of a G28 found in the normal g-code input. # This may be useful on printers that require a specific procedure to # home the machine. #[homing_override] #gcode: # A list of G-Code commands (one per line) to execute in place of # G28 commands found in the normal g-code input. If a G28 is # contained in this list of commands then it will invoke the normal # homing procedure for the printer. The commands listed here must # home all axes. This parameter must be provided. #axes: xyz # The axes to override. For example, if this is set to "z" then the # override script will only be run when the z axis is homed (eg, via # a "G28" or "G28 Z0" command). Note, the override script should # still home all axes. The default is "xyz" which causes the # override script to be run in place of all G28 commands. #set_position_x: #set_position_y: #set_position_z: # If specified, the printer will assume the axis is at the specified # position prior to running the above g-code commands. Setting this # disables homing checks for that axis. This may be useful if the # head must move prior to invoking the normal G28 mechanism for an # axis. The default is to not force a position for an axis. # A virtual sdcard may be useful if the host machine is not fast # enough to run OctoPrint well. It allows the Klipper host software to # directly print gcode files stored in a directory on the host using # standard sdcard G-Code commands (eg, M24). #[virtual_sdcard] #path: ~/.octoprint/uploads/ # The path of the local directory on the host machine to look for # g-code files. This is a read-only directory (sdcard file writes # are not supported). One may point this to OctoPrint's upload # directory (generally ~/.octoprint/uploads/ ). This parameter must # be provided. # Support for a display attached to the micro-controller. #[display] #lcd_type: # The type of LCD chip in use. This may be "hd44780" (which is # used in "RepRapDiscount 2004 Smart Controller" type displays), # "st7920" (which is used in "RepRapDiscount 12864 Full Graphic # Smart Controller" type displays) or "uc1701" (which is used in # "MKS Mini 12864 type" displays). This parameter must be provided. #rs_pin: #e_pin: #d4_pin: #d5_pin: #d6_pin: #d7_pin: # The pins connected to an hd44780 type lcd. These parameters must # be provided when using an hd44780 display. #cs_pin: #sclk_pin: #sid_pin: # The pins connected to an st7920 type lcd. These parameters must be # provided when using an st7920 display. #cs_pin: #a0_pin # The pins connected to an uc1701 type lcd. These parameters must be # provided when using an uc1701 display. # Custom thermistors (one may define any number of sections with a # "thermistor" prefix). A custom thermistor may be used in the # sensor_type field of a heater config section. (For example, if one # defines a "[thermistor my_thermistor]" section then one may use a # "sensor_type: my_thermistor" when defining a heater.) Be sure to # place the thermistor section in the config file above its first use # in a heater section. #[thermistor my_thermistor] #temperature1: #resistance1: #temperature2: #resistance2: #temperature3: #resistance3: # Three resistance measurements (in Ohms) at the given temperatures # (in Celsius). The three measurements will be used to calculate the # Steinhart-Hart coefficients for the thermistor. These parameters # must be provided when using Steinhart-Hart to define the # thermistor. #beta: # Alternatively, one may define temperature1, resistance1, and beta # to define the thermistor parameters. This parameter must be # provided when using "beta" to define the thermistor. # Custom ADC temperature sensors (one may define any number of # sections with an "adc_temperature" prefix). This allows one to # define a custom temperature sensor that measures a voltage on an # Analog to Digital Converter (ADC) pin and uses linear interpolation # between a set of configured temperature/voltage measurements to # determine the temperature. The resulting sensor can be used as a # sensor_type in a heater section. (For example, if one defines a # "[adc_temperature my_sensor]" section then one may use a # "sensor_type: my_sensor" when defining a heater.) Be sure to place # the sensor section in the config file above its first use in a # heater section. #[adc_temperature my_sensor] #temperature1: #voltage1: #temperature2: #voltage2: #... # A set of temperatures (in Celsius) and voltages (in Volts) to use # as reference when converting a temperature. At least two # measurements must be provided. # G-Code macros (one may define any number of sections with a # "gcode_macro" prefix). #[gcode_macro my_cmd] #gcode: # A list of G-Code commands (one per line) to execute in place of # "my_cmd". This parameter must be provided. # Replicape support - see the generic-replicape.cfg file for further # details. #[replicape]