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

    How to get around "insufficent Axes Homed?

    Scheduled Pinned Locked Moved
    General Discussion
    8
    22
    1.5k
    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.
    • 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
                                • achrnundefined
                                  achrn @dc42
                                  last edited by

                                  @dc42 Yes, you're right I still had an errant homez.g call in homeall.g. Thanks.

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

                                    @dc42 Understood! Thanks!

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