tag:blogger.com,1999:blog-4339813531032979196.post659050697990166783..comments2024-02-28T07:32:59.864+00:00Comments on HydraRaptor: More accurate thermistor tablesnopheadhttp://www.blogger.com/profile/12801535866788103677noreply@blogger.comBlogger16125tag:blogger.com,1999:blog-4339813531032979196.post-7980931636956374632013-11-15T22:51:59.170+00:002013-11-15T22:51:59.170+00:00Hi! I got the same problem, and I found the proble...Hi! I got the same problem, and I found the problem to be an extra equal sign on line 76:<br /> r2 == resistance(int(arg))<br />It should be:<br /> r2 = resistance(int(arg))<br /><br />Actually I had one other issue :<br />When using --adc parameters, --rp must be set first to have effect. The default is 4.7k which is correct for most boards, but I have a melzi with a 10k pullup...<br /><br />Now I have a very accurate table, thanks Nop head!Anonymoushttps://www.blogger.com/profile/01204147171753766738noreply@blogger.comtag:blogger.com,1999:blog-4339813531032979196.post-51459125753275984562013-03-11T23:14:31.409+00:002013-03-11T23:14:31.409+00:00No that is the bed thermistor and it doesn't g...No that is the bed thermistor and it doesn't go up to 300C. I think the table above is for the extruder thermistor. You can find them both in my fork of Marlin on Github.nopheadhttps://www.blogger.com/profile/12801535866788103677noreply@blogger.comtag:blogger.com,1999:blog-4339813531032979196.post-47329454474919121852013-03-11T19:32:07.159+00:002013-03-11T19:32:07.159+00:00Is this sample table for the Epcos B57861S104F40 1...Is this sample table for the Epcos B57861S104F40 100K 1% thermistor from the Mendel90? https://github.com/nophead/Mendel90/blob/master/dibond/bom/bom.txt drf5nhttps://www.blogger.com/profile/12917695018240093981noreply@blogger.comtag:blogger.com,1999:blog-4339813531032979196.post-73141029961507602012012-12-11T12:58:14.485+00:002012-12-11T12:58:14.485+00:00I haven't because the datasheet's T0 is 15...I haven't because the datasheet's T0 is 150C ;) But I don't need the lower part of the curve anyway.<br /><br />If you run the script you'll see that it fails with an error immediately. Remember it iterates from 300 and down. So it never gets to the lower part of the temperature range. Andreyhttps://www.blogger.com/profile/15782631270971443173noreply@blogger.comtag:blogger.com,1999:blog-4339813531032979196.post-81156776455514111322012-12-11T09:36:34.825+00:002012-12-11T09:36:34.825+00:00I suspect that it is because you haven't used ...I suspect that it is because you haven't used 25C for T0/R0. It seems that the low temperature part of the curve is very inaccurate and perhaps R becomes infinite before T gets to 0.nopheadhttps://www.blogger.com/profile/12801535866788103677noreply@blogger.comtag:blogger.com,1999:blog-4339813531032979196.post-58351456707544309512012-12-11T05:41:26.220+00:002012-12-11T05:41:26.220+00:00I guess it is impossible to insert pictures into r...I guess it is impossible to insert pictures into replies so here is the link: http://andrey2345.blogspot.ru/Andreyhttps://www.blogger.com/profile/15782631270971443173noreply@blogger.comtag:blogger.com,1999:blog-4339813531032979196.post-33690907108334259432012-12-09T14:30:00.855+00:002012-12-09T14:30:00.855+00:00Maybe it's a bug. If the inverse equation fail...Maybe it's a bug. If the inverse equation fails the implication is that no matter what the resistance is it never results in a particular temperature, which doesn't make sense for a real thermistor.<br /><br />I can only assume the first step goes wrong, which is solving three simultaneous equations to find the coefficients.<br /><br />Please can you give some example values that work and some that don't for the same thermistor. The interesting thing would be to see the graph of T against R in the case that fails.nopheadhttps://www.blogger.com/profile/12801535866788103677noreply@blogger.comtag:blogger.com,1999:blog-4339813531032979196.post-37126160654993241482012-12-09T13:55:36.518+00:002012-12-09T13:55:36.518+00:00Yeah, I am quite sure. For example, if I run the s...Yeah, I am quite sure. For example, if I run the script with all the same input values only changing one temperature value by one degree or even a bit less I get sqrt undefined error. I think it is easy to be one degree off with the measuring equipment most of us have unless you are willing to conduct much more tests averaging the results. In fact, I made lots of failed attempts before I got it to work in the end. Of course, my thermistor is making things worse. It is an old model with quite a range for Beta (4500-7000) so it is harder to be on spot. But my whole point was more about the possible issue with using inverse equation, rather than difficulties of measuring and using the script.Andreyhttps://www.blogger.com/profile/15782631270971443173noreply@blogger.comtag:blogger.com,1999:blog-4339813531032979196.post-58634672455011700452012-12-07T18:01:56.173+00:002012-12-07T18:01:56.173+00:00Are you sure you didn't make a mistake with yo...Are you sure you didn't make a mistake with your figures? I think it should work for all real thermistors.nopheadhttps://www.blogger.com/profile/12801535866788103677noreply@blogger.comtag:blogger.com,1999:blog-4339813531032979196.post-49802519294043952972012-12-07T17:55:25.891+00:002012-12-07T17:55:25.891+00:00Great post as always! However there is one problem...Great post as always! However there is one problem with the table. To generate it, the inverse equation is used i.e. in fact the script calculates the resistance based on the temperature. Unfortunately, the inverse equation can't be solved for all the inputs, because (B/3C)**3 + y**2 can turn negative and sqrt will be undefined in real numbers. May be that doesn't happen for Epcos thermistors, but happened to mine. So I guess one should put some effort into measuring the two resistances as precise as possible to the inverse equation work. Another option is to iterate through some range of resistances (the range could be "guessed") and calculate corresponding temperatures. Andreyhttps://www.blogger.com/profile/15782631270971443173noreply@blogger.comtag:blogger.com,1999:blog-4339813531032979196.post-333207685163401052012-12-06T08:57:09.406+00:002012-12-06T08:57:09.406+00:00The 1wire protocol is difficult to implement in fi...The 1wire protocol is difficult to implement in firmware without screwing up the stepper motor timing or vice versa. Techzone used one and it caused lots of problems.<br /><br />The main limit on precision for Reprap is the 10 bit ADC.nopheadhttps://www.blogger.com/profile/12801535866788103677noreply@blogger.comtag:blogger.com,1999:blog-4339813531032979196.post-74805588850501856882012-12-06T00:28:48.436+00:002012-12-06T00:28:48.436+00:00When I was building the temperature sensor for my ...When I was building the temperature sensor for my aquarium I got tired of playing with temperature tables. I was looking for something with decimal precision and it is a nightmare to achieve that with cheap NTC thermistors and temperature tables. Then I ended up moving to 1Wire temperature sensors, which don't require a table and are very precise.<br />Do you think it is worth the try?Franklin Datteinhttps://www.blogger.com/profile/01014580536585159500noreply@blogger.comtag:blogger.com,1999:blog-4339813531032979196.post-21086308229863887222012-11-25T18:24:56.590+00:002012-11-25T18:24:56.590+00:00Thav,
The whole point of the article is that th...Thav,<br /> The whole point of the article is that the B parameter equation is not accurate enough over a wide range and the data sheet values are only given for 0-100, 20-100 and 20-80. To work at 240C you have to work out your own beta and then it isn't accurate at half that temperature. Steinhart–Hart is needed for a accuracy over a wide range.nopheadhttps://www.blogger.com/profile/12801535866788103677noreply@blogger.comtag:blogger.com,1999:blog-4339813531032979196.post-53982395810872784112012-11-25T17:02:22.553+00:002012-11-25T17:02:22.553+00:00Apparently hadn't set up my profile, the "...Apparently hadn't set up my profile, the "Unknown" author above is me.Tony Olivohttps://www.blogger.com/profile/12024036203257099781noreply@blogger.comtag:blogger.com,1999:blog-4339813531032979196.post-21755498149099611272012-11-25T17:01:12.416+00:002012-11-25T17:01:12.416+00:00When I work with thermistors at work, I usually us...When I work with thermistors at work, I usually use the B parameter equation. http://en.wikipedia.org/wiki/Thermistor#B_or_.CE.B2_parameter_equation<br /><br />I would think with that equation you could pass the datasheet parameters, Beta, Resistance at a temperature, and the temperature that was measured at. In your table I'm not sure what Beta is, but the other two parameters would be 100k and 25. That's a good way to get an initial table, but your method may be better in the end for getting something that's well calibrated.Tony Olivohttps://www.blogger.com/profile/12024036203257099781noreply@blogger.comtag:blogger.com,1999:blog-4339813531032979196.post-55974590000570550412012-11-25T14:39:10.035+00:002012-11-25T14:39:10.035+00:00Hello Nophead, nice post.
Next time I will check ...Hello Nophead, nice post.<br /><br />Next time I will check your github before I rewrite a tool.<br />There where some users on IRC that had problems with the thermistor accuracy. That is why I rewrote this tool.<br />Your version is much cleaner. I replace mine.<br /><br />Erik van der Zalm<br /><br />Anonymoushttps://www.blogger.com/profile/18269508690156709237noreply@blogger.com