Manual Delta calibration. Escher calculator and distortion correction issue.
Hi,
I have been trying to calibrate my home made delta printer for a few weeks, and I am experiencing some difficulties.
The system is composed by Radds, Due, TMC2100 and Repetier 1.04dev.
I currently don't have a z probe and would prefer to complete the calibration without using a z probe.
I find the paper sheet method quite precise. (I use 0.05 mm thin paper, the one used for the payment receipts of the shops).
In any case, to fix small mechanical alignment defects of the towers and a not perfectly flat bed
(indeed, let's say slightly convex), I decided to use the Escher calculator, also for the good results obtained by many.
Unfortunately, to understand how to use it correctly with Repetier required dozens of attempts and hours of reading in the forums.
In the beginning I got worse results than the basic parameters.
Then I realized that there are two key steps:
1 - Enter the nozzle height error values in the calculator with inverted sign.
2 - Enter the values "New tower position angle corrections", subtracting them directly from the corners of the columns a / b / c
One step was enough to obtain a deviation value of 0.03mm. I then repeated the test 21 more times.
The parameters changed slightly every time, but the deviation error remained at 0.03mm.
I am however happy. Obviously that value is the limit given by mechanical defects, such as the slightly convex table.
To complete the calibration I thought of adding a distortion map via Host, but I did not understand if there is a way to activate it manually.
As suggested in other posts, I still activated the pin (Z min) and if necessary I can connect an on / off switch, to manually activate the signal, therefore not phisical connected to the effector.
My procedure was:
- M322 S3 Reset auto level matrix permanently
- G33 R0 Delete distortion map
- G28 Home
- G131 Remove any extruder offset
- M99 X0,Y0, Z0 Adjust sliders using a stick, one by one
- G132 S1 Measure tower endstop offsets & stores
- M320 S2 Activate auto level permanently
Then I used the Escher calculator and after each iteration I updated the EEPROM values with M500.
I guess I can't use G29 without z probe.
I tried to correct the distortion with G33, first with G33 L0 to read the syntax, then I probed manually with G0,
point by point, detecting a 5x5 matrix as suggested in the Repetier guide, in order to probe 21 points,
except the four outside the table, which should be interpolated (option active in configuration.h).
Once detected, I added all 21 points with G33 X<xpos> Y<ypos> Z<newdistortioncorrection>.
I store the values in EEPROM, which are correctly listed with G33 L0, but the correction matrix does not make any correction.
" Transformation matrix: 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000"
I'm sure, I'm making some mistakes...:-(
Thanks in advance,
Marco
I have been trying to calibrate my home made delta printer for a few weeks, and I am experiencing some difficulties.
The system is composed by Radds, Due, TMC2100 and Repetier 1.04dev.
I currently don't have a z probe and would prefer to complete the calibration without using a z probe.
I find the paper sheet method quite precise. (I use 0.05 mm thin paper, the one used for the payment receipts of the shops).
In any case, to fix small mechanical alignment defects of the towers and a not perfectly flat bed
(indeed, let's say slightly convex), I decided to use the Escher calculator, also for the good results obtained by many.
Unfortunately, to understand how to use it correctly with Repetier required dozens of attempts and hours of reading in the forums.
In the beginning I got worse results than the basic parameters.
Then I realized that there are two key steps:
1 - Enter the nozzle height error values in the calculator with inverted sign.
2 - Enter the values "New tower position angle corrections", subtracting them directly from the corners of the columns a / b / c
In this way it worked.(10 probe points for 6 factors).
One step was enough to obtain a deviation value of 0.03mm. I then repeated the test 21 more times.
The parameters changed slightly every time, but the deviation error remained at 0.03mm.
I am however happy. Obviously that value is the limit given by mechanical defects, such as the slightly convex table.
To complete the calibration I thought of adding a distortion map via Host, but I did not understand if there is a way to activate it manually.
As suggested in other posts, I still activated the pin (Z min) and if necessary I can connect an on / off switch, to manually activate the signal, therefore not phisical connected to the effector.
My procedure was:
- M322 S3 Reset auto level matrix permanently
- G33 R0 Delete distortion map
- G28 Home
- G131 Remove any extruder offset
- M99 X0,Y0, Z0 Adjust sliders using a stick, one by one
- G132 S1 Measure tower endstop offsets & stores
- M320 S2 Activate auto level permanently
Then I used the Escher calculator and after each iteration I updated the EEPROM values with M500.
I guess I can't use G29 without z probe.
I tried to correct the distortion with G33, first with G33 L0 to read the syntax, then I probed manually with G0,
point by point, detecting a 5x5 matrix as suggested in the Repetier guide, in order to probe 21 points,
except the four outside the table, which should be interpolated (option active in configuration.h).
Once detected, I added all 21 points with G33 X<xpos> Y<ypos> Z<newdistortioncorrection>.
I store the values in EEPROM, which are correctly listed with G33 L0, but the correction matrix does not make any correction.
" Transformation matrix: 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000"
I'm sure, I'm making some mistakes...:-(
So, can anyone suggest me the correct procedure to perform the manual bed/bump correction without Z probe,
after the Escher correction?
Thanks in advance,
Marco
Comments
Here are parameters from my configuration:
09:20:31.190 : Printer reset detected - initializing
09:20:31.230 : start
09:20:31.230 : Info:PowerUp
09:20:31.230 : Detected EEPROM version:20
09:20:31.230 : Transformation matrix: 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000
09:20:31.460 : N1 M110*34
09:20:31.460 : N2 M115*36
09:20:31.460 : N4 M114*35
09:20:31.460 : N5 M111 S6*98
09:20:31.460 : N6 T0*60
09:20:31.460 : N7 M20*22
09:20:31.460 : N8 M80*19
09:20:33.850 : zDistortionCorrection:1
09:20:33.850 : Free RAM:58844
09:20:33.850 : Autoretract:0
09:20:33.860 : X:0.00 Y:0.00 Z:0.000 E:0.0000
09:20:33.860 : SelectExtruder:0
09:20:33.880 : FIRMWARE_NAME:Repetier_1.0.4 COMPILED:Jul 17 2020 FIRMWARE_URL:https://github.com/repetier/Repetier-Firmware/ PROTOCOL_VERSION:1.0 MACHINE_TYPE:Delta EXTRUDER_COUNT:1 REPETIER_PROTOCOL:3
09:20:33.880 : Cap:PROGRESS:1
09:20:33.880 : Cap:AUTOREPORT_TEMP:1
09:20:33.880 : Cap:HOST_RESCUE:1
09:20:33.880 : Cap:EEPROM:1
09:20:33.880 : Cap:AUTOLEVEL:1
09:20:33.880 : Cap:Z_PROBE:1
09:20:33.890 : Cap:SOFTWARE_POWER:0
09:20:33.890 : Cap:TOGGLE_LIGHTS:0
09:20:33.890 : Cap:PAUSESTOP:1
09:20:33.890 : Cap:PREHEAT:1
09:20:33.890 : Cap:EMERGENCY_PARSER:1
09:20:33.900 : Printed filament:0.00m Printing time:0 days 0 hours 0 min
09:20:33.900 : PrinterMode:FFF
09:20:33.960 : X:0.00 Y:0.00 Z:0.000 E:0.0000
09:20:33.960 : N10 M220 S100*80
09:20:33.960 : DebugLevel:6
09:20:33.960 : N11 M221 S100*80
09:20:33.970 : SelectExtruder:0
09:20:33.970 : Begin file list
09:20:33.970 : End file list
09:20:33.970 : N12 M111 S6*84
09:20:33.970 : N13 T0*8
09:20:34.060 : N14 M155 S1*85
09:20:34.070 : DebugLevel:6
09:20:34.070 : SelectExtruder:0
09:20:33.970 : Begin file list
09:20:33.970 : End file list
09:20:33.970 : N12 M111 S6*84
09:20:33.970 : N13 T0*8
09:20:34.060 : N14 M155 S1*85
09:20:34.070 : DebugLevel:6
09:20:34.070 : SelectExtruder:0
09:21:24.800 : N15 G28*39
09:21:27.820 : SelectExtruder:0
09:21:27.820 : X:0.00 Y:0.00 Z:309.080 E:0.0000
Report from G33 L0:
09:22:14.351 : N17 G33 L0*115
09:22:14.351 : G33 X-100.00 Y-100.00 Z0.000
09:22:14.351 : G33 X-100.00 Y-50.00 Z0.030
09:22:14.361 : G33 X-100.00 Y0.00 Z-0.030
09:22:14.361 : G33 X-100.00 Y50.00 Z-0.010
09:22:14.361 : G33 X-100.00 Y100.00 Z0.000
09:22:14.371 : G33 X-50.00 Y-100.00 Z-0.040
09:22:14.371 : G33 X-50.00 Y-50.00 Z-0.040
09:22:14.371 : G33 X-50.00 Y0.00 Z0.000
09:22:14.371 : G33 X-50.00 Y50.00 Z-0.020
09:22:14.371 : G33 X-50.00 Y100.00 Z-0.020
09:22:14.381 : G33 X0.00 Y-100.00 Z-0.020
09:22:14.381 : G33 X0.00 Y-50.00 Z0.000
09:22:14.381 : G33 X0.00 Y0.00 Z0.000
09:22:14.381 : G33 X0.00 Y50.00 Z-0.020
09:22:14.391 : G33 X0.00 Y100.00 Z0.020
09:22:14.391 : G33 X50.00 Y-100.00 Z-0.020
09:22:14.391 : G33 X50.00 Y-50.00 Z0.000
09:22:14.391 : G33 X50.00 Y0.00 Z0.000
09:22:14.401 : G33 X50.00 Y50.00 Z-0.030
09:22:14.401 : G33 X50.00 Y100.00 Z0.010
09:22:14.401 : G33 X100.00 Y-100.00 Z0.000
09:22:14.401 : G33 X100.00 Y-50.00 Z0.030
09:22:14.401 : G33 X100.00 Y0.00 Z0.010
09:22:14.411 : G33 X100.00 Y50.00 Z-0.030
09:22:14.411 : G33 X100.00 Y100.00 Z0.000
The EEPROM parameters:
10:21:16.135 : N20 M205*22
10:21:16.135 : EPR:0 1028 0 Language
10:21:16.145 : EPR:2 75 115200 Baudrate
10:21:16.145 : EPR:3 129 0.000 Filament printed [m]
10:21:16.145 : EPR:2 125 0 Printer active [s]
10:21:16.155 : EPR:2 79 0 Max. inactive time [ms,0=off]
10:21:16.155 : EPR:2 83 360000 Stop stepper after inactivity [ms,0=off]
10:21:16.165 : EPR:3 11 100.0000 Steps per mm
10:21:16.165 : EPR:3 23 200.000 Max. feedrate [mm/s]
10:21:16.165 : EPR:3 35 50.000 Homing feedrate [mm/s]
10:21:16.175 : EPR:3 39 20.000 Max. jerk [mm/s]
10:21:16.175 : EPR:3 133 0.000 X min pos [mm]
10:21:16.185 : EPR:3 137 0.000 Y min pos [mm]
10:21:16.185 : EPR:3 141 0.000 Z min pos [mm]
10:21:16.185 : EPR:3 145 200.000 X max length [mm]
10:21:16.195 : EPR:3 149 200.000 Y max length [mm]
10:21:16.195 : EPR:3 153 309.080 Z max length [mm]
10:21:16.205 : EPR:3 1056 0.000 Park position X [mm]
10:21:16.205 : EPR:3 1060 0.000 Park position Y [mm]
10:21:16.205 : EPR:3 1064 30.000 Park position Z raise [mm]
10:21:16.215 : EPR:1 891 600 Segments/s for travel
10:21:16.215 : EPR:1 889 600 Segments/s for printing
10:21:16.225 : EPR:3 59 1500.000 Acceleration [mm/s^2]
10:21:16.225 : EPR:3 71 1500.000 Travel acceleration [mm/s^2]
10:21:16.235 : EPR:3 881 254.000 Diagonal rod length [mm]
10:21:16.245 : EPR:3 885 127.210 Horizontal rod radius at 0,0 [mm]
10:21:16.245 : EPR:3 925 112.000 Max printable radius [mm]
10:21:16.245 : EPR:1 893 0 Tower X endstop offset [steps]
10:21:16.245 : EPR:1 895 11 Tower Y endstop offset [steps]
10:21:16.255 : EPR:1 897 8 Tower Z endstop offset [steps]
10:21:16.255 : EPR:3 901 209.590 Alpha A(210):
10:21:16.255 : EPR:3 905 329.790 Alpha B(330):
10:21:16.255 : EPR:3 909 90.000 Alpha C(90):
10:21:16.265 : EPR:3 913 0.000 Delta Radius A(0):
10:21:16.265 : EPR:3 917 0.000 Delta Radius B(0):
10:21:16.275 : EPR:3 921 0.000 Delta Radius C(0):
10:21:16.275 : EPR:3 933 0.000 Corr. diagonal A [mm]
10:21:16.275 : EPR:3 937 0.000 Corr. diagonal B [mm]
10:21:16.285 : EPR:3 941 0.000 Corr. diagonal C [mm]
10:21:16.285 : EPR:3 1024 0.000 Coating thickness [mm]
10:21:16.295 : EPR:3 808 0.050 Z-probe height [mm]
10:21:16.295 : EPR:3 929 10.000 Max. z-probe - bed dist. [mm]
10:21:16.295 : EPR:3 812 2.000 Z-probe speed [mm/s]
10:21:16.305 : EPR:3 840 150.000 Z-probe x-y-speed [mm/s]
10:21:16.305 : EPR:3 800 0.000 Z-probe offset x [mm]
10:21:16.315 : EPR:3 804 0.000 Z-probe offset y [mm]
10:21:16.315 : EPR:3 816 -100.000 Z-probe X1 [mm]
10:21:16.325 : EPR:3 820 -100.000 Z-probe Y1 [mm]
10:21:16.325 : EPR:3 824 100.000 Z-probe X2 [mm]
10:21:16.325 : EPR:3 828 -100.000 Z-probe Y2 [mm]
10:21:16.335 : EPR:3 832 -100.000 Z-probe X3 [mm]
10:21:16.335 : EPR:3 836 100.000 Z-probe Y3 [mm]
10:21:16.345 : EPR:3 1036 0.000 Z-probe bending correction A [mm]
10:21:16.345 : EPR:3 1040 0.000 Z-probe bending correction B [mm]
10:21:16.345 : EPR:3 1044 0.000 Z-probe bending correction C [mm]
10:21:16.355 : EPR:0 880 0 Autolevel active (1/0)
10:21:16.355 : EPR:3 976 0.000000 tanXY Axis Compensation
10:21:16.365 : EPR:3 980 0.000000 tanYZ Axis Compensation
10:21:16.365 : EPR:3 984 0.000000 tanXZ Axis Compensation
10:21:16.365 : EPR:1 1048 40 Bed Preheat temp. [degC]
10:21:16.375 : EPR:0 106 0 Bed Heat Manager [0-3]
10:21:16.375 : EPR:0 107 255 Bed PID drive max
10:21:16.385 : EPR:0 124 50 Bed PID drive min
10:21:16.385 : EPR:3 108 196.000 Bed PID P-gain
10:21:16.385 : EPR:3 112 33.000 Bed PID I-gain
10:21:16.385 : EPR:3 116 290.000 Bed PID D-gain
10:21:16.395 : EPR:0 120 255 Bed PID max value [0-255]
10:21:16.405 : EPR:0 1020 0 Enable retraction conversion [0/1]
10:21:16.405 : EPR:3 992 3.000 Retraction length [mm]
10:21:16.415 : EPR:3 1000 40.000 Retraction speed [mm/s]
10:21:16.415 : EPR:3 1004 0.000 Retraction z-lift [mm]
10:21:16.415 : EPR:3 1008 0.000 Extra extrusion on undo retract [mm]
10:21:16.425 : EPR:3 1016 20.000 Retraction undo speed
10:21:16.425 : EPR:3 200 837.000 Extr.1 steps per mm
10:21:16.435 : EPR:3 204 50.000 Extr.1 max. feedrate [mm/s]
10:21:16.435 : EPR:3 208 20.000 Extr.1 start feedrate [mm/s]
10:21:16.435 : EPR:3 212 5000.000 Extr.1 acceleration [mm/s^2]
10:21:16.435 : EPR:1 294 190 Extr.1 Preheat temp. [degC]
10:21:16.445 : EPR:0 216 1 Extr.1 heat manager [0-3]
10:21:16.445 : EPR:0 217 230 Extr.1 PID drive max
10:21:16.455 : EPR:0 245 40 Extr.1 PID drive min
10:21:16.455 : EPR:3 218 7.0000 Extr.1 PID P-gain/dead-time
10:21:16.455 : EPR:3 222 2.0000 Extr.1 PID I-gain
10:21:16.465 : EPR:3 226 40.0000 Extr.1 PID D-gain
10:21:16.465 : EPR:0 230 255 Extr.1 PID max value [0-255]
10:21:16.475 : EPR:2 231 0 Extr.1 X-offset [steps]
10:21:16.475 : EPR:2 235 0 Extr.1 Y-offset [steps]
10:21:16.475 : EPR:2 290 0 Extr.1 Z-offset [steps]
10:21:16.485 : EPR:1 239 1 Extr.1 temp. stabilize time [s]
10:21:16.495 : EPR:1 250 150 Extr.1 temp. for retraction when heating [degC]
10:21:16.495 : EPR:1 252 0 Extr.1 distance to retract when heating [mm]
10:21:16.505 : EPR:0 254 255 Extr.1 extruder cooler speed [0-255]
From Configuration.h:
#define DISTORTION_CORRECTION 1
#define DISTORTION_CORRECTION_POINTS 5
#define DISTORTION_LIMIT_TO 2
#define DISTORTION_CORRECTION_R 100
#define DISTORTION_PERMANENT 1
#define DISTORTION_UPDATE_FREQUENCY 15
#define DISTORTION_START_DEGRADE 0.5
#define DISTORTION_END_HEIGHT 1
#define DISTORTION_EXTRAPOLATE_CORNERS 1
#define DISTORTION_XMIN -100
#define DISTORTION_YMIN -100
#define DISTORTION_XMAX 100
#define DISTORTION_YMAX 100
// ##########################################################################################
// ## Movement settings ##
// ##########################################################################################
#define FEATURE_BABYSTEPPING 0
#define BABYSTEP_MULTIPLICATOR 1
#define DELTA_SEGMENTS_PER_SECOND_PRINT 600 // Move accurate setting for print moves
#define DELTA_SEGMENTS_PER_SECOND_MOVE 600 // Less accurate setting for other moves
#define EXACT_DELTA_MOVES 1
// Delta settings
#define DELTA_DIAGONAL_ROD 254 // mm
#define DELTA_ALPHA_A 209.590
#define DELTA_ALPHA_B 329.800
#define DELTA_ALPHA_C 90
#define DELTA_RADIUS_CORRECTION_A 0
#define DELTA_RADIUS_CORRECTION_B 0
#define DELTA_RADIUS_CORRECTION_C 0
#define DELTA_DIAGONAL_CORRECTION_A 0
#define DELTA_DIAGONAL_CORRECTION_B 0
#define DELTA_DIAGONAL_CORRECTION_C 0
#define END_EFFECTOR_HORIZONTAL_OFFSET 0
#define CARRIAGE_HORIZONTAL_OFFSET 0
#define DELTA_MAX_RADIUS 112
#define ROD_RADIUS 127.21
#define PRINTER_RADIUS 127.21
#define DELTA_HOME_ON_POWER 0
#define STEP_COUNTER
#define DELTA_X_ENDSTOP_OFFSET_STEPS 0
#define DELTA_Y_ENDSTOP_OFFSET_STEPS 11
#define DELTA_Z_ENDSTOP_OFFSET_STEPS 9
#define DELTA_FLOOR_SAFETY_MARGIN_MM 20
//#define SOFTWARE_LEVELING
#define DELTASEGMENTS_PER_PRINTLINE 80
#define STEPPER_INACTIVE_TIME 360L
#define MAX_INACTIVE_TIME 0L
#define MAX_FEEDRATE_X 200
#define MAX_FEEDRATE_Y 200
#define MAX_FEEDRATE_Z 200
#define HOMING_FEEDRATE_X 50
#define HOMING_FEEDRATE_Y 50
#define HOMING_FEEDRATE_Z 50
#define HOMING_ORDER HOME_ORDER_ZXY
#define ZHOME_PRE_RAISE 0
#define ZHOME_PRE_RAISE_DISTANCE 5
#define RAISE_Z_ON_TOOLCHANGE 0
#define ZHOME_MIN_TEMPERATURE 0
#define ZHOME_HEAT_ALL 1
#define ZHOME_HEAT_HEIGHT 20
#define ZHOME_X_POS 999999
#define ZHOME_Y_POS 999999
#define ENABLE_BACKLASH_COMPENSATION 0
#define X_BACKLASH 0
#define Y_BACKLASH 0
#define Z_BACKLASH 0
#define RAMP_ACCELERATION 1
#define STEPPER_HIGH_DELAY 0
#define DIRECTION_DELAY 0
#define STEP_DOUBLER_FREQUENCY 80000
#define ALLOW_QUADSTEPPING 1
#define DOUBLE_STEP_DELAY 0 // time in microseconds
#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_X 1500
#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Y 1500
#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Z 1500
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_X 1500
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Y 1500
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Z 1500
#define INTERPOLATE_ACCELERATION_WITH_Z 0
#define ACCELERATION_FACTOR_TOP 100
#define MAX_JERK 20
#define MAX_ZJERK 0.3
#define PRINTLINE_CACHE_SIZE 24
#define MOVE_CACHE_LOW 10
#define LOW_TICKS_PER_MOVE 250000
// #################### Z-Probing #####################
#define Z_PROBE_Z_OFFSET 0
#define Z_PROBE_Z_OFFSET_MODE 0
#define UI_BED_COATING 1
#define FEATURE_Z_PROBE 1
#define EXTRUDER_IS_Z_PROBE 0
#define Z_PROBE_DISABLE_HEATERS 1
#define Z_PROBE_BED_DISTANCE 15
#define Z_PROBE_PIN ORIG_Z_MIN_PIN
#define Z_PROBE_PULLUP 0
#define Z_PROBE_ON_HIGH 0
#define Z_PROBE_X_OFFSET 0
#define Z_PROBE_Y_OFFSET 0
#define Z_PROBE_WAIT_BEFORE_TEST 1
#define Z_PROBE_SPEED 2
#define Z_PROBE_XY_SPEED 150
#define Z_PROBE_SWITCHING_DISTANCE 1
#define Z_PROBE_REPETITIONS 1
#define Z_PROBE_USE_MEDIAN 0
#define Z_PROBE_HEIGHT 0
#define Z_PROBE_DELAY 0
#define Z_PROBE_START_SCRIPT ""
#define Z_PROBE_FINISHED_SCRIPT ""
#define Z_PROBE_RUN_AFTER_EVERY_PROBE ""
#define Z_PROBE_REQUIRES_HEATING 0
#define Z_PROBE_MIN_TEMPERATURE 150
#define FEATURE_AUTOLEVEL 1
#define FEATURE_SOFTWARE_LEVELING 0
#define Z_PROBE_X1 -100
#define Z_PROBE_Y1 -100
#define Z_PROBE_X2 100
#define Z_PROBE_Y2 -100
#define Z_PROBE_X3 -100
#define Z_PROBE_Y3 100
#define BED_LEVELING_METHOD 1
#define BED_CORRECTION_METHOD 0
#define BED_LEVELING_GRID_SIZE 5
#define BED_LEVELING_REPETITIONS 5
#define BED_MOTOR_1_X 0
#define BED_MOTOR_1_Y 0
#define BED_MOTOR_2_X 200
#define BED_MOTOR_2_Y 0
#define BED_MOTOR_3_X 100
#define BED_MOTOR_3_Y 200
#define BENDING_CORRECTION_A 0
#define BENDING_CORRECTION_B 0
#define BENDING_CORRECTION_C 0
#define FEATURE_AXISCOMP 1
#define AXISCOMP_TANXY 0
#define AXISCOMP_TANYZ 0
#define AXISCOMP_TANXZ 0