Dual Independent X - movement limits and purge positions
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 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 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)
Comments
if you're using DUAL_X_AXIS_MODE 1 you will not be able to use LAZY_DUAL_X_AXIS. (it's not needed really)
X_MIN_POS should be the distance from left head parking position to bed 0, BUT: if right head cannot get to that same point, you will have to adjust it.
in other words, your bed 0 X coordinate must be within reach of right extruder without crashing into the left parked extruder.
X_MAX_LENGTH should be the max left carriage X coordinate + the negative of X_MIN_POS. in your case 220 + 53 (which seems right from your settings)
EXT0_X_OFFSET must be 0
and lastly, EXT1_X_OFFSET is basically right carriage parking coordinate converted in steps. which in your case should be 271.55 * 320 = 86896
as said, you won't be able to use lazy dual with this mode. but you don't need it, you can just use M606 to manipulate the current carriage in the tool change script.
because if you are using master, disregard what i said, because that branch does not have new dual x mode implemented.
i strongly suggest you switch to development branch so you can make full use of the new dual x mode, and have M606 available.
what M606 does (you can find description in repetier.ino file) is basically move the active head to a coordinate relative to its parking position.
so, for example:
M606 <- will move current head to park position
M606 X10 <- will move current head 10 mm FROM the parking position (basically 10mm to the right for the left extruder or 10mm to the left for the right extruder)
you can also specify feedrate F.
with new mode and M606 you can move the heads to purge position, purge, then resume printing in your toolchange g-code, something you can't do with old dual x mode
anyway, keep in mind that with dev version DUAL_X_AXIS_MODE 1 will actually have effect and it will NOT behave like it did with master version. you may want to reset your offsets and stuff in the eeprom
RESCUE_STATE: LX:109.66 LY:90.85 LZ:1.70 LE:0.00 LT:0 X:0.00 Y:10.00 Z:11.70 E:0.00
in the log. Send M415 S0 and it should not happen. That is the new rescue system for next server version.
If it is not that you might have enable pin inverted. Note if you use config tool you need to do all changes there. It will not see if you change defines manually and then upload! It uses the json string at the end of the config to set current values. So if you had fixed it manually it is lost with reupload.