Welcome! Log In Create A New Profile

Advanced

IDEX Question

Posted by Ivorylu 
IDEX Question
December 13, 2022 09:36PM
Hello,
I made a 3D Printer with IDEX kinematics with dimensions 330x330x300 (xyz).
The control is with SKR Pro board and Marlin
How are the heads configured in Duplicate and Mirror modes?

Configuration.h
// Direction of endstops when homing; 1=MAX, -1=MIN
// :[-1,1]
#define X_HOME_DIR -1
#define Y_HOME_DIR  1
#define Z_HOME_DIR -1

// @section machine

// The size of the print bed
#define X_BED_SIZE 290
#define Y_BED_SIZE 320

// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS -40
#define Y_MIN_POS -5
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 290

Configuration_adv.h
#define DUAL_X_CARRIAGE
#if ENABLED(DUAL_X_CARRIAGE)
  #define X1_MIN_POS X_MIN_POS   // Set to X_MIN_POS
  #define X1_MAX_POS X_BED_SIZE  // Set a maximum so the first X-carriage can't hit the parked second X-carriage
  #define X2_MIN_POS     5       // Set a minimum to ensure the  second X-carriage can't hit the parked first X-carriage
  #define X2_MAX_POS     370.6       // Set this to the distance between toolheads when both heads are homed
  #define X2_HOME_DIR    1       // Set to 1. The second X-carriage always homes to the maximum endstop position
  #define X2_HOME_POS X2_MAX_POS // Default X2 home position. Set to X2_MAX_POS.
                      // However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software
                      // override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
                      // without modifying the firmware (through the "M218 T1 X???" command).
                      // Remember: you should set the second extruder x-offset to 0 in your slicer.

  // This is the default power-up mode which can be later using M605.
  #define DEFAULT_DUAL_X_CARRIAGE_MODE DXC_AUTO_PARK_MODE

  // Default x offset in duplication mode (typically set to half print bed width)
  #define DEFAULT_DUPLICATION_X_OFFSET 90

#endif // DUAL_X_CARRIAGE

menu_configuration.cpp
#if ENABLED(DUAL_X_CARRIAGE)

  void menu_idex() {
    START_MENU();
    MENU_BACK(MSG_CONFIGURATION);

    MENU_ITEM(gcode, MSG_IDEX_MODE_AUTOPARK,  PSTR("M605 S1\nG28 X\nG1 X100"));
    const bool need_g28 = !(TEST(axis_known_position, Y_AXIS) && TEST(axis_known_position, Z_AXIS));
    MENU_ITEM(gcode, MSG_IDEX_MODE_DUPLICATE, need_g28
      ? PSTR("M605 S1\nT0\nG28\nM605 S2 X165\nG28 X\nG1 X0")                // If Y or Z is not homed, do a full G28 first
      : PSTR("M605 S1\nT0\nM605 S2 X165\nG28 X\nG1 X0")
    );
    MENU_ITEM(gcode, MSG_IDEX_MODE_MIRRORED_COPY, need_g28
      ? PSTR("M605 S1\nT0\nG28\nM605 S2 X330\nG28 X\nG1 X0\nM605 S3")  // If Y or Z is not homed, do a full G28 first
      : PSTR("M605 S1\nT0\nM605 S2 X330\nG28 X\nG1 X0\nM605 S3")
    );
    MENU_ITEM(gcode, MSG_IDEX_MODE_FULL_CTRL, PSTR("M605 S0\nG28 X"));
    END_MENU();
  }

#endif

With these settings during printing, the following is obtained - one head prints where it should, but the other prints in the air outside the printing plate.
The distance between the two heads is 280 mm.

Where did I go wrong in the settings and where to push for
correction?
Re: IDEX Question
December 13, 2022 11:43PM
The distance between the two heads is 280 mm. ??

But you set this....
#define X2_MAX_POS 370.6 // Set this to the distance between toolheads when both heads are homed
Re: IDEX Question
January 24, 2023 05:29AM
thx a lot winking smiley


...
Sorry, only registered users may post in this forum.

Click here to login