Home all axis at once
-
Hi guys!
I was wondering if there's a good way to home the XYZ axis all at once? Right now I homeall.g I home one axis at a time but because the printer is quite large it takes quite a long time.
Thanks in advanced!
-
-
@chrishamm Okey so then I'll put in a separate G1 H1 command and not call each home script individually??
-
@saktziki below is my homing script which homes all axis at the same time however be aware that this is for a delta so all are home to max but it may give you a clue.
; homedelta.g ; called to home all towers on a delta printer ; ; generated by RepRapFirmware Configuration Tool on Fri Jul 07 2017 14:49:07 GMT+0100 (BST) ; Use relative positioning G91 ; Move all towers to the high end stopping at the endstops (first pass) ;*** Slow homing has been configured. Change F600 to F6000 below when your configuration is working G1 X585 Y585 Z585 F6000 H1 ; Go down a few mm G1 X-5 Y-5 Z-5 F6000 H2 ; Move all towers up once more (second pass) G1 X10 Y10 Z10 F360 H1 ; Move down a few mm so that the nozzle can be centred G1 Z-5 F6000 ; Switch back to absolute positioning and go to the centre G90 G1 X0 Y0 F6000
HTH
Doug
-
Awesome that works! But now I encountered a different problem. I back away from the endstops and the approach them slowly again but they don't stop.
This is my code:
; Clear any bed transforms M561 ; Clear babystepping M290 R0 S0 ; Set to Relative Positioning G91 ; Move Z down so we don't drag it on the bed G1 H1 F300 Z1 ; Set to Absolute Positioning G90 ; Move if not stopped by endstop first G1 H1 F1200 X700 Y475 Z900 M400 ; Back off endstop slowly G1 H0 F240 X-5 Y-5 Z-10 M400 ; Move to endstop again, slowly G1 H1 F120 X15 Y15 Z20 ; Wait M400 ; Set position G92 X645.00 Y445.00 Z576.6 ; Wait 500 ms G4 P500 ;; Move from endstop by 1mm G1 F720 X-1 Y-1 Z-5 ; Set to Absolute Positioning G90
-
@saktziki if it's a Cartesian printer, see https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCartesianPrinter#Section_The_homeall_g_file. This shows how to home X and Y together. If Z uses an endstop switch then you could also home Z at the same time.
-
@saktziki said in Home all axis at once:
I back away from the endstops and the approach them slowly again but they don't stop.
Leave the printer in relative coordinate mode (G91) while homing and backing off.
-
@dc42 Thank you so much! I got it to work now
-
@dc42 I realise I'm reviving quite an old thread, but my question is closely related so I'd like to add it here:
On my setup (IDEX in dual markforged configuration, e.g. all gantry motors have to move for most all X/Y/U moves, separate endstops for each axis), when comissioning aG1 H1 X-1000 Y-1000 U1000
homing move, all movement halts when the first endstop is reached, meaning that the other axes don't finish their moves. Is this normal with this kinematic setup or has something changed since the above remarks about homing all axes at once? My setup is a 5+ mini and 3HC with FW 3.5b2.
Thank you for your time.best, Niklas
-
@sonderzug said in Home all axis at once:
@dc42 I realise I'm reviving quite an old thread, but my question is closely related so I'd like to add it here:
On my setup (IDEX in dual markforged configuration, e.g. all gantry motors have to move for most all X/Y/U moves, separate endstops for each axis), when comissioning aG1 H1 X-1000 Y-1000 U1000
homing move, all movement halts when the first endstop is reached, meaning that the other axes don't finish their moves. Is this normal with this kinematic setup or has something changed since the above remarks about homing all axes at once? My setup is a 5+ mini and 3HC with FW 3.5b2.
Yes, that's normal when the homing move involves a motor that affects the position of more than one axis (CoreXY, MarkForged etc). We suggest that you home such a machine as follows:
- Use an initial homing move that tries to home several axes at once (XYU in your case). This will finish when one of the endstops is triggered.
- Follow that with a separate G1 H1 move for each axis.
Step #1 is optional but it speeds up homing.
Step #2 could be done differently. For example, you could use a homing move that tries to home X and U together, then follow that with separate X, Y and U homing moves. You could even interrogate the endstop switches and use conditional GCode to decide which axes to home next.
-
@dc42 thank you, those are some good pointers. I guess I'll leave it at that (right now I have it set at separate moves for each axis).