Dual motor Z axis homing
Im using a 4 motor (plus extruders) setup with 2 Z axis motors. Second Z motor is mirrored and operated as extruder three. Setup works fine and both motors are in sync but homing only references the Z and ignores the mirrored axis. Is it possible to add an additional home switch and effectively home extruder 3 in the same manor as the other axis to level the gantry? Cheers :-)
Comments
Setup is almost perfect with homing positive to level the two sides and probing negative. As my Z travel is fairly large (750mm) I was wondering if it is possible to have the home switches mid way along the travel and an offset applied once the switch triggers? This would save having to move to the full positive limit each time power is cycled / homing performed.
Thanks again.
Thank you for your help :-)
I'm getting an error during compiling when setting up the second Z axis home switch.
'DIOZ2_MINMAX_PIN_PORT' was not declared in this scope
It appears under the HAL.h tab
Is there an additional setting I'm missing?
Further to the above this is the HAL.h line that is failing.
#define _READ(pin) (DIO ## pin ## _PORT->PIO_PDSR & DIO ## pin ## _PIN ? 1 : 0) // does return 0 or pin value
and this the error message. Any ideas what I'm doing wrong?!
Arduino: 1.6.9 (Windows 10), Board: "Arduino Due (Programming Port)"
In file included from sketch\Repetier.h:567:0,
from sketch\Printer.cpp:19:
sketch\Printer.cpp: In static member function 'static void Endstops::update()':
HAL.h:166: error: 'DIOZ2_MINMAX_PIN_PORT' was not declared in this scope
#define _READ(pin) (DIO ## pin ## _PORT->PIO_PDSR & DIO ## pin ## _PIN ? 1 : 0) // does return 0 or pin value
^
sketch\HAL.h:167:19: note: in expansion of macro '_READ'
#define READ(pin) _READ(pin)
^
sketch\Printer.cpp:221:12: note: in expansion of macro 'READ'
if(READ(Z2_MINMAX_PIN) != ENDSTOP_Z2_MINMAX_INVERTING)
^
HAL.h:166: error: 'DIOZ2_MINMAX_PIN_PIN' was not declared in this scope
#define _READ(pin) (DIO ## pin ## _PORT->PIO_PDSR & DIO ## pin ## _PIN ? 1 : 0) // does return 0 or pin value
^
sketch\HAL.h:167:19: note: in expansion of macro '_READ'
#define READ(pin) _READ(pin)
^
sketch\Printer.cpp:221:12: note: in expansion of macro 'READ'
if(READ(Z2_MINMAX_PIN) != ENDSTOP_Z2_MINMAX_INVERTING)
^
sketch\Printer.cpp: In static member function 'static void Printer::setup()':
Printer.cpp:1026: error: 'Z2_MINMAX_PIN' was not declared in this scope
SET_INPUT(Z2_MINMAX_PIN);
^
sketch\HAL.h:173:64: note: in definition of macro 'SET_INPUT'
#define SET_INPUT(pin) pmc_enable_periph_clk(g_APinDescription[pin].ulPeripheralId); \
^
exit status 1
'DIOZ2_MINMAX_PIN_PORT' was not declared in this scope
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
can somebody explain why please?
so for me in a cartesian machine the only two reliable ways to drive two rods on one axis is
-a) one motor, rods coupled via timing belt
-b) if two motors, use servo drives to avoid step losses.
only reason for two steppers in configuration with two endstops might be (even slightly) different rods.
i use belt coupled dual z-axis(ball screws) on my home made cnc as i have to lift more than 20Kg of weight
and my x-axis is 800 mm wide.
so may be i do not see the advantage for the two motors, so please explain
but anyway , don´t you have a closed frame ?
2 drivers?
or 1 driver, motors parallel?
or 1 driver, motors in series?
i also use them in my experimental machine.
i also guess you have the ones with the dipswitch current setting...
so from these i have two versions... from outside they look exactly the same, but they differ in the way
the current reduction is done when not moving.
you should set up the configuration.h to:
STEPPER_HIGH_DELAY 1
and
DIRECTION_DELAY 2
these drivers sometimes don´t recognize steps when changing direction.
so what i found during build of my machines is, if you use rigid couplers from motor to rod and they are not exactly centered,
motors loose steps caused by resonances.
so i know ( and i also bought some cheap stuff which i had simply to throw away).
for example with rigid couplers(cheap ones) i was not able to turn the motors faster than 500 rpm.
then changed to precision ones and can spin up to 1000 rpm now.
on another machine i use short belts to decouple vibrations and they spin up to 1400 rpm.
(so you can see why i´m a friend of the belt solution)
don´t know what couplers you use but you should avoid the full metal ones.
choose something looking like these
http://www.ebay.de/itm/Wellenkupplung-CNC-fur-Schrittmotoren-Kupplung-5mm-10mm-5Nm-/111982918402?hash=item1a12b3bb02:g:ZM