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

    Duplicate Extruder Signal

    Scheduled Pinned Locked Moved
    Duet Hardware and wiring
    3
    12
    592
    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.
    • matteo2uundefined
      matteo2u
      last edited by

      Hey guys,

      I would like to use the second extruder stepper driver to send a duplicate signal from the first extruder to an additional one to reduce the tension/influence on my x&y drives (it's a direct drive extruder). So this would be like a combo bowden-dd setup. Can this be done with a Deut2 Wifi?

      Thanks!
      Matt

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

        @matteo2u You wouldn't be the first to use a sort of push-pull extruder configuration which is what I think you want to do.

        The way to do is firstly configure both extruder drives like so
        M584 En:n+1 (where n is the driver number)

        These will then become extruder 0 and extruder 1. You need to set micro-stepping, steps per mm, instantaneous speed, acceleration, motor currents for the second extruder.

        Then configure a tool to use both extruders. e.g.
        M563 P0 D0:1 H1 ; Define tool 0 to use both extruders 0 and 1, and heater1

        then you set the mixing ratio for both extruders to 1. Like so
        M567 P0 E1.00:1.00 ; set mixing ratio for tool 0 so that both extruders feed 100%.

        HTH

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

        1 Reply Last reply Reply Quote 1
        • matteo2uundefined
          matteo2u
          last edited by

          Thanks Ian. I will give this a try! I take it this gcode is to be implemented in the config.g file, or is it better suited to a macro on startup (which I have never done before). I'm a noob.

          Thanks again!
          Matt

          engikeneerundefined deckingmanundefined 2 Replies Last reply Reply Quote 0
          • engikeneerundefined
            engikeneer @matteo2u
            last edited by

            @matteo2u short answer: yes that should be in config.g

            Long answer...

            Generally anything that is a machine setting and doesn't really change should be in config (e.g. motor mapping in normal circumstances, geometry type etc), anything that you might want to run/change any time, would be a macro (e.g. I have a macro that runs homing then bed autolevelling 3 times which I call before I print).

            You can put some machine settings in a macro that gets called from the config.g file like you said. The advantage if this is that you can recall the macro at any point in time to reset it if things have changed. I do this for motor currents and acceleration as I drop them during homing, then can reset them and still only have one place if I change things as I tune my printer.
            Having said that, the disadvantage is that it becomes a lot more difficult to work out what is going on if things go wrong with different macros/files being called from different places.
            Macros are powerful tools to use (and aren't that difficult when you get into them), but there's no point adding complexity unless you need/want it 🙂

            E3D TC with D3Mini and Toolboards.
            Home-built CoreXY, Duet Wifi, Chimera direct drive, 2x BMG, 300x300x300 build volume
            i3 clone with a bunch of mods

            1 Reply Last reply Reply Quote 1
            • deckingmanundefined
              deckingman @matteo2u
              last edited by

              @matteo2u In addition to what @engikeneer has said, the easiest way is to edit your existing config.g file because all the commands related to speed, acceleration, steps per mm etc, already exist. So all you have to do is add the second extruder motor onto the end of those lines. You'll already have a tool definition, so all you to do is add the colon D1 after the existing D0. The only new line you have to create is to set the mixing ratio - everything else is just editing what already exists.

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

              matteo2uundefined 1 Reply Last reply Reply Quote 0
              • matteo2uundefined
                matteo2u
                last edited by

                Thanks for the great help guys. I have yet to implement this, but thinking ahead, how might I implement stall detection on the new pusher stepper? the idea being that if the roll is cross wound or twisted or something, the print could pause until it could be manually cleared. This has happened to me a number of times and part of why I want to implement the push-pull.

                deckingmanundefined engikeneerundefined 2 Replies Last reply Reply Quote 0
                • deckingmanundefined
                  deckingman @matteo2u
                  last edited by

                  @matteo2u IMO, it's just better to never let that happen. Just design a filament spool holder that allows the reel to rotate freely, and when you unload filament, never let go of the end until you can tuck it into the holes provided for that purpose, or tape it to the side.

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

                  1 Reply Last reply Reply Quote 0
                  • engikeneerundefined
                    engikeneer @matteo2u
                    last edited by

                    @matteo2u alternative suggestion and possibly off topic, but what about going for a Magnetic Filament Monitor? I've got one on my machine and its been pretty good at detecting lost extruder steps and filament out scenarios.
                    Think there might be issues with stock at the moment, but with any luck the Duet guys will have them back soon...

                    E3D TC with D3Mini and Toolboards.
                    Home-built CoreXY, Duet Wifi, Chimera direct drive, 2x BMG, 300x300x300 build volume
                    i3 clone with a bunch of mods

                    1 Reply Last reply Reply Quote 0
                    • matteo2uundefined
                      matteo2u @deckingman
                      last edited by

                      @deckingman

                      Here is my config.g after making these edits you've suggested. I need to calibrate for the differences in the stepper and gear wheel of the new push extruder (not sure yet how to do that), but i just duplicated the E0 values to start. I did not have an M584 before, so I added it also. Anything look bad?

                      Also, this may or may not make any difference, but i have not got my M911 Automatic power loss state saving working yet, and neither of my tool-end fans work (hot-end nor part-cooling, lesser problems to solve later).

                      Thanks again for all the help!
                      Matt

                      ; Configuration file for Duet WiFi (firmware version 1.21)
                      ; executed by the firmware on start-up
                      ;
                      ; generated by RepRapFirmware Configuration Tool v2 on Sun Jul 21 2019 14:27:44 GMT-0700 (Pacific Daylight Time)

                      ; General preferences
                      G90 ; Send absolute coordinates...
                      M83 ; ...but relative extruder moves

                      ; Network
                      M550 P"Stevens3D1" ; Set machine name
                      M552 S1 ; Enable network
                      ;*** Access point is configured manually via M587
                      M586 P0 S1 ; Enable HTTP
                      M586 P1 S0 ; Disable FTP
                      M586 P2 S0 ; Disable Telnet

                      ; Drives
                      M584 E0:1 ;duplicates extruder drive
                      M569 P0 S0 ; Physical drive 0 goes reverse
                      M569 P1 S0 ; Physical drive 1 goes reverse
                      M569 P2 S1 ; Physical drive 2 goes forwards
                      M569 P3 S1 ; Physical drive 3 goes forwards
                      M350 X16 Y16 Z16 E16:16 I1 ; Configure microstepping with interpolation
                      M92 X80.40 Y80.40 Z800.00 E94.75:94.75 ; Set steps per mm
                      M566 X900.00 Y900.00 Z12.00 E120.00:120.00 ; Set maximum instantaneous speed changes (mm/min)
                      M203 X6000.00 Y6000.00 Z180.00 E1200.00:1200.00 ; Set maximum speeds (mm/min)
                      M201 X500.00 Y500.00 Z20.00 E250.00:250.00 ; Set accelerations (mm/s^2)
                      M906 X1000.00 Y1000.00 Z1000.00 E1000.00:1000.00 I30 ; 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 X200 Y200 Z175 S0 ; Set axis maxima

                      ; Endstops
                      M574 X1 Y1 Z1 S0 ; Set active low and disabled endstops

                      ; Filament Runout
                      M591 D0 P1 C3 S1

                      ; Z-Probe
                      M558 P0 H5 F120 T6000 ; Disable Z probe but set dive height, probe speed and travel speed
                      M557 X15:195 Y15:195 S40 ; Define mesh grid

                      ; Heaters
                      M307 H0 B0 S1.00 ; Disable bang-bang mode for the bed heater and set PWM limit
                      M305 P0 T100000 B4138 R4700 ; Set thermistor + ADC parameters for heater 0
                      M143 H0 S120 ; Set temperature limit for heater 0 to 120C
                      M305 P1 X200 ; Configure PT100 for heater 1
                      M143 H1 S260 ; Set temperature limit for heater 1 to 260C

                      ; Fans
                      M106 P0 S0 I0 F500 H1 T45 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned on
                      M106 P1 S1 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
                      M106 P2 S1 I0 F500 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on

                      ; Tools
                      M563 P0 D0:1 H1 ; Define tool 0 to use both extruders 0 and 1, and heater1
                      M567 P0 E1.00:1.00 ; set mixing ratio for tool 0 so that both extruders feed 100%
                      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 power saving
                      M911 S22 R50 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; Set voltage thresholds and actions to run on power loss

                      ; Custom settings are not configured

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

                        @matteo2u
                        Yes that isn't going to work because you'd assigned the two extruders to the first drives which, by default are the X and Y axes respectively. So you have a conflict.

                        I'm a bit surprised that you didn't have an M584 but that's possibly a default position. Personally, I never like to trust in defaults to never change, so I always like to explicitly define them. For that reason, I would change M584 to this:
                        M584 X0 Y1 Z2 E3:4 (assuming that's how the stepper motors are connected to drivers)

                        The next thing you need to do is set the second extruder direction with an M569
                        So add M569 P4 S1 - assuming the second extruder is connected to driver 4 - and you might need to change the "S1" to "S0" if it turns the wrong way.

                        Other than that, I didn't see anything that was glaringly wrong.

                        Edit. One thing that often confuses people is the extruder number vs driver number. Your configuration is fine in that respect (well it will be after you change M584) but for future reference, when you have multiple extruder motors, the physical driver is the one that you define in M584 - so in your case that would be drivers 3 and 4. From then on, the first extruder in that M584 is extruder 0, and the second (after the colon) is extruder1 etc. So in your tool definition (M563), the "D" refers to the extruder, not the physical driver. In you case the "D0" in M563 refers to the driver associated with the first extruder which is physical driver3 and the D1 refers to physical driver 4.

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

                        matteo2uundefined 1 Reply Last reply Reply Quote 0
                        • matteo2uundefined
                          matteo2u @deckingman
                          last edited by

                          @deckingman Thanks for this great help. I got it up and running and all seems to be working fine with the exception of something strange. When I increase the slider for extruder 1 (the new pusher) it seems to slow down. Inversely, when i drag it below the setting for Extruder 0, it speeds up. Is there a good explanation for this?

                          Thanks again,
                          Matt

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

                            @matteo2u said in Duplicate Extruder Signal:

                            @deckingman Thanks for this great help. I got it up and running and all seems to be working fine with the exception of something strange. When I increase the slider for extruder 1 (the new pusher) it seems to slow down. Inversely, when i drag it below the setting for Extruder 0, it speeds up. Is there a good explanation for this?

                            Thanks again,
                            Matt

                            Just thinking out loud but one possibility for that behaviour is this. Essentially, the firmware doesn't "know" that you have two extruders in a push-pull configuration. In a way we've tricked it by saying that there are two extruders feeding one hot end (similar to a two in, one out hot end) but we've set the mixing ration to 1:1 giving an overall extrusion percentage of 200%. That's what we would be getting if we used a two in, one out hot end with the extruders is parallel rather than in series. Normally, with any sort of multi input, single hot end, that mixing ratio would always add up to unity (or 100%). So it's likey that the firmware is reacting in such as way as to maintain the sum of the mixing ratios. So that if a multiplier is applied to one extruder (which is what yo are doing by using the slider), then the other extruder would need to be reduced to maintian the overall extrusion amount. i.e. If we define a mixing ratio of 1.00:1.00 using M569 to give an overall extrusion amount of 200%, then we apply a multiplier to the first extruder of (say) 10% then the second extruder would need to be reduced by 10% to maintain the overal total of 200% and maybe that's the behaviour that you are seeing.

                            Just guessing. But in any case, we've used a sort of trick to fool the firmware into taking a normal mixing hot end type of extruder configuration and using it to control extruders that are actually in a push-pull arrangement. So strange things might happen if you then try to control each extruder independently (which is what the sliders do). For that reason, it's probably better if you don't mess with the sliders. If you have to make adjustments to one extruder with respect to the other, it might be better to adjust the steps per mm for that extruder.

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

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