Repetier-Firmware icon indicating copy to clipboard operation
Repetier-Firmware copied to clipboard

Heater decoupled

Open leoheck opened this issue 7 years ago • 41 comments

I am having this "Heater decoupled" very often. Using Repetier-Firmware v0.92.9

Tried to print 3 times right now. The temperatures graphs are just fine. And suddenly I have this Heater decoupled error which messes the printer job.

Maybe it is a problem with the thermistor/cables but they look good. I just measured the thersmistor which was showing a steady ~102K today.

image

I found this message, which may be related.

image

Any idea on what I can try to fix this thing?

leoheck avatar Aug 06 '18 17:08 leoheck

Maybe it is related with #618

leoheck avatar Aug 06 '18 18:08 leoheck

Trying it again after upgrade the Repetier-Server from v0.90.1 to v0.90.2 All seems to be good but it suddenly stops with the "Heater decoupled" issue.

Any ideas on why this happens? How can I fix it?

image

image

leoheck avatar Aug 06 '18 19:08 leoheck

Printing log from the server. Is it possible to be something related with the model/gcode?

15:59:41.868: FIRMWARE_NAME:Repetier_0.92.9 FIRMWARE_URL:https://github.com/repetier/Repetier-Firmware/ PROTOCOL_VERSION:1.0 MACHINE_TYPE:Mendel EXTRUDER_COUNT:1 REPETIER_PROTOCOL:3
15:59:41.873: Printed filament:708.66m Printing time:16 days 14 hours 50 min
15:59:41.876: PrinterMode:FFF
15:59:41.881: Info:No case lights
15:59:41.884: X:0.00 Y:0.00 Z:0.000 E:0.0000
15:59:41.887: DebugLevel:6
15:59:41.890: Config:Baudrate:115200
15:59:41.893: Config:InputBuffer:127
15:59:41.895: Config:NumExtruder:1
15:59:41.896: Config:MixingExtruder:0
15:59:41.898: Config:HeatedBed:1
15:59:41.900: Config:SDCard:1
15:59:41.901: Config:Fan:1
15:59:41.901: Config:Fan2:0
15:59:41.903: Config:LCD:1
15:59:41.906: Config:SoftwarePowerSwitch:1
15:59:41.906: Config:XHomeDir:-1
15:59:41.908: Config:YHomeDir:-1
15:59:41.911: Config:ZHomeDir:-1
15:59:41.911: Config:SupportG10G11:1
15:59:41.918: Config:SupportLocalFilamentchange:1
15:59:41.918: Config:CaseLights:0
15:59:41.925: Config:ZProbe:0
15:59:41.925: Config:Autolevel:1
15:59:41.926: Config:EEPROM:1
15:59:41.926: Config:PrintlineCache:16
15:59:41.926: Config:JerkXY:20.00
15:59:41.928: Config:JerkZ:0.30
15:59:41.931: Config:RetractionLength:3.00
15:59:41.933: Config:RetractionLongLength:13.00
15:59:41.936: Config:RetractionSpeed:40.00
15:59:41.939: Config:RetractionZLift:0.00
15:59:41.945: Config:RetractionUndoExtraLength:0.00
15:59:41.945: Config:RetractionUndoExtraLongLength:0.00
15:59:41.950: Config:RetractionUndoSpeed:20.00
15:59:41.951: Config:XMin:0.00
15:59:41.953: Config:YMin:0.00
15:59:41.953: Config:ZMin:0.00
15:59:41.956: Config:XMax:150.00
15:59:41.956: Config:YMax:185.00
15:59:41.958: Config:ZMax:160.00
15:59:41.961: Config:XSize:150.00
15:59:41.961: Config:YSize:185.00
15:59:41.964: Config:ZSize:160.00
15:59:41.966: Config:XPrintAccel:500.00
15:59:41.969: Config:YPrintAccel:1000.00
15:59:41.971: Config:ZPrintAccel:1.00
15:59:41.972: Config:XTravelAccel:1000.00
15:59:41.975: Config:YTravelAccel:1000.00
15:59:41.978: Config:ZTravelAccel:15.00
15:59:41.980: Config:PrinterType:Cartesian
15:59:41.983: Config:MaxBedTemp:120
15:59:41.986: Config:Extr.1:Jerk:20.00
15:59:41.988: Config:Extr.1:MaxSpeed:50.00
15:59:41.991: Config:Extr.1:Acceleration:5000.00
15:59:41.994: Config:Extr.1:Diameter:0.00
15:59:41.996: Config:Extr.1:MaxTemp:275
15:59:41.999: Unknown command:N11 M539 S1

leoheck avatar Aug 06 '18 19:08 leoheck

Ok, I see where your decoupling comes from I guess. Your temperature graph is very bad. I see temperatures swing at 10°C within seconds. This is not correct and a good curve is much smoother normally. It swings within 0.5°C regarding measurement errors and not that much. So find out what is causing the noise. Firmware already smoothes inputs but it seems not enough.

At first check if the cable for temperature is twisted and has no big contact to high power cables like heater or motors. Induction can cause lot of noise here. If they have contact twist these cables as well. That equals the inductive effect to a great amount (which is why network cables are also twisted).

Also as a test just check temperature when motors/heaters are off. Then it must be a very flat line with minimal swings. If you have already big variation when everything is off the error is something else. Then try a 100K resistor instead of thermistor or test a different thermistor to rule out a defect there.

repetier avatar Aug 07 '18 17:08 repetier

Good thanks for the explanation. So I have some issues here. My thermistor cable is not twisted and it touches the hotend wires all the way long. I will try to make the tests you said and improve my setup.

Also, I am planning to upgrade the firmware to the latest version. Do you know if it can improve something considering issues related to the thermistors? Is it good to apply the latest version?

leoheck avatar Aug 07 '18 18:08 leoheck

Updating will not change anything with the temperature reading. It is pure hardware related that the ADC delivers varying values. Of course 1.0 has many new things and even fixes for other problems so upgrading is always a good thing.

repetier avatar Aug 08 '18 07:08 repetier

Do you have an example of temperature graphs that are actually good? I have some issues even with motors stopped. For example, I set the extruder with 60oC. It doesnt look like you said.

image

leoheck avatar Aug 20 '18 22:08 leoheck

I have no available at the moment, but a normal curve has no spiked about 2°C within a few seconds. In fact there even is a filter to remove single spikes, but you seem to have longer periods of changed voltage. Apart from crosstalk from heaters it also can be a defect thermocouple. When they expand during heating they might get tiny breaks due to stress from holding it inside. That also can lead to unstable values. If you have a resistor you can replace thermistor with it. Then it should be a quite stable line as resistance does not change. Also disabling heaters and motors should remove influence like crosstalk and show a stable line if it is from crosstalk.

repetier avatar Aug 21 '18 06:08 repetier

With a short (15 cm) of twisted wire and a 100k resistor, the line is flat. It was me messing with wires before 57:45. So my problem my be the thermistor itself since in the last graph 3d printer was it working with motors off and the thermistor wire was far from the other wires.

image

leoheck avatar Aug 21 '18 14:08 leoheck

Yes, I think you can now say it comes from thermistor. That flat line is how it looks like. With a thermistor it varies a bit due to temperature changes but it is similar.

repetier avatar Aug 21 '18 14:08 repetier

I am buying a new thermistor, but I still feel that the problem isn't the thermistor. There should be something else. Analysing some prints I took from the temperature curves when the problem occurs, I saw that it always happens 7 minutes after heating the extruder, even changing the 3D model that is being printed.

This happened yesterday while I was testing. I sent the print through the server.

When I start the printing from the host it works. I am going to test it one more time to garantee that this statement.

repetier_host_temperature_issue

leoheck avatar Aug 23 '18 14:08 leoheck

You can disable decouple testing by setting the timeout to 0. The problem is that the errors you measure are random and mostly do not trigger but under bad conditions it might trigger. Temperatures are controlled by firmware so host or server should not really make a difference if you do exactly the same apart from randomness of temperatures.

Hope it gets better with new thermistor.

repetier avatar Aug 23 '18 15:08 repetier

Good, I will try to increase it a little bit first while I wait the thermistor to be delivered.

I guess I have the default value EXT0_DECOUPLE_TEST_PERIOD = 12000. Is it 12000 ms (12 s), right?

I'going to start with 30000 ms like in the HEATED_BED_DECOUPLE_TEST_PERIOD define.

So, how this small value is related to the curves I can see on my last picture? In other words, loking the curves, how do I know that it is a problem with the thermistor et al?

What I am seeing there is that the extruder was suddenly turned off, then the thersmistor tracked the drop off the temperature. Isn't it?

leoheck avatar Aug 23 '18 17:08 leoheck

In your case it could also be the variance that triggers. Period is a factor when first heating occurs. E.g. if start was on peak high and control on a peak low the decouple period must be long enough that it is still a temperature rise.

repetier avatar Aug 24 '18 06:08 repetier

Changed the thermistor, finally. Heated bed, extruder and motors, and fan are off. It is currently glued with tape on top of the heated bed.

It is an 100k NTC 3950. Is it good enough?

image

leoheck avatar Aug 24 '18 20:08 leoheck

Just for the sake of comparison, this is my current temperature sensor (I don't know the model, it should be the same as the one I bought). All is off but it still assembled in the extruder.

They look the same!

image

leoheck avatar Aug 24 '18 22:08 leoheck

Is it possible that I am using a wrong configuration in the firmware? I am sharing it here just in case. Configuration.zip

leoheck avatar Aug 24 '18 22:08 leoheck

Hello leoheck,

I dont remember what heat_manager 3 was. In case you are using PID-Controll, the extruder output (PWM) looks a bit shaky for me. It is 0-1-0-1-0-1-0 instead of a soft line.

If you do an autotune, I would use Classic-PID or pessen integral rule for a hotend.

If you have hardware problems with your electronics sometimes a tiny ceramic capacitor helps alot. I mean some pF or nF to damp away the high frequencys or radio input.

Nibbels avatar Aug 26 '18 19:08 Nibbels

Hi @Nibbels, the EXT0_HEAT_MANAGER 3 is the "Dead Time Control"

This is the config that came originally with my 3D printer. So, what is the best out-of-the-box cofiguration here? What is the value for Classical-PID, 0 or 1?

The Repetier-Firmware configuration tool does not have/show me a lot of options, see: image

leoheck avatar Aug 27 '18 13:08 leoheck

He talks about PID calibration using M303

  • M303 P<extruder/bed> S<printTemerature> X0 R<Repetitions> C- Auto detect pid values. Use P<NUM_EXTRUDER> for heated bed. X0 saves result in EEPROM. R is number of cycles. method 0 = classic, 1 = some overshoot, 2 = no overshoot, 3 = pessen, 4 = Tyreus-Lyben

You need PID Controller for this to make sense. Might work better with these fluctuations you have, also D/P will get wrong during spikes you have the I part that takes longer to follow.

repetier avatar Aug 27 '18 13:08 repetier

@Nibbels I tested some caps in the termistor therminals, near the board. I tested some Values from 22pF to 0.4uF but the curves have the same spikes. Nothing has changed at least considering the room temperature, maybe the thermistor works better when it is hotter. I am measuring 15.5℃ (+2℃/-2℃)

image

@repetier, you said:

You need PID Controller for this to make sense

Is it a configuration or a hardware? Can you explain better?

@Nibbels,

I dont remember what heat_manager 3 was. In case you are using PID-Controll, the extruder output (PWM) looks a bit shaky for me. It is 0-1-0-1-0-1-0 instead of a soft line.

Sure, tottaly agree. I want to do the autotune to see if it helps. Can you explain this better or reference some tutorial?

leoheck avatar Aug 27 '18 14:08 leoheck

Oh, I just need to run the command, got it.

@repetier, Where should I put the method? And how much repetitions should I do?

M303 command syntax for reference from here.

# M303 P<extruder/bed> S<printTemerature> X0 R<Repetitions> C<method>

Where:

P is the extruder/deb. 1 for heated bed if only one extruder, default is 0 (main extruder)
X0 saves result in EEPROM. 
R is number of cycles.
C if for the method, 0 = classic, 1 = some overshoot, 2 = no overshoot, 3 = pessen, 4 = Tyreus-Lyben

So, right now I am doing this:

M303 P0 S200 X0 R8 C0

leoheck avatar Aug 27 '18 14:08 leoheck

I got, this. Is it right or good? How do I know?

image

leoheck avatar Aug 27 '18 14:08 leoheck

Yes, that is how autocalibration looks like. Copy values to eeprom or if you used X0 it should already be in eeprom.

I remember your experiment with a fixed resistor getting a flat line. Have you tested the line when you have the new thermistor instead connected? I do not mean in extruder just short line. Often it is a good idea to start from a working position adding tiny steps until the error occurs. If it crosses for example later a 220V 50Hz cable that could also cause noise on it. Of course you can also simply unplug the main power. Most boards will still run and report tempertutures.

repetier avatar Aug 27 '18 17:08 repetier

Have you tested the line when you have the new thermistor instead connected?

Yes, I added it here some comments before, look https://github.com/repetier/Repetier-Firmware/issues/811#issuecomment-415869341

I do not mean in extruder just short line

I didn't get that, can you explain better? The new temperature sensor was connected in the RAMPs board but it was out of the extruder. Motors were off (Axis/Extruder/Fan).

If it crosses for example later a 220V 50Hz cable that could also cause noise on it

The thermistor is far from the AC cable. Now it is also far awy from other wires. But I still have the same fluctuation.

Of course you can also simply unplug the main power. Most boards will still run and report tempertutures.

Sure, my power supply was off.

There should be something else that is makeing my printer abort the job with the following error. prusa_fatal_error_heater_decoupled

I don't believe that it is due to the thermistor but I am running out of the ideas to test it.

leoheck avatar Aug 27 '18 18:08 leoheck

Ok, nice!

Your Ki, Kp and Kd constants look plausible.

Away from that, if you cannot get rid of disortions: At least in germany we have 220V lines with Plus, Ground and Safety Line. In case your Ground is somehow bad, there is some rumor that you should just plug your cable inside the wall turned around. That means you switched plus and ground. That might, in some specific hardware configurations better your situation. I heard that would make sense at most, when as example your 12V Ground is connected to the green-yellow Safety Line.

LG

Nibbels avatar Aug 27 '18 19:08 Nibbels

Cool, autotune the PID was good. It is printing more than 7 minutes :)

I am using the original thermistor.

Everything looks good so far image

leoheck avatar Aug 27 '18 20:08 leoheck

Actually, I am not sure if this is good. The swing seems to be increasing.

image

leoheck avatar Aug 27 '18 20:08 leoheck

Cool, it is getting stable again.

image

leoheck avatar Aug 27 '18 21:08 leoheck

@Nibbels @repetier my test part just finished fine! So, it is working again. I still have to print something that was giving me issues to see if it is ok. Guys, thank you for all the help!!

leoheck avatar Aug 27 '18 22:08 leoheck