Anycubic Kossel Klipper configuration

/ / / Anycubic Kossel Klipper configuration
Klipper | Kossel

This article will guide you through Anycubic Kossel Klipper configuration.
Follow the steps and create your own configuration.

Klipper uses printer.cfg configuration file which is something similar to Marlin configuration and configuration_adv files.
This file can be easily modified with text editors, such as Pspad, or NotePad and uploaded to Raspberry via SFTP in Total Commander.

This article is about stock setup – stock A4988 drivers and Trigorilla board, but you can also download configuration file prepared for UART TMC drivers or for a SKR board.

1. Download one of these configuration files

Download configuration file for your printer.
I do not have every driver type or board, but I consider Trigorilla, SKR, A4988, TMC2208/TMC2209 as a standard these days.
You can learn more about configuration files HERE on Klipper GIT

If you have TMC2209, download some of the TMC2208 configuration files and just simply rename all TMC2208 definitions to TMC2209.

Download configuration file:

I have kept these files so you can use configuration from them or use them on older Klipper instances.
Stock board (Trigorilla) and stock (A4988) drivers

Stock board (Trigorilla) and TMC2208 DIY drivers
Stock board (Trigorilla) and TMC2208 UART drivers
SKR 1.3 and TMC2208 UART drivers

2. Check your pin/port definition

Here is a simplified pin schematic for a standard Trigorilla board.
If you want to use UART, follow this guide CLICK HERE

3. Modify configuration file (optional)

These steps are optional.
If you have the same configuration as one of my configuration files, you can skip these steps.
If you want to learn more about Klipper configuration files, open the printer.cfg file with a text editor such as NotePad+, PSPad.

I have tried to make this as simple as possible.
On the left side you will see a configuration from printer.cfg file and description on the right side.

3.1. Probe type

This part is configured for original autoleveling Z probe type 2.
Older Kossels can be equipped with type 1 probe which is NO – normally open type which means that you have to invert logic:
pin: !ar18



pin– probe is connected to pin 18, which is a standard Z probe pin
z offset – Z height of your probe (when it triggers)
samples – how many times will be each leveling point measured
speed – probing speed
sample_retract_dist – Z probe retraction distance between samples

If you are not sure about your probe type, check it with a multimeter:
Probe 2 is a NC – normally closed which means that it is normally switched on, so you will read a very low resistance or you can beep the contacts – if it beeps without touching the probe, it is type 2.

3.2. Stepper driver

Klipper defines pins and all other stepper settings in each stepper driver block. 
The code you can see below is a stepper definition for standard A4988 drivers and Trigorilla board.



step_pin – step pin
dir_pin – direction pin
enable_pin – enable pin
step distance – mm/s per one step
step distance was changed to rotation distance
endstop_pin – end stop pin for each axis

3.3. Stepper driver

This is a standard configuration for a stock extruder.



step_distance – mm / step, magic number
heater_pin – board pin for heating element
sensor_type – thermistor type
sensor_pin – thermistor pin
control – type of control
pid values – hot end PID values
min_extrude_temp – extruder can move only above this temperature
min_temp – minimal hot end temperature
max_temp – maximal hot end temperature

3.4. Bed heater



heater_pin – bed heater pin 
sensor_type – thermistor type
sensor_pin – thermistor pin 
control – type of control 
min_temp – minimal bed temperature
max_temp – maximal bed temperature

3.5. Cooling fan



pin – Trigorilla fan pin (in this case fan 0 = D9 = ar9)
kick_star_time – start fan after 0.2 s of printing

3.5. Heater (hot end / heatsink) fan

If you want your extruder fan to be quieter, you have two options:
Follow this fan upgrade guide CLICK HERE
Or set the speed to a lower value and perform a PID calibration.



pin – Trigorilla fan pin
heater – what heater does the fan cool down
heater_temp – fan starts working at this heater temperature
fan_ speed – 1.0 means 100% of the maximal fan speed

3.6. Output pins

You can use more output pins, you only need to define them.



You can define another output pins.
In this case:
[output_pin BEEPER_pin] – beeper pin

3.7. MCU - board type



Trigorilla is basically a modified Arduino Mega

3.8. Printer configuration

As you can see below, our printer has a delta kinematics with a 120 mm radius (240 mm bed) and the maximal values for velocity, acceleration and z velocity are defined here.



kinematics – printer type 
max_velocity – maximal velocity failsafe 
max_accel – maximal acceleration failsafe 
max_z_velocity – maximal Z axis velocity failsafe 
delta_radius – bed radius 
minimum_z_position – maximal deviation from the printer height

3.9. Delta calibration



radius – bed calibration radius
speed – calibration speed
horizontal move_z – z move between probing points

3.10. Bed mesh



speed – travel speed between probing points
horizontal_move_z – z move between calibration points
mesh_radius – calibration radius
mesh_origin – where the center of the bed is
round_probe_count – how many points will be measured

3.11. Driver cooling fan



pin – fan pin, in this case ar7 = D7 = FAN1 connector
max_power – PWM value 0-1.0 
kick_start_time – start after xx seconds
idle_timeout – end after xx seconds
heater – in this example extruder – it starts heating up, fan starts working

Similar Posts


  1. hello lukàs
    I took out my kossel since, shortly I did the klipper update I have version v0.9.1 -502-g33bc82D should I modify my .cfg file and use the new one that you put on your site? (tmc2208UART on my board) you say that the old one is obsolete but it works do I have any interest in replacing my .cfg
    thank you for your support from the roof this time

  2. Hello, some issues, I bought a RPI to be trendy and I had installed Octoprint+Klipper with Git configuration and autoleveling taken from your description. unfortunately it doesn’t work.
    with GIT configuration and autoleveling taken from your description. Unfortunately it doesn’t work.

    2022-01-15 16:56:06,607 – octoprint.util.comm – INFO – Changing monitoring state from “Starting” to “Printing”
    2022-01-15 16:57:19,262 – octoprint.plugins.klipper – ERROR – Move out of range: -54.672 95.203 -0.025 [0.000]

    2022-01-15 16:57:19,266 – octoprint.util.comm – WARNING – Received an error from the printer’s firmware: Move out of range: -54.672 95.203 -0.025 [0.000]
    | Last lines in terminal:
    | Recv: B:100.3 /100.0 T0:253.0 /250.0

    1. Hi, post your printer.cfg file.
      Can you move to X Y?
      Is the issue the Z value?

      Double check this value, it is possible that you need to adjust it.
      minimum_z_position: -5

      It basically tells this:
      How many mm can the printhead move down from end stops:
      Maximal Z movement = position_endstop – minimum_z_position

      For example with these values:
      position_endstop: 300
      minimum_z_position: -5

      You would get:
      Maximal Z movement = 305 mm (which means that the nozzle can move 305 mm in Z direction from end stops).

    2. 1st solved with recalibration,
      2nd problem:

      Error reported by printer
      Your printer’s firmware reported an error.
      Due to that the ongoing print job will be cancelled.
      Reported error: Move exceeds maximum extrusion (0.751mm^2 vs 0.640mm^2)

        1. All right, I redownloaded the Git example config, uncomment the -z probe, horizontal_move_z: 20 and minimum_z_position: -5.
          Added a new line to [extruder]: max_extrude_cross_section: 4.

          After restart I made a DELTA_CALIBRATE and voilà 🙂 it’s working now.

          I need to check some accelerations and if the extrusion length is set correctly.
          (Raspberry Pi 3 B+, Kossel linear plus 2017, probe nr.2)

          kinematics: delta
          max_velocity: 500
          max_accel: 3000
          max_z_velocity: 200
          #delta_radius: 134.4
          # if you want to DELTA_CALIBRATE you may need that
          minimum_z_position: -5

          rotation_distance: 33.333

          Another aspect, sometimes idling/buffering a 0.5-1s (maybe the octolaps?).


  3. Hi,

    In the terminal when giving the command: “STATUS” the printer status is halted.
    The reason is: Recv: // Option ‘rotation_distance’ in section ‘stepper_a’ must be specified
    After some Googleing I see that klipper has changed from using “step_distance” to “rotation_distance”.
    So for my understanding the “printer.cfg” file must be changed for all new users and the ones that update their Klipper to the latest version?

    Is this right what i’m saying and is there a simple solution to recalculate from step_distance to rotation_distance?

    1. Hi,

      And on top of that they also have stopt with the arduino pin names.
      So right now the whole printer.cfg is useless with the latest klipper version?

      Best regards,


      1. Hi Raymond, I am aware of that problem (I have also updated Klipper on my Kossel).
        I have a working configuration file, give me a few days and I will upload it.
        If I won’t reply on Monday, please remind me to.

  4. Hai.. my home position is X: -2 Y: -0 Z: 279.01
    why I got negative value specially in X:-2

    how to solved this? (to get zero position X and Y)

      1. until now I have not found a solution. I have tried delta calibration but still no luck

  5. hi lukas,
    i’ve uploaded the printer.cfg file, extruder work, hotend work, bed work, but when i’ve tried to home the axis the steppers make a big noise and a lot of vibration (VRRRRR) and they doesn’t stop at the switch. where i’m wrong? is a stepper problem?

    1. Hi, provide more informations.
      I have 2-3 different printer.cfg files on this website for different motherboard and driver configuration.

      I do not now which one you used and what parts you have in your printer.

  6. I use your Stock board (Trigorilla) and TMC2208 DIY drivers but added [controller_fan my_controller_fan]. But I got a conflict [output_pin my_pin]. Do this serve the same function? Which one should I use?

  7. hi,
    im a bit confused about z probe configuration. a month ago i crushed my original (old type) z probe because of no reaction. now i have type 2, everything configured as described, but when i start DELTA_CALIBRATE and try to hit the probe with my finger to avoid breaking it again, nothing happens.
    any idea?

    1. It is possible that Klipper ignores the probe some part of the height.
      But I am not really sure, I have never tried it.

  8. Hi there,
    thank you for the great tutorial. Two Questions/Comments:

    1. In 2.2 is written “dir_pin: ar55”. Your config says “dir_pin: !ar55”. Maybe a typo?
    2. In 2.2 is written “round_probe_count: 9”. Your downloadable config uses “round_probe_count: 5”. A probe_count of 5 seems a bit low…

    1. Sorry, got the number in my posting wrong: the probe count value is in 2.10 🙂

    2. Hi, thank you!
      Yes, those are typos, I have about 5 different configs right know…
      This is correct for stock drivers: dir_pin: !ar55.
      For TMC drivers: dir_pin: ar55.

      I have used 5 points, because it is enough for most of these printers.

    3. For the 2208’s on an SKR 1.3, have you already setup everything in the config files for UART?

  9. So I’ve got this working except the z-probe doesn’t trigger Klipper to stop when using assisted bed leveling. I have probe version 2. Any help would be greatly appreciated.

    1. Stop what?
      Does it crash into the bed or?…

      Also there are 3 different configuration files on my page…
      Which one do you use?

      And also always use only DELTA_CALIBRATE with delta printers.

      1. I see. Sorry, I was being silly; I just assumed you could use the assisted bed leveling to level the bed.

Leave a Reply

Your email address will not be published. Required fields are marked *