Welcome to Our Community

Some features disabled for guests. Register Today.

Homing to Max instead of Min

Discussion in 'CNC Mills/Routers' started by Adam Filipowicz, Jan 15, 2020.

  1. Adam Filipowicz

    Adam Filipowicz Journeyman
    Builder

    Joined:
    Dec 21, 2014
    Messages:
    256
    Likes Received:
    120
    Using Blackbox. trying to configure. My end stops are at X-Max and Y Max. When it homes it should show my position as X270 and Y270. how do i configure GRBL to home to Max instead of Min?
     
  2. Adam Filipowicz

    Adam Filipowicz Journeyman
    Builder

    Joined:
    Dec 21, 2014
    Messages:
    256
    Likes Received:
    120
    I was looking at the GRBL guide and I feel I am setup properly with $23=0 X+ Y+ Z+, but when it homes it shows X0Y0Z0, shouldnt it show X270 Y270 Z70 ?
     
  3. David the swarfer

    David the swarfer OpenBuilds Team
    Staff Member Moderator Builder

    Joined:
    Aug 6, 2013
    Messages:
    1,552
    Likes Received:
    822
    home is machine 0,0,0 (Machine Coordinate system), which is accessed by the G53 code. This code has to appear on every line that needs it.

    now you jog to where your part zero is (ignore the displayed numbers, they don't matter), and use the 'set zero' buttons to set the Work Coordinate System (WCS), usually bottom left corner and top of work fo rZ, or center of work, or back left corner for vices.
    Now the displayed numbers are 0,0,0 for the work coordinates and you can start to consider the numbers important, for example if you now try to jog to X200 because your part is that wide but the carriage hits the endstop before getting there, you know you need to move your part toward -X so that you can have space to cut it.

    The Gcode runs relative to the WCS (usually G54 but G54 to G59 are available so you can set up 6 pieces of raw material and run the part 6 times with just a change of WCS between parts.) The G54 code only needs to be given once at the beginning of the file, as it is 'modal', ie it gets remembered as 'this is the state I am in'.

    If you are reading Gcode and see a line like
    G53 G0 Z-5
    that is telling the machine to raise Z to 5mm below the machines Z zero position, a safe height at which to move around with the tool as high as possible. If it went to 0 it would trigger the limit switch, which is AT MACHINE ZERO.
     
    Peter Van Der Walt likes this.
  4. Adam Filipowicz

    Adam Filipowicz Journeyman
    Builder

    Joined:
    Dec 21, 2014
    Messages:
    256
    Likes Received:
    120
    Thank you for the reply.. if its all WCS. then whats the point of homing at all. if you end up jogging over to the piece and resetting everything to 0,0,0
     
  5. Peter Van Der Walt

    Peter Van Der Walt OpenBuilds Team
    Staff Member Moderator Project Maker Builder Resident Builder

    Joined:
    Mar 1, 2017
    Messages:
    4,251
    Likes Received:
    1,546
    The point is repeatability. The offset of WCS to MCS is stored in EEPROM and persists between power cycles etc.
    Re-homing gets your WCS back the the same physical space after an hard abort, endstop hit, power failure, etc
    or if you run more mass production jobs, jig up positions, and homing makes sure they are always where you think they are
     
    Adam Filipowicz likes this.
  6. Adam Filipowicz

    Adam Filipowicz Journeyman
    Builder

    Joined:
    Dec 21, 2014
    Messages:
    256
    Likes Received:
    120
    Peter. Should homing switches be at Axis Min or Axis Max? is one preferable?
     
  7. Peter Van Der Walt

    Peter Van Der Walt OpenBuilds Team
    Staff Member Moderator Project Maker Builder Resident Builder

    Joined:
    Mar 1, 2017
    Messages:
    4,251
    Likes Received:
    1,546
    Usually Max: Read this section: gnea/grbl

    For XY, Min is OK too, but Z at the top makes a lot of sense, home up and away from hitting anything
     
    David the swarfer likes this.
  8. Christian James

    Christian James Well-Known
    Builder

    Joined:
    Jun 8, 2018
    Messages:
    181
    Likes Received:
    63
    There are probably many of us that do not use homing at all, although as Peter points out, it does have its uses.
     
  9. David the swarfer

    David the swarfer OpenBuilds Team
    Staff Member Moderator Builder

    Joined:
    Aug 6, 2013
    Messages:
    1,552
    Likes Received:
    822
    You are only resetting the offsets to the current Work Coordinate System, there are 6 of them.

    The point is mainly safety, but also convenience and avoiding human error. Every machine is configured the same so there are no surprises.
    Also, the machine must have knowledge of itself, without that it cannot do things like tool changes where the tool change position is not relative to the current part, but relative to the machine itself (relative to machine home in fact).
    Therefore all machines have a Machine Coordinate system and everything else is relative to this system.

    When you define the 0,0,0 position for a part you are setting offsets in the controller. The Gcode can still command a safe move by moving Z as high as possible (G53 G0 Z0) and then moving X and Y as needed. Without the machine coordinate system this would not be possible and machines would crash all the time. We amateurs must learn from the professionals and they have been doing it this way for 50 years or so, for safety (and cost of course).

    By using work offsets we make generating Gcode much easier to do and to use. Imagine you have to use absolute machine coordinates for everything. You bolt down a vice, where is it? say it ends up at X-200.147 Y-312.4 Z-127.33 (top left corner of back jaw)
    Now you have to program your part with all tool offsets relative to those numbers.
    Now you put raw material into the vice. where is it? is it correct for this code? Sticking up far enough? pushed to the left far enough? all of this has to be absolutely correct for this code to work.

    but now if we can tell the machine the offset of the raw material in the vice and call that part 0,0,0, the Gcode is much simpler to create and implement. remember that CAM is a relatively recent invention, for many years all Gcode was written by a person. and many people still do so.... The code for the slotting operation starting at 14:55 is hand written, all 5 lines of it (-: (I follow Peter on Instagram and he explained it there)
     

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice