Heater Decoupled - Continue?

Hello,

I am new to 3D printing, and therefore to the software and firmware involved. I built a RepRap kit last month, and have been working out bugs since then. Having a background in both computers and electronics, I do have a firm grasp on what is going on here.

I am continually getting heater decoupled messages, and it is due to the extruder temperature becoming not recognized. I have rewired my thermistor several times, and have replaced the thermistor twice (simply because the motion of rewiring caused leads to break off).

This is the printer I have (http://www.reprapmall.com/index.php?route=product/product&path=24&product_id=132) and this is a picture of the hot end, so that you can get an idea(http://www.reprapmall.com/image/cache/catalog/3d%20printer%20kit/HE3D-XI3/he3d-xi33600-800x1096.jpg). Oddly, in this image, I do not see the wires for the thermistor, but trust me, they are there in my printer. They are on the back side of the heater block, as viewed in this image from the front. There is a small hole drilled into the block, and another threaded hole right next to it, for a screw. The screw has a washer, and the wires go under the washer to be held in place as the screw is tightened. The thermistor is this one (https://smile.amazon.com/gp/product/B00GD471PO/ref=oh_aui_detailpage_o04_s00?ie=UTF8&psc=1). I have PTFE tubing over the wires of the thermistor as an insulator, and the leads are soldered to the wire and shrink-tubed for insulation there.

I hope that I've painted a good enough picture - I would take a picture, but my printer is printing as I type this. I have on my desk next to the printer a stack of six prints that failed because of the heater becoming decoupled. VERY oddly, four of those failed prints failed on the exact same layer, and all within 6 lines of print of each other (and I mean printed lines, not lines in the gcode, since I have not delved into gcode yet). After the fourth print failed on the same layer, I resliced my design, using Slic3r from within Repetier Host, and the next print got 75% done with a 2 1/2 hour print before failing (the others were all around 10 minutes into the print).

I am still trying to figure out why my thermistor gets lost by the rest of the circuit, but sometimes the heater is decoupled by not rising, or actually falling, in the 30 seconds that I've assigned for the decoupling, and sometimes the thermistor is deemed defective, and I've seen indication in the -50°C range, which actually surprises me, since that would seem to indicate an open circuit and I would think that the way the thermistor is mounted, a short circuit would be more likely. But while I try to figure out what the problem is, I keep having this stack of failed prints pile up on my desk.

This leaves me with several questions. First, I am aware because of searching other threads that I can disable the decoupled sensing, but as wisdom should prevail, I do not wish to burn down my house, so I'm not going to do this. The question that comes to mind first is to ask whether there is a way to continue a print after decoupling. For instance, from within Repetier Host, is there a way to reset the printer so that the heater is "recoupled" and then continue from there? I don't see a way to do so from either the firmware (when printing from SD) or Host (and I have been trying to lean more toward using SD, since I figured out how to do that). I realize that I would have to be right there to stop the failed print before it continued too far, or continuing would be a pointless mess of extruded plastic. That brings another question - why does the printer continue in dry run mode when a print fails? Why not just disable the heaters and stop all motion right there? Or even disable heaters and raise the Z axis so that the still-hot tip doesn't further gunk up the print? Is there a good reason to not have this feature, because I can't see a good reason for the printer to go through the motions of the rest of the print without extruding any plastic?

I think this will be my last question... Is there a way to have the firmware check for more than one failed attempt before deeming the heater decoupled? I'm thinking along the lines of maybe it detects a fail, checks again in 15-30 seconds, and if the second check is good, it continues with the print. It seems to me like once it detects a fail, it stops printing right there.

Thanks for reading this far the ramblings of a 3D printing newbie.

Comments

  • That is a hard problem. One hint may be the screw to fix the thermistor. Heater block expands differently then thermistor so if you screwed too hard you might get a thermistor defect somehow.

    There is also a difference between decoupled and defect. Defect is this test:

            if(act->currentTemperatureC < MIN_DEFECT_TEMPERATURE || act->currentTemperatureC > MAX_DEFECT_TEMPERATURE)   // no temp sensor or short in sensor, disable heater
            {
                errorDetected = 1;
                if(extruderTempErrors < 10)    // Ignore short temporary failures
                    extruderTempErrors++;
                else
                {
                    act->flags |= TEMPERATURE_CONTROLLER_FLAG_SENSDEFECT;
                    if(!Printer::isAnyTempsensorDefect())
                    {
                        Printer::setAnyTempsensorDefect();
                        reportTempsensorError();
                    }
                    EVENT_HEATER_DEFECT(controller);
                }
            }

    reading the code I would like you to modify a few lines later

            bool decoupleTestRequired = !errorDetected && act->decoupleTestPeriod > 0 && (time - act->lastDecoupleTest) > act->decoupleTestPeriod; // time enough for temperature change?

    I added "!errorDetected && " here to not test for decouple on defect error. A defect sensor is always out of range and could otherwise trigger decoupled instead and speeds up counter increment more then wanted.

    The line if(extruderTempErrors < 10)   has already a multiple test. The routine gets called 10 times per second, so you need to have the error for a full second to get it, not only for one reading.

    Last thing is check your temperature graph. It should be a more or less continuous line without big jumps. Heating and cooling has a maximum speed and bigger jumps are reading errors compared to reality and do not happy with correct printers (I know you knew this already :-).
  • Thank you for your reply. Looking in the project (firmware), which file is this code block from. I don't have the time to search them all right now, as I'm about to leave the house, but if you haven't answered by the time I get home I will search myself.

    Yes, I do understand that there is a difference between decoupled and defect. Sometimes I see on the display that the temperature is something like -50°C (when just sitting there idle), sometimes I see "def" on the display, and sometimes I see "dec" and "heater decoupled". I'm not sure right now how often the defect is detected, but the decoupled is what I see most often.

    Last night I was watching my temperature curve, and was seeing spikes down, but they weren't vertical as I would expect to see, just a sharply declining trend. I'm not experienced enough yet to say whether it was too fast for reality, since I only started watching it last night. I will watch more.

    I think I did just realize why I was having failures at the same layer. My HEATED_BED_DECOUPLE_TEST_PERIOD was set to 300000. I had intended 30 seconds, but that extra zero made it five minutes instead. I think that explains all of those failed prints at the same point in time (I created six more failed prints last night after writing this, as well).

    I will look further into this when I get home, and see what more information I can gather (since I will likely generate more failed prints). ;)

  • Oh - but back to my questions - I think I may have come across an answer to one. One of the times it failed, I was sitting right here, and hit pause right away (printing from Host on PC). I moved the head away, reset the board/heaters, rehomed all the axes, raised Z above my print, and then when the heaters reached temp, I hit continue, and the head went right where it should have. Unfortunately, it failed again right away, and there was no pause button (it was Start), and in my rush I forgot that I could have sent @pause through the command entry on the manual tab. I think that would do it, though.
  • Wow - I do believe that I solved my problem, found another one, and came to an understanding of the newly-found problem.

    First, I discovered that sometimes moving the wires of the hot end thermistor would get me further. So I pulled the heater block off (the cube that the nozzle screws into in the picture above), and took a closer look. The hole that the thermistor goes into is too deep and too wide (at least twice the diameter of the thermistor. So I was thinking, how could I fill that space to be sure the thermistor is in direct contact. It was easier to just drill a smaller hole. Just doing that stopped the hot end heater decoupled problem.

    This uncovered another problem. The bed now decouples. But it doesn't do it until you get the temperature up there pretty high. I was printing with ABS, so I was trying to get the bed to 105C. But within a minute or two it would decouple. I realized that printing PLA it wasn't doing that, and also looked at the temperature curve, and realized that it is taking a long time to reach that last few degrees. I turned the bed temp down to 100C and it printed the 4 1/2 hour print without a problem.

    So I believe that my first problem was poor design of the heater block, and my second problem is an underpowered hot bed (I tried connecting my car battery charger to provide additional power, to see if the power supply was underpowered, but it didn't help). At least at this point, I have an understanding, and will probably replace the bed at some point, but for now it is working. Perhaps continued use will prove me wrong, but at this point I believe I have a good grasp of it.

  • All beds have a maximum temperature that is reached very slowly. My first bed had a separate power unit and voltage decided about end temperature. No control routine at all. So what happens if you are still out of control range is that HEATED_BED_DECOUPLE_TEST_PERIOD gets too slow at some point. So here increasing that value would allow you to go at least a bit higher. 30 seconds are ok for a bed in fast control range, but too low for critical sections/slow beds.
  • Great - thanks!
Sign In or Register to comment.