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

    M221 - Request for help for proper extruder drive mapping DWC

    Scheduled Pinned Locked Moved Solved
    Tuning and tweaking
    3
    22
    762
    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.
    • Phaedruxundefined
      Phaedrux Moderator
      last edited by

      I think you should read the entry for M584 on the creation of new axis.

      https://duet3d.dozuki.com/Wiki/Gcode#Section_M584_Set_drive_mapping

      I'm not sure what your U and W axis are being used for.

      I don't think it matters so much in RRF3, but maybe use V instead of W.

      Also ensure you're defining all your axis in the subsequent axis commands. You're missing the W axis from M906 for instance, and you're defining E in two separate commands and overriding the Idle current from I65 to I20.

      Z-Bot CoreXY Build | Thingiverse Profile

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

        @code7 I second what @Phaedrux said about using V instead of W. It always used to be the case that axis had to be created in the order XYZUVWABCD. It may be different in RRF3 but I'd stick with using V instead of W just in case.

        Also, as @Phaedrux said, you need to have motor/driver commands for all axes that are defined in M584. That includes M569 (drives 5 and 10 are missing from your config.g).

        Not that it's relevant to your extruder issue but you've only set axes minima for Z and there is no axes maxima.

        At the end of your config.g there is a G2 A0 but nowhere else is there any mention of an "A" axis. Suggest you remove that command or replace the "A" with a valid axis letter.

        Once you have put all that right, check on DWC STATUS Page that there is only one extruder drive displayed and that it is drive 0. If it isn't, hit the "Change visibility" button and deselect all drives, then select just drive 0.

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

        1 Reply Last reply Reply Quote 1
        • code7undefined
          code7
          last edited by

          @Phaedrux @deckingman

          Thanks for both of your suggestions. I have implemented all of your suggestions but am still having this problem. I would like to be able to map the DWC Extruder to E10 but don't see that this as an option and wonder if this possible? Danal (God bless him) helped me design a custom extruder circuit that runs off of E10.

          Delta Printer Using a Duet 2 Wifi v1.04c, FW3.4.0beta2, Duet WiFi sever 1.26, Duet Web Control 3.3.0

          1 Reply Last reply Reply Quote 1
          • Phaedruxundefined
            Phaedrux Moderator
            last edited by

            Copy and paste your updated config.g into a post here so we can see all your changes.

            Z-Bot CoreXY Build | Thingiverse Profile

            1 Reply Last reply Reply Quote 0
            • code7undefined
              code7
              last edited by code7

              @Phaedrux @deckingman

              Here is the updated config.g. I've also removed all references to the U and V axis as they were for testing.

              ; Configuration file for Duet WiFi (firmware version 3)
              ; executed by the firmware on start-up
              ;
              ; generated by RepRapFirmware Configuration Tool v2.1.8 on Tue Feb 11 2020 11:45:16 GMT-0700 (Mountain Standard Time)
              
              ; General preferences
              G90                            	                ; send absolute coordinates...
              M83                                             ; ...but relative extruder moves
              M550 P"Delta Printer"                           ; set printer name
              M665 R88 L236 B55 H259.5                        ; Set delta radius, diagonal rod length, printable radius and homed height
              M666 X-1.170 Y1.058 Z0.112                      ; put your endstop adjustments here, or let auto calibration find them (default X0 Y0 Z0)
              

              ; Panel Due
              M575 P1 B57600 S1 ;Set baud rate Duet Board.

              ; Network
              M587 S"Ammon"
              M551 P"12345" ; set password
              M552 S0 ; Turn on Wifi
              ;M552 P192.168.1.0 ; enable network and set static IP - doesn't work, Static IP needs to be setup in Router

              M552 S1
              ;M553 P255.255.255.0 ; Netmask
              ;M554 P192.168.1.1 ; Gateway (not used yet)
              M586 P0 S1 ; enable HTTP
              ;M586 P1 S0 ; disable FTP
              ;M586 P2 S0 ; disable Telnet

              ; Drives
              M569 P0 S0 ; physical drive 0 goes forwards - X
              M569 P1 S0 ; physical drive 1 goes forwards - Y
              M569 P2 S0 ; physical drive 2 goes forwards - Z
              M569 P3 S0 ; physical drive 3 goes forwards - E0
              M569 P10 S1 ; physical drive 10 goes forwards - E10
              M584 X0 Y1 Z2 E10 ; set drive mapping with Wire Control
              M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
              ;M92 X80.00 Y80.00 Z80.00 E3918.10 ; set steps per mm (original values)
              M92 X80.00 Y80.00 Z80.00 E2487.71 ; set steps per mm
              M566 X1200.00 Y1200.00 Z1200.00 E10 ; set maximum instantaneous speed changes (mm/min)
              M203 X4500 Y4500 Z4500 E2000 ; set maximum speeds (mm/min)
              M201 X300.00 Y300.00 Z300.00 E500 ; set accelerations (mm/s^2 (default 1000 for XYZ)
              M906 X2000 Y2000 Z2000 I65 ; set motor currents (mA) and motor idle factor in per cent (I30 is default but doesn't hold effector)
              M906 E800 I20 ; set motor currents (mA) and motor idle factor in per cent (I30 is default but doesn't hold effector)
              M84 S30 ; Set idle timeout

              ; Axis Limits
              M208 Z0 S1 ; set minimum Z for Delta Printer

              ; Endstops
              M574 X2 S1 P"!xstop" ; configure active-low endstop for high end on X via pin xstop
              M574 Y2 S1 P"!ystop" ; configure active-low endstop for high end on Y via pin ystop
              M574 Z2 S1 P"!zstop" ; configure active-low endstop for high end on Z via pin zstop
              M574 U2 S1 P"exp.E2_STOP" ; configure active-low endstop for high end on Z via pin zstop (configured this pin for a Spool Rewind dummy endstop. Can use XYZ endstop as well with +)

              ; Z-Probe
              M558 P5 C"^!zprobe.in" H5 F120 T6000 ; set Z probe type to switch and the dive height + speeds (P5 selects switch for bed probing between the In/Gnd pins of the Z-probe connector) (Defualt H5 F120)
              ;M558 H30 ;*** Remove this line after delta calibration has been done and new delta parameters have been saved with M500
              G31 P500 X0 Y0 Z-9.0 ; set Z probe trigger value, offset and trigger height (Default Z=-6.5)
              M557 R30 S10 ; define mesh grid
              M208 S1 Z-2.5 ; allow movement down to Z=-2.5

              ; Heaters
              M308 S0 P"bedtemp" A"Bed Temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 0 as thermistor on pin bedtemp
              M308 S1 P"e0temp" A"Deposition Head" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 0 as thermistor on pin bedtemp
              M308 S2 P"e1temp" A"Power 1" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 0 as thermistor on pin bedtemp
              M308 S3 P"exp.thermistor3" A"Power 2" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 0 as thermistor on pin bedtemp
              M308 S4 P"exp.thermistor4" A"Power 3" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 0 as thermistor on pin bedtemp
              M308 S5 P"exp.thermistor5" A"Stepper X" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 0 as thermistor on pin bedtemp
              M308 S6 P"exp.thermistor6" A"Y Axis SMA AG" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 0 as thermistor on pin bedtemp
              M308 S7 P"^exp.thermistor7" A"X Axis SMA Ceramic" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 0 as thermistor on pin bedtemp

              ; 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 S0 H-1 ; set fan 1 value. Thermostatic control is turned off
              M950 F2 C"!fan2" Q100 ; create fan 2 on pin fan2 and set its frequency
              M106 P2 C"Power Power" S0 H-1 B0.05 ; set fan 2 name and value. Thermostatic control is turned off. Blip time is set at .05sec full PWM (0.1 sec is default if field is empty).

              ; Expansion Pins
              M950 P2 C"spi.cs2" ; Auto or not for E0 controller. Set by M42 P1 S0 or S1 in macros

              ; Tools
              M563 P0 S"Deposition Head" D0 F-1 ; 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

              ; Miscellaneous
              T0 ; select tool 0

              ; Custom settings
              M302 P1 ; allow cold extrusion
              M42 P1 S50 ; turn on chamber light
              M501 ; Loads saved (M500) values at startup (calibration etc.) and overrides any similar commands earlier in config.g

              ; Power Enable/Disable Safety Relay - Expansion GPIO (0-9 pins available on Heater/Fan pins)
              M950 P0 C"exp.heater5" ; Expansion connector pin 18
              M42 P0 S0 ; Disable Powers - DC/SSR
              M950 P1 C"exp.heater6" ; Expansion connector pin 23
              M42 P1 S0 ; Deposition Signal OFF - AC/SSR
              M950 P6 C"exp.heater7" ; Expansion connector pin 31
              M42 P6 S0 ; Turns On the Aux. (Full Power is 0, Off is 255)
              M950 P5 C"exp.heater4" ; Expansion connector pin 13
              M42 P5 S0 ; Turns Shield Gas OFF (Full Power is 255, Off is 0)
              M950 J7 C"exp.heater3" ; Expansion connector pin 8
              M42 P7 S1 ; Senses conductivity between wire and bed/part
              ; M581 P"exp.heater3" T2 C1

              Delta Printer Using a Duet 2 Wifi v1.04c, FW3.4.0beta2, Duet WiFi sever 1.26, Duet Web Control 3.3.0

              deckingmanundefined 1 Reply Last reply Reply Quote 1
              • Phaedruxundefined
                Phaedrux Moderator
                last edited by

                Can you explain a bit more about what you're trying to accomplish? What is driver 10? What did Danal create for you? Was it working before in RRF2? Do you have a config example from then?

                @code7 said in M221 - Request for help for proper extruder drive mapping DWC:

                M574 U2 S1 P"exp.E2_STOP" ; configure active-low endstop for high end on Z via pin zstop (configured this pin for a Spool Rewind dummy endstop. Can use XYZ endstop as well with +)

                You still refer to U axis endstop here.

                Z-Bot CoreXY Build | Thingiverse Profile

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

                  @code7 What @Phaedrux said plus can you explain what hardware you are using?

                  By that I mean what board and any expansion boards.

                  I'm making a guess from you signature and the config.g file that you only have a Duet Wifi. In which case you only have 5 drivers (0 to 4). You might have a Duex 5 but it doesn't look likely from the config.g. A Duex 5 would give you 5 additional drivers which would be drivers 5 to 9.

                  So driver 10 would need to be somehow connected to an expansion board or the expansion header. But although it would driver 10, it can't be extruder 10 because XY and Z take up the first 3 drivers (0 to 2). So what I think you are trying to do is connect extruder 0 (the only extruder) to driver 10 which is an external driver connected to an expansion board or the expansion header.

                  But this all conjecture and deduction on my part so we need some more information about the hardware. A picture or two might help.

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

                  1 Reply Last reply Reply Quote 0
                  • code7undefined
                    code7
                    last edited by

                    @Phaedrux

                    Thanks, I removed this line.

                    This was created in RRF3 to automatically speed up the extrusion feed rate based on an external trigger for closed-loop control. I was hoping to do this within the firmware, but Danal said the FW and Controller would not be able to react quickly enough.

                    Delta Printer Using a Duet 2 Wifi v1.04c, FW3.4.0beta2, Duet WiFi sever 1.26, Duet Web Control 3.3.0

                    1 Reply Last reply Reply Quote 0
                    • code7undefined
                      code7
                      last edited by

                      @deckingman

                      Yes I am using a Duet Wifi with the external controller and motor driver wired through the expansion header. I am no longer using the E0 pins on the board so maybe it would be simpler to not use the expansion header pins for the external controller/motor driver?

                      Delta Printer Using a Duet 2 Wifi v1.04c, FW3.4.0beta2, Duet WiFi sever 1.26, Duet Web Control 3.3.0

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

                        @code7 said in M221 - Request for help for proper extruder drive mapping DWC:

                        @deckingman

                        Yes I am using a Duet Wifi with the external controller and motor driver wired through the expansion header. I am no longer using the E0 pins on the board so maybe it would be simpler to not use the expansion header pins for the external controller/motor driver?

                        Probably. But I have zero experience of using external drivers so personally, I am unable to help. If you can connect the motor directly to the onboard driver, then it becomes a piece of cake.

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

                        1 Reply Last reply Reply Quote 0
                        • code7undefined
                          code7
                          last edited by

                          @Phaedrux @deckingman

                          Do you know why sending either M221 S150 D0 or M221 S150 D10 has no effect on changing the feedrate?

                          Delta Printer Using a Duet 2 Wifi v1.04c, FW3.4.0beta2, Duet WiFi sever 1.26, Duet Web Control 3.3.0

                          1 Reply Last reply Reply Quote 0
                          • Phaedruxundefined
                            Phaedrux Moderator
                            last edited by

                            Well D10 wouldn't work because there is no 10th motor driver. Not sure why D0 wouldn't work unless it is working, just not being reflected in DWC. What do you get if you just send M221 D0 by itself? Does it report the currently set feedrate?

                            I have to admit, I'm still pretty lost on what your setup is and what's going on. sorry.

                            Z-Bot CoreXY Build | Thingiverse Profile

                            1 Reply Last reply Reply Quote 0
                            • code7undefined
                              code7
                              last edited by code7

                              @Phaedrux

                              Sending M221 D0 returns the current set feedrate: Extrusion factor for extruder 0: 150.0%
                              But sending G0 E10 F100 still feeds the extruder forward 10mm at a feed of only 100mm/min as verified with an external timer.

                              Delta Printer Using a Duet 2 Wifi v1.04c, FW3.4.0beta2, Duet WiFi sever 1.26, Duet Web Control 3.3.0

                              1 Reply Last reply Reply Quote 0
                              • Phaedruxundefined
                                Phaedrux Moderator
                                last edited by Phaedrux

                                I'm not sure if M221 will modify a G0 command in the way that you're expecting since it's not being detected as a coordinated print extrusion move with an X Y E value. I could be wrong, but if you're sending G0 E10 it will give you G0 E10 regardless of the M221 set.

                                Try giving it a G1 X Y E command instead and see if it then applies M221. I'm not sure, but that might also need to be executed from a print file.

                                @dc42 would have to clarify.

                                Z-Bot CoreXY Build | Thingiverse Profile

                                1 Reply Last reply Reply Quote 0
                                • code7undefined
                                  code7
                                  last edited by

                                  @Phaedrux

                                  You are correct and this explains everything. M221 will only modify a G0 or G1 if it contains a coordinated print extrusion move with an X Y E value.

                                  Would it be OK to remove most of the intermediate posts on this topic to save future users from having to read through them?

                                  Sure appreciate your help.

                                  Delta Printer Using a Duet 2 Wifi v1.04c, FW3.4.0beta2, Duet WiFi sever 1.26, Duet Web Control 3.3.0

                                  1 Reply Last reply Reply Quote 0
                                  • Phaedruxundefined
                                    Phaedrux Moderator
                                    last edited by

                                    No need to delete. I can mark the answer to show up at the start.

                                    Z-Bot CoreXY Build | Thingiverse Profile

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