G29 Trouble 0.92.3

I'm having trouble with G29 0.92.3 ( Delta Printer)not compensating for the X,Y offsets (nozzle is in the position that should be measured by the probe). The Bed Height Map works fine with the probe in the correct offset position.
Any help would be greatly appreciated.

Thanks

Comments

  • I have checked the measure routine and there is a special case that is not covered. If you have DISTORTION_EXTRAPOLATE_CORNERS enabled, it will never hit the first and last point where the offsets are set. Please replace in Printer.cpp the function with the on ein the next post. Or wait for next firmware update.


  • void Distortion::measure(void)
    {
        fast8_t ix, iy;
        float z = EEPROM::zProbeBedDistance() + EEPROM::zProbeHeight();
        disable(false);
        //Com::printFLN(PSTR("radiusCorr:"), radiusCorrectionSteps);
        //Com::printFLN(PSTR("steps:"), step);
        for (iy = DISTORTION_CORRECTION_POINTS - 1; iy >= 0; iy--)
            for (ix = 0; ix < DISTORTION_CORRECTION_POINTS; ix++)
            {
    #if (DRIVE_SYSTEM == DELTA) && DISTORTION_EXTRAPOLATE_CORNERS
                if (isCorner(ix, iy)) continue;
                float mtx = Printer::invAxisStepsPerMM[X_AXIS] * (ix * step - radiusCorrectionSteps);
                float mty = Printer::invAxisStepsPerMM[Y_AXIS] * (iy * step - radiusCorrectionSteps);
                //Com::printF(PSTR("mx "),mtx);
                //Com::printF(PSTR("my "),mty);
                //Com::printF(PSTR("ix "),(int)ix);
                //Com::printFLN(PSTR("iy "),(int)iy);
                Printer::moveToReal(mtx, mty, z, IGNORE_COORDINATE, EEPROM::zProbeXYSpeed());
    #if DISTORTION_EXTRAPOLATE_CORNERS
                setMatrix(floor(0.5f + Printer::axisStepsPerMM[Z_AXIS] * (z -
                            Printer::runZProbe(ix == 1 && iy == DISTORTION_CORRECTION_POINTS - 1, ix == DISTORTION_CORRECTION_POINTS - 2 && iy == 0, Z_PROBE_REPETITIONS))),
                          matrixIndex(ix,iy));
                setMatrix(floor(0.5f + Printer::axisStepsPerMM[Z_AXIS] * (z -
                            Printer::runZProbe(ix == 0 && iy == DISTORTION_CORRECTION_POINTS - 1, ix == DISTORTION_CORRECTION_POINTS - 1 && iy == 0, Z_PROBE_REPETITIONS))),
                          matrixIndex(ix,iy));
            }
    rest like old version
Sign In or Register to comment.