M571 not recognizing extruder moves
-
Hello,
I am trying to set up
M571
"output on extrude" on my current machine, however I am a bit stuck.The output of the pin never changes, whether I am extruding manually or from gcode.
I have tried several ways and different pins all without successM571 S1 P"0.out8" M571 S1 P"out8" M571 S1.0 P"0.out8" M571 S1 P"0.out7" M571 P"out7" S1 (you get the idea)
I can successfully invert the output pin with the
!
modifier and measure my VIN voltage, but the pin is not changing when the extruder is active.The extruder is driven by a 1XD board with CAN address 23:
M569 P20.0 S1 ; X forward on 20 M569 P21.0 S1 ; Y forward on 21 M569 P22.0 S0 ; Z forward on 22 M569 P23.0 S0 ; E forward on 23 M569 P24.0 S0 ; U forward on 24
I have figured out that I cannot use the 1XD as output, I get the following error when I try:
M571 P"23.out1" S1 Error: M571: Remote ports are not supported by this command
I suspect that I haven't configures the tool correctly, but I cannot figure out what to change:
M563 P0 D0 ; Define tool 0
If I enter the drive number differently I get an error:
M563 P0 D23.0 Error: M563: bad drive number
Does Anyone have an Idea?
Thanks!Attached the full config file:
config.g -
I've re-posted your config file using the </> tags - it saves folks from having to download it.
; Configuration file for Duet 3 (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.1.3 on Fri Jul 03 2020 17:01:27 GMT+0200 (Central European Summer Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves ;Recommended by 1XD manual G4 S1 ;wait for expansion boards to start ; Drives M569 P20.0 S1 ; X forward on 20 M569 P21.0 S1 ; Y forward on 21 M569 P22.0 S0 ; Z forward on 22 M569 P23.0 S0 ; E forward on 23 M569 P24.0 S0 ; U forward on 24 M584 X20.0 Y21.0 Z22.0 E23.0 R0 ; set drive mapping for linear axes M584 U24.0 R1 ; set drive mapping for rotational axes ; "fast mode" to allow for a step rate of more than 55kHz M569 P20.0 T2.5:2.5:5:0 ; set pulse timing for X to "fast mode" M569 P21.0 T2.5:2.5:5:0 ; set pulse timing for Y to "fast mode" M569 P22.0 T2.5:2.5:5:0 ; set pulse timing for Z to "fast mode" M569 P23.0 T2.5:2.5:5:0 ; set pulse timing for E to "fast mode" M569 P24.0 T2.5:2.5:5:0 ; set pulse timing for U to "fast mode" ;CONCRETELAB VALUES ;M350 X1 Y1 Z1 E1 U1 I1 ; Configure microstepping with interpolation ;M92 X100 Y100 Z100 E100 U100 ; Set steps per mm ;M566 X3000 Y3000 Z100 U1200 E3000 ; Set maximum instantaneous speed changes (mm/min) ;M203 X15000 Y15000 Z2500 U6000 E50000 ; Set maximum speeds (mm/min) ;M201 X300 Y300 Z100 E1500 U300 ; Set accelerations (mm/s^2) ;PARKER VALUES ;M350 X16 Y16 Z16 E16 U16 I1 ; Configure microstepping with interpolation M92 X180 Y72 Z614 E106 U525 ; Set steps per mm M566 X800 Y800 Z80 E3000 U3000 ; Set maximum instantaneous speed changes (mm/min) M203 X15000 Y15000 Z2000 E36000 U7500 ; Set maximum speeds (mm/min) M201 X300 Y300 Z100 E1500 U5000 ; Set accelerations (mm/s^2) ; Axis Limits M208 X0 Y0 Z000 E-99999 U-99999 S1 ; set axis minima M208 X5000 Y5000 Z3000 E999999 U999999 S0 ; set axis maxima ; Endstops M574 X0 ; no X endstop M574 Y0 ; no Y endstop M574 Z0 ; no Z endstop M574 E0 ; no E endstop M574 U0 ; no U endstop M574 V0 ; no U endstop ; Z-Probe M558 P8 C"22.io0.in" H20 F750 T15000 R1 ; Set Z probe type to switch and the dive height + speeds G31 P500 X0 Y-200 Z156 ; Set Z probe trigger value, offset and trigger height M557 X0:3200 Y0:4200 S500 ; Define probing grid size and spacing M376 H500 ; define compensation taper ; Heaters M140 H-1 ; Disable heated bed ; Tools M563 P0 D0 ; 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 first tool M302 P1 ; Allow cold extrusion ; Homing outputs M950 P0 C"20.out1" ; Homing request pin for X ;M950 P1 C"21.out1" ; Homing request pin for Y ;M950 P2 C"22.out1" ; Homing request pin for Z ;M950 P4 C"24.out1" ; Homing request pin for U ;M950 P5 C"25.out1" ; Homing request pin for V ; increase movement queque buffer size M595 P240 S500 ; output on extrude ;M571 P"0.out7" S1 ; enable output on extrude M571 S1 P"0.out8" ; ENABLE panelDUE M575 P1 S1 B57600 ;For saving worklpace coordinate systems to file M501
-
Have you tried executing config.g using M98 P"config.g" from the DWC Console to see if any errors are reported?
Errors in the file during boot are usually not seen.
Frederick
-
@too I've looked into this. Currently the M571 feature does not work when the extruder drive is driven from a CAN-connected expansion board. I will work on a fix.
-
Hey @dc42, just wondering if you have managed to fix this?
I couldn't see anything about that in the changelogs.. -
-
@too I'm sorry, this has not been fixed yet but it is on the list.
-
@dc42 alright, that's good to hear... Any idea when this will be fixed time-wise?
Any idea for a workaround in the meantime?
Could I add a second driver to the extruder axis that is mapped to a driver on the 6HC to make this run? I'll go ahead and give this a try.. -
I was hoping to get this working by adding a second driver from the 6HC to the E axis without luck. I am now not sure if this is because of some limitation of RRF that I didn't see or if I am implementing this wrong:
; Configuration file for Duet 3 (firmware version 3) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves ;Recommended by 1XD manual G4 S1 ;wait for expansion boards to start ; Drives M569 P20.0 S1 ; X forward on 20 M569 P21.0 S1 ; Y forward on 21 M569 P22.0 S1 ; Z forward on 22 M569 P23.0 S0 ; E forward on 23 M569 P24.0 S1 ; U forward on 24 M569 P0.0 S0 ; additional axis for OutOnExtrude M584 X20.0 Y21.0 Z22.0 R0 ; set drive mapping for linear axes M584 E23.0:0.0 U24.0 R1 ; set drive mapping for rotational axes [...] ;OMRON VALUES M350 X1 Y1 Z1 E1 U1 I1 ; Configure microstepping with interpolation M92 X100 Y100 Z100 E100 U100 ; Set steps per mm M566 X3000 Y3000 Z100 U1200 E3000 ; Set maximum instantaneous speed changes (mm/min) M203 X15000 Y15000 Z2500 U6000 E50000 ; Set maximum speeds (mm/min) M201 X300 Y300 Z100 E1500 U300 ; Set accelerations (mm/s^2) [...] ;output on extrude M571 P"0.io3.out" S1 ; enable output on extrude
Is there any workaround or quickfix that you can come up with to control a pin according to extrusion moves? Could I somehow use a driver_Enable signal configured in a certain way?
-
@too said in M571 not recognizing extruder moves:
M584 E23.0:0.0
You've defined 2 extruders, but I only see settings values for one extruder.
Do you have a tool configured to use that extruder?
-
@phaedrux Yeah, so far I have only been using / configuring single-tool machines. The Extruder tool on 23.0 works fine. but because its on a CAN-extension board the
M571
command doesn't work.The tool is defined to use both drives:
M563 P0 D0:1
I have tried to configure the Extruder tool with drives 0.0 and 23.0 and had partial success: If I writeM584 E:0.0:23.0
then the output on extrude pin switches, but I don't see any STP/DIR signals on 23.0.
If I writeM584 E:23.0:0.0
however, I get no output on extrude pin switches, but I see STP/DIR signals on 23.0...; Configuration file for Duet 3 (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.1.3 on Fri Jul 03 2020 17:01:27 GMT+0200 (Central European Summer Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves ;Recommended by 1XD manual G4 S1 ;wait for expansion boards to start ; RESTART 1XD ;M98 P"0:/sys/COBOD_restart_expansionboards" ; reboot 1XD boards ; Drives M569 P20.0 S1 ; X forward on 20 M569 P21.0 S1 ; Y forward on 21 M569 P22.0 S1 ; Z forward on 22 M569 P23.0 S0 ; E forward on 23 M569 P24.0 S1 ; U forward on 24 ; additional E driver for output on extrude M569 P0.0 S0 M584 X20.0 Y21.0 Z22.0 E0.0:23.0 R0 ; set drive mapping for linear axes M584 U24.0 R1 ; set drive mapping for rotational axes ;CONCRETELAB VALUES M350 X1 Y1 Z1 E1:1 U1 I1 ; Configure microstepping with interpolation M92 X100 Y100 Z100 E100 U100 ; Set steps per mm M566 X3000 Y3000 Z100 E3000 U1200 ; Set maximum instantaneous speed changes (mm/min) M203 X15000 Y15000 Z2500 E50000 U6000 ; Set maximum speeds (mm/min) M201 X300 Y300 Z100 E1500 U300 ; Set accelerations (mm/s^2) ; Axis Limits M208 X0 Y0 Z000 E-99999:-99999 U-99999 S1 ; set axis minima M208 X5000 Y5000 Z3000 E999999:999999 U999999 S0 ; set axis maxima ; Endstops M574 X0 ; no X endstop M574 Y0 ; no Y endstop M574 Z0 ; no Z endstop M574 E0 ; no E endstop M574 U0 ; no U endstop M574 V0 ; no U endstop ; Z-Probe M558 P8 C"22.io0.in" H20 F750 T15000 R1 ; Set Z probe type to switch and the dive height + speeds G31 P500 X0 Y-200 Z156 ; Set Z probe trigger value, offset and trigger height M557 X0:3200 Y0:4200 S500 ; Define probing grid size and spacing M376 H500 ; define compensation taper ; Heaters M140 H-1 ; Disable heated bed ; Tools M563 P0 D0: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 first tool M302 P1 ; Allow cold extrusion ; Homing outputs M950 P0 C"20.out1" ; Homing request pin for X ;M950 P1 C"21.out1" ; Homing request pin for Y ;M950 P2 C"22.out1" ; Homing request pin for Z ;M950 P4 C"24.out1" ; Homing request pin for U ;M950 P5 C"25.out1" ; Homing request pin for V ; increase movement queque buffer size M595 P240 S500 ; get current position from PLC G28 ;For saving worklpace coordinate systems to file M501 ; output on extrude M571 P"0.io0.out" S1 ; enable output on extrude
Reading through the gcode wiki again I noticed that I probably need to define a mixing ratio, as our slicer doesn't output multiple E values...
I have added the corresponding command to the config.g:; set tool mixing ratio M567 P0 E1:1
........ and now it finally works!
I have added this block onto the end of the config.g; SETUP OUTPUT ON EXTRUDE ; additional "virtual" E driver M569 P0.0 S0 ; updated driver mapping M584 E0.0:23.0 R0 ; updated microstepping setting M350 E1:1 ; updated axis limits M208 E-99999:-99999 S1 ; set axis minima M208 E999999:999999 S0 ; set axis maxima ; updated Tool definition M563 P0 D0:1 ; set tool mixing rato M567 P0 E1:1 ; enable output on extrude M571 P"0.io0.out" S1
Thanks for sending me into the right direction @Phaedrux !
-
-
@too I'm sorry this has taken so long to resolve and I am glad you found a workaround. I am implementing a fix for M571 when the extruder is driven from a CAN-connected board in RRF 3.5beta2.