G30 Insufficient Axes Homed For Bed Probing



  • Hello! I have nailed almost every one of this new Corexy's demons, except for this one: G30 Insufficient Axes Homed For Bed Probing.

    I have been through the Faq in the Wiki, but it references a different Error Message.

    I changed all of my "Pre Z Homing Moves" to s2 instead of s1 in all of the homing files.

    I also added the M564 H0 to the config.G

    I get this error as soon as the Y axis Homes. Also, When I define the bed probing region, it saves, but always tries to do the first probe off of the bed. Is this because of the Homing not completing?

    BTW, all of the axes do show homed, and report 0 as their location after homing.

    Here's My Homeall data.

    Thanks guys! I'm learning soooo Much!

    ; homeall.g
    ; called to home all axes
    ;
    ; generated by RepRapFirmware Configuration Tool v2 on Fri Mar 01 2019 12:32:41 GMT-0500 (Eastern Standard Time)

    G91 ; relative positioning
    G1 Z5 F6000 S2 ; lift Z relative to current position
    M98 Pdeployprobe.g ; deploy mechanical Z probe
    G1 S2 X0 Y0 F10000 ; move quickly to X or Y endstop and stop there (first pass)
    G1 S2 X0 ; home X axis
    G1 S2 Y0 ; home Y axis
    G1 X5 Y5 F6000 ; go back a few mm
    G1 S2 X0 F360 ; move slowly to X axis endstop once more (second pass)
    G1 S2 Y0 ; then move slowly to Y axis endstop
    G90 ; absolute positioning
    G1 X190 Y150 F10000 ; go to first bed probe point and home Z
    G30 ; home Z by probing the bed

    ; Uncomment the following lines to lift Z after probing
    G91 ; relative positioning
    G1 S2 Z5 F100 ; lift Z relative to current position
    G90 ; absolute positioning

    M98 Pretractprobe.g ; retract mechanical Z probe



  • I also already commented out the Deploy probe, and retract probe lines, as you said, to use the internal handling for type 9 probe.



  • I've read every post and article I can find online pertaining to this, but can only find G0/G1 Insufficient homing referenced. I'm stumped.



  • @steve-lynch TBH, I'm a bit surprised that DWC reports the axes as homed.

    So what we have is that by default, the firmware will not allow axes to be moved until they have been homed. This causes a problem when we want to move Z before we home X or Y. To get around this we can either use M564 H0 to override this default behaviour or we can use S2 to move Z and ignore the end stop. The latter is safer.

    But after moving Z, we then want to home X and Y and for these moves we want to detect the end stop, not ignore it. Therefore we need to us S1 rather than S2 (which is what you have).

    But also, when in relative mode the G1 command will move by an amount, rather than to a position. So G1 X0 Y0 means move X and Y by zero mm, resulting in no movement.

    So your homeall file should look like this:

    G91 ; relative positioning
    G1 Z5 F6000 S2 ; lift Z relative to current position
    M98 Pdeployprobe.g ; deploy mechanical Z probe

    G1 S1 X-nnn Y-nnn F10000 ; move quickly to X or Y endstop and stop there (first pass) .......nnn should be set to whatever your axes maxima are so that wherever the print head is at the start, it will also move to the end stop. S1 is useed to detect the end stop.

    **The above will move both X and Y until one or other end stop triggers, so now we need to home both X and Y individually in order to trigger the other end stop switch. So add the following

    G1 S1 X-nnn F10000 ; Now do a fast move just on X and detect the end stop
    G1 S1 Y-nnn F10000; likewise Y

    G1 X5 Y5 F6000 ; go back a few mm - that's fine

    G1 S1 X-100 F360 ; move slowly to X axis endstop once more (second pass)
    G1 S1 Y-100 ; then move slowly to Y axis endstop
    In the above 2 commands I've changed S2 (ignore end stop) to S1 (detect end stop). I've used 100mm but anything greater than the 5mm that you moved away from the end stop will do

    From here on X and Y have been homed so we don't need use any "S" parameter for those axes.

    G90 ; absolute positioning
    G1 X190 Y150 F10000 ; go to first bed probe point and home Z
    G30 ; home Z by probing the bed

    Now Z has been homed so we don't need the S" that you have below

    ; Uncomment the following lines to lift Z after probing
    G91 ; relative positioning
    G1 S2 Z5 F100 ; lift Z relative to current position Take out this S2
    G90 ; absolute positioning

    M98 Pretractprobe.g ; retract mechanical Z probe

    That should get you sorted but take out the M564 H0 from your config.g. Either that or use it but take out all the S2 parameters from the above (but leave in the S1s).

    You might also want to consider dropping the motor currents at the start of homing then putting them back up at the end - it's just a bit safer in case and end stop switch fails.

    HTH



  • Thank you so very much for your help! i apologize, I'm on vacation, and was away for a couple days... I'm back and fresh! I tried what you said EXACTLY.....

    I still get the insufficient axes homes directly after the very first move.. any idea why? It still shows all 3 axes turn blue, and homing is complete.

    Here's My amended Homeall.G,

    ; homeall.g

    G91 ; relative positioning
    G1 Z5 F6000 S2 ; lift Z relative to current position
    M98 Pdeployprobe.g ;deploy mechanical z probe
    G1 S1 X0 Y0 F10000 ;move quickly to X or Y endstop and stop there (first pass)
    G1 S1 X0 F10000 ;Now do a fast move just on X and detect end stop
    G1 S1 Y0 F10000 ;Likewise Y
    G1 X5 Y5 F6000 ;go back a few mm
    G1 S1 X50 F360 ;move slowly to X axis endstop once more (second pass)
    G1 S1 Y50 ;then move slowly to Y axis endstop
    G90 ;absolute positioning
    G1 Z5 F6000 ;lift Z relative to current position
    G90 ;absolute positioning
    G1 X190 Y150 F6000 ;go to first probe point
    G30 ;home Z by probing the bed

    ; Uncomment the following lines to lift Z after probing
    G91 ;relative positioning
    G1 Z5 F100 ;lift Z relative to current position
    G90 ;absolute positioning
    M98 Pretractprobe.g ;retract mechanical Z probe


  • administrators

    @steve-lynch said in G30 Insufficient Axes Homed For Bed Probing:

    M98 Pdeployprobe.g ;deploy mechanical z probe

    You should replace that command by M401.

    G1 Z5 F6000 ;lift Z relative to current position

    Add S2 to that command.

    @steve-lynch said in G30 Insufficient Axes Homed For Bed Probing:

    M98 Pretractprobe.g ;retract mechanical Z probe

    Replace that line by M402.

    @steve-lynch said in G30 Insufficient Axes Homed For Bed Probing:

    I still get the insufficient axes homes directly after the very first move.. any idea why? It still shows all 3 axes turn blue, and homing is complete.

    Please explain what you many by "after the very first move". Do you mean after the very first move in the homeall.g file, or something else?

    What are the contents of your deployprobe.g and retractprobe.g files?



  • Hi Thanks! I changed the things you asked me to, and still the same result. When I say the "first move, Yes, I mean the very first homing move...

    Here's my probe scripts.

    deploy just contains M280 P3 S10 I1

    retract contains: M280 P3 S90 I1



  • When I home all, the very first move moves the gantry to the front of the coreXY printer, and it hits the end stop.. this is at zero... then the x moves right, stops, and goes left to home against the end stop.. then it does the 2nd pass, and moves to bed center, where it triggers the BLTouch, clears the "not homed" light in the Web interface, then it looks like it did what it was supposed to do successfully... except for the "insufficient homed" Message which remains on screen.



  • @dc42 does that sufficiently answer your question sir?



  • Have you sent each line of the homing file by itself via the gcode console to see which line is causing the problem?



  • @steve-lynch said in G30 Insufficient Axes Homed For Bed Probing:

    When I home all, the very first move moves the gantry to the front of the coreXY printer, and it hits the end stop.. this is at zero... then the x moves right, stops, and goes left to home against the end stop.. then it does the 2nd pass, and moves to bed center, where it triggers the BLTouch, clears the "not homed" light in the Web interface, then it looks like it did what it was supposed to do successfully... except for the "insufficient homed" Message which remains on screen.

    Have you actually got the axes all moving in the right directions according to this procedure. https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCoreXYPrinter

    Regardless of that, your homeall.g file is still wrong. Read again what I said about using G1 S1 X-nnn, Y-nnn. That's X and Y minus a value that is the same or greater than your axis maxima rather than X0 Y0.

    Also, take out your first G90 absolute command just before the Z5 move. That will try to move to the absolute position of 5mm from Z=0, but until Z has been homed, the firmware has no idea where Z0 is. So keep the move as relative then it will move the Z axis by 5mm from wherever it happens to be (which is what you want).

    Edit - I was going to suggest that if tell me what you axes maxima and minima are, I'll post a homing file that you can copy and paste. But on second thoughts, you won't learn that way - it's that "catch a man a fish or teach him to fish thing" ☺



  • @deckingman the machine goes right when I go right, left when I go left, away and towards when I command it to be so. manual gcode moves are also correct... it took a month of playing, but I finally got it going the right way. As I've been posting ad-nauseum (probably driving you guys crazy) the left front (alpha Motor corner) is X0 Y0 max is 300 in both directions.

    I do not understand the whole negative value thing you're referring to... so even if my end stop is zero for example, I want to tell it to home to -300?

    Believe me, I want to learn to fish, but because of time differences and stuff, it's frustrating to wait 24 hours or more for a reply... 2 weeks have flown by, and I'm no better off than when I started. It would be wonderful to be able to give this a whirl.

    Thanks for all your help though man! Seriously! I am learning... it's just a lot to process. I'm a CNC and laser Cutter builder... I'm super comfy with my cartesian configurations, but corexy is a new game for me.



  • @stephen6309 I'll try that!



  • Ok, If I enter the Gcode line by line, I get no errors.

    If I run the Homeall, I get an error. I made your changes.... I think.... Am I closer? It still doesn't work right, but i'm learning what's what!

    G91 ; relative positioning
    G1 Z5 F6000 S2 ; lift Z relative to current position
    M401 ;deploy mechanical z probe
    ;G1 S1 X-300 Y-300 F10000 ;move quickly to X or Y endstop and stop there (first pass)
    G1 S1 X-300 F10000 ;Now do a fast move just on X and detect end stop
    G1 S1 Y-300 F10000 ;Likewise Y

    G1 X5 Y5 F6000 ;go back a few mm

    G1 S1 X50 F360 ;move slowly to X axis endstop once more (second pass)
    G1 S1 Y50 ;then move slowly to Y axis endstop

    G1 Z5 F6000 ;lift Z relative to current position
    G90 ;absolute positioning
    G1 X190 Y150 F6000 ;go to first probe point
    G30 ;home Z by probing the bed

    ; Uncomment the following lines to lift Z after probing
    G91 ;relative positioning
    G1 Z5 F100 ;lift Z relative to current position
    G90 ;absolute positioning

    M402 ;retract mechanical Z probe



  • @steve-lynch said in G30 Insufficient Axes Homed For Bed Probing:

    I do not understand the whole negative value thing you're referring to... so even if my end stop is zero for example, I want to tell it to home to -300?

    Yes. The reason is that the absolute position of 0,0 is where you want the nozzle to be when X and Y are homed. But, when you turn the printer on, the nozzle could be anywhere on the bed but the printer doesn't "know" that. You might have been working in the printer with the power off and manually moved both axes to the maximum position. But the firmware has no idea that you've done that so it has no idea where the nozzle is. Which is the whole purpose of homing - to establish a datum position.

    To help you understand, all moves are in fact relative. Absolute moves are moves to a certain position on the bed but this position is relative to the homed position - usually X0, Y0. For example the absolute position of X=100 in your case, means the nozzle is 100mm to the right if the edge of the bed - i.e. 100mm relative to X=0. On the other hand, what we call relative moves are relative to where the nozzle is now. In relative terms G1 X100 means move 100mm to the right from wherever the nozzle happens to be, but in absolute terms G1 X100 means move to a position which is 100mm from X =0.

    So until an axis has been homed (i.e. until a datum position is known) all moves have to be relative to where the nozzle is now. When we start the homing process, the nozzle could be anywhere up to the maximum travel distance in either X or Y. In order to find and trigger the end stop, we need to move in a negative direction towards where the end stop is. And because the nozzle could be at (say) X max when we turn in the printer, and we need to enure that it will travel far enough to reach the end stop, then that move must be at least equal to the X max position (it will stop before then if it triggers the end stop - providing you use S1). Doing G1 X0 Y0 won't work because in absolute terms, the firmware has no idea where X0 Y0 is because we haven't yet established that. In relative terms G1 X0 Y0 means move the head by zero mm from where it is now so that won't work either.

    Does that help clarify things?



  • @steve-lynch Sorry, I was typing my other lengthy post so didn't see your latest.

    Yes you are getting closer.

    You can uncomment this line - it saves a bit of time if that first move is a diagonal move which stop when one or other end stops triggers.
    ;G1 S1 X-300 Y-300 F10000 ;move quickly to X or Y endstop and stop there (first pass)

    Your second "G1 Z5 F6000 ;lift Z relative to current position" needs an S2 because at that point in time, the Z axis still hasn't been homed.



  • yes actually, that's kind of what I surmised... That way no matter where it is on the bed, it has a theoretical travel distance equal to the total dimensions of the build volume.. That actually makes perfect sense!
    Cheers!



  • @steve-lynch said in G30 Insufficient Axes Homed For Bed Probing:

    yes actually, that's kind of what I surmised... That way no matter where it is on the bed, it has a theoretical travel distance equal to the total dimensions of the build volume.. That actually makes perfect sense!
    Cheers!

    We seem to be typing at the same time - see my latest.



  • @deckingman OOps! I left that commented, because I was observing what each G code did... Forgot to free that back up! Good eye!



  • Dang it! Can ya' throw me a bone? What is it that is causing the error... It seems to be in relation to the first set of moves... this block of moves

    ;G1 S1 X-300 Y-300 F10000 ;move quickly to X or Y endstop and stop there (first pass)
    G1 S1 X-300 F10000 ;Now do a fast move just on X and detect end stop
    G1 S1 Y-300 F10000 ;Likewise Y

    as soon as the gantry starts moving, it errors... But I do not see any G28 reference in there, or G30 at this stage of the Gcode.... is it right in front of me?


 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.