Still working on my I3 style (used to be Tevo Tarantula) dual independent X axis printer. Tool 0 on the left, Tool 1 on the right. 1.0.3 firmware. Using RAMPS 1.5 board with external 2100 driver for second X axis. Will be moving to RADDS/DUE soon.
#define X_MAX_LENGTH 273 (-53mm Tool 0 park position/X Min limit position after back off from limit switch, to right side of bed)
#define Y_MAX_LENGTH 284 (-4mm Y home switch position to back of bed)
#define Z_MAX_LENGTH 200
#define X_MIN_POS -53 (Tool 0 park position/X Min limit position after back off from limit switch)
#define Y_MIN_POS -4
#define Z_MIN_POS 0
#define LAZY_DUAL_X_AXIS 0
#define DUAL_X_AXIS_MODE 1
#define EXT0_X_OFFSET 0
#define EXT1_X_OFFSET 103840 (324.5mm (271.5 + 53), still need to fine tune this, 320 steps/mm)
Bed is 220mm wide. Tool 0 parks at -53mm, Tool 1 parks at 271.5mm
I have two purge locations, Tool 0 at -22mm, and Tool 1 at 252mm. With the above settings I can not get to the 250mm position with Tool 1 (Tool 0 would hit if it could move past 220mm). Tool 1 can only go to 220mm.
So I know I should be able to fix this by adjusting the X_MAX_LENGTH setting above to 305, but wondering if there is another way. Is there a setting so Tool 0 can only move to maximum X position of 220mm and Tool 1 can only move to minimum X position of 0mm? (avoid hitting other tool in their parked position)
Once I get this set up, will be changing LAZY_DUAL_X_AXIS to 1 so both tools go to their parked positions on tools change and use tool change script to move selected tool to the purge position and do a purge before continuing with printing with the new tool. (Think I understand the difference between the two modes)