[3.3RC3] tool change don't wait on M116 P
-
@dc42 thanks will try that and keep you in touch
-
@dc42 unfortunately it didn't worked, my tools where all parked and it took the tool 1 adn tried to purge it without waiting for it to reach the good temp.
the job gcode was this:
M107 M190 S60 ; set bed temperature and wait for it to be reached G10 S215 P1 ; set temperature G10 S215 P2 ; set temperature ;TYPE:Custom G28 ; home all axes G1 Z5 F5000 ; lift nozzle M98 P"/sys/load_meshbed.g" ; load mesh bed corresponding to the temp G10 S215 P1 ; set temperature G10 S215 P2 ; set temperature G21 ; set units to millimeters G90 ; use absolute coordinates M82 ; use absolute distances for extrusion G92 E0 T1 M98 P"/macros/purge_and_wipe"; purge and wipe residu
and the tpost1.g is this:
; tpost1.g ; called after tool 1 has been selected ; ; generated by RepRapFirmware Configuration Tool v3.2.3 on Thu May 13 2021 17:38:36 GMT+0200 (heure d’été d’Europe centrale) ; Wait for set temperatures to be reached var previousActiveTemperature = heat.heaters[2].active var previousStandbyTemperature = heat.heaters[2].standby M400 M116 P1 G90 if (move.axes[1].userPosition<(100+tools[1].offsets[1])) G0 Y{100+tools[1].offsets[1]} F3600 G0 X{244+tools[1].offsets[0]} Y{55+tools[1].offsets[1]} F3600 G0 Y{20+tools[1].offsets[1]} G0 Y{-3.5+tools[1].offsets[1]} F600 G0 X{234+tools[1].offsets[0]} G0 Y{55+tools[1].offsets[1]} F6000 M400 if sensors.gpIn[1].value=1 && state.currentTool=1 ;M118 S"writing file" M560 P"/sys/SetTool.g" T1 P0 <!-- **EoF** -->```
-
for info the {1} on line 8 is just a display bug from the site this is only a crlf there
-
@psychotik2k3 if in the G10 command you set the standby temperature to 215 as well as the active (i.e. use G10 S215 R215), does it work then?
-
@dc42 just tried and no.
here is what i did in tpostn.g
; tpost1.g ; called after tool 1 has been selected ; ; generated by RepRapFirmware Configuration Tool v3.2.3 on Thu May 13 2021 17:38:36 GMT+0200 (heure d’été d’Europe centrale) ; Wait for set temperatures to be reached var previousActiveTemperature = heat.heaters[2].active var previousStandbyTemperature = heat.heaters[2].standby M400 ;M109 S{var.previousActiveTemperature} T1 G10 P1 S{var.previousActiveTemperature} R{var.previousActiveTemperature} M116 P1 ;now that the temp threshold is here we put back standby temperature G10 P1 S{var.previousActiveTemperature} R{var.previousStandbyTemperature} G90
-
@psychotik2k3 please can you put together the simplest example you can that exhibits this behaviour. I can't make it happen on my printers,
-
@dc42 here it is:
var toolnumber = 1 var targettemp = 60 G28 if sensors.gpIn[1].value=0 T-1 P0 else T-1 G10 P1 S{var.targettemp} R0 G10 P2 S{var.targettemp} R0 G4 P50 T1 G0 X155 Y155 M400 T2 G0 X155 Y155 M400 T-1 G10 P{var.toolnumber} S0 R0
if i perform a reset of the board this will fail 99.5%
but if i launch it a second time ia may or may not fail.here is a video showing how it behaves and you clearly see that tools are moving while they are not at the correct temp
youtube video -
@dc42 if you want somehting else here is my whole sys macro and gcode folder:
github BLV MGN Seb for duet 3 -
@psychotik2k3 thanks. When M116 Pn fails to wait for the heaters on tool n to heat up, is the heater concerned always one that is attached to the main board; or always one attached to an expansion board; or have you seen both?
-
@dc42 no all my tool heaters are attached to the H3C
i attached the XY and Z, bltouch part cooling fan and heatbed on the mainboard, and everything related to the tools (heater thermistor stepper and fan) on H3C board.
so to sum up:
heater 0 and its thermistor (heatbed) on MB6HC
heaters 1 to 2 (tools) and their themistors on H3C(i just added that because maybe this is because i have no tool on mainboard but still one heater the heatbed)
-
@psychotik2k3 thanks. Please can you try putting a G4 S1 command immediately before the M116 P1 command in tpost1.g and see if that works around the problem.
-
@dc42 it worked
i wouldn't have bet on it as we already test a G4 P50 before the call to the tool.
but it worked.
do i have to try back with rrf3.3rc3+1? or does some modifications included in the rc3+6 are still needed to make it works ? -
@psychotik2k3 I don't think any of the other changes are needed. I think the issue may occur when selecting the new tool turns its heater on, and the heater is on a remote board, and the main board hasn't received a status report from that board between turning the heater on and the M116. I will try to implement a fix in time for the imminent 3.3 stable release.
-
@dc42 at least the workaround is easy and can be implemented in the config.
but thanks for your efforts.
finally succeeded to print with 2 heads: (don't bother the crappy one i had broken filament and had to insert and push manually)
-
@dc42 Thank you for this sir, I was getting quite frustrated.
-
@psychotik2k3 @kingofthegeeks this issue should be fixed in the new firmware builds at https://www.dropbox.com/sh/xfsvscbaab0dtzl/AACCcSeiTNINZL-xbs6IhC4Ja?dl=0. Ignore the .map files.
-
@dc42 ok will try and tell you.
-
@dc42 can confirm.
-
@kingofthegeeks thanks!
-
@dc42 couldn't test as i performed some long prints. but yes it works.
thanks for your hard work.