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

    M200 Volumetric issue, revisited

    Scheduled Pinned Locked Moved
    General Discussion
    2
    8
    412
    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.
    • paralepsisundefined
      paralepsis
      last edited by

      I've been trying to get my head around volumetric extrusion and the "filaments" features. Read this post, which is informative, but I could still use some help.

      I got volumetric printing working, with the appropriate filament-specific stuff buried in the Prusa Slicer filament start g-code. What I think I would like to do is have the all the filament-specific stuff in the appropriate filament config.g instead, like this:

      ; Filament diameter and extrusion multiplier
      M200 D1.71
      M221 D0 S84.15
      
      ; Firmware retraction
      M207 S0.30 F2400 T1800 R0 Z0.2 
      
      ; Pressure advance settings
      M572 D0 S0.04
      
      

      Then I could just call M703 at the beginning of a specific gcode file for a print (e.g., in the custom gcode within Slicer), and if I need to switch mid-print I can just load that config file.

      I can see that the extrusion multiplier, retraction, and pressure advance settings are all being applied by calling the appropriate [M221|M207|M572] commands in the console, but an "M200" indicates that volumetric is off. This isn't helpful, but is explained in the linked post above.

      However, what I'm observing is that unless I actually place the M200 within the body of the top-level gcode file (i.e., the thing that Slicer is generating), that this value doesn't seem to be applied at all (i.e., the Duet overextrudes heavily). This is (a) pretty confusing, and (b) seems inconsistent given that all the other settings are applied and easily visible.

      So, I guess I'm wondering if I understand things correctly and really do need to make sure I have the right filament diameter applied via the "top-level" gcode file (whatever the term is, not down in the filament config.g)? Or is there something else going on that I've mucked up in this transition? And if I do understand things, is there a work-around?

      Thanks!

      Railcore II 300XL w/ Duet 3 & RRF 3.5rc4, Makerbot R2X w/ Duet 2 WiFi & RRF 3.4

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

        Volumetric extrusion is done or not on a per-input-channel basis. This is so that the extrusion commands on PanelDue and in DWC will work as normal even after you are doing a print with volumetric extrusion enabled, or when you pause a print which uses volumetric extrusion. So to use volumetric extrusion, put the M200 command in your slicer start GCode.

        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

        paralepsisundefined 1 Reply Last reply Reply Quote 0
        • paralepsisundefined
          paralepsis @dc42
          last edited by

          @dc42 Thanks. So to be clear: I can put retraction, pressure advance, and extrusion multiplier wherever I want, but this one thing has to be in the slicer gcode?

          Is standard practice (when using volumetric) just to put in (e.g.) 1.75mm and do all the work with extrusion multiplier? Because if I cannot change the filament diameter during the print, then I have to have some other mechanism to get the extrusion rate right if I switch filament...

          Thanks again!

          Railcore II 300XL w/ Duet 3 & RRF 3.5rc4, Makerbot R2X w/ Duet 2 WiFi & RRF 3.4

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

            @paralepsis said in M200 Volumetric issue, revisited:

            @dc42 Thanks. So to be clear: I can put retraction, pressure advance, and extrusion multiplier wherever I want, but this one thing has to be in the slicer gcode?

            Is standard practice (when using volumetric) just to put in (e.g.) 1.75mm and do all the work with extrusion multiplier? Because if I cannot change the filament diameter during the print, then I have to have some other mechanism to get the extrusion rate right if I switch filament...

            Thanks again!

            I haven't used volumetric extrusion except during testing, so I can't really advise you. Setting the filament diameter to 1.75mm and tweaking the extrusion multiplier using M221 sounds good to me, assuming that all your filament is nominally 1.75mm diameter.

            In fact, if you issue M200 from another channel, it will affect the extrusion. Volumetric extrusion on/off is handled per-input-channel, but the filament diameters are stored globally.

            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

            paralepsisundefined 1 Reply Last reply Reply Quote 0
            • paralepsisundefined
              paralepsis @dc42
              last edited by

              @dc42 Heh ok...so I can in fact use M200 commands from outside the "input channel" (i.e., the slicer-generated gcode file) to change the filament diameter, and they will be applied, I just cannot observe the change anywhere?

              Railcore II 300XL w/ Duet 3 & RRF 3.5rc4, Makerbot R2X w/ Duet 2 WiFi & RRF 3.4

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

                @paralepsis said in M200 Volumetric issue, revisited:

                @dc42 Heh ok...so I can in fact use M200 commands from outside the "input channel" (i.e., the slicer-generated gcode file) to change the filament diameter, and they will be applied, I just cannot observe the change anywhere?

                M200 without parameters should report the filament diameters.

                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
                • paralepsisundefined
                  paralepsis
                  last edited by

                  I'm pretty sure that when I use M200 outside the scope of the input channel, during a volumetric run, I just get the message about volumetric extrusion not being enabled.

                  Railcore II 300XL w/ Duet 3 & RRF 3.5rc4, Makerbot R2X w/ Duet 2 WiFi & RRF 3.4

                  1 Reply Last reply Reply Quote 0
                  • paralepsisundefined
                    paralepsis
                    last edited by paralepsis

                    Ok, I can confirm that this (in the input channel gcode):

                    ; Set dummy filament diameter and then load filament settings
                    M200 D1.75 
                    M703
                    
                    ; report filament diameter?
                    M200
                    
                    

                    Does get me into volumetric extrusion mode, and that the M703 does result in a change in the filament diameter. Somewhat bogus way to have to do things, but this does solve my problem for me.

                    Thanks for the discussion, it helped.

                    Railcore II 300XL w/ Duet 3 & RRF 3.5rc4, Makerbot R2X w/ Duet 2 WiFi & RRF 3.4

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