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

    1HCL Issues

    Scheduled Pinned Locked Moved Unsolved
    Tuning and tweaking
    encoders 1hcl
    2
    11
    625
    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.
    • samlogan87undefined
      samlogan87
      last edited by

      Hey Everyone,

      After reading about not using 0.9 degree steppers, I have got myself some 1.8 degree stepper with extended shafts for the original encoders. They are HS28A based encoders with a CPR of 2500. I have them all running and configured, however I can not calibrate them. I am getting the following fault:

      M98 P"0:/macros/Positioning"
      Warning: Driver 10.0 warning: tuning failed
      Warning: Driver 10.0 new tuning error(s): The measured motion was inconsistent.
      

      When I run a

      M569.3 P10
      

      I get this

      M569.3 P10
      Error: M569.3: Driver number 10 out of range
      

      Can anyone shed any light on what might be happening. I made sure that the encoder height on the shaft was the same between the two steppers and the back plates we drilled by LDO for them. The shafts seemed to protrude the same distance.

      Here is my config

      ; Drives
      
      M569 P10.0 D4 S0 F8														; Configure the motor on the 1HCL at can address 50 as being in closed-loop drive mode (D4) and not reversed (S0)
      M569 P11.0 D4 S0 F8														; Configure the motor on the 1HCL at can address 51 as being in closed-loop drive mode (D4) and not reversed (S0)
      M569.1 P10.0 T2 C12.5 R110 I5000 D0.15                                  ; Configure the 1HCL board at CAN address 10 with a quadrature encoder on the motor shaft that has 20 steps per motor full step
      M569.1 P11.0 T2 C12.5 R110 I5000 D0.15                                  ; Configure the 1HCL board at CAN address 11 with a quadrature encoder on the motor shaft that has 20 steps per motor full step
      M569 P0.2 S0 F10                                                 		; physical drive 0.2 goes forwards
      M569 P0.3 S0 F10                                                   		; physical drive 0.3 goes forwards
      M569 P0.4 S1 F10                                                   		; physical drive 0.4 goes forwards
      M569 P0.5 S1 F10                                                   		; physical drive 0.5 goes forwards
      M569 P20.0 S1                                                  			; physical drive 20.0 goes forwards
      M584 X10.0 Y11.0 Z0.2:0.3:0.4:0.5 E20.0 P6                    			; set drive mapping
      M350 X32 Y32 															; configure microstepping
      M350 Z16:16:16:16 U16 V16 W16 E16 I1                       				; configure microstepping with interpolation
      M92 X160 Y160 Z400:400:400:400 U400 V400 W400 E690	       				; set steps per mm
      M566 X800 Y800 Z120:120:120:120 U120 V120 W120 E300  	       			; set maximum instantaneous speed changes (mm/min)
      M203 X60000 Y60000 Z400:400:400:400 U400 V400 W400 E7200       			; set maximum speeds (mm/min)
      M201 X30000 Y30000 Z250:250:250:250 U250 V250 W250 E10000          		; set accelerations (mm/s^2)
      M906 X1550 Y1550 Z1800:1800:1800:1800 U1800 V1800 W1800 E1200 I60   	; set motor currents (mA) and motor idle factor in per cent
      M84 S30                                                        			; Set idle timeout
      M917 X75 Y75 															; Set the closed loop axes to have a holding current of zero
      

      and the positioning Macro

      G90                     ; absolute positioning
      G1 X50 Y50 F3000        ; Move to a known-safe position
      M400                    ; Wait for the move to complete
      G4 P500                 ; Wait for the motor to settle
      M569 P10.0 D4           ; Turn closed loop back on
      M569.6 P10.0 V1         ; Perform the tuning manoeuvres for a quadrature encoder X
      M400                    ; Wait for the move to complete
      G4 P500                 ; Wait for the motor to settle
      M569 P11.0 D4			; Put Driver back into Closed Loop Mode
      M569.6 P11.0 V1			; Perform the tuning manoeuvres for a quadrature encoder Y
      
      

      Cheers,
      Sam

      Custom Core-XY

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

        @samlogan87 said in 1HCL Issues:

        When I run a
        M569.3 P10

        I get this
        M569.3 P10
        Error: M569.3: Driver number 10 out of range

        Should be: M569.3 P10.0

        However, that command is only supported on Hangprinter with ODrives connected.

        Which firmware versions are you using on the main board and on the EXP1HCL boards?

        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

        samlogan87undefined 1 Reply Last reply Reply Quote 0
        • samlogan87undefined
          samlogan87 @dc42
          last edited by

          @dc42 Yeah I corrected that issue after I posted 😛

          I was running 2.4.3 but have now upgraded as I wanted to use the auto tune function for the closed loop. I have managed to sort the issue. It seemed when I disconnect the motors to swap them over, I must of got the encoder cables crossed. It it working now.

          On a side note, what is the backlash readings? I haven't seen any documentation on it yet?

          Cheers
          Sam

          Custom Core-XY

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

            @samlogan87 the backlash reading is a measure of how much stiction you have in your motor and the mechanics that constrain the rotation of the motor. The maximum allowed by the firmware is currently 0.22 full steps. The measured value typically reduces if motor current is increased.

            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

            samlogan87undefined 1 Reply Last reply Reply Quote 0
            • T3P3Tonyundefined T3P3Tony marked this topic as a question
            • T3P3Tonyundefined T3P3Tony has marked this topic as solved
            • samlogan87undefined
              samlogan87 @dc42
              last edited by

              @dc42 Hi David,

              I am finally getting back to my printer. Is backlash compensation able to fix this as it seems to not. I still have not been able to actually print anything with the encoders as I seem to keep having issues. Is there anything I can do to fix it?

              Cheers
              Sam

              Custom Core-XY

              samlogan87undefined 1 Reply Last reply Reply Quote 0
              • samlogan87undefined
                samlogan87 @samlogan87
                last edited by

                @dc42
                Hi David,

                I have managed to finally get it to print by running the positioning multiple times over. Now it is printing I am running a calibration cube for some new filament and the noise is almost unbearable. What would be causing it. It is coming from the motors, as it is much much quieter when I revert back to not using the closed loop

                Printer Noise.mp4

                Sam

                Custom Core-XY

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

                  @samlogan87 the noise is caused by a combination of excessive P value (which the current closed loop tuning plugin encourages), limited encoder resolution, and backlash. You can reduce it by choosing a lower P value (e.g. 40), then use the closed loop tuning plugin to find appropriate D and I values.

                  We have further work planned to reduce closed loop noise before we release RRF 3.5.

                  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

                  samlogan87undefined 1 Reply Last reply Reply Quote 0
                  • samlogan87undefined
                    samlogan87 @dc42
                    last edited by

                    @dc42 I used the auto tuning function and it gave me quite low values however there was no D value given

                    ; Drives
                    
                    M569.1 P10.0 T2 C2500 R30 I9000 D0                                      ;1HCL board at CAN addr 10 with a quad encoder with 12.5 steps per motor full step
                    M569.1 P11.0 T2 C2500 R60 I4000 D0                                      ; 1HCL board at CAN addr 11 with a quad encoder with 12.5 steps per motor full step
                    M569 P10.0 D4 S0 F8														; Configure the motor on the 1HCL at can address 50 as being in closed-loop drive mode (D4) and not reversed (S0)
                    M569 P11.0 D4 S0 F8														; Configure the motor on the 1HCL at can address 51 as being in closed-loop drive mode (D4) and not reversed (S0)
                    M569 P0.2 S0 F10                                                 		; physical drive 0.2 goes forwards
                    M569 P0.3 S0 F10                                                   		; physical drive 0.3 goes forwards
                    M569 P0.4 S1 F10                                                   		; physical drive 0.4 goes forwards
                    M569 P0.5 S1 F10                                                   		; physical drive 0.5 goes forwards
                    M569 P20.0 S1                                                  			; physical drive 20.0 goes forwards
                    M584 X10.0 Y11.0 Z0.2:0.3:0.4:0.5 E20.0                   			    ; set drive mapping
                    M350 X32 Y32 															; configure microstepping
                    M350 Z16:16:16:16 U16 V16 W16 E16 I1                       				; configure microstepping with interpolation
                    M92 X160 Y160 Z400:400:400:400 U400 V400 W400 E690	       				; set steps per mm
                    M566 X800 Y800 Z120:120:120:120 U120 V120 W120 E300  	       			; set maximum instantaneous speed changes (mm/min)
                    M203 X60000 Y60000 Z400:400:400:400 U400 V400 W400 E7200       			; set maximum speeds (mm/min)
                    M201 X30000 Y30000 Z250:250:250:250 U250 V250 W250 E10000          		; set accelerations (mm/s^2)
                    M906 X1550 Y1550 Z1800:1800:1800:1800 U1800 V1800 W1800 E1200 I60   	; set motor currents (mA) and motor idle factor in per cent
                    M84 S30                                                        			; Set idle timeout
                    M917 X80 Y80 															; Set the closed loop axes to have a holding current of zero
                    
                    

                    The encoders I am using are 2500 CPR encoders so I do not know if this is not enough. They came off motors you were working with LDO on.
                    In terms of backlash, I am guessing you mean mechanical? If anything I think the belts might be too tight as I certainly can not get them much tighter.

                    Is there anything that sticks out to you in my config?

                    Sam

                    Custom Core-XY

                    samlogan87undefined 1 Reply Last reply Reply Quote 0
                    • samlogan87undefined
                      samlogan87 @samlogan87
                      last edited by

                      @dc42 hey David,

                      Is there anything you can see or should I manually tune the PID until the autotune is sorted? I did read somewhere that changing D can reduce noise? Also just wanting to know what you meant by backlash?

                      Regards
                      Sam

                      Custom Core-XY

                      samlogan87undefined 1 Reply Last reply Reply Quote 0
                      • samlogan87undefined samlogan87 has marked this topic as unsolved
                      • samlogan87undefined
                        samlogan87 @samlogan87
                        last edited by

                        @dc42

                        Hi David,
                        Sorry to keep hounding but are you able to give me anymore insight into what could be wrong. I have had to go back to non closed loop as it was too noisy it was annoying the wife who was watching tv 2 rooms away

                        Kind regards,
                        Sam

                        Custom Core-XY

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

                          @samlogan87 the auto tune function attempts to tune for fastest response. To achieve lower noise, you probably need to use lower R values than the auto tune function suggests. As you are now using 30 and 40, try 15 or 10.

                          The forthcoming 3.5.0-beta.3 release allows you to specify a velocity feedforward term in the M569.1 command. That may also hep to reduce noise.

                          I will revisit the noise level of closed loop motors later this month/early next month.

                          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

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