The following instructions will allow you to manually calibrate your delta printer. You will need some way to communicate with the printer via a slicer's GCODE terminal. The instructions are for smoothie firmware, but should work for marlin as well. Most of the tutorial is based off this youtube video https://www.youtube.com/watch?v=tDLbqLve128. The video is quite long, so I recommend reading the process to save time, but if reading the tutorial below isn't clear, the video should hopefully clarify things better.
Set the Z height
Home, with G28 in the GCODE terminal.
Jog the head down to the center of the bed and set it at the 0 height position ( You should be able to just slide a piece of paper between the hotend and bed plate, it should feel like it's dragging ever so slightly ).
Type M306 Z0 in the terminal.
Home again, with G28 in the terminal.
Round and round we go
The most annoying part of this calibration is the repetitive nature of calibrating each tower. When you change the setting on one it can change the other towers. So please be patient and just keep at it, took me almost an hour to do my first calibration.
For each tower, jog the head down and set it at the Z0 height position in front of the tower (Use the tower position g-codes below). You want the hot end to just slightly touch the bed. You can test this by using a piece of paper and sliding it between the hotend and bed, test the height by moving at 0.1mm increments up or down in the Z direction. You should feel the paper just get caught by the hotend when you slide the paper back and forth. When you do stop and check the height with the next command.
Type M114 in the terminal to see the Z position number. ( X:77.94 Y:-45.00 Z:0.33 E:0.0 )
In the terminal, Type M666 it should return something similar to: X: -0.200 Y: -0.110 Z: -0.200. Using the Z number from the M114 command add or minus that amount from the tower postion you are tuning. For example, we are tuning the X tower, M666 shows us X: -0.200 Y: -0.110 Z: -0.200. We got 0.33 with the paper test (M114) command. ( -0.2 + 0.33 = 0.13) tune the appropriate tower endstop offset value by entering M666 X/Y/Znnn where nnn is the Z position you saw from the M114 command ( M666 X0.13 ).
Keep repeating this process until all towers pass the paper test when you home to height 0 for each tower.
When all 3 carriages are at the same height and pass the paper test, we can finally set the center.
Tune your center
In the terminal, use a G1 X0 Y0 Z5 F6000. The hotend should be 5mm above the bed, again using the same paper test as before, jog slowly down by 1mm increments 5 times to get to Z0.
Please pay attention to how you arrived to the bed.
- If the nozzle passes the paper test and landed perfectly at Z=0 then you are done.
- If the nozzle is above the surface at Z=0, then you need to increase Horizontal radius. What we're trying to do is make sure the effector is always traveling flat.
- Check to see what your Arm Radius is M665 it should return something like: ( READ: L: 270.0000 R: 144.2241 Max Z 337.170 ). With R:nnn, being the Radius.
- Adjust your arm radius with M665 Rnnn where nnn is the number. You should go up by increments of 1. Eventually you might want to do smaller increments when you start to get closer to finalizing everything, such as, 0.5 or even 0.25 incrememnts.
- You'll need to go back and checking all the towers. This time around, you'll add the same amount of offset to all three instead of doing each one individually. For example, (starting with m666 X1 Y-1 Z2) go to the Z tower position, doing the paper test, you have to adjust that tower height by +0.1mm, then you should add 0.1mm to all towers offset (changing it to m666 X1.1 Y-0.9 Z2.1). Remember, they are all on the same plane. Repeat the same process for each tower to double check that's the case. If for some reason they are all out of alignment again, just repeat the paper test as you did before until it all on the same plain again.
- If the nozzle touches the bed before Z=0, (the nozzle is touching the bed very deeply almost going through it) then you'll need to decrease Horizontal radius and go back and retest the towers. Remember this time you are adding the difference to all 3 towers.
Repeat, repeat, repeat
Repeat this process until all 4 point are aligned. This can take a bit of time, maybe a half hour depending on how off your machine is.
When everything is calibrated make sure to save your result by issuing M500 command. Otherwise all this will be lost when you shut down the machine.
Do a test print and enjoy the calibrated machine. Please note, this calibration won't fix an uneven bed. You might want to use the firmware's bed grid leveling, refer to smoothei's documentation http://smoothieware.org/delta?s
Tower G-codes
Use the following Gcodes (280mm diameter bed) and apply them to macro buttons on your slicer to make life easier. Otherwise you can just copy and paste the commands. If your bed is smaller or bigger, just adjust the X/Y parameters.
Alpha Tower (X)
G28
G1 Z0 X-77.94 Y-45 F3500
Beta Tower (Y)
G28
G1 Z0 X77.94 Y-45 F3500
Gamma Tower (Z)
G28
G1 Z0 X0 Y90 F3500
Center
G28
G1 X0 Y0 Z0 F3500