Spurious heater faults and how to avoid them

  • administrators


    I've been noticing an interesting temp spike, so far only during the initial heating ( though I suspect it also happens during a print ). For no clear reason I'll get a spike to 2000 ( or whatever, its hitting the max chart area ) for a reading or two and then settling back to a normal reading.

    I was reading up on https://duet3d.com/wiki/Spurious_heater_faults_and_how_to_avoid_them#Faults_when_maintaining_temperature
    and I think I have either a bad connection or noise in the line. What can I do to diagnose which is occurring?

    I'm using the pt100 board and an e3d pt100. I made a modified pigtail adapter to go from the e3d connector to another I use. I also break out from 2 to 4 wires at that pigtail, switching over to stranded hookup wire for the duration of the run ( ~600mm of cable ). The pigtail itself is only a few inches long, just enough to make the 2-4 jump and connect to my wiring harness.

    As best I can tell I have solid connections everywhere. Is the pigtail to 4 wire a good or bad idea? The docs I had read suggested switching to the 4-wire as close to the sensor as possible which is why I went this route. I'm debating doing a 2-wire run from the pt100 to the controller and then just have a little jumper between the pair and the extra connector for each side.

    Yes the pigtail to 4 wires is a good idea. Most likely the wires are picking up interference from stepper motor or (just possibly)) heater in the same cable run.

  • I've had two problems getting the PID tuning right on my printer with the Duet. First, no matter how I calibrate a hot end, the temperature variation is surprisingly high. If I rig up an old RAMPS controller with Marlin to a hot-end and thermistor, I can PID tune it and it'll stick within a degree plus/minus the set temperature. Best case I see with the Duet is about 5 degrees plus minus, no matter how much futzing I do with it. It also seems to compensate for the cooling fan being on better, as the variance barely moves with it off or on. With the Duet, I can't get a stable temperature unless I run the fan at like 25%, and then it will be relatively stable when off and relatively stable when on all the way. What I don't know is if there's a difference in how the two boards are reporting temperatures and the RAMPS board is having those kind of swings and not reporting them, or if it is that stable. I suspect the latter, though, because without PID tuning, I do see the variances.

    Second, the Duet just can't seem to handle a dual-extruder setup like the e3d Chimera when it comes to heater tuning. The PID tuning results are extremely different between heating a single extruder with the other cold vs hot, enough that I get temperature faults if I tune with both on and print with only one, or vice versa. My work around, which is super hacky, is to put the M307 results into the start gcode in my slicer, as there's two different printer profiles I use for single vs dual extrusion and the print itself just recalibrates the hot-end tuning.

    Is there a best-practice for how to handle these situations? No matter what kind of cooling fan you use, there's always bounce-back air that hits the nozzle impacting heating, and the dual extruder means there are times there's a second source of heat in close proximity that seems to impact the tuning as well. Something about the algorithm in RRF seems to be a lot more sensitive to those sort of variances than in Marlin. But even when I've got a specific tuning loaded, the five degree swings I see make visible differences in the prints as the surface textures change from it. (And its not just something with the thermistors in the e3d hot-end, as my bed temperature wobbles by +/- 2-3 degrees as well, but wobbles by maybe .25 degrees in Marlin)

  • administrators

    The bed temperature wobbles may mean that you have using bang-bang control for the bed heater. If so, change it to PID by adding parameter B0 to the M307 H0 command in config.g.

    For the hot end heaters, please confirm that you have a M307 command for each heater in config.g or config-override.g and no M301 commands.

    The heater tuning algorithm was changed in firmware 1.19 so if you have run heater tuning and then upgraded to firmware 1.19, it is worth running heater tuning again.

    If necessary you can make manual adjustments, see https://duet3d.com/wiki/Tuning_the_heater_temperature_control#Manual_adjustments_to_the_heater_model_parameters.

  • @dc42:

    Yes the pigtail to 4 wires is a good idea. Most likely the wires are picking up interference from stepper motor or (just possibly)) heater in the same cable run.

    Been forever since I came back to check for a response - oops!

    I'm just using standard hookup wire ( not solid core ). I continue to have the issue so want to track it down.

    Your comment on noise in the line from stepper is interesting however I only notice ( not to say its not happening ) during the initial heatup. I do have all of the wires bundled together in a long (ish, 600mm ) run to the controller for all things on the x carriage so power, therm, fans etc - eg a lot of potential for noise in that line. Its just a simple wire mesh wrap.

    Any suggestions on just how sensitive to noise the pt100 is? Should I wrap the sensor wires in aluminum or something? Good enough to just move the pt100 wire out of the bundle? Could it be a cable length problem? Bad sensor, bad board etc?

    I'm going to try a few of the above and see how it goes

  • use screened cable for the PT100 and it will prob cure the issue (I Had the same and going to 4 core screened cured the problem)

  • Hi

    Just this morning I found a huge fail in the printer. I was printing 4 pieces at a time and heater number 1 had an error (15 degrees of).

    The printer had stopped there, but everything else but the heater number 1 was still hot, leaving the 3 functioning hot ends to burn the plastic of their prints. It would be great that all the heaters (but maybe not 0, to be able to continue) would go off as the printer stops, and that Z would leave a gap between the prints and nozzles. I have 1.19 in the printer, I think. All the heaters are calibrated, going to do it again today for the number 1 though.

    I know it´s a dangerous habit to leave the printer alone and I do it on my own risk, but I was surprised to find the 3 heaters still going and the bed height unchanged after the security function had initiated.

    edit: Oh yes, the error was probably a deflected air cooling the hotend too much, so no real problem. Looks to work normally.

  • administrators

    I'm surprised that the print stopped there, because normally a heating fault just turns off the heater concerned and then continues (which isn't generally useful). In the next 1.20 beta I intend to have the firmware execute the pause script as well when a heating fault occurs.

    EDIT: I forgot, in firmware 1.19 a heating fault cancels the print.

  • I see. Pause script would be great. Even the continuing with the 3/4 extruders would have been OK in this case.


  • @dcaron hey, were you able to make that dyze thermistor work? This seems to be very close in specs to thermistor that I use too. Having calibration problems now. Can't figure out C value for it.

    @elmoret PT100 and thermocouple is more of a workaround, not really an upgrade.
    Adds complexity, requires additional circuits, can be affected by EMI from steppers, much more inert/slow etc etc etc.
    Also resolution is worse than some good thermistors.
    Dyze guys cover the topic pretty good actually: https://dyzedesign.com/2016/06/comparison-temperature-sensors-used-3d-printers-part-1/

  • administrators

    Some of the figures in that table are misleading, and some are plain wrong:

    • Thermistor resolution "Up to 0.16°C" doesn't mention that for a wide-range thermistor, the resolution is likely to drop to 10C or even worse towards the extremes of the range. This makes it difficult or impossible for the firmware to know whether the thermistor is present before turning the heater on.

    • Thermistor accuracy "1°C without calibration" is only likely to be true over a very limited temperature range, e.g. close to 25C (or whatever temperature the nominal resistance is specified at)

    • RTD resolution "1.2C" is completely wrong, for the Duet3D PT100 daughter board it is 0.03125°C

    • Thermocouple resolution "0.5C" is likewise wrong, for the Duet3D thermocouple daughter board it is 0.0078125°C

    • The response time of any type of temperature sensor is completely dependent on the packaging

    Thermistors are for budget 3D printers. If you want to know your hot end temperature accurately, use a PT100, or a thermocouple if you need to measure very high temperatures. A PT1000 may also be a reasonable option if you don;t mind the resolution being a little lower than for a PT100. See our advice at https://duet3d.dozuki.com/Wiki/temperature_sensors.


Looks like your connection to Duet3D was lost, please wait while we try to reconnect.