Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    How to get around "insufficent Axes Homed?

    Scheduled Pinned Locked Moved
    General Discussion
    8
    22
    1.4k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • westechundefined
      westech
      last edited by westech

      Greetings!

      I have a CoreXY pen plotter. Just X and Y no Z motor. I'm trying to test my first G-code. If I manually home X and Y I still get the Err0r: G0/Gl: insufficient axes homed.

      Is there a way to bypass the homing requirement?

      Or how can I "eliminate the Z axis?

      There isn't even a Z driver, so I don't think I could just attach a switch to the Z endstop and trigger it?

      Thanks

      Max

      fcwiltundefined 1 Reply Last reply Reply Quote 0
      • rjenkinsgbundefined
        rjenkinsgb
        last edited by

        Try adding

        M564 H0
        

        to your config?

        https://duet3d.dozuki.com/Wiki/M564

        Robert J.

        Printers: Overlord pro, Kossel XL+ with Duet 6HC and "Frankentron", TronXY X5SA Pro converted to E3D toolchange with Duet 6HC and 1LC toolboards.

        1 Reply Last reply Reply Quote 0
        • Gixxerfastundefined
          Gixxerfast
          last edited by Gixxerfast

          In your homex.g and homey.g do you use the H1 flag?

          Like in G1 X350 F3600 H1 ?

          You shouldn't have to home z to home x and y

          Voron V2.4 (#1317) with Duet 3 Mini5+ Wifi and 1LC v1.1 Toolboard
          Voron V0.1 (#637) with Duet 3 Mini 5+ Wifi and 1LC v1.2 Toolboard
          Ender 3 Pro with BTT SKR-2 + RRF

          1 Reply Last reply Reply Quote 0
          • fcwiltundefined
            fcwilt @westech
            last edited by fcwilt

            @westech

            What does your homing code look like?

            You don't want to use M564.

            What you can do is use G92 Z0 to force the Z axis to be marked as homed and set it's logical position to 0.

            Frederick

            Printers: a E3D MS/TC setup and a RatRig Hybrid. Using Duet 3 hardware running 3.4.6

            westechundefined 1 Reply Last reply Reply Quote 2
            • westechundefined
              westech @fcwilt
              last edited by

              @fcwilt Thanks, I will try G92 Z0 to force the Z axis ...

              My HomeX.g:

              ; homex.g
              ; called to home the X axis
              ;
              M400 ; Wait for motion to stop
              G91 ; Use relative moves
              G1 H2 X0.01 Y0.01 ; Move X a small amount to enable
              M400 ; Wait for stop
              G4 P200 ; Delay to allow TMC to detect stopped state
              M915 p0 s20 H200 r0 ; Configure stall detect
              M574 X1 S3 ; Configure X endstop
              M913 X50 Y50 ; Lower X, Y and Z power
              G4 P200 ; Delay to ensure settings are made
              ; G1 H2 Z5 F2500 ; lift Z relative to current position
              g1 H1 X20 F2000 ; back away from endstop
              M400 ; Wait for stop
              M915 p0 s20 H200 r0 ; Configure stall detect
              G4 P200 ; Delay to ensure settings are made
              G1 H1 X-325 F2500 ; Move towards endstop until it stalls
              M400 ; Wait until all stopped
              M915 p0 s20 H200 r0 ; Configure stall detect
              G4 P200 ; Delay to ensure settings are made
              g1 H1 X10 F2000 ; back away from endstop
              M400
              M915 p0 s20 H200 r0 ; Configure stall detect
              G4 P200
              G1 H1 X-325 F2500 ; Move towards endstop until it stalls
              M915 p0 s20 H200 r0 ; Configure stall detect to be less sensitive
              M400
              G1 X1 F1000 ; Move away from stop and cancel stall
              M400 ; wait complete
              G90 ; Absolute positioning
              M913 X100 Y100 ; back to full power
              ;G1 H2 Z0 F2500 ; Return Z to original position
              M915 P1 S20 H200 R1 ; Report any stalls

              fcwiltundefined infiniteloopundefined 2 Replies Last reply Reply Quote 0
              • fcwiltundefined
                fcwilt @westech
                last edited by

                @westech

                Hi,

                I don't use stall detect but I have tested it once upon a time.

                Your homing code seems way more complicated then it needs to be. While I don't remember exactly what I did it wasn't anywhere near that complicated.

                Perhaps someone who uses stall detect for their printer will jump in and comment.

                Frederick

                Printers: a E3D MS/TC setup and a RatRig Hybrid. Using Duet 3 hardware running 3.4.6

                westechundefined 1 Reply Last reply Reply Quote 0
                • infiniteloopundefined
                  infiniteloop @westech
                  last edited by

                  @westech said in How to get around "insufficent Axes Homed?:

                  G1 H2 X0.01 Y0.01 ; Move X a small amount to enable

                  Hm, why do you move Y in your homex.g?

                  1 Reply Last reply Reply Quote 0
                  • westechundefined
                    westech @fcwilt
                    last edited by

                    @fcwilt My Home.gs came from a working example for sensorless homing. And it worked. I just copied them out. I commented out the part requiring the Z axis since I don't have a Z motor.

                    My X and Y sensorless homing works well.

                    achrnundefined 1 Reply Last reply Reply Quote 0
                    • achrnundefined
                      achrn @westech
                      last edited by

                      @westech I have a sand table, which is not dissimilar to a pen plotter - it has X and Y, no Z, no extruder, etc.

                      My homez.g is just:

                      ; homez.g
                      ; called to home the Z axis
                      ;
                      echo "homez.g"
                      G92 Z0
                      

                      With respect to sensorless homing, I use that on X (but not Y). I think your homex.g has more commands than you need, but you might decide that if it's not broke don't fix it.

                      In particular, you don't need to keep repeating M915 p0 s20 H200 r0 - that's a setting you can make once. Also, the line M915 p0 s20 H200 r0 ; Configure stall detect to be less sensitive doesn't make much sense, because you're resetting exactly the same configuration, not a less sensitive one. Finally, it may depend on your hardware, but noting that stall detection is less precise and on a plotter-type device super-sub-millimetre homing probably isn't necesary on X or Y, I don't bother with the touch-backoff-touch again dance.

                      I use:

                      ; homex.g
                      ; called to home the X axis
                      ;
                      echo "homex.g"
                      
                      M574 X1 S3               ; low end X stop by motor load detection
                      M913 X66                 ; reduce motor current to two thirds standard level
                      M915 X S40 F0 H200 R0    ; configure sensorless homing on X
                      G4 P200                  ; ensure the settings are made
                      
                      G91                      ; relative moves
                      G1 H1 X-400 F4000        ; move to endstop and set this as zero
                      
                      M913 X100                ; return to full current
                      
                      G90                      ; return to absolute positioning
                      

                      Note that I'm using slightly different hardware and the 'S' parameter in my M915 probably isn't appropriate for yours.

                      westechundefined 1 Reply Last reply Reply Quote 1
                      • westechundefined
                        westech @achrn
                        last edited by

                        @achrn Great info! I do want to clean my homing, But it did get sensorless homing working, and I'd rather not install switches.

                        Do you remove or comment out in you config the Z axis and extruder? I'd like to but don't want to break things. In Marlin if you comment somethings out then these sanity checks error out.

                        True, I don't care about the accuracy of the homing. Just to allow my gcode to "print."

                        Thank

                        achrnundefined dc42undefined 2 Replies Last reply Reply Quote 0
                        • achrnundefined
                          achrn @westech
                          last edited by

                          @westech said in How to get around "insufficent Axes Homed?:

                          Do you remove or comment out in you config the Z axis and extruder?

                          I wrote the config file from scratch, and don't have Z or extruder references.

                          My hardware is not Duet3D (or rip-off-of-Duet3D), so some of the hardware interfacing detail is different (like, for example, in the stall detection the range of credible S values is different). Pin names are different to Duet3D hardware. Also, it's actually a continuous rotation polar mechanism, but the firmware thinks it's a cartesian with a very long Y axis (+/- 3,600,000 long). However, I only define axes that the machine uses:

                          ; Configuration file for Fly-E3-Pro running table
                          ; set up with x axis as radial position in units of mm
                          ; y axis is angular position in degrees
                          ; config file for RRF 3.4.0RC1
                          
                          M550 P"Table"                          ; set printer name
                          M552 S1                                ; enable wifi - DO NOT OMIT
                          
                          ; General preferences
                          G90                                    ; send absolute coordinates
                          
                          ; define as cartesian kinematics but include crosstalk factor on x axis
                          ; radial position driven by 20 tooth 2mm pitch, 
                          ; so 1 revolution (360 degrees) will move position by 40mm, or 1 degree = 1/9mm
                          M669 K0 Y{1/9,1,0}
                          
                          ; Motor drives
                          ; radial position is on driver 0 (X on board) and anticlockwise motor rotation increases radius
                          ; angular position is on driver 3 (E0 on board) and anticlockwise motor rotation increases angle
                          M569 P0 S0 D3 V40                      ; radial physical drive 0 goes backwards using default driver timings and sensorless homing
                          M569 P3 S0                             ; angle physical drive 3 goes backwards using default driver timings
                          M584 X0 Y3                             ; map drivers to axes
                          M350 X16 Y16 I1                        ; configure microstepping with interpolation
                          ; values for table:
                          ; radial drive 1 rev = 200x16 steps = 20*2 = 40mm thus 80 steps/mm
                          ; angular drive 1 rev = 400x16 steps = 16/288*360 = 20 degrees thus 320 steps/deg
                          M92 X80 Y320                           ; set steps per radius and steps/deg
                          ; axis limits
                          M208 X300 Y3600000                     ; allow max posn up to 300mm and +10,000 revolutions
                          M208 S1 X0 Y-3600000                   ; minimum position is 0mm and -10,000 revolutions
                          
                          ; speeds etc
                          M566 X600 Y360                         ; max instantaneous speed changes not yet tuned
                          M203 X20000 Y20000
                          M201 X1000 Y300                        ; set accelerations (mm/s^2 and deg/s^2)
                          
                          ; motors rated current is 1330mA/phase
                          ; typical value is 60% to 90% of the rated current - lower reduces torque, higher increase temperature
                          ; say 75% rated = 1000mA, but while running on test PSU limit to 600
                          ; idle should not be very significant because mechanism does not droop, 
                          ; so set idle current low but leave timeout long so dont lose homed position
                          M906 X600 Y600 I5                      ; set motor currents (mA) and motor idle factor in per cent
                          M84 S600                               ; Set idle timeout to ten minutes
                          
                          ; endstops
                          M574 X1 S3                             ; low-end X stop by motor stall detection
                          M574 Y1 S1 P"ystop"                    ; low-end Y stop by active-high on pin y-stop
                          
                          ; record processor temperature as sensor 9
                          M308 S9 Y"mcu-temp" A"processor"
                          
                          ; Tool
                          M563 P0                              ; define tool 0
                          T0                                   ; select tool 0
                          
                          baird1faundefined 1 Reply Last reply Reply Quote 0
                          • baird1faundefined
                            baird1fa @achrn
                            last edited by

                            @achrn If you have a continuous rotation axis, why not setup like a CNC with an A axis. The A Axis on a CNC is generally setup for continuous rotation. You specify the degree of rotation rather than a coordinate. For homing an A axis you do what others have suggested an just set G92 A0 at the startup of the machine. For the X, you can always just manually move it to the 'Home ' position and then send a G92 X0. It shouldn't be more complicated than that.

                            achrnundefined 1 Reply Last reply Reply Quote 0
                            • achrnundefined
                              achrn @baird1fa
                              last edited by

                              @baird1fa Thanks, I think you may be mixing up two posters. I'm perfectly happy with how my machine works. On the X axis I don't want to "just manually move it to the 'Home ' position and then send a G92 X0" - I have a homex.g file that automatically moves it to the zero position and sets that as zero.

                              I have a mechanical coupling between the axes, so I can't actually treat it as a continuous rotation axis - the motor coordinates for a particular physical position depend on the path to get there, and I want control of the path without always segmenting it (and I'm sometimes writing the gcode by hand).

                              1 Reply Last reply Reply Quote 1
                              • dc42undefined
                                dc42 administrators @westech
                                last edited by dc42

                                @westech using G92 Z0 as @fcwilt suggested is one way of doing it. I think it should also be possible to hide the Z axis using M584 P2, and if you hide it then it shouldn't complain that it is not homed.

                                Duet WiFi hardware designer and firmware engineer
                                Please do not ask me for Duet support via PM or email, use the forum
                                http://www.escher3d.com, https://miscsolutions.wordpress.com

                                achrnundefined 1 Reply Last reply Reply Quote 1
                                • achrnundefined
                                  achrn @dc42
                                  last edited by

                                  @dc42 said in How to get around "insufficent Axes Homed?:

                                  I think it should also be possible to hide the Z axis using M584 P2, and if you hide it then it shouldn't complain that t is not homed.

                                  That works on mine, thank you. However, you still need a homez.g (though an empty one will do) otherwise you get a warning message about its absence.

                                  dc42undefined westechundefined 2 Replies Last reply Reply Quote 1
                                  • dc42undefined
                                    dc42 administrators @achrn
                                    last edited by

                                    @achrn said in How to get around "insufficent Axes Homed?:

                                    That works on mine, thank you. However, you still need a homez.g (though an empty one will do) otherwise you get a warning message about its absence.

                                    Perhaps your homeall.g file includes a call to homez.g?

                                    Duet WiFi hardware designer and firmware engineer
                                    Please do not ask me for Duet support via PM or email, use the forum
                                    http://www.escher3d.com, https://miscsolutions.wordpress.com

                                    achrnundefined 1 Reply Last reply Reply Quote 0
                                    • westechundefined
                                      westech @achrn
                                      last edited by

                                      @achrn Thanks everyone. a Ton of great info. I will try in little steps all these. I found in working in Marlin, if you make too many changes at once, something breaks and you have to start over.

                                      That is how I got my Home.g and config. they seemed to get sensorless working even though they were ugly. Now I will start trimming things back.

                                      I had an issue because I did not have thermistors. So it complained and wouldn't setup. So I gave it a min temp of -250c. And then it was happy.:-)

                                      Max

                                      dc42undefined 1 Reply Last reply Reply Quote 0
                                      • dc42undefined
                                        dc42 administrators @westech
                                        last edited by

                                        @westech said in How to get around "insufficent Axes Homed?:

                                        I had an issue because I did not have thermistors. So it complained and wouldn't setup. So I gave it a min temp of -250c. And then it was happy.:-)

                                        The solution for that is to declare no heaters, and declare that the tool or tools use no heaters.

                                        Duet WiFi hardware designer and firmware engineer
                                        Please do not ask me for Duet support via PM or email, use the forum
                                        http://www.escher3d.com, https://miscsolutions.wordpress.com

                                        westechundefined 1 Reply Last reply Reply Quote 0
                                        • westechundefined
                                          westech @dc42
                                          last edited by

                                          @dc42 So, do you mean to comment those out in config or do I need a specific setting like heaters= 0.

                                          "declare no heaters, and declare that the tool or tools use no heaters"

                                          dc42undefined 1 Reply Last reply Reply Quote 0
                                          • dc42undefined
                                            dc42 administrators @westech
                                            last edited by

                                            @westech if you use the online configurator to generate config.g then don't declare them.

                                            If you want to edit an existing config.g then comment out any M307, M308 and M950 commands for the sensors and heaters that you don't have, and remove any H parameters from M563 too creation lines.

                                            Duet WiFi hardware designer and firmware engineer
                                            Please do not ask me for Duet support via PM or email, use the forum
                                            http://www.escher3d.com, https://miscsolutions.wordpress.com

                                            westechundefined 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Unless otherwise noted, all forum content is licensed under CC-BY-SA