Bed mesh compensation not applied to all the tools
-
Hi everybody
I'm using E3D Tool Changer :
Board: Duet 2 Ethernet (2Ethernet)
Firmware: RepRapFirmware for Duet 2 WiFi/Ethernet 3.1.1 (2020-05-19b2)I discovered that bed mesh compensation is not applied to tool 3.
My gcode contains G29 S1 at the beginning of file.
I see bed compensation on tool 2, but not on tool 3.
This print uses only T2 and T3. Print starts with T2.
What is the reason ? How could I solve it ?
Thanks !
-
@sylvain said in Bed mesh compensation not applied to all the tools:
I see bed compensation on tool 2, but not on tool 3.
What do you mean by this? What makes you think it's not active? When you send M122 does it say compensation: mesh?
Can you provide your config.g and tool change files?
-
I see Z screw turning when T2 is active, not turning when T3 is active.
M122 says "Bed compensation in use: mesh, comp offset 0.000"
Thanks !
-
@Phaedrux said in Bed mesh compensation not applied to all the tools:
Can you provide your config.g and tool change files?
The more config files you can share the better we can see what's going on with the gcode otherwise we're just guessing in the dark.
-
config.g
; Configurat; Configuration file for Duet WiFi / Ethernet ; executed by the firmware on start-up ; General preferences M111 S0 ; Debugging off G21 ; Work in millimetres G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves M555 P2 ; Set firmware compatibility to look like Marlin ; Network ; Read https://duet3d.dozuki.com/Wiki/Gcode#Section_M587_Add_WiFi_host_network_to_remembered_list_or_list_remembered_networks M550 P"ToolChanger" ; Set machine name M552 S1 ; Enable Networking M586 P0 S1 ; Enable HTTP M586 P1 S0 ; Disable FTP M586 P2 S0 ; Disable Telnet M667 S1 ; Select CoreXY mode ; Endstops ;M574 Y1 S3 ; Set X / Y endstop stall detection M574 X1 S1 P"^xstop" M574 Y1 S1 P"^ystop" M574 Z1 S2 ; Set Z endstop probe M558 P8 C"zstop" H5 F120 T10000 A5 S0.01 ;M558 P7 X0 Y0 Z2 H3 F360 I0 T20000 ; Set Z probe type to switch, the axes for which it is used and the dive height + speeds G31 P200 X0 Y0 Z0 ; Set Z probe trigger value, offset and trigger height M557 X10:290 Y20:180 S40 ; Define mesh grid ; Drive direction M569 P0 S0 ; Drive 0 X M569 P1 S0 ; Drive 1 Y M569 P2 S1 ; Drive 2 Z M569 P3 S0 ; Drive 3 E0 M569 P4 S0 ; Drive 4 E1 M569 P5 S1 ; Drive 5 E2 M569 P6 S1 ; Drive 6 E3 M569 P7 S0 ; Drive 7 COUPLER M569 P8 S0 ; Drive 8 UNUSED M569 P9 S0 ; Drive 9 UNUSED M584 X0 Y1 Z2 C7 E3:4:5:6 ; Apply custom drive mapping M208 X-35:328.5 Y-49:243 Z0:300 C0:500 S0 ; Set axis maxima & minima ;M350 E8:8:8:8 C8 I0 ; Configure microstepping without interpolation M350 E16:16:16:16 I1 M350 C8 I0 M350 X16 Y16 Z16 I1 ; Configure microstepping with interpolation M92 X100 Y100 Z1600 C100 E837:837:837:837 ; Set steps per mm (old 417) M566 X400 Y400 Z8 C2 E2:2:2:2 ; Set maximum instantaneous speed changes (mm/min) M203 X35000 Y35000 Z1200 C5000 E5000:5000:5000:5000 ; Set maximum speeds (mm/min) M201 X6000 Y6000 Z400 C400 E2500:2500:2500:2500 ; Set accelerations (mm/s^2) ;M906 X2000 Y2000 Z1330 C400 E1680:1680:1680:1680 I30 ; Set motor currents (mA) and motor idle factor in percent M906 X1000 Y1000 Z1330 C400 E900:900:900:900 I30 M84 S120 ; Set idle timeout ;Stall Detection M915 C S5 F0 H200 R4700 ; Coupler ;Stall Detection ;M915 Y S5 F0 H400 R4700 ; X / Y Axes ; Heaters ;xxxxxxxxxxxx ;M305 P0 T100000 B4138 C0 ; Set thermistor ;M143 H0 S225 ; Set temperature limit for heater 0 to 225C ;M305 S"T0" P1 R4700 T100000 B4388 ; Set thermistor ;M143 H1 S300 ; Set temperature limit for heater 1 to 300C ;M305 S"T1" P2 R4700 T100000 B4388 ; Set thermistor ;M143 H2 S300 ; Set temperature limit for heater 2 to 300C ;M305 S"T2" P3 R4700 T100000 B4388 ;Set thermistor ;M143 H3 S300 ; Set temperature limit for heater 3 to 300C ;M305 S"T3" P4 R4700 T100000 B4388 ; Set thermistor ;M143 H4 S300 ; Set temperature limit for heater 4 to 300C ;xxxxxxxxxxxx ; Heaters RFF3 M308 S0 P"bedtemp" Y"thermistor" A"Bed" T100000 B4138 C0 ; Set thermistor M950 H0 C"bedheat" T0 ; Bed heater M140 H0 ; Add heater to bed after RRF3.01 RC10 M143 H0 S120 ; Set temperature limit for heater 0 to 120C M308 S1 P"e0temp" Y"thermistor" A"T0" T100000 B4725 C7.06e-8 ; Set thermistor M950 H1 C"e0heat" T1 ; Extruder 0 heater M143 H1 S300 ; Set temperature limit for heater 1 to 300C M308 S2 P"e1temp" Y"thermistor" A"T1" T100000 B4725 C7.06e-8 ; Set thermistor M950 H2 C"e1heat" T2 ; Extruder 0 heater M143 H2 S300 ; Set temperature limit for heater 2 to 300C M308 S3 P"e2temp" Y"thermistor" A"T2" T100000 B4725 C7.06e-8 ; Set thermistor M950 H3 C"duex.e2heat" T3 ; Extruder 0 heater M143 H3 S300 ; Set temperature limit for heater 3 to 300C ;M308 S4 P"e3temp" Y"thermistor" A"T3" T100000 B4725 C7.06e-8 ; Set thermistor ;M950 H4 C"duex.e3heat" T4 ; Extruder 0 heater ;M143 H4 S300 ; Set temperature limit for heater 4 to 300C ; Tools M563 P0 S"T0" D0 H1 ; Define tool 0 ;G10 P0 X0 Y0 Z0 ; Reset tool 0 axis offsets G10 P0 R0 S0 ; Reset initial tool 0 active and standby temperatures to 0C M563 P1 S"T1" D1 H2 ; Define tool 1 ;G10 P1 X0 Y0 Z0 ; Reset tool 1 axis offsets G10 P1 R0 S0 ; Reset initial tool 1 active and standby temperatures to 0C M563 P2 S"T2" D2 H3 ; Define tool 2 ;G10 P2 X0 Y0 Z0 ; Reset tool 2 axis offsets G10 P2 R0 S0 ; Reset initial tool 2 active and standby temperatures to 0C M563 P3 S"T3" ; Define tool 3 ;G10 P3 X0 Y0 Z0 ; Reset tool 3 axis offsets G10 P3 R0 S0 ; Reset initial tool 3 active and standby temperatures to 0C ; Fans ;xxxxxxxxxxxx ;M106 P0 S0 ; UNUSED ;M106 P1 S255 H1 T50 ; T0 HE ;M106 P2 S0 ; T0 PCF ;M106 P3 S255 H2 T50 ; T1 HE ;M106 P4 S0 ; T1 PCF ;M106 P5 S255 H3 T50 ; T2 HE ;M106 P6 S0 ; T2 PCF ;M106 P7 S255 H4 T50 ; T3 HE ;M106 P8 S0 ; T3 PCF ;xxxxxxxxxxxx ; Fans RFF3 ; Fan0 output is not used M950 F1 C"fan1" M950 F2 C"fan2" M950 F3 C"duex.fan3" M950 F4 C"duex.fan4" M950 F5 C"duex.fan5" M950 F6 C"duex.fan6" ;M950 F7 C"duex.fan7" ;M950 F8 C"duex.fan8" M106 P1 S255 H1 T50 ; T0 HE M106 P2 S0 ; T0 PCF M106 P3 S255 H2 T50 ; T1 HE M106 P4 S0 ; T1 PCF M106 P5 S255 H3 T50 ; T2 HE M106 P6 S0 ; T2 PCF ;M106 P7 S255 H4 T50 ; T3 HE ;M106 P8 S0 ; T3 PCF M593 F50 ; cancel ringing at 50Hz (https://forum.e3d-online.com/threads/accelerometer-and-resonance-measurements-of-the-motion-system.3445/) M376 H15 ; bed compensation taper ;https://forum.duet3d.com/topic/6800/doubts-about-mesh-bed-compensation-taper-height-solved ;tool offsets G10 P0 X-9.0 Y39.0 Z-4.8 ; T0 G10 P1 X-9.0 Y39.8 Z-4.8 ; T1 G10 P2 X-9.2 Y39.5 Z-4.8 ; T2 G10 P3 X-0.5 Y36.7 Z-35.26 ; T3 ;deselect tools T-1 ;M572 D0 S0.2 ; pressure advance T0 ;M572 D1 S0.2 ; pressure advance T1 ;M572 D2 S0.2 ; pressure advance T2 ;M572 D3 S0.2 ; pressure advance T3 M950 J0 C"^duex.e2stop" ; assign duex.e2stop pin to sensors.gpIn[0], inverted and pull-up activated M950 J1 C"!^duex.e3stop" ; dock 0 M950 J2 C"!^duex.e4stop" ; dock 1 M950 J3 C"!^duex.e5stop" ; dock 2 M950 J4 C"!^duex.e6stop" ; dock 3 M950 S9 C"duex.pwm5" ; M280 P9 S0; initialization ;panel M575 P1 S1 B57600
tfree :
; tfree2.g ; called when tool 2 is freed ;Drop the bed G91 G1 Z4 F1000 G90 ;mesh levelling off G29 S2 ;Purge nozzle ;M98 Ppurge.g ;Move In G1 Y170 F5000 G53 G1 X212.9 F5000 G53 G1 X212.9 Y200 F5000 G53 G1 X212.9 Y220 F5000 G53 G1 X212.9 Y240 F5000 ;Open Coupler M98 P/macros/Coupler - Unlock ;fan off M106 P6 S0 ;Move Out G53 G1 X212.9 Y175 F5000 M400 G4 P500
tpre :
; tpre2.g ; called before tool 2 is selected ;Ensure no tool is selected ;T-1 M400 G4 P1000 ;Unlock Coupler M98 P/macros/Coupler - Unlock ;Move to location G1 Y170 F5000 G1 X212.9 F5000 ;Move in G1 X212.9 Y230 F5000 ;Collect G1 X212.9 Y240 F2500 ;Close Coupler M98 P/macros/Coupler - Lock ;WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! ;if you are using non-standard length hotends ensure the bed is lowered enough BEFORE undocking the tool! G91 G1 Z4 F1000 G90
tpost
; tpost2.g ; called after tool 2 has been selected M400 G4 P500 ;heatup M116 P2 ;;;;;;; ;Move Out ;G1 X212.9 Y150 F4000 G1 Y150 F4000 ;;;;;;;; ;prime nozzle ;M98 Pprime.g ;mesh levelling on G29 S1 ;PCF fan on ;M106 P6 S255 G1 R2 X5 Y5 F5000 ; Y.. ok pour north G1 R2 Z0 F1500 G1 E0.4
-
Why is mesh levelling disabled in tfree and then reenabled in tpost?
-
This is default configuration of E3D Tool Changer bundle.
-
Can you try commenting out those lines? I'm not sure why it would be desirable to disable and re-enable mesh compensation during a tool change.
-
I already tried commenting all G29 in tfree and tpost wihtout success
-
Can you upload all of the tool files. (drag and drop into the post window show do it)
-
Job starts with T2, I see bed compensation running
then T3 becomes active.
gcode file :T3 G91 G1 Z5 F600 G90
As you can see I use G91 / G90 afteer T3 selection.
Could this explain that after this bed compensation doesn't work ?Thanks
-
@sylvain said in Bed mesh compensation not applied to all the tools:
As you can see I use G91 / G90 afteer T3 selection.
Could this explain that after this bed compensation doesn't work ?I don't think so.
I do think maybe there is a command to disable compensation in your tool changes, but I can't see the files to check.
-
Here it is.
Board: Duet 2 Ethernet (2Ethernet)
Firmware: RepRapFirmware for Duet 2 WiFi/Ethernet 3.1.1 (2020-05-19b2)tpost1.g tpost0.g tfree3.g tfree2.g tfree1.g tfree0.g tpre3.g tpre2.g tpre1.g tpre0.g tpost3.g tpost2.g
I made severall tests again.
I can see bed levelling on T2 (the fist tool used).
When switched to T3, no bed levelling.Thanks !
-
Do you get any errors if you send M98 P"config.g"?
-
@sylvain said in Bed mesh compensation not applied to all the tools:
Here it is.
Board: Duet 2 Ethernet (2Ethernet)
Firmware: RepRapFirmware for Duet 2 WiFi/Ethernet 3.1.1 (2020-05-19b2)tpost1.g tpost0.g tfree3.g tfree2.g tfree1.g tfree0.g config.g tpre3.g tpre2.g tpre1.g tpre0.g tpost3.g tpost2.g
I made severall tests again.
I can see bed levelling on T2 (the fist tool used).
When switched to T3, no bed levelling.Thanks !
G29 S1 is commented out (turned off) in your tpost3.g (and your tpost2.g you just uploaded!!!) whereas it is not commented out (turned on) in your tpost1.g.
In addition to that, like @Phaedrux said, some of your tfree files have G29 S2 still active. Going from T0 to some other tool, you are disabling mesh compensation via tfree0.g, but then because it is G29 S1 is commented out in T2 and T3 it wont turn back on.
-
Tfree1 tfree0 still has
;mesh levelling off
G29 S2And you've commented out all the G29 S1 to turn them on. Just remove all references to G29 in your tool files.
-
@Phaedrux said in Bed mesh compensation not applied to all the tools:
M98 P"config.g"?
=> no error
I will test with all G29 commented.
But as I told you I only use T2 and T3.
How could G29 in T0 or T1 could affect my print ?
All the more the print starts with T2 and bed levelling is active for this first tool.
Keep you updated !
-
@sylvain said in Bed mesh compensation not applied to all the tools:
@Phaedrux said in Bed mesh compensation not applied to all the tools:
M98 P"config.g"?
=> no error
I will test with all G29 commented.
But as I told you I only use T2 and T3.
How could G29 in T0 or T1 could affect my print ?
All the more the print starts with T2 and bed levelling is active for this first tool.
Keep you updated !
How high (in millimeters) is the object you are printing when the printer changes from T2 to T3?
-
The change to T3 is done at about 3 mm.
I also thought at M376 H15
but the bed levlling is stopped before.
Thanks
-
You have T-1 in your config to deselect all tools, so perhaps that's when the tfree files are getting called.
Removing all references should tell us.