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

Kossel Linear Plus – define it: #define ANYCUBIC_KOSSEL_PLUS

Standard Kossel – comment the line: //#define ANYCUBIC_KOSSEL_PLUS

4.2. Z probe type

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

Choose the correct version of your probe.

4.3. Bed type

Make sure you have chosen the correct bed type.
If you want to modify it, simply change #define ANYCUBIC_KOSSEL_ENABLE_BED 2 to:
1) no heated bed:
#define ANYCUBIC_KOSSEL_ENABLE_BED 0
2) standard heated bed with a sticker:
#define ANYCUBIC_KOSSEL_ENABLE_BED 1

4.4. Kossel Linear Plus – printable radius, rod lenght

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.

As you can see, there is a 230 mm radius in Marlin you have downloaded and there is a why:
Before the actual printing starts I perform a wipe routine (start g code in Cura slicer) which consists of these steps:
1) Autohome
2) Start heating the bed
3) Start heating the extruder to 180°C
4) Move nozzle outside the bed (position near one one the steppers, Z = 0)
5) Once the bed has reached it’s desired temp start heating extruder to the desired temperature
6) Extrude 10 mm of filament OUTSIDE the bed
7) Wipe the nozzle using the edge of the bed
8) Start printing

If you do not really care about wipe routines, just simply calculate your printable radius and modify the value.

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

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 (bed calibration)

7. Hotend PID calibration

You also should perform PID calibration.