1

Topic: Temperature Check on Hot End

I have been running some tests with a thermocouple and comparing the theoretical values from the thermistor against something that should be fairly accurate.  I have a 3% tolerance on my thermocouple, so it wont be perfect but it should be pretty close.

What I am finding is that my hot end is reporting 200C but is actually around 174C.
Since I don't know the exact part number, I attempted to perform a number of tests to find out what my thermistor actually is so that I could check the temp table in code, but that was eventually fruitless.

My thermistor has a room temperature resistance of 116.4K.  That is not inside the tolerance of an epcos 100K NTC thermistor is it?  In any case, even running the numbers from epcos and using the createTemperatureLookup.py script, I am unable to regenerate the table used in code.  Does anyone happen to know how it was generated?

Also, I measured the two resistors next to the temperature probe connections on the sanguino and found them to be 4.5K instead of the normal 4.7k.  If they are the pullups, wont that alter the readings from the temperature probes?

I am currently working on a theory that the hot end is jamming because it isn't as hot as it thinks. This works well considering that Solidoodle recently posted a note about the black filament requiring hotter temperatures to melt properly.  If the hot end isn't getting as hot as we think, then pushing up the temp would move it back towards the correct operating temperature and the plastic would flow as expected.

Since I am replacing my hot end, I would like to have confidence that it is getting as hot as indicated so that I don't also have jamming problems with it.

Has anyone else attempted to verify the temperatures at the hot end and calculate the tables used to estimate temperature for validation?

2

Re: Temperature Check on Hot End

There is a note in the Firmware that table 1 is more accurate than table 6.  I don't really know more about it than that, but that's something else to check on.

Have a look at this thread - http://forums.reprap.org/read.php?1,134 … msg-135016

It starts out on Z-lift, but moves into Thermistor Table 6

3 (edited by cephdon 2012-12-24 18:44:51)

Re: Temperature Check on Hot End

Yeah, I tried table 1 and 6. I also tried generating my own table, but since I don't really know what thermistor is there, it is a little difficult (something like 20 or so iteration now).  I ordered two new thermistors from qu-bd.com which should take a few days to get here.  Then I can generate a new table for them and build my new hot ends. That will at least give me a starting point for making this thing work correctly.

I will check out that link and see what it says.  Thanks Ian.

Edit: After reading that thread, that is exactly what I am taking about.  Good to know.
I will fix my table and then possibly submit a patch to Lawsy. Might fix other people's issues too.

4

Re: Temperature Check on Hot End

Did you get a thermistor with your J-Head?

5

Re: Temperature Check on Hot End

Yep. Totally forgot about that one.

6

Re: Temperature Check on Hot End

One cool thing about the j head is there are two thermistor holes, big and small.  The included thermistor fits in the small one.  The big one looks big enough for my thermocouple so it would be easy to get apples to apples comparison on readings.   It's not as good as getting it inside the barrel, but that is only feasible for 3mm hot ends.

7

Re: Temperature Check on Hot End

We can easily add to the thermistor table file. I did so yesterday for the built in thermistor in the QU-BD silicone bed. Once the table was added, just change that one number in the configuration.h file.

Will putting some work into updating the firmware this week with easy support for the silicone bed.

8

Re: Temperature Check on Hot End

Yeah, I have been doing it while testing my old hot end.  My main problem is that none of the script settings have so far resulted in accurate readings as compared with my thermocouple.  Always off by a 30-50C.

Lawsy,

Do you know if the resistors on the sanguino by the temperature ports are the pullups or not?  If so, they read at 4.5K on my multimeter rather than 4.7k. So the tables generated need to take that into account, I would think.

9

Re: Temperature Check on Hot End

That's normal for resistors with 5% tolerance. Dialing it in would help, though.

10

Re: Temperature Check on Hot End

Ahh, didn't realize the pullups were 5% tolerance.

11

Re: Temperature Check on Hot End

I'm not sure that they are, I don't haver solidoodle in front of me to check.

12 (edited by cephdon 2012-12-25 03:44:40)

Re: Temperature Check on Hot End

OK. I finally got the thermistor to read within the tolerance of my thermocouple.
This is the process I followed:
1) Attach thermocouple next to thermistor.
2) measure the resistors directly next to the extruder connector (mine were 4.5K). this will be --rp.
3) Disconnect thermistor and measure room temperature resistance with your MM (Check temperature on the thermocouple) and make a note of both then reconnect thermistor (mine were 110.8K and 20C). This will be --r0 and --t0.
4) run the script with no arguments and get a default table which is added to the firmware in thermistortables.h.  Make sure you change which table you use in configuration.h to point to it.
    This is necessary so that you have fixed settings and adc values that match for the following steps.
5) compile and upload firmware.
6) Using your interface, tell the extruder to heat to 150C and take a note of the actual temperature. Then look up the adc value in the previous table for the setting and take note of that... this will be adc1 and t1.
7) Perform step 4 again at a temperature of 200.. this will be --adc2 and --t2.
8) Generate a new table using the discovered settings and use it to replace the table previously created (compile and upload).
9) start with step 6 and validate, if necessary update again to get a more accurate table.

I ended up running 3 passes from 6 to 9 to get the table below.

Here is my table:

#if (THERMISTORHEATER_0 == 56) || (THERMISTORHEATER_1 == 56) || (THERMISTORHEATER_2 == 56) || (THERMISTORBED == 56)
// SD2 - possible epcos, 100k NTC thermistor. Part Number unknown.
// ./MakeTempTable.py --r0=110800 --t0=20 --rp=4500 --adc1=170 --t1=164 --adc2=60 --t2=220
const short temptable_56[][2] PROGMEM = {
    {     115,       300     }, // r=    32 adc=7.16
    {     127,       295     }, // r=    35 adc=7.95
    {     142,       290     }, // r=    39 adc=8.85
    {     158,       285     }, // r=    44 adc=9.85
    {     176,       280     }, // r=    49 adc=10.98
    {     196,       275     }, // r=    55 adc=12.26
    {     219,       270     }, // r=    61 adc=13.69
    {     245,       265     }, // r=    68 adc=15.31
    {     274,       260     }, // r=    77 adc=17.15
    {     307,       255     }, // r=    86 adc=19.22
    {     345,       250     }, // r=    97 adc=21.56
    {     387,       245     }, // r=   109 adc=24.21
    {     435,       240     }, // r=   123 adc=27.21
    {     490,       235     }, // r=   139 adc=30.61
    {     551,       230     }, // r=   157 adc=34.46
    {     621,       225     }, // r=   178 adc=38.83
    {     701,       220     }, // r=   201 adc=43.79
    {     790,       215     }, // r=   228 adc=49.40
    {     892,       210     }, // r=   259 adc=55.77
    {    1008,       205     }, // r=   295 adc=62.98
    {    1138,       200     }, // r=   336 adc=71.15
    {    1286,       195     }, // r=   384 adc=80.39
    {    1453,       190     }, // r=   438 adc=90.82
    {    1642,       185     }, // r=   502 adc=102.60
    {    1854,       180     }, // r=   575 adc=115.86
    {    2092,       175     }, // r=   659 adc=130.75
    {    2359,       170     }, // r=   758 adc=147.42
    {    2657,       165     }, // r=   872 adc=166.03
    {    2987,       160     }, // r=  1005 adc=186.72
    {    3354,       155     }, // r=  1160 adc=209.60
    {    3756,       150     }, // r=  1340 adc=234.77
    {    4197,       145     }, // r=  1552 adc=262.30
    {    4675,       140     }, // r=  1799 adc=292.18
    {    5190,       135     }, // r=  2089 adc=324.37
    {    5740,       130     }, // r=  2430 adc=358.75
    {    6322,       125     }, // r=  2832 adc=395.11
    {    6931,       120     }, // r=  3305 adc=433.18
    {    7561,       115     }, // r=  3864 adc=472.59
    {    8207,       110     }, // r=  4525 adc=512.91
    {    8859,       105     }, // r=  5309 adc=553.68
    {    9510,       100     }, // r=  6240 adc=594.36
    {   10151,        95     }, // r=  7348 adc=634.44
    {   10775,        90     }, // r=  8669 adc=673.43
    {   11374,        85     }, // r= 10248 adc=710.85
    {   11941,        80     }, // r= 12139 adc=746.32
    {   12472,        75     }, // r= 14408 adc=779.53
    {   12964,        70     }, // r= 17137 adc=810.24
    {   13413,        65     }, // r= 20429 adc=838.33
    {   13820,        60     }, // r= 24407 adc=863.75
    {   14184,        55     }, // r= 29226 adc=886.50
    {   14507,        50     }, // r= 35081 adc=906.69
    {   14791,        45     }, // r= 42212 adc=924.45
    {   15039,        40     }, // r= 50922 adc=939.94
    {   15254,        35     }, // r= 61590 adc=953.34
    {   15438,        30     }, // r= 74694 adc=964.87
    {   15595,        25     }, // r= 90841 adc=974.72
    {   15729,        20     }, // r=110800 adc=983.07
    {   15842,        15     }, // r=135552 adc=990.13
    {   15937,        10     }, // r=166353 adc=996.06
    {   16016,         5     }, // r=204818 adc=1001.01
    {   16082,         0     } // r=253030 adc=1005.12
};
#endif

I found this script on nophead's blog due to the link Ian posted earlier.
The script is located at: https://github.com/nophead/Marlin/blob/ … mpTable.py

13

Re: Temperature Check on Hot End

Glad to see some more thorough investigation done on this topic. The only thing I don't get, is that at least in the beginning, we were having errors in the opposite direction. When the readings were reporting 210 we were getting around 240. This is still occurring on my printer as well. Have they changed the design on the mounting of the thermistor or changed the actual thermistor?  If what you're reporting is accurate and the design hasn't changed, somehow we are seeing a possible swing of 60-70 degrees from printer to printer. This doesn't seem like it can be right. Has the table been updated in the new firmware and I haven't seen it since I haven't updated recently?  The firmware was changed early on to set the max at 215 since we were having problems with the hot end melt downs.

14 (edited by cephdon 2012-12-27 16:04:00)

Re: Temperature Check on Hot End

I don't think we can make any conclusions from one data point. What we need is more information. I don't know my thermistor part number and neither does anyone else. Some people might not have updated to lawsy's firmware, and so could have a different temp table (at least, back when SD was using something different). 

To add to the data, we need people to measure their thermistor, check the pullup resistor and check their temps with a thermocouple (using the default table).  Then update to my new table and see the difference. It would also help if SD would tell us the thermistor part number and all previous part numbers. Then we would know for sure. So far, they have never answered that question.

Also, I know we were told that 200C on an SD is like 230C for other printers, but I don't know how that was determined.  What I do know is that when I started measuring my actual temperature, it was off in the other direction.

As an additional point of reference, my printer is serial #1350. All measurements were made with the original hot end, though I don't think that will matter much as long as the original thermistor is used for doing the measurements.

15

Re: Temperature Check on Hot End

Here's a test that I did awhile back, taping a thermocouple next to the thermistor.  It's where we figured out the approximate offset.  One calibration step that might be good for new printers and new filament is just to set the temp low enough for the extruder to skip, and then start stepping it up until it flows smoothly.  You can see the borderline between too cool and good enough when the filament starts coming out with tooth marks from the gear.

16

Re: Temperature Check on Hot End

Ian
I sent you a private message of a data logger I will be getting after I receive my SD3
I am going to permently mount the TC wires to the extruder & bed.

Let me know what you think

Ultimaker S3.

17

Re: Temperature Check on Hot End

Here is the link to the data logger I am going to attach to the Head and Table when I get my SD3 in.
http://www.extech-online.com/index.php? … cts_id=408

Ultimaker S3.