Anycubic Kossel Marlin 2.0 firmware

Why should I do that?

Marlin 2.0 offers better performance and more options over the stock Anycubic Kossel FW.
Delta calibration works much better then stock bed calibration.
You can easily make changes in FW.
Configuration files have been created for original Trigorilla board and original drivers which come with the printer.

1. Download Marlin

It was time to move on after announcing bugfix Marlin 2.0 and upgrading the printer to E3D V6 extruder.
I have been testing this firmware almost every day this week with no issues.
You can find 2 different configurations of PID values in the file.
One is for original V5 J-Head and the second is for E3D V6 extruder + new extruder fan.

Configuration files are modified for Anycubic Kossel Linear Plus with original Trigorilla board and steppers.
You can easily modify them for another board such as SKR 1.3 or newer stepper drivers.

Official Marlin 2.0.0 version. 02. 12. 2019 (US 12/02/2019) version

Older version with some bugs – baby stepping, lcd sometimes freezes.

If you want to use an older Marlin version, you can download 1.1.9, but steps in this guide follow only Marlin 2.0 installation.
Flashing Marlin 1.1.9 is similar, but the calibration steps are a little bit different.

Original Anycubic Kossel Linear Plus FW

2. Download and install Arduino IDE

I prefer direct download from
Arduino IDE installed from the Windows Store is known for issues (I hope that they will fix it ASAP).
Click on Download Arduino IDE, choose a version for you operating system, download and install

3. Connect Kossel to PC via USB

Use the USB cable that came with the printer or a standard USB-B USB-A cable and connect Kossel to your PC.
Turn on the Kossel.
Go to device manager (WIN10 – right mouse click on windows logo, device manager) and you should see Silicon Labs CP210x device under COM ports.

4. Modify Configuration.h

Go to the folder you have downloaded Marlin to (Downloads usually) and extract zip archive.

For Marlin 2.0 go to Kossel-Marlin-2-0-x-LPomykal then to Marlin folder and open Marlin.ino in Arduino IDE.

4.1. Kossel type

Firmware is prepared for a Kossel Linear Plus, but if you want to use it for a pulley version, just modify this one line.

Kossel Linear Plus – define it:

Kossel Pulley version – comment the line:

4.2. Autoleveling probe type

This is the standard autoleveling probe which comes with the printer since 2017.
If you have received another type (microswitch is different), your probe is probabably type 1.

If you have a multimeter, you can easily check that. 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.

Choose the correct version probe version.

4.3. Bed type

Make sure you have chosen the correct bed type.
If you want to modify it, simply change:

0) No heated bed:

1) Standard heated bed with a black sticker:

2) Ultrabase + heated bed

4.4. Printable radius

Here comes the tricky part:
Kossel Linear Plus comes with a heated bed with a 230 mm outer diameter.
Ultrabases for the Kossel are made in two outer diameters: 200 mm and 240 mm.

In my case I have a standard 230 mm heated bed with a mouted 240 mm Ultrabase and that means that my printable radius is: (240 mm – unreachable space (10 mm usually))/2 = 115 mm.

Please note that DELTA_* must be defined as a floating point number!
Do not forget to add .0 behind each value.

4.5. Rod lenght

Measure the correct lenght of your rods by disassebling and measuring them with a sliding meter axis to axis – hole diameter and correct the value

4.6. Probe edge

If your printer is probing very near the edges of the bed, you could modify this parameter.
It is a minimal distance of the probe’s microswich from the edge of the bed.

4.7. Safe zone – moving the head down after G28 – home

This variable causes the printing head to move approx. 50 mm down after homing at the end of a printing session.

If you are going to print tall models, please comment this line:

4.8. Maximum speed

A standard Kossel without corner reinforcements, belts well tensioned can do about 60mm/s max.
If you have these upgrades, you can easily achieve 100mm/s and even larger speed.

4.9. Maximum acceleration

5. Upload new Marlin FW

In Arduino IDE click on Tools and choose Mega 2560 as a board and ATmega2560 as a processor.
Pick the correct COM port (you can check that in device manager, com ports).

Click on Projects and upload.
Or simply use Ctrl + U shortcut.

The moment you see Upload complete you can disconnect the printer and calibrate your bed.

6. Delta calibration

This important calibration measures each end stop’s position and arm lenght.

Kossel Bed Calibration (Marlin FW)

7. Hotend PID calibration

You also should perform PID calibration.

Kossel PID calibration


  1. Hi Lukas,

    thanks a lot for your guide!

    Do you know what setting I have to use for and SKR 1.3 with TMC2209 (V3 from Fysetc)?

    And is there a newer configuration as Marlin is already on 2.0.3?

    Best regards

    • Hi, you are welcome.
      Look for a bigtreetech GIT, look for a SKR manual.
      Compare Fysetc and Bigtreetech driver pins, set it to UART and connect it by the manual.

      There is no need to upgrade from 2.0.0 to 2.0.3, there is no major difference.

Leave a Reply

Your email address will not be published.