Settings Extruder X_Offset & Y_Offset


I have mounted two extruders and adjusted the offsets in the Configuration.h:

#define EXT0_X_OFFSET 0
#define EXT0_Y_OFFSET 0
#define EXT0_Z_OFFSET 0

#define EXT1_X_OFFSET 76
#define EXT1_Y_OFFSET -38
#define EXT1_Z_OFFSET 0

and for the Eeprom
             "Id": 1,
             ... / ...
             "XOffset": 1,
             "YOffset": -0.5,
             "ZOffset": 0,
             "XOffsetSteps": 76,
             "YOffsetSteps": -38,
             "ZOffsetSteps": 0,

In the 'Configuration' menu, values are displayed correctly :


It's not possible to modify the values for the X & Y, only the Z value can be modified but the multiplier does not work, it takes several clips to move from 0.01mm.


  • I made a mistake :

    #define EXT1_X_OFFSET -76
    #define EXT1_Y_OFFSET 38
    #define EXT1_Z_OFFSET 0

    et pour le Eeprom
                 "Id": 1,
                 ... / ...
                 "XOffset": -1,
                 "YOffset": 0.5,
                 "ZOffset": 0,
                 "XOffsetSteps": -76,
                 "YOffsetSteps": 38,
                 "ZOffsetSteps": 0,
  • They can be changed. Just recently I made some fixes to it in dev tree to change distance in 0.01mm steps instead of steps so it does not take so many clicks to change values.

    But you can in any case change them in eeprom editor.
  • Sorry,

    but the rotary button has no effect on the X-
    Offset and Y-Offset values.

    I will therefore use the editor
  • edited January 2017
    Ok I do not know why it does not work ...

    But I tested with the old lines of code (v0.92) :

        case UI_ACTION_X_OFFSET:
            //INCREMENT_MIN_MAX(Extruder::current->xOffset, RMath::min(static_cast<int32_t>(1),static_cast<int32_t>(Printer::axisStepsPerMM[X_AXIS] / 100)), -9999999, 9900999);
            INCREMENT_MIN_MAX(Extruder::current->xOffset, 1, -99999, 99999);
        case UI_ACTION_Y_OFFSET:
            //INCREMENT_MIN_MAX(Extruder::current->yOffset, RMath::min(static_cast<int32_t>(1),static_cast<int32_t>(Printer::axisStepsPerMM[Y_AXIS] / 100)), -9999999, 9999999);
            INCREMENT_MIN_MAX(Extruder::current->yOffset, 1, -99999, 99999);

    This works perfectly with my configuration, one click for 0.01mm

    I keep this code. ;)
  • I see min should be max. If you have less then 100 steps per mm that would otherwise reduce to 0.
  • Yes, this explains why the zOffset is functional

    <epr pos="3" type="3" value="76.0000">X-axis steps per mm</epr>
    <epr pos="7" type="3" value="76.0000">Y-axis steps per mm</epr>
    <epr pos="11" type="3" value="400.0000">Z-axis steps per mm</epr>

Sign In or Register to comment.