hi there,
i was working again on my dual x carriage machine and i went and tried out marlin's handling of the dual x carriage.
i must say that it is actually pretty neat, particularly an interesting behaviour you can achieve with it and i thought it would be nice to have the same kind of functionality in repetier-fw
in short:
marlin has 2 modes (hot-switchable too) for dual x: full control (basically the firmware does no parking-unparking on toolchange) and autopark (which is similar to what repetier does)
however, the difference is that marlin has 2 additional values: X2_MIN_POS and X2_MAX_POS, and here's the neat behaviour:
if the current extruder is unparked, (basically over the bed area) it will park the old and unpark the new
if the current extruder is parked, it will NOT unpark the new (because the x coordinate is out of reach for the other carriage), it will instead change the current X coordinate of the machine
this is neat for a number of reasons: first, it almost eliminates the need for LAZY_DUAL_X (which is kind of clunky), second it allows nice stuff to be done in the park area of each extruder, third it simplifies setup A LOT.
so i wanted to give a shot at implementing that in repetier-fw, but i have few questions:
any chance it would be merged in 1.0?
how portable would it be to v2?
a quick look at the code makes me think the less intrusive way to implement that would be to have Printer::xMin and Printer::xLength swapped with X2 values in the toolchange function, having 2 new eeprom values. am i in the right direction?
it would be extremely neat to have a custom gcode for parking the current extruder (eliminating the need to hardcode coordinates in the slicer gcode). would that be ok?