Why should I upgrade stock firmware?
Anycubic Kossel Linear Plus Firmware 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 Anycubic Kossel 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
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:
#define ANYCUBIC_KOSSEL_ENABLE_BED 2 to:
0) No heated bed:
#define ANYCUBIC_KOSSEL_ENABLE_BED 0
1) Standard heated bed with a black sticker:
#define ANYCUBIC_KOSSEL_ENABLE_BED 1
2) Ultrabase + heated bed
#define ANYCUBIC_KOSSEL_ENABLE_BED 2
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
You can define maximum acceleration values in this part of the configuration file.
Just keep in mind, that if you want to print with higher acceleration, the FW will not allow you to do that.
I consider these values as a “failsafe” against too high acceleration values.
4.10. Restore autoleveling
This is almost critical.
For anyone using another FW, check if this line is defined.
It ensures that after a reboot, the printer will still use values from your delta calibration.
There is also another solution:
Placing M420 S1 after G28 in start G code in your slicer
4.11. Homing speed
Homing speed is a crucial setting. It allows you to lower homing speed making homing and calibration more precise.
Instead of a fast homing and “crushing” into end stops you can slowly approach and trigger them.
4.12. Probing speed
XY_PROBE_SPEED – XY movement between probing points in mm/minute
Z_PROBE_SPEED_FAST HOMING_FEEDRATE_Z – slow probing speed is equal to HOMING_FEEDRATE_Z
Z_PROBE_SPEED_SLOW – slow probing speed set up to a one third of Z_PROBE_SPEED_FAST
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.
Is also auto levels your bed.
7. Hotend PID calibration
You also should perform PID calibration to get rid of any thermal runaway problems.