Calibration of a linear delta printer is more difficult than for a cartesian. What follows is the procedure I use for my two Kossel printers. It can be a little time consuming and take half an hour on bad days, but it's very accurate. Once you've set the calibration using this method it won't change unless the printer geometry changes. Also, you'll no longer need to use a Z-probe to self-calibrate the printer, and best of all, your prints will be dimensionally accurate.
First, you should ensure that your printer's bed is flat to begin with. This calibration procedure assumes that your bed is flat to within about 0.5mm across its surface, and preferably even flatter than that. My Kossel printers came with circular borosilicate glass beds that are flat enough for 3D printing and shouldn't need replacing. If your bed is not flat enough then try flipping it over, as one side may be flatter than the other. Otherwise you will need to buy a better quality bed, and these can be bought inexpensively online. The Kossel printers take a 250mm circular piece of glass. I recommend 5mm thick for strength. This thickness may require a better bed heater if you are currently using glass thinner that 5mm.
Second, I have replaced the outdated electronics boards on my Kossel printers with Azteeg X5 Mini WiFi boards by Panucatt devices. These use Smoothieware firmware, and for my Kossel Pro my values for arm length and arm radius are shown below. Edit these in your printer's config file. These values represent two sides of a right angle triangle. Arm_length is the length of your printer's arms from pivot to pivot in millimeters (the hypotenuse). Arm_radius is the opposite side of the triangle, measured as the horizontal distance from pivot to pivot of each arm, in millimeters, when the print head is at the center of the print area, equidistant from each tower. See more info here: http://smoothieware.org/delta
arm_length = 298.0
arm_radius = 152.4
For the first part of the calibration you will need to set the arm solution in the config file to cartesian so that you can move each of the towers independently. Remember to reboot the printer after making config changes so that the new config is loaded.
arm_solution cartesian
The next step is to ensure the motors move the correct distance. Use Pronterface or another printer control interface to move the carriage on each tower a known amount, e.g. 100 or 200mm. http://www.pronterface.com/
Use a pen to mark on the belts where the carriage starts and stops. Now measure the distance between the two pen marks. They should match the amount you told them to move. If not then you need to adjust alpha_steps_per_mm, beta_steps_per_mm, and gamma_steps_per_mm in your config file. For example, if you told the carriage to move 100mm and it moved 125mm, then you need to take the current value of alpha_steps_per_mm and divide it by 125/100 = 1.25. So if your alpha_steps_per_mm was 200, you now divide it by 1.25 to get 160. Reboot the printer after each change of the config file so it gets the new values. Repeat the belt measurement again and adjust if necessary, until the measured belt movement is correct.
Typically the motors and belt wheels on your printer will be the same for each axis and so the values of alpha-, beta-, and gamma_steps_per_mm will be the same, and you'll only need to do this for one tower and then copy that value for the other towers.
Once this calibration is complete, you can change the arm solution back to linear delta.
arm_solution linear_delta
Your printer's towers are now set to do dimensionally accurate movements. A similar procedure can be used to adjust the extruder as well, using marks on the filament and adjusting the extruder.hotend.steps_per_mm
The next step in the calibration is to use Pronterface or other printer control software to set the print nozzle to lightly hold down a piece of paper at location x0 y0 z0. You should be able to slide the piece of paper back and forth between the bed and the print nozzle with only slight resistance. You can use negative and positive values of Z to find the printer bed height where the paper is slides best. Once you have this Z value, use it to adjust gamma_max in the config file. Gamma_max is the total height of your build volume from home position to the bed (see http://smoothieware.org/delta#height-calibration). Remember to reboot the printer after changing the config file so your new values are loaded. If you get down to the point where a 0.1mm difference in height is either too tight or too loose, choose the looser one.
Next, make the nozzle lightly hold down a piece of paper at a location close to each tower. The commands to do this are as follows. The values may different depending on the diameter of your bed, this is for a 250mm bed.
g0 x-100 y-60 z0
g0 x100 y-60 z0
g0 x0 y110 z0
Use positive or negative values of Z if the height is not correct, until a piece of paper is lightly held down. Adjust the height of the nozzle at each tower by adjusting the stop screws on the carriage of that tower. You will need to home the printer after every stop-screw adjustment so the new height is set. If you need negative values to make the nozzle lightly hold down paper at the tower, then the printer thinks the bed is higher than actually it is, so you need to turn the stop screw anticlockwise to lower the bed height. If positive values are needed then the stop screw needs to turn clockwise.
Remember than an M3 screw typically has a 0.5mm thread pitch, so each turn of the screw moves it up or down 0.5mm. This will help you tune in the calibration based on the Z value you need to hold down the paper. Repeat the process a few times at each tower to get it spot on. Remember to home the printer with each change. If a 0.1mm change in height holds down a piece of paper either too tightly or too loosely, choose the looser value.
After setting the stop screws at each of the printer's three towers, return the print head to the center of the bed: g0 x0 y0 z0. If the nozzle is now too high above the bed, increase arm_radius slightly by 0.5 - 1.0mm. If the nozzle is too low and lightly crashes into the bed, decrease arm_radius. After changing arm_radius you will have to start all over again and do the height calibration (gamma_max) and then the stop screw adjustments. However by repeating the procedure several times, you will eventually find the best value for arm_radius.
When you get very close to the perfect calibration it may be necessary to change arm_radius by less than 0.5mm each time, e.g. 0.2 or 0.3mm.
After the first calibration of your printer, future adjustments will only need to be small. If you see odd patterns, uneven thickness, or blobbing on the first layer of a print, it may be time to calibrate your printer again. Generally the calibration lasts a long time.
Once the print nozzle lightly holds down a piece of paper at the center of the bed and at each tower, your calibration is complete. If it's hard to get it exact then it's better for the paper to be held a little too loose than too tight.
I have found my values for arm_radius and arm_length work fine and I expect them to be similar for every Kossel Pro printer, so start with those values and you will at least be close.
Once this is done the calibration is complete and will not need to be done again unless you change the geometry of the printer or alter the height of the nozzle within the print head. As mentioned before, your print bed must also be sufficiently flat for this to work.
I have attached the Smoothieware config.txt file I use for my Kossel Pro to help you get started.
-Dave Bad Person
# Smoothieboard configuration file, see httpsmoothieware.orgconfiguring-smoothie
# NOTE Lines must not exceed 132 characters, and '#' characters mean what follows is ignored
## Robot module configurations general handling of movement G-codes and slicing into moves
# Basic motion configuration
default_feed_rate 4000 # Default speed (mmminute) for G1G2G3 moves
default_seek_rate 4000 # Default speed (mmminute) for G0 moves
mm_per_arc_segment 0.0 # Fixed length for line segments that divide arcs, 0 to disable
#mm_per_line_segment 5 # Cut lines into segments this size
mm_max_arc_error 0.01 # The maximum error for line segments that divide arcs 0 to disable
# note it is invalid for both the above be 0
# if both are used, will use largest segment length based on radius
delta_segments_per_second 100 # For deltas only, number of segments per second, set to 0 to disable
# and use mm_per_line_segment
# Arm solution configuration Cartesian robot. Translates mm positions into stepper positions
# See httpsmoothieware.orgstepper-motors
alpha_steps_per_mm 160 # Steps per mm for alpha ( X ) stepper and tower
beta_steps_per_mm 160 # Steps per mm for beta ( Y ) stepper and tower
gamma_steps_per_mm 160 # Steps per mm for gamma ( Z ) stepper and tower
# Delta configuration
# See httpsmoothieware.orgdelta
arm_solution linear_delta # Selects the linear delta arm solution
arm_length 298.0 # This is the length of an arm from hinge to hinge
arm_radius 152.4 # This is the horizontal distance from hinge to hinge when the effector is centered
# Planner module configuration Look-ahead and acceleration configuration
# See httpsmoothieware.orgmotion-control
acceleration 3000 # Acceleration in mmsecondsecond.
#z_acceleration 500 # Acceleration for Z only moves in mms^2, 0 uses acceleration which is the default. DO NOT SET ON A DELTA
junction_deviation 0.05 # See httpsmoothieware.orgmotion-control#junction-deviation
#z_junction_deviation 0.0 # For Z only moves, -1 uses junction_deviation, zero disables junction_deviation on z moves DO NOT SET ON A DELTA
# Cartesian axis speed limits
x_axis_max_speed 30000 # Maximum speed in mmmin
y_axis_max_speed 30000 # Maximum speed in mmmin
z_axis_max_speed 30000 # Maximum speed in mmmin
# Stepper module configuration
# Pins are defined as ports, and pin numbers, appending ! to the number will invert a pin
# See httpsmoothieware.orgpin-configuration and httpsmoothieware.orgpinout
alpha_step_pin 2.1 # Pin for alpha stepper step signal
alpha_dir_pin 0.11 # Pin for alpha stepper direction, add '!' to reverse direction
alpha_en_pin 0.10 # Pin for alpha enable pin
alpha_current 1.5 # X stepper motor current
alpha_max_rate 30000.0 # Maximum rate in mmmin
beta_step_pin 2.2 # Pin for beta stepper step signal
beta_dir_pin 0.20 # Pin for beta stepper direction, add '!' to reverse direction
beta_en_pin 0.19 # Pin for beta enable
beta_current 1.5 # Y stepper motor current
beta_max_rate 30000.0 # Maxmimum rate in mmmin
gamma_step_pin 2.3 # Pin for gamma stepper step signal
gamma_dir_pin 0.22 # Pin for gamma stepper direction, add '!' to reverse direction
gamma_en_pin 0.21 # Pin for gamma enable
gamma_current 1.5 # Z stepper motor current
gamma_max_rate 30000.0 # Maximum rate in mmmin
## Extruder module configuration
# See httpsmoothieware.orgextruder
extruder.hotend.enable true # Whether to activate the extruder module at all. All configuration is ignored if false
extruder.hotend.steps_per_mm 894 # Steps per mm for extruder stepper
extruder.hotend.default_feed_rate 600 # Default rate ( mmminute ) for moves where only the extruder moves
extruder.hotend.acceleration 500 # Acceleration for the stepper motor mmsec²
extruder.hotend.max_speed 50 # Maximum speed in mms
extruder.hotend.step_pin 2.0 # Pin for extruder step signal
extruder.hotend.dir_pin 0.5 # Pin for extruder dir signal ( add '!' to reverse direction )
extruder.hotend.en_pin 0.4 # Pin for extruder enable signal
# Extruder offset
#extruder.hotend.x_offset 0 # X offset from origin in mm
#extruder.hotend.y_offset 0 # Y offset from origin in mm
#extruder.hotend.z_offset 0 # Z offset from origin in mm
# Firmware retract settings when using G10G11, these are the defaults if not defined, must be defined for each extruder if not using the defaults
#extruder.hotend.retract_length 3 # Retract length in mm
#extruder.hotend.retract_feedrate 45 # Retract feedrate in mmsec
#extruder.hotend.retract_recover_length 0 # Additional length for recover
#extruder.hotend.retract_recover_feedrate 8 # Recover feedrate in mmsec (should be less than retract feedrate)
#extruder.hotend.retract_zlift_length 0 # Z-lift on retract in mm, 0 disables
#extruder.hotend.retract_zlift_feedrate 6000 # Z-lift feedrate in mmmin (Note mmmin NOT mmsec)
delta_current 1.0 # First extruder stepper motor current
# Second extruder module configuration
#extruder.hotend2.enable true # Whether to activate the extruder module at all. All configuration is ignored if false
#extruder.hotend2.steps_per_mm 140 # Steps per mm for extruder stepper
#extruder.hotend2.default_feed_rate 600 # Default rate ( mmminute ) for moves where only the extruder moves
#extruder.hotend2.acceleration 500 # Acceleration for the stepper motor, as of 0.6, arbitrary ratio
#extruder.hotend2.max_speed 50 # mms
#extruder.hotend2.step_pin 2.8 # Pin for extruder step signal
#extruder.hotend2.dir_pin 2.13 # Pin for extruder dir signal ( add '!' to reverse direction )
#extruder.hotend2.en_pin 4.29 # Pin for extruder enable signal
#extruder.hotend2.x_offset 0 # x offset from origin in mm
#extruder.hotend2.y_offset 25.0 # y offset from origin in mm
#extruder.hotend2.z_offset 0 # z offset from origin in mm
#epsilon_current 1.0 # Second extruder stepper motor current
## Laser module configuration
# See httpsmoothieware.orglaser
laser_module_enable false # Whether to activate the laser module at all
laser_module_pwm_pin 2.5 # This pin will be PWMed to control the laser.
# Only pins 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 1.18, 1.20, 1.21, 1.23, 1.24, 1.26, 3.25 and 3.26
# can be used since laser requires hardware PWM, see httpsmoothieware.orgpinout
#laser_module_ttl_pin 1.30 # This pin turns on when the laser turns on, and off when the laser turns off.
#laser_module_maximum_power 1.0 # This is the maximum duty cycle that will be applied to the laser
#laser_module_minimum_power 0.0 # This is a value just below the minimum duty cycle that keeps the laser
# active without actually burning.
#laser_module_default_power 0.8 # This is the default laser power that will be used for cuts if a power has not been specified. The value is a scale between
# the maximum and minimum power levels specified above
#laser_module_pwm_period 20 # This sets the pwm frequency as the period in microseconds
## Temperature control configuration
# See httpsmoothieware.orgtemperaturecontrol
# First hotend configuration
temperature_control.hotend.enable true # Whether to activate this ( hotend ) module at all.
temperature_control.hotend.thermistor_pin 0.24 # Pin for the thermistor to read
temperature_control.hotend.heater_pin 2.5 # Pin that controls the heater, set to nc if a readonly thermistor is being defined
temperature_control.hotend.thermistor EPCOS100K # See httpsmoothieware.orgtemperaturecontrol#toc5
#temperature_control.hotend.beta 4066 # Or set the beta value
temperature_control.hotend.set_m_code 104 # M-code to set the temperature for this module
temperature_control.hotend.set_and_wait_m_code 109 # M-code to set-and-wait for this module
temperature_control.hotend.designator T # Designator letter for this module
temperature_control.hotend.max_temp 300 # Set maximum temperature - Will prevent heating above 300 by default
#temperature_control.hotend.min_temp 0 # Set minimum temperature - Will prevent heating below if set
# Safety control is enabled by default and can be overidden here, the values show the defaults
# See httpsmoothieware.orgtemperaturecontrol#runaway
temperature_control.hotend.runaway_heating_timeout 0 # How long it can take to heat up, max is 2040 seconds. Zero is disable
temperature_control.hotend.runaway_cooling_timeout 0 # How long it can take to cool down if temp is set lower, max is 2040 seconds. Zero is disable
temperature_control.hotend.runaway_range 35 # How far from the set temperature it can wander, max setting is 63°C
temperature_control.hotend.runaway_range_error 1 # Small temperature oscillations are ignored.
# PID configuration
# See httpsmoothieware.orgtemperaturecontrol#pid
temperature_control.hotend.p_factor 34.8 # P ( proportional ) factor
temperature_control.hotend.i_factor 2.327 # I ( integral ) factor
temperature_control.hotend.d_factor 131 # D ( derivative ) factor
#temperature_control.hotend.readings_per_second 20 # How many times per second to read temperature from the sensor.
#temperature_control.hotend.pwm_frequency 2000 # How many times per second to switch the heating element on oroff.
# Set to a low value ( 20 ) if using a Solid State Relay.
#temperature_control.hotend.max_pwm 64 # Max pwm, 64 is a good value if driving a 12v resistor with 24v.
# Second hotend configuration
#temperature_control.hotend2.enable true # Whether to activate this ( hotend ) module at all.
#temperature_control.hotend2.thermistor_pin 0.25 # Pin for the thermistor to read
#temperature_control.hotend2.heater_pin 1.23 # Pin that controls the heater
#temperature_control.hotend2.thermistor EPCOS100K # See httpsmoothieware.orgtemperaturecontrol#thermistor
##temperature_control.hotend2.beta 4066 # or set the beta value
#temperature_control.hotend2.set_m_code 104 # M-code to set the temperature for this module
#temperature_control.hotend2.set_and_wait_m_code 109 # M-code to set-and-wait for this module
#temperature_control.hotend2.designator T1 # Designator letter for this module
#temperature_control.hotend2.p_factor 13.7 # P ( proportional ) factor
#temperature_control.hotend2.i_factor 0.097 # I ( integral ) factor
#temperature_control.hotend2.d_factor 24 # D ( derivative ) factor
#temperature_control.hotend2.max_pwm 64 # Max pwm, 64 is a good value if driving a 12v resistor with 24v.
# Bed control configuration
temperature_control.bed.enable true # Whether to activate this ( hotend ) module at all.
temperature_control.bed.thermistor_pin 0.23 # Pin for the thermistor to read
temperature_control.bed.heater_pin 2.7 # Pin that controls the heater
temperature_control.bed.thermistor Honeywell100K # See httpsmoothieware.orgtemperaturecontrol#thermistor
#temperature_control.bed.beta 3974 # Or set the beta value
temperature_control.bed.set_m_code 140 # M-code to set the temperature for this module
temperature_control.bed.set_and_wait_m_code 190 # M-code to set-and-wait for this module
temperature_control.bed.designator B # Designator letter for this module
#temperature_control.bed.readings_per_second 20 # How many times per second to read temperature from the sensor.
temperature_control.bed.pwm_frequency 10 # How many times per second to switch the heating element on oroff.
# Set to a low value ( 20 ) if using a Solid State Relay.
# Bang-bang ( simplified ) control
# See httpsmoothieware.orgtemperaturecontrol#bang-bang
temperature_control.bed.bang_bang false # Set to true to use bang bang control rather than PID
temperature_control.bed.hysteresis 2.0 # Set to the temperature in degrees C to use as hysteresis
# Bed configuration
temperature_control.bed.max_temp 120 # Set maximum temperature - Will prevent heating above 120 by default
#temperature_control.bed.min_temp 0 # Set minimum temperature - Will prevent heating below if set
# Safety control is enabled by default and can be overidden here, the values show the defaults
# See httpsmoothieware.orgtemperaturecontrol#runaway
temperature_control.bed.runaway_heating_timeout 0 # How long it can take to heat up, max is 2040 seconds.
temperature_control.bed.runaway_cooling_timeout 0 # How long it can take to cool own if temp is set lower, max is 2040 seconds
temperature_control.bed.runaway_range 63 # How far from the set temp it can can wander, max is 63C
# Need to set it high because bed does not cool off quickly
temperature_control.bed.runaway_error_range 1 # How far +- from set temp to detect set temperature for runaway
# PID configuration
# See httpsmoothieware.orgtemperaturecontrol#pid
temperature_control.bed.p_factor 138.4 # P ( proportional ) factor
temperature_control.bed.i_factor 4.58 # I ( integral ) factor
temperature_control.bed.d_factor 1046 # D ( derivative ) factor
#temperature_control.bed.max_pwm 64
#switch.psu.enable true # turn atx on/off
#switch.psu.input_on_command M80 #
#switch.psu.input_off_command M81 #
#switch.psu.output_pin 2.4 # small mosfet (NB not inverted)
#switch.psu.output_type digital # on/off only
#switch.psu.ignore_on_halt true # so the PSU does not turn off on a HALT condition (like limit trigger)
# However leave commented or set to false if you want the PSU to turn off for an over heat fault condition
## Switch modules
# See httpsmoothieware.orgswitch
# Switch module for fan control
switch.fan.enable true # Enable this module
switch.fan.input_on_command M106 # Command that will turn this switch on
switch.fan.input_off_command M107 # Command that will turn this switch off
switch.fan.output_pin 0.26 # Pin this module controls
switch.fan.output_type pwm # PWM output settable with S parameter in the input_on_comand
#switch.fan.max_pwm 255 # Set max pwm for the pin default is 255
#switch.misc.enable true # Enable this module
#switch.misc.input_on_command M42 # Command that will turn this switch on
#switch.misc.input_off_command M43 # Command that will turn this switch off
#switch.misc.output_pin 2.4 # Pin this module controls
#switch.misc.output_type digital # Digital means this is just an on or off pin
## Temperatureswitch
# See httpsmoothieware.orgtemperatureswitch
# Automatically toggle a switch at a specified temperature. Different ones of these may be defined to monitor different temperatures and switch different swithxes
# Useful to turn on a fan or water pump to cool the hotend
#temperatureswitch.hotend.enable true #
#temperatureswitch.hotend.designator T # first character of the temperature control designator to use as the temperature sensor to monitor
#temperatureswitch.hotend.switch misc # select which switch to use, matches the name of the defined switch
#temperatureswitch.hotend.threshold_temp 60.0 # temperature to turn on (if rising) or off the switch
#temperatureswitch.hotend.heatup_poll 15 # poll heatup at 15 sec intervals
#temperatureswitch.hotend.cooldown_poll 60 # poll cooldown at 60 sec intervals
## Endstops
# See httpsmoothieware.orgendstops
endstops_enable true # The endstop module is enabled by default and can be disabled here
delta_homing true # Forces all three axis to home a the same time regardless of what is specified in G28
alpha_min_endstop nc # Pin to read min endstop, add a ! to invert if endstop is NO connected to ground
alpha_max_endstop 1.24^ # Pin to read max endstop, uncomment this and comment the above if using max endstops
alpha_homing_direction home_to_max # Or set to home_to_max and set alpha_max and uncomment the alpha_max_endstop
alpha_max 0 # This gets loaded as the current position after homing when home_to_max is set
beta_min_endstop nc # Pin to read min endstop, add a ! to invert if endstop is NO connected to ground
beta_max_endstop 1.26^ # Pin to read max endstop, uncomment this and comment the above if using max endstops
beta_homing_direction home_to_max # Or set to home_to_max and set alpha_max and uncomment the alpha_max_endstop
beta_max 0 # This gets loaded as the current position after homing when home_to_max is set
gamma_min_endstop nc # Pin to read min endstop, add a ! to invert if endstop is NO connected to ground
gamma_max_endstop 1.28^ # Pin to read max endstop, uncomment this and comment the above if using max endstops
gamma_homing_direction home_to_max # Or set to home_to_max and set alpha_max and uncomment the alpha_max_endstop
gamma_max 264.2 # This gets loaded as the current position after homing when home_to_max is set
alpha_max_travel 500 # Max travel in mm for alphaX axis when homing
beta_max_travel 500 # Max travel in mm for betaY axis when homing
gamma_max_travel 500 # Max travel in mm for gammaZ axis when homing
# Endstops home at their fast feedrate first, then once the endstop is found they home again at their slow feedrate for accuracy
alpha_fast_homing_rate_mm_s 50 # Alpha tower fast homing feedrate in mmsecond
alpha_slow_homing_rate_mm_s 20 # Alpha tower slow homing feedrate in mmsecond
beta_fast_homing_rate_mm_s 50 # Beta tower fast homing feedrate in mmsecond
beta_slow_homing_rate_mm_s 20 # Beta tower slow homing feedrate in mmsecond
gamma_fast_homing_rate_mm_s 50 # Gamma tower fast homing feedrate in mmsecond
gamma_slow_homing_rate_mm_s 20 # Gamma tower slow homing feedrate in mmsecond
alpha_homing_retract_mm 5 # Distance to retract from the endstop after it is hit for alphaX
beta_homing_retract_mm 5 # Distance to retract from the endstop after it is hit for betaY
gamma_homing_retract_mm 5 # Distance to retract from the endstop after it is hit for gammaZ
# Endstop debouncing options
#endstop_debounce_count 100 # Uncomment if you get noise on your endstops, default is 100
#endstop_debounce_ms 1 # Uncomment if you get noise on your endstops, default is 1 millisecond debounce
# Endstop trim options
alpha_trim 0 # Software trim for alpha stepper endstop (in mm)
beta_trim 0 # Software trim for beta stepper endstop (in mm)
gamma_trim 0 # Software trim for gamma stepper endstop (in mm)
# End of endstop config
# Delete the above endstop section and uncomment next line and copy and edit Snippetsabc-endstop.config file to enable endstops for ABC axis
#include abc-endstop.config
## Z-probe
# See httpsmoothieware.orgzprobe
zprobe.enable false # Set to true to enable a zprobe
#zprobe.probe_pin 1.28!^ # Pin probe is attached to, if NC remove the !
#zprobe.slow_feedrate 5 # Mmsec probe feed rate
#zprobe.debounce_count 100 # Set if noisy
#zprobe.fast_feedrate 100 # Move feedrate mmsec
#zprobe.probe_height 5 # How much above bed to start probe
#gamma_min_endstop nc # Normally 1.28. Change to nc to prevent conflict,
# Levelling strategy
# Example for the delta calibration strategy
#leveling-strategy.delta-calibration.enable true # Enable basic delta calibration
#leveling-strategy.delta-calibration.radius 100 # the probe radius
# Example for the delta grid leveling strategy
#leveling-strategy.delta-grid.enable true # Enable grid leveling
#leveling-strategy.delta-grid.radius 50 # Grid radius in millimeters
#leveling-strategy.delta-grid.size 7 # Grid size, must be an odd number
#leveling-strategy.delta-grid.do_home true # Whether to home before calibration
#leveling-strategy.delta-grid.save true # Whether to automatically save the grid
#leveling-strategy.delta-grid.initial_height 10 # Height at which to start probling
## Panel
# See httpsmoothieware.orgpanel
# Please find your panel on the wiki and copypaste the right configuration here
panel.enable false # true # Set to true to enable the panel code
# Example viki2 config for an azteeg miniV2 with IDC cable
panel.lcd viki2 # set type of panel
panel.spi_channel 0 # set spi channel to use P0_18,P0_15 MOSI,SCLK
panel.spi_cs_pin 0.16 # set spi chip select
panel.encoder_a_pin 3.25!^ # encoder pin
panel.encoder_b_pin 3.26!^ # encoder pin
panel.click_button_pin 2.11!^ # click button
panel.a0_pin 2.6 # st7565 needs an a0
#panel.contrast 8 # override contrast setting (default is 9)
#panel.encoder_resolution 4 # override number of clicks to move 1 item (default is 4)
#panel.button_pause_pin 1.30^ # kill/pause set one of these for the auxilliary button on viki2
#panel.back_button_pin 1.30!^ # back button recommended to use this on EXP1
panel.buzz_pin 0.25 # pin for buzzer on EXP2
panel.red_led_pin 2.8 # pin for red led on viki2 on EXP1
panel.blue_led_pin 4.29 # pin for blue led on viki2 on EXP1
panel.external_sd false # set to true to use external sd WARNING not supported.
panel.external_sd.spi_channel 0 # set spi channel the sdcard is on
panel.external_sd.spi_cs_pin 1.23 # set spi chip select for the sdcard
panel.external_sd.sdcd_pin 1.31!^ # sd detect signal (set to nc if no sdcard detect)
panel.menu_offset 1 # some panels will need 1 here
panel.menu_offset 0 # Some panels will need 1 here
panel.alpha_jog_feedrate 6000 # X jogging feedrate in mmmin
panel.beta_jog_feedrate 6000 # Y jogging feedrate in mmmin
panel.gamma_jog_feedrate 200 # Z jogging feedrate in mmmin
panel.hotend_temperature 185 # Temp to set hotend when preheat is selected
panel.bed_temperature 00 # Temp to set bed when preheat is selected
## Custom menus Example of a custom menu entry, which will show up in the Custom entry.
# NOTE _ gets converted to space in the menu and commands, is used to separate multiple commands
custom_menu.power_on.enable true #
custom_menu.power_on.name Power_on #
custom_menu.power_on.command M80 #
custom_menu.power_off.enable true #
custom_menu.power_off.name Power_off #
custom_menu.power_off.command M81 #
## Network settings
# See httpsmoothieware.orgnetwork
network.enable false # Enable the ethernet network services
network.webserver.enable true # Enable the webserver
network.telnet.enable true # Enable the telnet server
network.ip_address auto # Use dhcp to get ip address
# Uncomment the 3 below to manually setup ip address
#network.ip_address 192.168.3.222 # The IP address
#network.ip_mask 255.255.255.0 # The ip mask
#network.ip_gateway 192.168.3.1 # The gateway address
#network.mac_override xx.xx.xx.xx.xx.xx # Override the mac address, only do this if you have a conflict
## System configuration
# Serial communications configuration ( baud rate defaults to 9600 if undefined )
# For communication over the UART port, not the USBSerial port
uart0.baud_rate 115200 # Baud rate for the default hardware ( UART ) serial port
second_usb_serial_enable false # This enables a second USB serial port
#leds_disable true # Disable using leds after config loaded
#play_led_disable true # Disable the play led
# Kill button maybe assigned to a different pin, set to the onboard pin by default
# See httpsmoothieware.orgkillbutton
kill_button_enable true # Set to true to enable a kill button
kill_button_pin 2.12 # Kill button pin. default is same as pause button 2.12 (2.11 is another good choice)
#msd_disable false # Disable the MSD (USB SDCARD), see httpsmoothieware.orgtroubleshooting#disable-msd
#dfu_enable false # For linux developers, set to true to enable DFU
# Only needed on a smoothieboard
# See httpsmoothieware.orgcurrentcontrol
currentcontrol_module_enable true # Control stepper motor current via the configuration file