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

    1HCL closed loop steppers on CoreXY

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    4
    14
    1.3k
    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.
    • dc42undefined
      dc42 administrators @Alex.cr
      last edited by

      @alex-cr one of the issues is that with an encoder resolution of 1000 cpr the best resolution we can possibly get is 4000 transitions per revolution, which for a 1.8deg motor is equivalent to x20 microstepping. Whereas in open loop mode the driver can do interpolation up to x256 microstepping.

      It may be that we could implement a hybrid mode, basically open loop most of the time with the firmware switching to closed loop when the encoder indicates an unacceptable deviation from target.

      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

      o_lampeundefined 1 Reply Last reply Reply Quote 2
      • o_lampeundefined
        o_lampe @dc42
        last edited by

        @dc42
        That would also act as audible-alarm, so the user knows something is wrong when the motors start to get noisy

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

          @dc42 I saw you posted about the noise using the HCL boards. Is that in both open and closed loop modes that you will try and reduce noise as man it’s loud. I thought it was because I put sides on it that’s making it noisey but I took them off and it’s still noisey.

          Custom Core-XY

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

            @samlogan87 in open loop mode the motor should be quiet, assuming you have microstep interpolation enabled as usual, because then the stepper driver chip operates just as on the MB6HC. How quiet depends on the motor. In my tests with a large Nema 34 motor, it is quiet in open loop mode but somewhat noisy in closed loop mode.

            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 hmm, I may need to play around with it then. I have done a major upgrade to the printer with new mounts made of aluminium and changing belts from 6mm to 9mm and then the new boards and it is substantially louder. Here is a video of it now. I will find one previously

              https://youtube.com/shorts/nAJHBpGT3ow?feature=share

              Custom Core-XY

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

                @samlogan87 were you running on open or closed loop mode when you made that video?

                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 that was open loop. I am waiting until LDO have their “fast” steppers sorted with encoders before I use the board to its full potential. I am running the boards at 48v’s if that means anything/ helps

                  Custom Core-XY

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

                    @samlogan87 please post your config.g file.

                    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 Hi David, Sorry was away on holiday. Please see my config file

                      ; Configuration file for Duet 3 (firmware version 3.3)
                      ; executed by the firmware on start-up
                      ;
                      ; generated by RepRapFirmware Configuration Tool v3.3.10 on Wed Dec 08 2021 21:12:19 GMT+1300 (New Zealand Daylight Time)
                      
                      ; General preferences
                      M575 P1 S1 B57600                                               		; enable support for PanelDue
                      G90                                                             		; send absolute coordinates...
                      M83                                                             		; ...but relative extruder moves
                      M550 P"Sam's Printer"                                           		; set printer name
                      M669 K1                                                         		; select CoreXY mode
                      
                      ; Wait a moment for the CAN expansion boards to start
                      G4 S2
                      
                      ; Network
                      M552 P0.0.0.0 S1                                                		; enable network and acquire dynamic address via DHCP
                      M586 P0 S1                                                      		; enable HTTP
                      M586 P1 S0                                                      		; disable FTP
                      M586 P2 S0                                                      		; disable Telnet
                      
                      ; Drives
                      M569 P10.0 S1 F8                                                 		; physical drive 10.0 goes forwards
                      M569 P11.0 S1 F8                                                 		; physical drive 11.0 goes forwards
                      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 X16 Y16 Z16:16:16:16 U16 V16 W16 E16 I1                       		; configure microstepping with interpolation
                      M92 X80 Y80 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
                      
                      ; Axis Limits
                      M208 X0 Y0 Z0 S1                                               			; set axis minima
                      M208 X363.5 Y352 Z412:412:412:412 U412 V412 W412 S0                     ; set axis maxima
                      M671 X-45:-46:408:405 Y92:296:300:92 S3.0  								; Define the X and Y coordinates of the lead screw. Motor order: FL (1), RL (2), RR (3), FR (4).Snn Maximum correction in mm to apply to each leadscrew
                      
                      ; Endstops
                      M574 X1 S1 P"10.io0.in"                                       	 		; configure switch-type (e.g. microswitch) endstop for low end on X via pin 11.io0.in
                      M574 Y1 S1 P"10.io1.in"                                        			; configure switch-type (e.g. microswitch) endstop for low end on Y via pin 11.io2.in
                      M574 Z1 S2                                                      		; configure Z-probe endstop for low end on Z
                      
                      ; Z-Probe
                      M558 P8 R1.0 C"!^20.io2.in" H5 F250		                            	; set Z probe type to unmodulated and the dive height + speeds
                      G31 P500 X0 Y0 Z-0.20                                          		; set Z probe trigger value, offset and trigger height
                      M557 X0:363.5 Y0:352 S20                                     			; define mesh grid                                       	
                      
                      ; Heaters
                      M308 S0 P"spi.cs0" Y"rtd-max31865"                              		; configure sensor 0 as PT100 on pin spi.cs1
                      M950 H0 C"out1" T0                                              		; create bed heater output on out0 and map it to sensor 0
                      M307 H0 R0.200 K0.148:0.000 D38.10 E1.35 S1.00 B0                       ; disable bang-bang mode for the nozzle heater and set PWM limit
                      M140 H0                                                         		; map heated bed to heater 0
                      M143 H0 S150                                                    		; set temperature limit for heater 0 to 150C
                      M308 S1 P"20.temp0" Y"pt1000"                                  			; configure sensor 1 as PT1000 on pin 123.temp0
                      M950 H1 C"20.out0" T1                                          			; create nozzle heater output on 123.out0 and map it to sensor 1
                      M307 H1 R2.366 K0.162:0.000 D9.88 E1.35 S1.00 B0 V24.0					; PID control Magnum Plus PT1000  
                      ;M307 H1 R2.104 C430.2 D9.13 S1.00 V24.2									; PID control Magnum Plus PT1000                                                		
                      M143 H1 S400                                                    		; set temperature limit for heater 1 to 400C
                      
                      ; Fans
                      
                      ; Part Cooling Pump
                      			
                      M950 F3 c"out2" Q25000													; Assign Part Cooling Fan to Heater Port 2
                      M106 P3 X0.5 B0 H-1 C"Part Cooling" 									; Part Cooling Fan Remap to Heater 2		 
                      
                      ; Water Cooling
                      
                      M950 F4 c"!out6+out6.tach"												; Water Cooling Pump Output
                      M106 P4 H1 B15 L0.2 X.75 T50 C"Extruder"								; Water Cooling Pump Start
                      M308 S10 P"temp0" Y"thermistor" A"Water Temp" T10000 B3950				; Create Heater for Cooling Water
                      M950 F0 c"!out9" Q25000													; Assign Fan 0 to Fan 0 Port and Inverse
                      M106 P0 H10 L.3 B.5 T60:80 C"Radiator"									; Set fan 4 PWR fan. Turns on when Radiator temperature (heater 103), hits 30C and full speed when the temperature reaches 60C
                      
                      ;Board Cooling Fan					
                      
                      M308 S20 P"mcutemp" Y"mcutemp" A"Duet Board" 							; Map Duet MCU to the Extra Table
                      M308 S21 P"10.mcutemp" Y"10.mcutemp" A"Board 10 MCU"					; Map Duet Drivers to the Extra Table
                      M308 S22 P"11.mcutemp" Y"11.mcutemp" A"Board 20 MCU"					; Map Duex2 Driver to the Extra Tabl
                      M308 S23 P"20.mcutemp" Y"20.mcutemp" A"Tool Board MCU"					; Map Duex2 Driver to the Extra Tabl
                      M308 S24 P"temp1" Y"thermistor" A"Control Area" T100000 B3950  			; Create Virtual Heater for Control Area
                      M950 F1 c"!out4+out4.tach" Q25000										; Assign Fan 1 to Fan 1 Port and Inverse
                      M106 P1 L.3 B.5 T40:65 H20 C"Duet Fan"									; Set fan 1 PWR fan. Turns on when MCU temperature, hits 45C and full when the MCU temperature reaches 65C or if any TMC2660 drivers (virtual 		
                      M950 F2 c"!out5+out5.tach" Q25000										; Assign Fan 2 to Fan 2 Port and Inverse
                      M106 P2 L.3 B.5 T40:65 H22 C"Control Area"								; Set fan 2 PWR fan. Turns on when MCU temperature, hits 45C and full when the MCU temperature reaches 65C or if any TMC2660 drivers (virtual 
                      
                      ; Tools          		
                      M563 P0 S"Extruder 1" D0 H1 F3 											; define tool 0
                      G10 P0 X0 Y0 Z0                                                			; set tool 0 axis offsets
                      G10 P0 R0 S0                                                   			; set initial tool 0 active and standby temperatures to 0C
                      M955 P20.0 I24															; Accelerometer
                      M572 D0 S0.005															; Pressure Advance
                      ;M592 D0 A0.009541 B0.001755											; Non Linear Extrusion 0.4mm pla
                      M593 P"zvddd" F60														; Input Shaping
                      
                      
                      ;Filament out sensor
                      
                      M591 D0 P3 C"20.io1.in" S0 R70:130 L26.26 E3.0 							; magnet sensor for extruder 0 is connected to E2 endstop input, enabled, sensitivity 24.8mm.rev, 70% to 130% tolerance, 3mm detection length 25.88			
                      M591 D0 																; display filament sensor parameters for extruder drive 0
                      
                      ;Tool Board Buttons
                      M950 J10 C"20.button1"
                      M581 T2 P10 S1
                      
                      ; Custom settings are not defined
                      
                      ; Miscellaneous
                      M911 S20 R23 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000"             			; set voltage thresholds and actions to run on power loss
                      
                      

                      Cheers Sam

                      Custom Core-XY

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

                        @samlogan87 thanks.

                        I am wondering whether microstep interpolation is working. If you send M350 X16 Y16 I0 does the motor get noisier, still in open loop mode? If you then send If you send M350 X16 Y16 I1 does it get quieter?

                        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 said in 1HCL closed loop steppers on CoreXY:

                          M350 X16 Y16 I0

                          Hi David, I gave it a go and it was much worse without the interpolation. On a side note, it doesn't seem you can change that parameter on the fly as I was getting this error and the printer would unhome x and y, but the z was fine

                          4/20/2022, 6:50:19 AM	M350 X16 Y16 I1
                          Cancelled printing file 0:/gcodes/Voron_Design_Cube_v7.gcode, print time was 0h 3m
                          Error: G0/G1: insufficient axes homed
                          4/20/2022, 6:46:38 AM	M32 "0:/gcodes/Voron_Design_Cube_v7.gcode"
                          File 0:/gcodes/Voron_Design_Cube_v7.gcode selected for printing
                          4/20/2022, 6:45:32 AM	M350 X16 Y16 I0
                          Cancelled printing file 0:/gcodes/Voron_Design_Cube_v7.gcode, print time was 0h 1m
                          Error: G0/G1: insufficient axes homed
                          4/20/2022, 6:44:00 AM	M32 "0:/gcodes/Voron_Design_Cube_v7.gcode"
                          File 0:/gcodes/Voron_Design_Cube_v7.gcode selected for printing
                          

                          Regards,
                          Sam

                          Custom Core-XY

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