1. Buy Kossel XL or XXL 3D printer KIT
1.1. link
1.2. XXL
2. WARNING
2.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.)
2.2. .
2.3. Remove power when changing "steps per mm" setting in EEPROM.
3. Stepper drivers
3.1. MICROSTEPPING INFO
3.1.1. DRV8825
3.1.1.1. max 1/32 micro stepping
3.1.1.2. 1/16 micro stepping (for autocalibration)
3.1.1.3. modes
3.1.2. A4988
3.1.2.1. max 1/16 micro stepping
3.1.2.2. modes
3.2. 1. Limit the current 2. Steps per mm
3.2.1. Why?
3.2.1.1. 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.
3.2.2. How?
3.2.2.1. We limit current by setting voltage on small potentiometer on stepper driver itself.
3.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. )
3.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.
3.2.5. DRV8825 stepper driver
3.2.5.1. set poti voltage to 0,6V to limit the current
3.2.5.2. Current Limit = VREF × 2
3.2.5.3. steps per mm: 200
3.2.5.3.1. POWER OFF MAIN PRINTER POWER WHEN CHANGING THIS SETTING
3.2.5.4. extruder steps per mm: 190
3.2.6. A4988 stepper driver
3.2.6.1. set poti voltage to 0,6V to limit the current
3.2.6.2. Current Limit = VREF × 1.85
3.2.6.3. steps per mm: 100
3.2.6.3.1. POWER OFF MAIN PRINTER POWER WHEN CHANGING THIS SETTING
3.2.6.4. extruder: steps per mm - 95
3.2.7. MKS TMC2100 stepper driver
3.2.7.1. orient like DRV8825
3.2.7.2. YouTube
3.2.7.3. Wiki
3.2.7.4. default was 0,75V and I left it there
3.3. change to TMC2100 drivers
3.3.1. what to do to change to TM21000
3.3.1.1. info
3.3.1.2. info
3.3.1.3. orient like DRV8825
3.3.1.4. limit current
3.3.1.4.1. set voltage to cca 0,7Vdc (0,75Vdc)
3.3.1.5. set new drivers in firmware (configuration.h)
3.3.1.6. In Repetier host set "steps per mm" in EEPROM to 100
3.3.1.7. run manually and check movement direction
3.3.1.7.1. if not OK reverse motor cables of swap in firmware
3.3.1.7.2. or change direction in firmware (configuration.h)
4. Repetier/Marlin: import EEPROM settings
4.1. If I gave you EEPROM file import it in Repetier EEPROM configuration
4.2. Open configuration
4.3. Import EEPROM data
5. Repetier/Marlin: EEPROM settings MECHANICAL CONSTANTS
5.1. Alt+E
5.2. Homing feedrate [mm/s]
5.2.1. 10 - first tests
5.2.2. 40 - "normal"
5.3. What are mechanical constants?
5.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.
5.3.1.1. If we use Arduino board we enter them in Repetier software in EEPROM settings.
5.3.1.2. If we use Soothieboard we write them in config file on SD card. (And reset board after change.)
5.4. MECHANICAL CONSTANTS
5.4.1. delta XXL 1000
5.4.1.1. Rods: 420mm
5.4.1.1.1. Printer example: diagonal rods length: 416,0 horizontal rod: 236.75
5.4.1.2. Rods: 450mm
5.4.1.2.1. Printer example: diagonal rods length: 453.5 horizontal rod: 232.0
5.4.1.3. Rods: 475mm
5.4.1.3.1. Printer 1 example: diagonal rods length: 478,0 horizontal rod: 228,0 Z max lenght: 347.2
5.4.1.3.2. Printer 2 example: diagonal rods length: 475,0 horizontal rod: 230,0 Z max lenght: 310.0
5.4.2. STAR 750
5.4.2.1. diagonal rods length: 350,0 horizontal rod: 180,00 Z max lenght: 182
5.4.3. XL
5.4.3.1. Kossel 750 1515: DELTA_DIAGONAL_ROD: 333,5mm DELTA_EFFECTOR_OFFSET: 33,0mm DELTA_RADIUS: 161,7mm DELTA_CARRIAGE_OFFSET: 25,0mm
5.4.3.2. Kossel 750 1515 - 06-11-2015: steps/mm: 80 diag. rod: 334,0 Zmax: 263,0 horizontal rod: 165,00
6. Print size dependent on rods lenght
6.1. Many times people ask me what is max print size so I made this list to clarify.
6.2. Of course it depends on rods lenght and effector type.
6.3. delta XXL
6.3.1. rods length = 410mm
6.3.1.1. effector with hot end on top
6.3.1.1.1. Zmax = cca 400mm
6.3.1.1.2. print diameter = cca 375mm
6.3.1.2. effector with hot end below
6.3.1.2.1. Zmax = cca 345mm
6.3.1.2.2. print diameter = cca 320mm
6.3.2. rods length = 450mm
6.3.2.1. effector with hot end on top
6.3.2.1.1. Zmax = cca 400mm
6.3.2.1.2. print diameter = cca 375mm
6.3.2.2. effector with hot end below
6.3.2.2.1. Zmax = cca 342mm
6.3.2.2.2. print diameter = cca 375mm
6.3.3. rods length = 475mm
6.3.3.1. effector with hot end on top
6.3.3.1.1. Zmax = cca 375mm
6.3.3.1.2. print diameter = cca 375mm
6.3.3.2. effector with hot end bellow
6.3.3.2.1. Zmax = cca 322mm
6.3.3.2.2. print diameter = cca 375mm
6.3.4. rods length = 500mm
6.3.4.1. effector with hot end on top
6.3.4.1.1. Zmax = cca 348mm
6.3.4.1.2. print diameter = cca 375mm
6.3.4.2. effector with hot end below
6.3.4.2.1. Zmax = cca 295mm
6.3.4.2.2. print diameter = cca 375mm
7. Delta printer kinematics
7.1. X, Y and Z directions on delta printer:
7.2. Delta
7.3. Zoom
8. Test end-switches
8.1. this must be confirmed before using first HOME command
8.2. REPETIER:
8.2.1. Use M119 code to read states
8.2.1.1. x_max=L
8.2.1.1.1. X switch not covered
8.2.1.2. x_max=H
8.2.1.2.1. X switch covered
8.2.2. Firmware response on code example
8.3. MARLIN:
8.3.1. M119
8.3.2. return in log
8.3.3. open: end stop not pressed/triggered
8.3.4. "Switch" in hot end triggered > hot end is presed into the bed/glass
8.4. Test all 3 to see all are electricaly OK. 4 if you have hot end with "end stop".
9. Enter/edit scripts
9.1. Enter scripts
9.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.
9.2. In Repetier > Config > Printer Settings > Scripts (tab)
9.3. Script 1- CENTER
9.3.1. G1 X0 Y0 Z10 G1 X0 Y0 Z5
9.4. Script 2 - X tower
9.4.1. G1 X-105 Y-65 Z10 G1 X-105 Y-65 Z5
9.5. Script 3 - Y tower
9.5.1. G1 X105 Y-65 Z10 G1 X105 Y-65 Z5
9.6. Script 4 - Z tower
9.6.1. G1 X0 Y105 Z10 G1 X0 Y105 Z5
10. End-stops adjustment
10.1. Why do we need it?
10.1.1. By changing end-stops position we influence the movement of hot end over the bed.
10.2. When there is need to move end stops here is how you do it
10.3. Zoom
10.4. MECHANICAL ADJUSTMENT
10.4.1. How do we use them?
10.4.1.1. - 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.
10.4.1.2. - 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.
10.5. SOFTWARE ADJUSTMENT
10.5.1. When you adjust end-stops close to what you want you can use software fine adjustment in EEPROM.
10.5.1.1. Be careful. This numbers are in steps.
11. GENERAL IDEA
11.1. What is calibration of 3D delta printer?
11.1.1. 1. Printed model dimensions are correct in all 3 axis.
11.1.1.1. We change DIAGONAL_ROD_LENGHT as needed.
11.1.2. 2. Hot end in center bed position "knows" where is print bed.
11.1.2.1. Z-height calibration
11.1.3. 3. Hot end moves horizontaly over print bed.
11.1.3.1. We change HORIZONTAL_ROD_RADUS as needed.
11.1.4. 4. Extruder in pushing correct amount of filament in hot end.
11.1.4.1. We change parameter EXTRUDER1 STEPS PER MM in EEPROM.
12. REPETIER: Z-height calibration (hotend/nozzle in center position)
12.1. Measure distance between nozzle and bed (glass) when hot end is in Home position
12.2. We need this distance to start setting Z-height
12.3. EEPROM (Alt+E): Z max length: change existing number with measured one + 2mm
12.3.1. We added 2mm so we alowe nozzle to go lower than bed!
12.3.2. BE CAREFULL NOW YOU CAN HIT GLASS WITH NOZZLE
12.4. Put the paper over glass.
12.5. Manually move nozzle so it touches paper (bed center)
12.5.1. First move it for 10mm.
12.5.2. When closer use 1mm.
12.5.3. When very close use 0,1mm.
12.5.4. I dont use 0,01mm.
12.6. In my case Z position it was 1,2mm.
12.6.1. This means that hotend (nozzle) would go 1,2mm bellow bed in the bed center!
12.7. Manually move nozzle left/rigt (X direction) to see what is it doint.
12.7.1. We need to determine is hotend (nozzle) moving into or away from bed.
12.7.2. Our gool of course is that movement in X and Y direction is parallel to bed.
12.8. In my case it moved a bit up when moved to X+120 and X-120 position
12.9. This means I need to decrease Horizontal rod radius in EEPROM settings.
12.10. Try it for Y direction too.
13. MARLIN: Z-height calibration (hotend/nozzle in center position)
13.1. Measure distance between nozzle and bed (glass) when hot end is in Home position
13.2. Marlin MENU info
13.3. I do it like this:
13.3.1. Measure distance from glass to nozzle and enter it here. PLUS PLAIN PAPER HEIGHT!
13.3.2. Prepare > Delta calibration > Delta settings > Height
14. X-Y dimensions correction Repetier and Marlin
14.1. In general:
14.1.1. Take a paper and draw a line. Mark center point and 2 points left and right 200mm apart.
14.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.
14.1.2.1. http://minow.blogspot.si/
14.1.3. Manually move hot end +/- 100mm and observe how much nozzle actually travels.
14.1.4. Change DELTA_DIAGONAL_ROD / Diagonal_rod_lenght setting in EEPROM accordingly.
14.1.5. Movement is to big
14.1.5.1. INCREASE Diagonal_rod_lenght
14.1.5.2. Home and measure again
14.1.6. Movement is to small
14.1.6.1. DECREASE Diagonal_rod_lenght
14.1.6.2. Home and measure again
14.2. MARLIN
14.2.1. Change in Repetier Host program > EEPROM settings > delta radius
14.2.1.1. smaller number means smaller nozzle movement (smaller print dimension)
15. MOVEMENT CURVATURE CORECTION: Standard 4-point delta calibration MEASUREMENT
15.1. Put paper in the middle of glass.
15.2. Manually drive hot-end so low that you feel nozzle stoping the paper (Point 1) OR use Script 1.
15.2.1. Write the Z height number down.
15.3. Go to Point 2 manually OR use Script 2.
15.3.1. Write the Z height number down.
15.4. Go to Point 3 manually OR use Script 3.
15.4.1. Write the Z height number down.
15.5. Go to Point 4 manually OR use Script 4.
15.5.1. Write the Z height number down.
15.6. Lets look at the numbers! Ideal is that ALL are as close as possiable!
16. Standard 4-point delta calibration SITUATION NO.1 - JUST ONE POINT IS OFF
16.1. Correct it by moving end stop lower or higher
16.2. Measure all 4 points and write it down.
16.3. Better?
16.3.1. YES
16.3.1.1. Move it more or less as needed.
16.3.1.2. Repeat the proces ...
16.3.2. NO
16.3.2.1. Move end-stop in other direction.
17. Standard 4-point delta calibration SITUATION NO.2 - HEAD WANTS TO GO LOWER IN THE MIDDLE
17.1. Table
17.2. Situation
17.3. Decrease HORIZONTAL_ROD_RADIUS in EEPROM settings.
17.4. Home printer.
17.5. Measure all 4 points and write it down.
17.6. Repeat the proces ...
18. Standard 4-point delta calibration SITUATION NO.3 - HEAD WANTS TO GO LOWER ON THE SIDES
18.1. Table
18.2. Situation
18.3. Increase HORIZONTAL_ROD_RADIUS in EEPROM settings.
18.4. Home printer.
18.5. Measure all 4 points and write it down.
18.6. Repeat the proces ...
19. Standard 4-point delta calibration FINISHED (ALL DISTANCES ARE SAME)
19.1. Table
19.2. In the above situation offset Zmax in EEPROM for the same number. So decrease for 1,2mm the number that is there.
19.3. Measure all 4 points and write it down.
19.4. They should be 0 or very close to 0.
20. X-Y dimensions correction and CURVATURE CORECTION influence
20.1. This is what complicates calibration on delta printers.
20.2. When we change "Diagonal_rod_lenght" it influences curvature and when we change "horizontal rod radius" we change XY movement.
20.3. That is why we need to check bouth when we are calibrating.
20.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.
20.5. temp (not finished yet)
20.5.1. By increasing "horizontal_rod_radius" we increase XY movement.
20.5.1.1. INCREASE "diagonal_rod_lenght"
20.5.2. By increasing "diagonal_rod_lenght" we increase last three numbers in 4 point calibration.
20.5.2.1. INCREASE "horizontal_rod_radius"
21. Real life example
21.1. Table - 1. measeurement of 4 points
21.2. Point 4 (Z tower) number correction.
21.2.1. Here the nozzle is going lower than on X and Y points. So we need to lower Z tower end stop.
21.2.2. For 1mm change we need to turn the Z screw twice.
21.3. Table - 2. measeurement of 4 points
21.4. Better. But I need to do lower it more.
21.5. Table - 3. measeurement of 4 points
21.6. Better again.
21.7. lower X end stop - 1/4 screw turn rise Z end stop - 1/2 screw turn
21.8. Table - 4. measeurement of 4 points
21.9. Now tower are OK
21.10. We have concave nozzle movement. So we need to decrease HORIZONTAL ROD RADIUS parameter in EEPROM.
21.11. Repetier > Config > Firmware EEPROM Configuration
21.12. Was 170. Decrease to 168.
21.13. Table - 5. measeurement of 4 points
21.14. Better. Need to decrease more.
21.15. Was 168. Decrease to 166.
21.16. Table - 6. measeurement of 4 points
21.17. Almost perfect. Gut enough for me.
21.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.
21.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.
21.17.3. But even then you can use Z-BABYSTEPPING function on printer LCD, to rise/lower nozzle in real time (while printing).
22. Extruder - Hot End
22.1. Extruder calibration
22.1.1. This calibration is much simpler.
22.1.2. Our gool is to extrude correct length of fillament.
22.1.2.1. If we manually move extruder for 100mm it needs to push/extrude 100mm of filament.
22.1.3. EXAMPLE (Dont just copy numbers. Use workflow and do your own calibration.):
22.1.3.1. Filamet should be in extruder.
22.1.3.2. Remove plastic tube from hot-end.
22.1.3.3. Cut the filament at the end of tube.
22.1.3.4. In Repetier use M302 code. (Cold extrusio alowed.)
22.1.3.5. In Repetier manually move extruder for 10mm just to see if it moving and that you are using right direction.
22.1.3.6. Cut filament.
22.1.3.7. Manually move it for 100mm.
22.1.3.8. Extruder will push filament.
22.1.3.9. Cut the extruded filament and measure it.
22.1.3.10. I got 51mm.
22.1.3.11. So I am missing almost 100%.
22.1.3.12. In EEPROM settings I need to double variable Extr. 1 steps per mm
22.1.3.12.1. 370 -> 740
22.1.3.13. I got 103mm of filament.
22.1.3.14. Let do it again.
22.1.3.15. 740 -> 720
22.1.3.16. Cut filament.
22.1.3.17. Manually move it for 100mm.
22.1.3.18. Measure.
22.1.3.19. I got 101mm.
22.1.3.19.1. Gut enough.
22.2. Extruder PID tunning
22.2.1. M303 P0 S220
22.2.2. This will only tell you need PID numbers. We still need to enter them in EEPROM.
22.2.3. start
22.2.4. trends
22.2.5. result
22.2.6. trend before PID tunning
22.2.7. trend after PID tunning
23. Repetier Firmware: some usefull settings
23.1. LCD (Configuration.h)
23.1.1. #define FEATURE_CONTROLLER 0 no LCD
23.1.2. #define FEATURE_CONTROLLER 2 classical LCD
23.1.3. #define FEATURE_CONTROLLER 11 graphical LCD
23.2. Bed heat manager
23.2.1. Manager = 2 > Bang-Bang control SPREMENI V EEPROMU!
23.2.2. Hot end naj ima nastavitev na 3 torej PID, drugače temp močno niha.
23.3. Extruder default PREHEAT PLA
23.3.1. #define UI_SET_PRESET_EXTRUDER_TEMP_PLA 230
23.3.2. #define UI_SET_PRESET_HEATED_BED_TEMP_PLA 60
23.4. LCD: change button direction
23.5. Change printer name
23.6. LCD: "dec" message
24. Marlin: PID temp auto tune
24.1. Marlin info
24.2. example: M303 C3 E0 S100
24.2.1. M303 ... code to start PID auto tune
24.2.2. C0 ... repeat 3 times
24.2.3. E0 ... do it on hotend
24.2.4. S100 ... 100 degC target temp
24.3. example: M303 C5 E0 S210
24.4. my result
24.4.1. Kp = 21.39 Ki = 1.27 Kd = 90.24
25. MARLIN - G29 - Bed Leveling (Unified)
25.1. Marlin info
25.2. Firmware (configuration.h)
25.2.1. enable bilinear ABL
25.2.1.1. #define AUTO_BED_LEVELING_UBL
25.2.2. set your Z probe trigger height
25.2.2.1. #define Z_PROBE_OFFSET_FROM_EXTRUDER 0.4
25.2.3. probing times per point
25.2.3.1. #define MULTIPLE_PROBING 2
25.2.4. calibration area
25.2.4.1. #define DELTA_CALIBRATION_RADIUS 70.0
25.2.5. grid size [70x70mm]
25.2.5.1. #define DELTA_CALIBRATION_RADIUS 70.0