M221 - Request for help for proper extruder drive mapping DWC
-
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.
-
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.
-
Copy and paste your updated config.g into a post here so we can see all your changes.
-
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 RouterM552 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 -
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.
-
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.
-
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:
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.
-
Do you know why sending either M221 S150 D0 or M221 S150 D10 has no effect on changing the feedrate?
-
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.
-
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. -
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.
-
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.
-
No need to delete. I can mark the answer to show up at the start.