Collision avoidance not active
-
Hi guys,
so I have COREXY+U IDEX setup (Markforged)
I want to use M597 X0 U64 - so that the heads do not collide
I have the command in the sonfig.g and also tried to send it from the console.
When trying to move heads it has no impact at all.
Running M597 without arguments it reports that collision avoidance system is not active
Firmware is all 3.5rc1any ideas?
-
Can you share your full config and homing files?
-
@Phaedrux not sure what homing file has to do with it, but here we go
; Configuration file for Duet 3 Mini 5+ (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.2.3 on Sat May 08 2021 10:30:29 GMT+1000 (Australian Eastern Standard Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Vega600 - IDEX" ; set printer name G4 S1 ;wait for expansion boards to start ; Network ;M551 P"Vega" ; set password M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet M575 P1 S1 B57600 M584 X0.2 Y0.3 Z0.0:0.1:0.5:0.6 U0.4 E121.0:20.0 ; set drive mapping M669 K1 X1:1:0:0 Y-1:1:0:0 U0:0:0:1 Z0:0:1:0 ; select CoreXY mode ; Drives M569 P0.0 S0 D3 V40 ; physical drive 0.0 goes forwards M569 P0.1 S0 D3 V40 ; physical drive 0.1 goes forwards M569 P0.2 S1 ;D3 V40 ; physical drive 0.2 goes forwards M569 P0.3 S1 ;D3 V40 ; physical drive 0.3 goes forwards M569 P0.4 S0 ;D3 V40 ; physical drive 0.4 goes forwards M569 P0.5 S0 D3 V40 M569 P0.6 S0 D3 V40 M569 P121.0 S0 D3 V40 M569 P20.0 S0 D3 V40 M350 X16 Y16 Z16 U16 T1 E16:16 I1 ; configure microstepping with interpolation M671 X-160:730:-160:730 Y130:130:370:370 S14 M92 X80.00 Y80.00 Z2400.00 U80.00 E400.0:400.0 ; set steps per mm M566 X1200.00 Y1200.00 Z20.00 U1200 E3200.00:3200.00 ; set maximum instantaneous speed changes (mm/min) M203 X15000.00 Y15000.00 Z280.00 U15000.00 E10200.00:10200.00 ; set maximum speeds (mm/min) M201 X5000.00 Y5000.00 Z25.00 U5000.00 E1550.00:1550.00 ; set accelerations (mm/s^2) M906 X1600 Y1600 Z850 U1200 E600:600 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S90 ; Set idle timeout ; Axis Limits M208 X-65 Y0 U0 Z-1 S1 ; set axis minima M208 X624 Y530 U688 Z420 S0 ; set axis maxima M597 X0 U64 ; Endstops M574 X1 S1 P"!io3.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin M574 Y1 S1 P"!io4.in" M574 U2 S1 P"!io2.in" M574 Z1 S2 ; configure Z-probe endstop for low end on Z ; Z-Probe M950 S0 C"121.io0.out" ; create servo pin 0 for BLTouch M558 P9 C"121.^io0.in" H5 F2200 T3000 S0.25 ; set Z probe type to bltouch and the dive height + speeds G31 P300 X-30 Y5 Z2.5 ; set Z probe trigger value, offset and trigger height Increase Z number if the nozzle is too far M557 X50:330 Y25:280 S200 ; Heaters M308 S0 P"temp0" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp0 M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0 M307 H0 B1 S1.00 ; enable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C M308 S1 P"121.temp0" Y"pt1000" R2200 ; configure sensor 1 as PT1000 on pin 121.temp0 M950 H1 C"121.out0" T1 ; create nozzle heater output on 121.out0 and map it to sensor 1 M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H1 S350 M308 S2 P"20.temp0" Y"pt1000" R2200 ; configure sensor 2 as PT1000 on pin 121.io0.in M950 H2 C"20.out0" T2 ; create nozzle heater output on 122.out0 and map it to sensor 2 M307 H2 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H2 S350 ; set temperature limit for heater 2 to 350C M308 S4 P"temp1" Y"thermistor" T100000 B4138 ; configure sensor 2 as thermistor on pin temp2 ;M950 H4 C"out5" T4 ; create chamber heater output on out2 and map it to sensor 4 ;M307 H4 B1 S1.00 ; enable bang-bang mode for the chamber heater and set PWM limit M141 H4 ; map chamber to heater 2 ;M143 H4 S70 ; set temperature limit for heater 2 to 280C ; Fans M950 F2 C"20.out1" Q500 ; create fan 1 on pin 121.out2 and set its frequency M106 P2 S0 ; set fan 1 value. Thermostatic control is turned on M950 F1 C"121.out1" Q500 ; create fan 3 on pin 122.out2 and set its frequency M106 P1 S0 ; set fan 3 value. Thermostatic control is turned on M950 F5 C"out5" Q500 ; create fan 1 on pin out3 and set its frequency ;M106 P5 S1 H4 T55 ; set fan 1 value. Thermostatic control is turned on M950 F4 C"20.out2" Q500 M106 P4 T45 H2 M950 F2 C"121.out2" Q500 M106 P2 T45 H1 M950 P12 C"out1" M42 P12 S1 ;turn the light on M950 F10 C"out6" Q500 ; create fan 2 on pin out5 and set its frequency M106 P10 S1 ; set fan 2 value. Thermostatic control is turned on ; Tools M563 P0 S"Left Extruder" D0 H1 F1 ; define tool 1 M568 P0 S0 R0 A0 M563 P1 S"Right extruder" D1 H2 X3 F3 ; define tool 2 M568 P1 S0 R0 A0 ; ''' Create a tool that prints 2 copies of the object using both carriages''' M563 P2 S"Copy 330x530" D0:1 H1:2 X0:3 F1:1 ; tool 2 uses both extruders, hot end heaters and fans, and maps X to both X and U G10 P2 X30 Y0 U-300 S0 R0 ; set tool offsets and temperatures M567 P2 E1:1 ; set mix ratio 100% on both extruders ;''' Create a tool that prints 2 copies of the object using both carriages''' M563 P3 S"Mirror 325x530" D0:1 H1:2 X0:3 F1:1 ; tool 2 uses both extruders, hot end heaters and fans, and maps X to both X and U G10 P3 X50 Y0 U-668 S0 R0 ; set tool offsets and temperatures M567 P3 E1:1 ; set mix ratio 100% on both extruders ; Custom settings are not defined M591 D0 P3 C"121.io1.in" S1 R50:150 L24.8 E5.0 ; Duet3D rotating magnet sensor for extruder drive 0 is connected to E0 endstop input, enabled, sensitivity 24.8mm.rev, 70% to 130% tolerance, 3mm detection lengt M591 D1 P3 C"20.io1.in" S1 R50:150 L24.8 E5.0 ; Duet3D rotating magnet sensor for extruder drive 0 is connected to E0 endstop input, enabled, sensitivity 24.8mm.rev, 70% to 130% tolerance, 3mm detection length ; Miscellaneous M575 P1 S0 B57600 ; enable support for PanelDue M501 ; load saved parameters from non-volatile memory T0 ; select first tool M307 H0 R0.21 K0.586:0.000 D3.70 E1.35 S1.00 B1
; homeall.g ; called to home all axes ; ; generated by RepRapFirmware Configuration Tool v3.2.3 on Sat May 08 2021 10:30:30 GMT+1000 (Australian Eastern Standard Time) M402 T0 M579 U1 G91 ; relative positioning G1 H2 Z3 F6000 ; lift Z relative to current position G1 H1 X-645 F6800 G1 H1 Y-555 F6800 ; move quickly to X and Y axis endstops and stop there (first pass) G1 H1 U700 F6800 G90 ; absolute positioning G1 X300 Y150 F7000 ; go to first bed probe point and home Z G30 ; home Z by probing the bed
-
@Aurimas the collision detection is designed for multiple independent motion streams, where it may be possible for the streams to move axes into a collision state with each other. for an IDEX it is normal to specify axis limits so that collisions cannot be commanded. Heads are either parked when not in use or in mirror or duplex mode where they are kept to their half of the bed.
-
@T3P3Tony thanks Tony,
could you please tell me how to change the limits when in copy/mirror mode?
it cannot be done from the tool deifinition as I understand and probably should be done from the tpost.g? would that work? -
@Aurimas I do it as described here in the documentation, different offsets.from center for copy and mirror:https://docs.duet3d.com/en/User_manual/Machine_configuration/Configuration_IDEX#creating-a-tool-that-uses-more-than-one-carriage-to-print-multiple-copies-of-an-object
You can add additional limits in the tool change files to limit X max and U min futher depending on the mode. I have not tried that, You want to return the limits to the default in tfreeN.g as well as apply them in tpostN.g
-
@T3P3Tony I have no issues with copy/mirror setup - that is all good.
the problem is when you select mirror mode and move the T0 as the tools converge they crash into each other, thus I was hopeing to use the collision avoidance -
@Aurimas I guess my method of not using too large prints in mirror mode is definitely not good enough for general use, in that case you will need to change T0 max and T1 min axis limits in the T post file for mirror mode, and then set them back to standard in the T free file in mirror mode. you probably need to do the same in copy mode, but the limits may be slightly different in copy mode.
-
@T3P3Tony thanks.
Ill give it a copy.
how owuld you resolve the issue if the U axis is not homed for any reason and the X axis wants to go to Xmax? the heads will collide because the endstop conditions have been met, but they are not aware of each other locations. -
@Aurimas I have my homing files such that homing X homes XYU, (same of homing U or Y). Because U homes off X, X must be homes before U can be homes in my setup. I added Y to the mix as well because there is a "safest place" to have the X and U heads positioned with their cabling and filament tubes for homing Y. So hitting home for any of X, U or Y will home X, then U, then Y in a predictable order.