KOSSEL DELTA manual REPETIER and MARLIN FIRMWARE (last update 17-07-2019)

Get Started. It's Free
or sign up with your email address
KOSSEL DELTA manual REPETIER and MARLIN FIRMWARE (last update 17-07-2019) by Mind Map: KOSSEL DELTA manual REPETIER and MARLIN FIRMWARE (last update 17-07-2019)

1. Marlin: PID temp auto tune

1.1. Marlin info

1.2. example: M303 C3 E0 S100

1.2.1. M303 ... code to start PID auto tune

1.2.2. C0 ... repeat 3 times

1.2.3. E0 ... do it on hotend

1.2.4. S100 ... 100 degC target temp

1.3. example: M303 C5 E0 S210

1.4. my result

1.4.1. Kp = 21.39 Ki = 1.27 Kd = 90.24

2. MARLIN - G29 - Bed Leveling (Unified)

2.1. Marlin info

2.2. Firmware (configuration.h)

2.2.1. enable bilinear ABL #define AUTO_BED_LEVELING_UBL

2.2.2. set your Z probe trigger height #define Z_PROBE_OFFSET_FROM_EXTRUDER 0.4

2.2.3. probing times per point #define MULTIPLE_PROBING 2

2.2.4. calibration area #define DELTA_CALIBRATION_RADIUS 70.0

2.2.5. grid size [70x70mm] #define DELTA_CALIBRATION_RADIUS 70.0

3. X-Y dimensions correction and CURVATURE CORECTION influence

3.1. This is what complicates calibration on delta printers.

3.2. When we change "Diagonal_rod_lenght" it influences curvature and when we change "horizontal rod radius" we change XY movement.

3.3. That is why we need to check bouth when we are calibrating.

3.4. If we are gonna print toys and vases we can only focus on curvature corection. But if we are gonna print parts for other machines we need both.

3.5. temp (not finished yet)

3.5.1. By increasing "horizontal_rod_radius" we increase XY movement. INCREASE "diagonal_rod_lenght"

3.5.2. By increasing "diagonal_rod_lenght" we increase last three numbers in 4 point calibration. INCREASE "horizontal_rod_radius"

4. MOVEMENT CURVATURE CORECTION: Standard 4-point delta calibration MEASUREMENT

4.1. Put paper in the middle of glass.

4.2. Manually drive hot-end so low that you feel nozzle stoping the paper (Point 1) OR use Script 1.

4.2.1. Write the Z height number down.

4.3. Go to Point 2 manually OR use Script 2.

4.3.1. Write the Z height number down.

4.4. Go to Point 3 manually OR use Script 3.

4.4.1. Write the Z height number down.

4.5. Go to Point 4 manually OR use Script 4.

4.5.1. Write the Z height number down.

4.6. Lets look at the numbers! Ideal is that ALL are as close as possiable!

5. Delta printer kinematics

5.1. X, Y and Z directions on delta printer:

5.2. Delta

5.3. Zoom

6. Test end-switches

6.1. this must be confirmed before using first HOME command


6.2.1. Use M119 code to read states x_max=L X switch not covered x_max=H X switch covered

6.2.2. Firmware response on code example

6.3. MARLIN:

6.3.1. M119

6.3.2. return in log

6.3.3. open: end stop not pressed/triggered

6.3.4. "Switch" in hot end triggered > hot end is presed into the bed/glass

6.4. Test all 3 to see all are electricaly OK. 4 if you have hot end with "end stop".

7. Repetier/Marlin: EEPROM settings MECHANICAL CONSTANTS

7.1. Alt+E

7.2. Homing feedrate [mm/s]

7.2.1. 10 - first tests

7.2.2. 40 - "normal"

7.3. What are mechanical constants?

7.3.1. This are the constants that "tell" firmware what kind of mechanics we have. When they are correct printer will move correct amount in 3D space. And it will move parallel to glass. If we use Arduino board we enter them in Repetier software in EEPROM settings. If we use Soothieboard we write them in config file on SD card. (And reset board after change.)


7.4.1. delta XXL 1000 Rods: 420mm Printer example: diagonal rods length: 416,0 horizontal rod: 236.75 Rods: 450mm Printer example: diagonal rods length: 453.5 horizontal rod: 232.0 Rods: 475mm Printer 1 example: diagonal rods length: 478,0 horizontal rod: 228,0 Z max lenght: 347.2 Printer 2 example: diagonal rods length: 475,0 horizontal rod: 230,0 Z max lenght: 310.0

7.4.2. STAR 750 diagonal rods length: 350,0 horizontal rod: 180,00 Z max lenght: 182

7.4.3. XL Kossel 750 1515: DELTA_DIAGONAL_ROD: 333,5mm DELTA_EFFECTOR_OFFSET: 33,0mm DELTA_RADIUS: 161,7mm DELTA_CARRIAGE_OFFSET: 25,0mm Kossel 750 1515 - 06-11-2015: steps/mm: 80 diag. rod: 334,0 Zmax: 263,0 horizontal rod: 165,00

8. Print size dependent on rods lenght

8.1. Many times people ask me what is max print size so I made this list to clarify.

8.2. Of course it depends on rods lenght and effector type.

8.3. delta XXL

8.3.1. rods length = 410mm effector with hot end on top Zmax = cca 400mm print diameter = cca 375mm effector with hot end below Zmax = cca 345mm print diameter = cca 320mm

8.3.2. rods length = 450mm effector with hot end on top Zmax = cca 400mm print diameter = cca 375mm effector with hot end below Zmax = cca 342mm print diameter = cca 375mm

8.3.3. rods length = 475mm effector with hot end on top Zmax = cca 375mm print diameter = cca 375mm effector with hot end bellow Zmax = cca 322mm print diameter = cca 375mm

8.3.4. rods length = 500mm effector with hot end on top Zmax = cca 348mm print diameter = cca 375mm effector with hot end below Zmax = cca 295mm print diameter = cca 375mm


9.1. What is calibration of 3D delta printer?

9.1.1. 1. Printed model dimensions are correct in all 3 axis. We change DIAGONAL_ROD_LENGHT as needed.

9.1.2. 2. Hot end in center bed position "knows" where is print bed. Z-height calibration

9.1.3. 3. Hot end moves horizontaly over print bed. We change HORIZONTAL_ROD_RADUS as needed.

9.1.4. 4. Extruder in pushing correct amount of filament in hot end. We change parameter EXTRUDER1 STEPS PER MM in EEPROM.

10. Enter/edit scripts

10.1. Enter scripts

10.1.1. If we want we can enter/save scripts for faster work. So we dont need to type g-code commands so many times.

10.2. In Repetier > Config > Printer Settings > Scripts (tab)

10.3. Script 1- CENTER

10.3.1. G1 X0 Y0 Z10 G1 X0 Y0 Z5

10.4. Script 2 - X tower

10.4.1. G1 X-105 Y-65 Z10 G1 X-105 Y-65 Z5

10.5. Script 3 - Y tower

10.5.1. G1 X105 Y-65 Z10 G1 X105 Y-65 Z5

10.6. Script 4 - Z tower

10.6.1. G1 X0 Y105 Z10 G1 X0 Y105 Z5

11. X-Y dimensions correction Repetier and Marlin

11.1. In general:

11.1.1. Take a paper and draw a line. Mark center point and 2 points left and right 200mm apart.

11.1.2. We need to do this before curvature movement correction. We do it by changing DELTA_DIAGONAL_ROD / Diagonal_rod_lenght in EEPROM - Repetier firmware. http://minow.blogspot.si/

11.1.3. Manually move hot end +/- 100mm and observe how much nozzle actually travels.

11.1.4. Change DELTA_DIAGONAL_ROD / Diagonal_rod_lenght setting in EEPROM accordingly.

11.1.5. Movement is to big INCREASE Diagonal_rod_lenght Home and measure again

11.1.6. Movement is to small DECREASE Diagonal_rod_lenght Home and measure again

11.2. MARLIN

11.2.1. Change in Repetier Host program > EEPROM settings > delta radius smaller number means smaller nozzle movement (smaller print dimension)

12. Standard 4-point delta calibration SITUATION NO.1 - JUST ONE POINT IS OFF

12.1. Correct it by moving end stop lower or higher

12.2. Measure all 4 points and write it down.

12.3. Better?

12.3.1. YES Move it more or less as needed. Repeat the proces ...

12.3.2. NO Move end-stop in other direction.

13. Standard 4-point delta calibration SITUATION NO.2 - HEAD WANTS TO GO LOWER IN THE MIDDLE

13.1. Table

13.2. Situation

13.3. Decrease HORIZONTAL_ROD_RADIUS in EEPROM settings.

13.4. Home printer.

13.5. Measure all 4 points and write it down.

13.6. Repeat the proces ...

14. MARLIN: Z-height calibration (hotend/nozzle in center position)

14.1. Measure distance between nozzle and bed (glass) when hot end is in Home position

14.2. Marlin MENU info

14.3. I do it like this:

14.3.1. Measure distance from glass to nozzle and enter it here. PLUS PLAIN PAPER HEIGHT!

14.3.2. Prepare > Delta calibration > Delta settings > Height

15. Standard 4-point delta calibration SITUATION NO.3 - HEAD WANTS TO GO LOWER ON THE SIDES

15.1. Table

15.2. Situation

15.3. Increase HORIZONTAL_ROD_RADIUS in EEPROM settings.

15.4. Home printer.

15.5. Measure all 4 points and write it down.

15.6. Repeat the proces ...

16. Standard 4-point delta calibration FINISHED (ALL DISTANCES ARE SAME)

16.1. Table

16.2. In the above situation offset Zmax in EEPROM for the same number. So decrease for 1,2mm the number that is there.

16.3. Measure all 4 points and write it down.

16.4. They should be 0 or very close to 0.

17. Real life example

17.1. Table - 1. measeurement of 4 points

17.2. Point 4 (Z tower) number correction.

17.2.1. Here the nozzle is going lower than on X and Y points. So we need to lower Z tower end stop.

17.2.2. For 1mm change we need to turn the Z screw twice.

17.3. Table - 2. measeurement of 4 points

17.4. Better. But I need to do lower it more.

17.5. Table - 3. measeurement of 4 points

17.6. Better again.

17.7. lower X end stop - 1/4 screw turn rise Z end stop - 1/2 screw turn

17.8. Table - 4. measeurement of 4 points

17.9. Now tower are OK

17.10. We have concave nozzle movement. So we need to decrease HORIZONTAL ROD RADIUS parameter in EEPROM.

17.11. Repetier > Config > Firmware EEPROM Configuration

17.12. Was 170. Decrease to 168.

17.13. Table - 5. measeurement of 4 points

17.14. Better. Need to decrease more.

17.15. Was 168. Decrease to 166.

17.16. Table - 6. measeurement of 4 points

17.17. Almost perfect. Gut enough for me.

17.17.1. As you see you have to play with it. Try what makes the situation closer to ideal. It will never be perfect, but it will be good enought.

17.17.2. You dont do this many times. YOu do it ones per month or when you see nozzle is to close/far from the glass.

17.17.3. But even then you can use Z-BABYSTEPPING function on printer LCD, to rise/lower nozzle in real time (while printing).

18. Extruder - Hot End

18.1. Extruder calibration

18.1.1. This calibration is much simpler.

18.1.2. Our gool is to extrude correct length of fillament. If we manually move extruder for 100mm it needs to push/extrude 100mm of filament.

18.1.3. EXAMPLE (Dont just copy numbers. Use workflow and do your own calibration.): Filamet should be in extruder. Remove plastic tube from hot-end. Cut the filament at the end of tube. In Repetier use M302 code. (Cold extrusio alowed.) In Repetier manually move extruder for 10mm just to see if it moving and that you are using right direction. Cut filament. Manually move it for 100mm. Extruder will push filament. Cut the extruded filament and measure it. I got 51mm. So I am missing almost 100%. In EEPROM settings I need to double variable Extr. 1 steps per mm 370 -> 740 I got 103mm of filament. Let do it again. 740 -> 720 Cut filament. Manually move it for 100mm. Measure. I got 101mm. Gut enough.

18.2. Extruder PID tunning

18.2.1. M303 P0 S220

18.2.2. This will only tell you need PID numbers. We still need to enter them in EEPROM.

18.2.3. start

18.2.4. trends

18.2.5. result

18.2.6. trend before PID tunning

18.2.7. trend after PID tunning

19. End-stops adjustment

19.1. Why do we need it?

19.1.1. By changing end-stops position we influence the movement of hot end over the bed.

19.2. When there is need to move end stops here is how you do it

19.3. Zoom


19.4.1. How do we use them? - By turning the screw in CW direction (RED ARROW) end stop will phisically move UP. - Home printer. - Nozzle will move HIGHER over glass near that tower. - By turning the screw in CCW direction (BLUE ARROW) end stop will phisically move DOWN. - Home printer. - Nozzle will move LOWER over glass near that tower.


19.5.1. When you adjust end-stops close to what you want you can use software fine adjustment in EEPROM. Be careful. This numbers are in steps.

20. REPETIER: Z-height calibration (hotend/nozzle in center position)

20.1. Measure distance between nozzle and bed (glass) when hot end is in Home position

20.2. We need this distance to start setting Z-height

20.3. EEPROM (Alt+E): Z max length: change existing number with measured one + 2mm

20.3.1. We added 2mm so we alowe nozzle to go lower than bed!


20.4. Put the paper over glass.

20.5. Manually move nozzle so it touches paper (bed center)

20.5.1. First move it for 10mm.

20.5.2. When closer use 1mm.

20.5.3. When very close use 0,1mm.

20.5.4. I dont use 0,01mm.

20.6. In my case Z position it was 1,2mm.

20.6.1. This means that hotend (nozzle) would go 1,2mm bellow bed in the bed center!

20.7. Manually move nozzle left/rigt (X direction) to see what is it doint.

20.7.1. We need to determine is hotend (nozzle) moving into or away from bed.

20.7.2. Our gool of course is that movement in X and Y direction is parallel to bed.

20.8. In my case it moved a bit up when moved to X+120 and X-120 position

20.9. This means  I need to decrease Horizontal rod radius in EEPROM settings.

20.10. Try it for Y direction too.

21. Repetier Firmware: some usefull settings

21.1. LCD (Configuration.h)

21.1.1. #define FEATURE_CONTROLLER 0 no LCD

21.1.2. #define FEATURE_CONTROLLER 2 classical LCD

21.1.3. #define FEATURE_CONTROLLER 11 graphical LCD

21.2. Bed heat manager

21.2.1. Manager = 2 > Bang-Bang control SPREMENI V EEPROMU!

21.2.2. Hot end naj ima nastavitev na 3 torej PID, drugače temp močno niha.

21.3. Extruder default PREHEAT PLA



21.4. LCD: change button direction

21.5. Change printer name

21.6. LCD: "dec" message


22.1. Connecting or disconnecting a stepper motor while the driver is powered can destroy the driver. (More generally, rewiring anything while it is powered is asking for trouble.)

22.2. .

22.3. Remove power when changing "steps per mm" setting in EEPROM.

23. Stepper drivers


23.1.1. DRV8825 max 1/32 micro stepping 1/16 micro stepping (for autocalibration) modes

23.1.2. A4988 max 1/16 micro stepping modes

23.2. 1. Limit the current 2. Steps per mm

23.2.1. Why? When we buy stepper drivers they come "fully opened" and will allow to much current through motors. And it will produce a lot of heat on itself and in motor.

23.2.2. How? We limit current by setting voltage on small potentiometer on stepper driver itself.

23.2.3. (Simple way to "adjust" current limit is to test how hot heatsink is. If it is hot to touch that current is to high. I always adjust voltage on potenciometer and that observe heatsink temp. )

23.2.4. All 3 jumpers on each driver is 1/32 for the 8825's and 1/16 on the 4988's. Just 1 jumper on the most right slot is 1/16 for the 8825s.

23.2.5. DRV8825 stepper driver set poti voltage to 0,6V to limit the current Current Limit = VREF × 2 steps per mm: 200 POWER OFF MAIN PRINTER POWER WHEN CHANGING THIS SETTING extruder steps per mm: 190

23.2.6. A4988 stepper driver set poti voltage to 0,6V to limit the current Current Limit = VREF × 1.85 steps per mm: 100 POWER OFF MAIN PRINTER POWER WHEN CHANGING THIS SETTING extruder: steps per mm - 95

23.2.7. MKS TMC2100 stepper driver orient like DRV8825 YouTube Wiki default was 0,75V and I left it there

23.3. change to TMC2100 drivers

23.3.1. what to do to change to TM21000 info info orient like DRV8825 limit current set voltage to cca 0,7Vdc (0,75Vdc) set new drivers in firmware (configuration.h) In Repetier host set "steps per mm" in EEPROM to 100 run manually and check movement direction if not OK reverse motor cables of swap in firmware or change direction in firmware (configuration.h)

24. Repetier/Marlin: import EEPROM settings

24.1. If I gave you EEPROM file import it in Repetier EEPROM configuration

24.2. Open configuration

24.3. Import EEPROM data

25. Buy Kossel XL or XXL 3D printer KIT

25.1. link

25.2. XXL