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

    M592 - Non-Linear Extrusion Comp - Cant get it to work...

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    5
    13
    465
    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.
    • FurbyDealer27undefined
      FurbyDealer27
      last edited by FurbyDealer27

      Thanks in advance!

      My 3d printer uses a Titan extruder and a standard brass nozzle.
      I was performing some flow-underextrusion testing and found that the Titan Extruder has a very linear slip based on extrusion speed.

      mm/s UnderExtrusion
      1 0%
      2 -3%
      3 -3%
      4 -7%
      5 -11%
      6 -15%
      7 -18%
      8 -21%

      I learned about M592, did some calculations and want to add an "A" coefficient value of 4.44%.
      I added "M592 D0 A0.0444 B0 L1" to my configuration file, as seen below.

      Every time that i power cycle and attempt to do additional Flow-UnderExtrusion testing, i get the same results as before i added M592.
      Am i using the wrong extruder number in M592? or is there some additional things needed to activate M592?

      I have also upgraded to Firmware V3.4.6

      ; Configuration file for Duet WiFi (firmware version 1.21)
      ; executed by the firmware on start-up
      ;
      ; generated by RepRapFirmware Configuration Tool v2 on Tue Feb 26 2019 21:31:01 GMT+0000 (Greenwich Mean Time)
      
      ; General preferences
      G90                                         				; Send absolute coordinates...
      M83                                         				; ...but relative extruder moves
      
      ; Delta Settings
      M665 L440.380 R227.19 H453.864 B185.0 X-0.61 y-0.41 z0      ; Set delta radius, diagonal rod length, printable radius and homed height
      M666 X-0.18 Y1.63 Z-1.46 A1.09 B-0.61    					; Put your endstop adjustments here, or let auto calibration find them
      ;M665 L440.380 R226.821 H460 B185.0 X0 y0 z0      			; Set delta radius, diagonal rod length, printable radius and homed height
      ;M666 X0 y0 z0 A0.00 B0.00                               	; Put your endstop adjustments here, or let auto calibration find them
      
      
      ; Network
      M550 P"Anycubic Predator"                     				; Set machine name
      M551 P""                         							; Set password
      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
      M552 s1														; Enable Wifi Automatically
      
      ; Drives
      M569 P0 S0                                  				; Drive X goes backwards
      M569 P1 S0                                  				; Drive Y goes backwards
      M569 P2 S0                                  				; Drive Z goes backwards
      M569 P3 S1                                  				; Drive Extruder forwards
      M584 X0 Y1 Z2 E3                                    		; set drive mapping
      M350 X16 Y16 Z16 E16 I1                     				; Configure microstepping with interpolation
      M92 X80.00 Y80.00 Z80.00 E406             					; Set steps per mm
      M566 X600 Y600 Z600 E800    	            			; Set maximum instantaneous speed changes (mm/min)
      M203 X7200.00 Y7200.00 Z7200.00 E420 I0.5					; Set maximum speeds (mm/min)
      M201 X4000.00 Y4000.00 Z4000.00 E4000.00    				; Set accelerations (mm/s^2)
      M906 X1200.00 Y1200.00 Z1200.00 E1200.00 I70 				; Set motor currents (mA) and motor idle factor in per cent
      M592 D0 A0.0444 B0 L1										; NonLinear Extrusion Compensation - Titan extruder has a linear slip based on extrusion speed.
      M84 S30                                     				; Set idle timeout
      
      ; Retraction
      ;M207 S2.5 F7000 R0.1 T2500 Z0.5								; Firmware retraction
      
      ; Axis Limits
      M208 Z0 S1                                  				; Set minimum Z
      
      ; Endstops
      M574 X2 S1 P"xstop"											; configure active-high endstop for high end on X via pin xstop
      M574 Y2 S1 P"ystop"                                 		; configure active-high endstop for high end on Y via pin ystop
      M574 Z2 S1 P"zstop"                                 		; configure active-high endstop for high end on Z via pin zstop
      
      ; Z-Probe
      M558 P5 C"e0stop" H8 F120 T2400 R0.2 S0.02 A5				; Set Z probe type to switch and the dive height + speeds
      G31 P100 X0 Y0 Z18.35	                    				; Set Z probe trigger value, offset and trigger height
      
      ; Bed Heater
      M308 S0 A"Heated Bed" P"bedtemp" Y"thermistor" T100000 B4300 C0 R4700	; Set thermistor + ADC parameters for heater 0
      M950 H0 C"bedheat" T0                               		; create bed heater output on bedheat and map it to sensor 0
      M307 H0 A137.8 C533.3 D1.5 V24.3 B0                       	; Disable bang-bang mode for the bed heater and set PWM limit
      M140 H0														; Map Bed Heater to Heater0
      M143 H0 S120                               					; Set temperature limit for heater 0 to 120C
      
      ; Extruder Heater
      M308 S1 A"Extruder" P"e0temp" Y"thermistor" T100000 B4300 C0 R4700		;Set thermistor + ADC parameters for Hetater 1
      M950 H1 C"e0heat" T1                                		; create nozzle heater output on e0heat and map it to sensor 1
      ;M305 P1 X200		                						; Set thermistor + ADC parameters for heater 1
      M307 H1 R2.113 C92.0 D10.07 S1.00 V24.7                   	; Disable bang-bang mode for the bed heater and set PWM limit
      M143 H1 S260                                				; Set temperature limit for heater 1 to 240C
      
      ;Heated Chamber
      M308 S2 A"Chamber" P"e1temp" Y"thermistor" T10000 B4950  ; configure sensor 2 as thermistor on pin e1temp
      M950 H2 C"e1heat" T2                           ; create chamber heater output on e1heat and map it to sensor 2
      M307 H2 B0 S1.00                               ; disable bang-bang mode for the chamber heater and set PWM limit
      M141 H2                                        ; map chamber to heater 2
      M143 H2 S100                                   ; set temperature limit for heater 2 to 100C
      
      ; E-Stop Buttom
      M950 J1 C"e1stop"											; Configures pin input
      M581 P1 T0 C0												; Configure EStop to trigger on Rising Edge All of the time.
      
      ; Fans
      M950 F0 C"fan0" Q500                                		; create fan 0 on pin fan0 and set its frequency
      M106 P0 S0 H-1                    							; set fan 0 value. Thermostatic control is turned off
      M950 F1 C"fan1" Q500                                		; create fan 1 on pin fan1 and set its frequency
      M106 P1 S1 H1 T45                                   		; set fan 1 value. Thermostatic control is turned on
      
      ; Tools
      M563 P0 D0 H1                               				; 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
      
      ; Automatic saving after power loss is not enabled
      
      ; Custom settings are not configured
      ;M591 D0 P2 C4 S1											; Activate filament sensor
      M404 N1.75 													; Set for print monitor
      M575 P1 B57600 S1											; Paneldue baud rate
      
      ; Mesh Compensation
      G29 S1														; Enable Mesh Compensation by Default
      M376 H25													; Set Taper Compensation Height.
      M557 R180 S20												; Define mesh grid
      
      ; Miscellaneous
      M501                                               			; Load saved parameters from non-volatile memory
      
      
      deckingmanundefined droftartsundefined 2 Replies Last reply Reply Quote 0
      • timschneiderundefined
        timschneider
        last edited by

        @FurbyDealer27 said in M592 - Non-Linear Extrusion Comp - Cant get it to work...:

        ; Miscellaneous
        M501 ; Load saved parameters from non-volatile memory

        I guess you have an M592 in your config-override.g which is called via M501 at the end of your config.

        ; Miscellaneous
        M501                                               			; Load saved parameters from non-volatile memory
        
        1 Reply Last reply Reply Quote 0
        • deckingmanundefined
          deckingman @FurbyDealer27
          last edited by

          @FurbyDealer27 How are you doing the under extrusion testing?

          Ian
          https://somei3deas.wordpress.com/
          https://www.youtube.com/@deckingman

          FurbyDealer27undefined 1 Reply Last reply Reply Quote 0
          • droftartsundefined
            droftarts administrators @FurbyDealer27
            last edited by

            @FurbyDealer27 Can you check if M592 is configured after a reset? Send M592 D0 in the console. I just tried this, with your M592 command right at the beginning of the config.g, and it responded with the correct extrusion compensation, so position in the config.g file doesn't matter. I didn't actually run any extrusion test to see if it is compensating, though. I'm also using RRF 3.5.0-rc1, rather than 3.4.6.

            If it is configured after reset, but not once you start extruding, ie send M592 D0 while extruding to check if it is still active, please check your gcode to see if it is being reset. Check your config.g is not reporting errors by sending M98 P'config.g' too.

            @timschneider As far as I'm aware, M592 is not saved in config-override.g with M500.

            Ian

            Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

            1 Reply Last reply Reply Quote 0
            • deckingmanundefined
              deckingman
              last edited by

              The reason I asked about the test methodology was that from the documentation we have .............."Nonlinear extrusion is not applied to extruder-only movements such as retractions and filament loading".

              So unless the extrusion move also corresponds with an X and/or Y carriage move, extrusion compensation isn't going to do anything.

              Ian
              https://somei3deas.wordpress.com/
              https://www.youtube.com/@deckingman

              FurbyDealer27undefined 1 Reply Last reply Reply Quote 1
              • FurbyDealer27undefined
                FurbyDealer27 @deckingman
                last edited by

                @deckingman

                Fantastic question. I am using CNCKitchen's Blob Test.

                I had to modify an excel sheet i found online to make it work for a delta printer, but i am moving up 10mm while extruding 200 mm of filament.

                Example: G1 Z10.5 E200 F12.473

                This makes me wonder if a Z axis movement is not enough to activate the compensation....

                deckingmanundefined Kioliaundefined 2 Replies Last reply Reply Quote 0
                • deckingmanundefined
                  deckingman @FurbyDealer27
                  last edited by

                  @FurbyDealer27 said in M592 - Non-Linear Extrusion Comp - Cant get it to work...:

                  ............................This makes me wonder if a Z axis movement is not enough to activate the compensation....

                  Highly likely I'd have thought, but only a moderator or someone who can dive into the code could confirm.

                  Ian
                  https://somei3deas.wordpress.com/
                  https://www.youtube.com/@deckingman

                  1 Reply Last reply Reply Quote 0
                  • FurbyDealer27undefined
                    FurbyDealer27 @deckingman
                    last edited by

                    @deckingman

                    I checked my Config-override.g and i do not call M592 (only in my config.g)

                    When i request "M592 D0" in the console, i get a return of "Drive 0 nonlinear extrusion coefficients: A=0.044, B=0.0000, limit=1.00".

                    Thanks for the asking me to check that.

                    droftartsundefined deckingmanundefined 2 Replies Last reply Reply Quote 0
                    • droftartsundefined
                      droftarts administrators @FurbyDealer27
                      last edited by

                      @FurbyDealer27 I've asked @dc42 to have a look at this.

                      Ian

                      Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

                      timschneiderundefined 1 Reply Last reply Reply Quote 0
                      • timschneiderundefined
                        timschneider @droftarts
                        last edited by

                        @droftarts
                        yep, you are right about the M500 - i thought that he maybe added it manually.

                        @FurbyDealer27
                        it looks like the non-linear-compensation is only active for printing moves, which are defined as XY and E+ moves.

                        if (Tool::GetXAxes(nextMove.tool).IsBitSet(drive) || Tool::GetYAxes(nextMove.tool).IsBitSet(drive))
                        {
                            flags.xyMoving = true;				// this move has XY movement in user space, before axis were mapped
                        }
                        
                        flags.isPrintingMove = flags.xyMoving && forwardExtruding;
                        
                        // Add the nonlinear extrusion correction to totalExtrusion.
                        // If we are given a stupidly short move to execute then clocksNeeded can be zero, which leads to NaNs in this code; so we need to guard against that.
                        if (flags.isPrintingMove && clocksNeeded != 0)
                        {
                        ...
                        
                        FurbyDealer27undefined 1 Reply Last reply Reply Quote 0
                        • deckingmanundefined
                          deckingman @FurbyDealer27
                          last edited by deckingman

                          @FurbyDealer27 said in M592 - Non-Linear Extrusion Comp - Cant get it to work...:

                          @deckingman

                          I checked my Config-override.g and i do not call M592 (only in my config.g)

                          When i request "M592 D0" in the console, i get a return of "Drive 0 nonlinear extrusion coefficients: A=0.044, B=0.0000, limit=1.00".

                          Thanks for the asking me to check that.

                          It was the other Ian (@droftarts ) who asked you to do those checks - confusing I know. 🙂

                          Ian
                          https://somei3deas.wordpress.com/
                          https://www.youtube.com/@deckingman

                          1 Reply Last reply Reply Quote 0
                          • FurbyDealer27undefined
                            FurbyDealer27 @timschneider
                            last edited by

                            @timschneider

                            Thank you everyone!!!

                            I changed the Blob test to extrude 200mm of filament while moving 30mm on the X axis. This now makes amazing looking weld beads.

                            I can confirm that this fixed my issue. The M592 compensation does require an XY movement.

                            345ac2ba-3f27-4d36-ba81-5539410ce4a3-image.png

                            Looks like i can push a crappy hotend and a Titan Extruder to around 10 mm3/s.
                            Thanks everyone for your help!, I really appreciate the immediate responses and feedback.

                            1 Reply Last reply Reply Quote 1
                            • Kioliaundefined
                              Kiolia @FurbyDealer27
                              last edited by Kiolia

                              @FurbyDealer27 said in M592 - Non-Linear Extrusion Comp - Cant get it to work...:

                              @deckingman

                              Fantastic question. I am using CNCKitchen's Blob Test.

                              I had to modify an excel sheet i found online to make it work for a delta printer

                              Would you be willing to share the modified sheet, or just explain what needed to be changed? I run a delta and this is testing I need to do 🙂 (EDIT: actually, scratch that, I figured out quickly what needs modding and I'm already done. It didn't have a round bed mode, mainly.)

                              AWD 48V Duet 3 6HC+3HC Linear Kossel XL "CarbonShrike"
                              https://www.printables.com/@Kiolia | youtube.com/@jamespray
                              aka Colphaer (Discord) | aka the Deltavangelist | aka that one duct guy

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