Heater fault going from standby to active
-
This is actually a two part question.
Part 1: I have a two material print on a multi tool printer. All heaters were tuned this morning, they are 65W heaters. A few times now I get a heater fault going from standby temperature to active temperature - a 20 degree increase from 210 to 230 degrees. This seems to only happen when going from standby to active temperatures. It happens within a very short period from when the heater gets turned on.
My theory is that what was the active heater is cooling down, the second tool has a very short print time, when the printer goes back to the first tool it is still in the process of cooling down and there is a definite time gap between the heater getting the 'heat up' command and it showing up on the temperature graph. This is exasperated if the tool was in the process of cooling down. Of course this is just a theory ....
Is there anything I can do to avoid this? I am thinking if I could somehow tell the heat monitor to wait 15 seconds before it looks at the temperature performance ? Could this be something for the wish list?
Part 2: When the heater fault occurs, the tool has not yet been picked up. I restart the heater, and wait for it to come up to temperature before hitting 'resume'. I have to wait because the printer doesn't seem to care about the printing temperature at this time and I probably have to stick a 'wait for temperature' command somewhere in the pause (?) macro), So, the tool was not yet mounted, the fault happened and the carriage goes to the park position. When I restart, the printer goes back to where it was before the fault but does not pick up the tool. It thinks the tool is mounted and happily prints away without the tool.Pause.g:
; Pause macro file
G1 E-3 F2500 ; retract 3mm
G91 ; relative moves
G1 H2 Z3 F5000 ; raise nozzle 3mm
G90 ; absolute moves
G1 X305 Y85 F5000 ; move head out of the way of the printtpost0.g:
; called after firmware thinks Tool 0 is selected (just before the tool is used)
; Note: tool offsets are applied at this point!
; Note that commands preempted with G53 will NOT apply the tool offset.M116 P0 S1 ; Wait for set temperatures to be reached, S0.5 means set temperature needs to be within 0.5 degrees - no S param means S2 which can have te temp plus or minus 2 degrees
M302 P0 ; Prevent Cold Extrudes, just in case temp setpoints are at 0
M83 ; set extruder to relative mode
G0 E10 F300 ; un-retract (note that filament is retracted when tool is parked)
G4 S1 ; wait 1.0 seconds for unretract to relive pressure - to reduce ooze
M82 ; set extruder back to absolute mode
G90 ; Ensure the machine is in absolute mode before issuing movements.G53 G1 X-3 Y339 F6000 ; Move to the pickup position with tool-0.
M98 P"/macros/tool_lock.g" ; Lock the toolG1 R2 Z0 ; Restore prior Z position before tool change was initiated.
; Note: tool tip position is automatically saved to slot 2 upon the start of a tool change.
; Restore Z first so we don't crash the tool on retraction.
G1 R0 Y0 ; Retract tool by restoring Y position next now accounting for new tool offset.
; Restoring Y next ensures the tool is fully removed from parking post.
G1 R0 X0 ; Restore X position now accounting for new tool offset.
M106 R2 ; restore print cooling fan speed; activate the filament sensor for T0
M591 D0 P1 C"21.io1.in" S1 ; enable (S1) filament sensor (normal switch) (P1) on Extruder 0 , connected to input io1.in on CAN port 21 -
I have increased the heater fault time (M570) from 5 sec to 6 sec to hopefully catch the heater fault although I would prefer not to tweak that safety feature over every aspect of the heater behaviour when only that one tiny aspect of the heater operation is causing the problem. I will experiment with inserting an M570 at the beginning of a tool change and revert to the default 5 seconds at the end of the tool change. I am not sure if that will work or if I have to do it in tpostx.g
I have inserted an M116 in the resume.g macro to hopefully force the printer to wait, after 'resume' is selected, for the temperature to come up to spec. (not tested yet but if somebody could post their resume.g file that would be great)
That still leaves me with the issue of the tool pickup not completing if a heater fault (and presumably anything that raises a fault) happens just before a tool is mounted. I do not have a clue how to tackle that one.
-
An update: I have increased heater fault time to 10 seconds without any change. I still get the heater fault. For some reason the fault does not happen at the first transition from standby to active but it happens on the second transition.
I am still looking for input on how to complete the tool change if the temperature fault happens after the toolchange has started but before the tool is mounted.
-
@jens55 What exactly is the heater fault you are getting? Can you post the text of the error message?
-
@gloomyandy, the actual error message doesn't appear on the console log but it was something like "the nozzle is heating too slow, 1.09C/sec expected, 0.38C/sec measured (those are the actual figures that I noted)
-
Based on there being no change in behaviour with a longer heater fault timeout (going from 5 seconds to 10 seconds), there must be different code that tests for rate of change and is not affected by the timeout parameter. Maybe I have to tweak one of the heater parameters ?
I am hoping for some input from @dc42 .... -
What are the tuned heater parameters you're getting?
-
@Phaedrux
; Heater model parameters
M307 H0 R0.684 K0.420:0.000 D3.42 E1.35 S1.00 B0
M307 H1 R3.388 K0.453:0.317 D7.40 E1.35 S1.00 B0 V23.2
M307 H2 R3.245 K0.703:0.052 D9.61 E1.35 S1.00 B0 V23.6
M307 H3 R2.771 K0.541:0.088 D8.68 E1.35 S1.00 B0 V23.2
M307 H4 R2.245 K0.600:0.001 D10.06 E1.35 S1.00 B0 V24.0 -
@jens55 Which heater gives the fault or is it all of them? Assuming heater 0 is the bed, and heaters 1 to 4 are the tools, there is a fair difference in the tuning models. So knowing which heater gives the fault might be useful to know. For example, if it's heater 1, then a slight tweak to the dead time might be a solution.
-
@deckingman, I was using H2 and H3. I am about 90% sure that H3 was the one that was faulting. I did however have a similar problem with another printer that heated to 150C, waited for a bit and then went to printing temperature. I did not diagnose that issue in detail so I am only mentioning it as a point of interest.
I can try increasing the D parameter and see what happens. -
I have made an interesting observation. I didn't think about it at the time but my nozzle blocks are copper and not aluminum. This seems to cause a lot of over and undershoot (up to 10C!) because of the extra thermal mass and might very well have caused the issue. I have not had an opportunity to change the dead time for the heaters as things are not faulting at the moment <shrug>
The second issue has not been addressed but it only happens on tool changes and it could be argued that this should be addressed in the Jubilee forum. I suppose that the tool changing macros might be at fault but IMHO, if a fault is raised, then fixed and the printer is told to resume, it should really know to finish what it was doing when the fault was raised. Instead the printer thinks the previous operation (mounting the tool) was completed and no attempt is made to finish mounting the tool.
-
@jens55 Looking back through some historical configuration files that I have, I see that I used heater fault detection of 10 degrees and 30 seconds when I had a hot end with two heat zones (so two heaters and two sensors). My memory fails me somewhat but I seem to recal that this dual zone configuration was causing heater faults which is why I set wider tollerances. I decided that, because of the way the heaters were installed, it was practically impossible for one to fall out. So if a sensor failed such that the heater was permanently on, the temperature rise would be constrained by the thermal inertia if the block. Looking at the temperature rise time I also concluded that after 30 seconds at full power, the temperature would never reach dangerous levels so those wider tollerances would not be unsafe.
So my point is that rather than using the default heater fault tolerances as some sort of Gospel setting that should never be deviated from, do the calculations for your own hot ends and see if a dangerously high temperature could be attained after a longer time period than the default.
-
@deckingman, thank you. I have my fault detection set at 15 degrees. I did increase it to 15 seconds as well but since that did nothing, I went back to the default setting. I will play with both of those and dead time if the problem should return.