G29 + FSR woes
Posted: Mon Jul 24, 2017 12:16 am
tl;dr
G29 fails at last tower with OFFSETS OFF BY TOO MUCH. Aborting. Offset results from probe for two of three towers are 1000+ when they should be under 400.
--------
Hello.
I finally got around to installing my Ultibots FSR kit into my Rostock Max v2. After ironing out some mechanical and firmware issues, I am now getting stuck on G29 failures that are likely firmware config errors of some sort.
The fail condition emanates from this evaluation code in the seemecnc repetier firmware (version: 0.92.2)
offsetY and offsetZ are most definitely greater than 400, and by a wide margin.
Here's the code for populating offsetY:
The variable values are as follows:
yProbe = 32.73
AXIS_STEPS_PER_MM = 80
Z_PROBE_BED_DISTANCE = 5
AXIS_STEPS_PER_MM is a system-defined constant, Z_PROBE_BED_DISTANCE is user defined, and yProbe is the distance calculation of the actual probing. The raw value of offsetY at this point in the probe is 2218. As it moves through the procedure, it reaches and executes the following:
...which leads to X and Y values > 400 and ultimately the error condition. So my question is: What is causing my offsets to be a whole order of magnitude greater than the normal range? Are my probe values way off, or do I have something totally awry in my config (below, with some minor hacks):
And for relevant mechanical details:
Ultibot FST kit with johnsl board into x_min, mhackney/tricklaser fsr platform.
Any help would be greatly appreciated!
G29 fails at last tower with OFFSETS OFF BY TOO MUCH. Aborting. Offset results from probe for two of three towers are 1000+ when they should be under 400.
--------
Hello.
I finally got around to installing my Ultibots FSR kit into my Rostock Max v2. After ironing out some mechanical and firmware issues, I am now getting stuck on G29 failures that are likely firmware config errors of some sort.
Code: Select all
READ: Z-probe state:H
READ: Z-probe:39.56 Step Variation from Probe to bed Distance:1565.00 X:0.00 Y:142.68
READ: X:0.00 Y:142.68 Z:-19.562 E:0.0000
READ: Info:Reset Z height
READ: Printer height:350.00
READ: X: 0
READ: Y: 1155
READ: Z: 1109
READ: OFFSETS OFF BY TOO MUCH. Aborting. Sensitivity: 20
Code: Select all
if(offsetX > 400 || offsetY > 400 || offsetZ > 400){
xProbe = -1; yProbe = -1; zProbe = -1;
Com::printFLN(PSTR("X: "), offsetX);
Com::printFLN(PSTR("Y: "), offsetY);
Com::printFLN(PSTR("Z: "), offsetZ);
Com::printFLN(PSTR("stepX: "), offsetStepsX);
Com::printFLN(PSTR("stepY: "), offsetStepsY);
Com::printFLN(PSTR("stepZ: "), offsetStepsZ);
Com::printFLN(PSTR("OFFSETS OFF BY TOO MUCH. Aborting. Sensitivity: "), probeSensitivity);
GCode::executeFString(PSTR("M117 Endstop Offset Error"));
failedProbe = true;
break;
Here's the code for populating offsetY:
Code: Select all
offsetY = ((yProbe * AXIS_STEPS_PER_MM) - (Z_PROBE_BED_DISTANCE * AXIS_STEPS_PER_MM)), offsetStepsY = EEPROM::deltaTowerYOffsetSteps();
yProbe = 32.73
AXIS_STEPS_PER_MM = 80
Z_PROBE_BED_DISTANCE = 5
AXIS_STEPS_PER_MM is a system-defined constant, Z_PROBE_BED_DISTANCE is user defined, and yProbe is the distance calculation of the actual probing. The raw value of offsetY at this point in the probe is 2218. As it moves through the procedure, it reaches and executes the following:
Code: Select all
{
offsetX = offsetStepsX + (offsetX - offsetZ);
offsetY = offsetStepsY + (offsetY - offsetZ);
offsetZ = 0;
}
Code: Select all
#elif PRINTER == 2 // Rostock MAX v2
#if NUM_EXTRUDER == 1
#define MOTOR_CURRENT {140,140,140,130,0}
#elif NUM_EXTRUDER == 2
#define MOTOR_CURRENT {140,140,140,130,130}
#endif
#define EXT0_PID_INTEGRAL_DRIVE_MAX 180
#define EXT0_PID_INTEGRAL_DRIVE_MIN 80
#define EXT0_PID_PGAIN_OR_DEAD_TIME 14.50
#define EXT0_PID_I 0.73
#define EXT0_PID_D 53.41
#define EXT0_PID_MAX 235
#define HAVE_HEATED_BED 1
#define INVERT_X_DIR 1
#define INVERT_Y_DIR 0
#define INVERT_Z_DIR 1
#define DELTA_DIAGONAL_ROD 291.06 // ball cup arms
#define DELTA_MAX_RADIUS 145.0
#define PRINTER_RADIUS 200.0
#define Z_MAX_LENGTH 350
#define END_EFFECTOR_HORIZONTAL_OFFSET 30.22
#define CARRIAGE_HORIZONTAL_OFFSET 26.5 // molded cheapskates
#define DELTASEGMENTS_PER_PRINTLINE 22
#define STEPPER_INACTIVE_TIME 600L
#define MAX_INACTIVE_TIME 900L
#define MAX_FEEDRATE_X 250
#define MAX_FEEDRATE_Y 250
#define MAX_FEEDRATE_Z 250
#define HOMING_FEEDRATE_X 80
#define HOMING_FEEDRATE_Y 80
#define HOMING_FEEDRATE_Z 80
#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_X 1850
#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Y 1850
#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Z 1850
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_X 3000
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Y 3000
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Z 3000
#define MAX_JERK 32
#define MAX_ZJERK 32
//#if HOTEND == 4
//#define FEATURE_Z_PROBE 1
//#else
//#define FEATURE_Z_PROBE 0
//#endif
#define FEATURE_Z_PROBE 1
#define Z_PROBE_HEIGHT 0
#define Z_PROBE_SENSITIVITY 20 // 0-126 7 bit value
#define Z_PROBE_BED_DISTANCE 5
#define Z_PROBE_PULLUP 1
#define Z_PROBE_ON_HIGH 0
#define Z_PROBE_X_OFFSET 0
#define Z_PROBE_Y_OFFSET 0
#define Z_PROBE_WAIT_BEFORE_TEST 0
#define Z_PROBE_SPEED 7
#define Z_PROBE_XY_SPEED 150
#define Z_PROBE_SWITCHING_DISTANCE 10
#define Z_PROBE_REPETITIONS 1
#define Z_PROBE_HEIGHT 0
#define Z_PROBE_START_SCRIPT ""
#define Z_PROBE_FINISHED_SCRIPT ""
#define FEATURE_AUTOLEVEL 1
#define Z_PROBE_X1 -123.565
#define Z_PROBE_Y1 -71.34
#define Z_PROBE_X2 123.565
#define Z_PROBE_Y2 -71.340
//#define Z_PROBE_X1 -50
//#define Z_PROBE_Y1 -50
//#define Z_PROBE_X2 50
//#define Z_PROBE_Y2 50
#define Z_PROBE_X3 0
#define Z_PROBE_Y3 142.68
#define SDSUPPORT 1
#define SDCARDDETECT 81
#define SDCARDDETECTINVERTED 0
#define FEATURE_CONTROLLER 13
#define UI_PRINTER_NAME "RostockMAXv2"
Ultibot FST kit with johnsl board into x_min, mhackney/tricklaser fsr platform.
Any help would be greatly appreciated!