M221 - Request for help for proper extruder drive mapping DWC



  • Re: M221 not doing anything or?

    I've read through the above post and am still unclear as to how to properly map my extruder to be able to control the extrusion rate through DWC. Would anyone be willing to take a look at my config and help me figure out what I need to change to map this properly? I'm using

    ; Drives
    M584 X0 Y1 Z2 E10 U4 E10 ; set drive mapping for Wire Control
    M350 X16 Y16 Z16 U16 E16 I1 ; configure microstepping with interpolation
    M92 X80.00 Y80.00 Z80.00 U58.21 E2487.71 W2487.71 ; set steps per mm

    M566 X1200.00 Y1200.00 Z1200.00 U1200 E10 W10 ; set maximum instantaneous speed changes (mm/min)
    M203 X4500 Y4500 Z4500 U4500 E2000 W2000 ; set maximum speeds (mm/min)
    M201 X300.00 Y300.00 Z300.00 U500 E500 W500 ; set accelerations (mm/s^2 (default 1000 for XYZ)
    M906 X2000 Y2000 Z2000 U1000 E800 I65 ; set motor currents (mA) and motor idle factor in per cent
    M906 E800 I20 ; set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    ; Heaters
    M308 S1 P"e0temp" A"Deposition Head" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 0 as thermistor on pin bedtemp

    ; 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


  • Moderator

    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.


  • Moderator

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

    ; Drives
    M584 X0 Y1 Z2 E10 U4 E10 ; set drive mapping for Wire Control
    M350 X16 Y16 Z16 U16 E16 I1 ; configure microstepping with interpolation
    M92 X80.00 Y80.00 Z80.00 U58.21 E2487.71 W2487.71 ; set steps per mm

    You've got E twice in your M584 but no W. Then you have no W in M350, but have W in M92. Start by cleaning that up.



  • @Phaedrux

    Thanks for catching that. I cleaned up the config as per your suggestions but this didn't fix the problem. Do you have any other ideas?


  • Moderator

    Are you using FW 3.1.1 and DWC 3.1.1?

    Please post your entire config.g along with the results of an M122 report.
    Also send M98 P"config.g" in the console and report the results.

    Also, please detail exactly what you're trying to do and how you are trying to do it and what is actually happening.

    Are you using the M221 command? Are you using the DWC extrusion multiplier slider?



  • @Phaedrux

    I'm using FW 3.1.1 and DWC 3.1.1
    Here are google doc links to the files:

    Config: https://docs.google.com/document/d/1BLNFMvzZ8esK1JvArW3sF61zfKlWRcS4iC9ZP0LmODM/edit?usp=sharing

    M122 report: https://docs.google.com/document/d/1hMdD11lL7R2tLtmZr3LEhtUd5_bnmpR6ISe0Qh6TOmE/edit?usp=sharing

    Sending the M98 P"config.g" command just resets the controller:
    7/15/2020, 4:27:36 PM Connection established
    7/15/2020, 4:27:36 PM Connection interrupted, attempting to reconnect...
    HTTP request timed out

    I'm trying to change the extrusion feedrate with both the M221 command and with the DWC slider. Entering M221 D0 S150 in the header of the gcode file as well as sliding the DWC slider does not change the actual feedrate. However; entering the M221 D0 S200 in the header of the gcode file updates the DWC slider value properly.


  • Moderator

    m122
    === Diagnostics ===
    RepRapFirmware for Duet 2 WiFi/Ethernet version 3.1.1 running on Duet WiFi 1.02 or later
    Board ID: 08DGM-917NK-F2MS4-7J1DD-3SJ6Q-1ZU0G
    Used output buffers: 3 of 24 (21 max)
    === RTOS ===
    Static ram: 27980
    Dynamic ram: 93536 of which 212 recycled
    Exception stack ram used: 488
    Never used ram: 8856
    Tasks: NETWORK(ready,396) HEAT(blocked,1340) MAIN(running,896) IDLE(ready,80)
    Owned mutexes: WiFi(NETWORK)
    === Platform ===
    Last reset 00:37:09 ago, cause: power up
    Last software reset at 2020-07-15 15:28, reason: User, spinning module GCodes, available RAM 8968 bytes (slot 3)
    Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0441f000 BFAR 0xe000ed38 SP 0xffffffff Task MAIN
    Error status: 10
    MCU temperature: min 38.3, current 39.8, max 40.4
    Supply voltage: min 24.1, current 24.3, max 24.5, under voltage events: 0, over voltage events: 0, power good: yes
    Driver 0: standstill, SG min/max 0/138
    Driver 1: standstill, SG min/max 0/144
    Driver 2: standstill, SG min/max 0/155
    Driver 3: standstill, SG min/max not available
    Driver 4: standstill, SG min/max not available
    Date/time: 2020-07-15 16:43:41
    Cache data hit count 3678508979
    Slowest loop: 117.00ms; fastest: 0.13ms
    I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
    === Storage ===
    Free file entries: 10
    SD card 0 detected, interface speed: 20.0MBytes/sec
    SD card longest read time 1.4ms, write time 395.2ms, max retries 0
    === Move ===
    Hiccups: 0(0), FreeDm: 169, MinFreeDm: 163, MaxWait: 1095185ms
    Bed compensation in use: none, comp offset 0.000
    === MainDDARing ===
    Scheduled moves: 3, completed moves: 3, StepErrors: 0, LaErrors: 0, Underruns: 0, 0  CDDA state: -1
    === AuxDDARing ===
    Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0  CDDA state: -1
    === Heat ===
    Bed heaters = -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
    === GCodes ===
    Segments left: 0
    Movement lock held by null
    HTTP is idle in state(s) 0
    Telnet is idle in state(s) 0
    File is idle in state(s) 0
    USB is idle in state(s) 0
    Aux is idle in state(s) 0
    Trigger is idle in state(s) 0
    Queue is idle in state(s) 0
    Daemon is idle in state(s) 0
    Autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 398.54ms; fastest: 0.00ms
    Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions
    HTTP sessions: 1 of 8
    - WiFi -
    Network state is active
    WiFi module is connected to access point 
    Failed messages: pending 0, notready 0, noresp 1
    WiFi firmware version 1.23
    WiFi MAC address 84:f3:eb:42:a5:f1
    WiFi Vcc 3.30, reset reason Unknown
    WiFi flash size 4194304, free heap 25904
    WiFi IP address 192.168.1.4
    WiFi signal strength -45dBm, reconnections 0, sleep mode modem
    Socket states: 0 0 0 0 0 0 0 0
    
    ; 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"Premier Metal MVP"                      ; 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"AM LAB"
    M551 P"hit2fix"                              ; 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 P4 S0                                     ; physical drive 4 goes forwards - U - wire spool
    ;M584 X0 Y1 Z2 E3 ;U4 E3                               ; set drive mapping
    M584 X0 Y1 Z2 E10 U4 W5                               ; set drive mapping for Wire Control (W5 is a shadow axis)
    M350 X16 Y16 Z16 U16 E16 W16 I1                        ; configure microstepping with interpolation
    ;M92 X80.00 Y80.00 Z80.00 U58.21 E3918.10 W3918.10     ; set steps per mm (original but E0 is extruding 15mm when 10mm is called)
    M92 X80.00 Y80.00 Z80.00 U58.21 E2487.71 W2487.71     ; set steps per mm
    
    M566 X1200.00 Y1200.00 Z1200.00 U1200 E10 W10        ; set maximum instantaneous speed changes (mm/min)
    M203 X4500 Y4500 Z4500 U4500 E2000 W2000             ; set maximum speeds (mm/min)
    M201 X300.00 Y300.00 Z300.00 U500 E500 W500     ; set accelerations (mm/s^2 (default 1000 for XYZ)
    M906 X2000 Y2000 Z2000 U1000 E800 I65           ; set motor currents (mA) and motor idle factor in per cent (18 Mar '20 previous value for current was 1000) (I30 is default but doesn't hold effector)
    M906 E800 I20                                   ; set motor currents (mA) and motor idle factor in per cent (18 Mar '20 previous value for current was 1000) (I30 is default but doesn't hold effector)
    M84 S30                                         ; Set idle timeout
    
    ; Axis Limits
    M208 Z0 S1                                      ; set minimum Z
    
    ; 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"!zstop"                           ; test to see if we can share zstop with multiple axis. 
    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-5.5                              ; set Z probe trigger value, offset and trigger height (Default 7.0, used -6.5 for awhile on 10 July '20 changed to -5.5)
    G31 P500 X0 Y0 Z-9.0                              ; set Z probe trigger value, offset and trigger height (Default 7.0, used -6.5 for awhile on 13 July '20 changed to X to get more energy focused on the wire)
    M557 R30 S10                                    ; define mesh grid
    M208 S1 Z-5.5					                ; allow movement down to Z=-1.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 
    G92 A0                                         ; Start with A Axis at 0
    M501                                           ; Loads saved (M500) values at startup (calibration etc.); 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"Premier Metal MVP"                      ; 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"AM LAB"
    M551 P"hit2fix"                              ; 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 P4 S0                                     ; physical drive 4 goes forwards - U - wire spool
    ;M584 X0 Y1 Z2 E3 ;U4 E3                               ; set drive mapping
    M584 X0 Y1 Z2 E10 U4 W5                               ; set drive mapping for Wire Control (W5 is a shadow axis)
    M350 X16 Y16 Z16 U16 E16 W16 I1                        ; configure microstepping with interpolation
    ;M92 X80.00 Y80.00 Z80.00 U58.21 E3918.10 W3918.10     ; set steps per mm (original but E0 is extruding 15mm when 10mm is called)
    M92 X80.00 Y80.00 Z80.00 U58.21 E2487.71 W2487.71     ; set steps per mm
    
    M566 X1200.00 Y1200.00 Z1200.00 U1200 E10 W10        ; set maximum instantaneous speed changes (mm/min)
    M203 X4500 Y4500 Z4500 U4500 E2000 W2000             ; set maximum speeds (mm/min)
    M201 X300.00 Y300.00 Z300.00 U500 E500 W500     ; set accelerations (mm/s^2 (default 1000 for XYZ)
    M906 X2000 Y2000 Z2000 U1000 E800 I65           ; set motor currents (mA) and motor idle factor in per cent (18 Mar '20 previous value for current was 1000) (I30 is default but doesn't hold effector)
    M906 E800 I20                                   ; set motor currents (mA) and motor idle factor in per cent (18 Mar '20 previous value for current was 1000) (I30 is default but doesn't hold effector)
    M84 S30                                         ; Set idle timeout
    
    ; Axis Limits
    M208 Z0 S1                                      ; set minimum Z
    
    ; 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"!zstop"                           ; test to see if we can share zstop with multiple axis. 
    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-5.5                              ; set Z probe trigger value, offset and trigger height (Default 7.0, used -6.5 for awhile on 10 July '20 changed to -5.5)
    G31 P500 X0 Y0 Z-9.0                              ; set Z probe trigger value, offset and trigger height (Default 7.0, used -6.5 for awhile on 13 July '20 changed to X to get more energy focused on the wire)
    M557 R30 S10                                    ; define mesh grid
    M208 S1 Z-5.5					                ; allow movement down to Z=-1.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 
    G92 A0                                         ; Start with A Axis at 0
    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 Aiming Beams (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
    
    ; 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 Aiming Beams (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
    

  • Moderator

    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.



  • @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.



  • @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.


  • Moderator

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



  • @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


  • Moderator

    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.



  • @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.



  • @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.



  • @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?



  • @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.



  • @Phaedrux @deckingman

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


  • Moderator

    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.



  • @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.


  • Moderator

    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.



  • @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.


  • Moderator

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


Log in to reply