• Tags
  • Documentation
  • Order
  • Register
  • Login
Duet3D Logo Duet3D
  • Tags
  • Documentation
  • Order
  • Register
  • Login

Hot-End Thermistor Temperature calibration

Scheduled Pinned Locked Moved
Tuning and tweaking
10
37
4.0k
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • undefined
    Wombat37
    last edited by 24 Aug 2021, 18:17

    I'm looking into a robust way of calibrating the hot-end thermistor connected to a BTT-E3-RRF board running RRF 3.3. This is a standard NTC 100k 3950 device. When I first set up the system there was a 20°C temperature error at the hot-end which meant that the extruder failed to push through filament properly (nasty clicking and popping noises).

    I've found very little information on how to achieve accuracy in the temperature control of the hot end. The approach seems to be to set the supplier's published R25 and Beta values in a M308 entry in config.g. However, it would appear that such specifications are applicable to a limited range at low temperatures - e.g. 25 to 50°C so there can be larger errors at the higher working temperatures where accuracy is really needed.

    I believe I can put together an RRF macro to recalibrate the R25 (or more appropriately the A coefficient in the Steinhart-Hart function) and Beta coefficient values applicable to a higher temperature range (say 180 to 260°C).

    I'd be interested to learn if anyone else has looked into this - I have an algorithm already working in an Excel worksheet and I'm about to code the macro. One big stumbling block has been to get access to raw ADC readings used by RRF for temperature calculations. I can see how to get access to these data in Marlin but but I can't find a method in RRF - does anyone know how I can display and monitor these raw values? In the meantime, I'm having to use an iterative process to least-squares fit data to the measured temperatures - its tedious and messy!

    undefined undefined 2 Replies Last reply 24 Aug 2021, 18:25 Reply Quote 0
    • undefined
      jay_s_uk @Wombat37
      last edited by 24 Aug 2021, 18:25

      @wombat37 the best answer is bin the 3950 and buy a proper thermistor. They are known to have poor resolution at higher temperatures (such as the temperatures used for printing) and no matter how well you calibrate it it is still a poor choice of thermistor.
      That's just my 2 cents though

      Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

      undefined 1 Reply Last reply 25 Aug 2021, 11:41 Reply Quote 0
      • undefined
        Phaedrux Moderator
        last edited by 24 Aug 2021, 18:31

        https://e3d-online.com/products/thermistor-cartridge

        Z-Bot CoreXY Build | Thingiverse Profile

        1 Reply Last reply Reply Quote 0
        • undefined
          engikeneer @Wombat37
          last edited by 24 Aug 2021, 22:01

          @wombat37 Out of interest, how are you planning on acheiving this? To accurately determine the Steinhart coefficients, you need to be able to accurately measure the thermistor's resistance at several known temperatures. If you're trying to automate this on the Duet, how are you accurately measuring those 'real' temperature values?

          There are plenty of online calculators where you can put in measured thermistor resistances at different known temperatures and calculate the coefficients. In some cases you might use an oven with a high quality thermocouple through the door, but it will still be full of errors.

          The other thing to bear in mind is that different filaments, different nozzles, and even different speeds/print settings will all need slightly different temperatures to get a perfect print (e.g. my 0.8mm brass volcano needs about 10deg hotter on my delta for the same filament compared to my 0.3mm copper v6 on my corexy). Even if you do back-calculate the thermistor parameters, or get a high quality one to get a better temperature reading, it's probably worth doing a set of 'temperature towers' to dial in what temperatures your printer/filament etc actually need. Something like this: https://www.thingiverse.com/thing:2729076

          E3D TC with D3Mini and Toolboards.
          Home-built CoreXY, Duet Wifi, Chimera direct drive, 2x BMG, 300x300x300 build volume
          i3 clone with a bunch of mods

          1 Reply Last reply Reply Quote 1
          • undefined
            Wombat37
            last edited by 24 Aug 2021, 22:35

            Thanks everyone for the quick responses.

            I totally agree that using a better quality thermistor is a good way to go. However, there are many more variables that affect the accuracy of temperature control. I just moved this same thermistor between two different boards with the same settings and saw a 20°C difference when measured independently. Something was different with the board, the cabling, the PSU, thermal lag, the firmware, etc., etc. I don't think a bad thermistor caused this.

            Jay_s_uk stated that a 3950 thermistor has poor resolution at the top end. With a 12-bit ADC, this equates to about 19 counts/°C at 240°C. With the 104Gt (beta = 4267), it's much worse at about 12 counts/°C and a lower ceiling for the top temperature. So, I don't quite understand your comment about it being worse.

            Proper calibration using independent temperature measurements is always a more reliable approach than just typing in expected numbers and then assuming that everything is working correctly. I know it's easy to dismiss stuff as cheap rubbish but unless you make measurements like this, it's difficult to have a basis for such claims.

            Also, before you challenge my method of making these measurements, I used an expensive Omega probe thermocouple inside the nozzle which had been calibrated beforehand using melting pure tin metal (231.9°C) and not just ice and steam.

            Back to my original question, is there any way of getting access to the raw data values from the ADC in RRF?

            I apologize if I'm coming across a bit snarky - it's not intended. I do appreciate your input, I just like to fully understand things before I accept or dismiss them.

            undefined 1 Reply Last reply 25 Aug 2021, 00:15 Reply Quote 1
            • undefined
              fcwilt @Wombat37
              last edited by 25 Aug 2021, 00:15

              @wombat37

              If someone made an automatic test device for thermistors that didn't cost an arm and a leg (I still need mine) I would get one.

              Perhaps we could persuade someone here to invent such a testing device.

              Lacking that I simply determine what temperature I need to see to get the results I want.

              For example the PLA I have being using most works fine at a reading of 190. I recently have been using a new brand that works better at 200.

              So perhaps those numbers are not correct but they do work.

              Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

              1 Reply Last reply Reply Quote 0
              • undefined
                ignacmc @jay_s_uk
                last edited by 25 Aug 2021, 11:41

                @jay_s_uk So which thermistor would you recommend for temperatures up to 350ºC. I got an HT-NTC100K-B3950 in the belief I was getting something decent

                Predator with Duet3 Mini 5+, Smarteffector v4 and LGX Lite Extruder

                undefined undefined 2 Replies Last reply 25 Aug 2021, 16:08 Reply Quote 0
                • undefined
                  Wombat37
                  last edited by Wombat37 25 Aug 2021, 15:09

                  I don't think it would be fully automatic but more macro-guided.

                  The macro would ask the user to adjust 3 or 4 temperatures and then do the calculations to determine values for R25 and Beta. I'm still thinking on how to handle the LowOffset and HighOffset settings, my board doesn't automatically calculate these.

                  Regarding the quality of the B3950 vs B4267 and other higher Beta thermistors, it might not be so much an issue of resolution but of noise and stability (and robustness). Lower resolution but less noise might be a better combination.

                  undefined 1 Reply Last reply 25 Aug 2021, 16:12 Reply Quote 1
                  • undefined
                    Phaedrux Moderator @ignacmc
                    last edited by 25 Aug 2021, 16:08

                    @ignacmc said in Hot-End Thermistor Temperature calibration:

                    @jay_s_uk So which thermistor would you recommend for temperatures up to 350ºC. I got an HT-NTC100K-B3950 in the belief I was getting something decent

                    I'd recommend a PT100 but you need a daughterboard. PT1000 would be my choice if the daughterboard was a deal breaker.

                    https://duet3d.dozuki.com/Wiki/Connecting_thermistors_or_PT1000_temperature_sensors

                    Z-Bot CoreXY Build | Thingiverse Profile

                    undefined 1 Reply Last reply 26 Aug 2021, 07:51 Reply Quote 1
                    • undefined
                      jay_s_uk @ignacmc
                      last edited by 25 Aug 2021, 16:11

                      @ignacmc I second @Phaedrux
                      Once you get into the high temperature thermistors, such as the dyze 450 degree one, they're great at high temps but very difficult to read at low temps so Duets (and other boards) tend to struggle

                      Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

                      1 Reply Last reply Reply Quote 0
                      • undefined
                        engikeneer @Wombat37
                        last edited by 25 Aug 2021, 16:12

                        @wombat37 I think the issue with B3950s is more that they vary from thermistor to thermistor (so you can't trust the manufacturers B values) rather than that they're fundamentally less accurate.

                        In your case with the 20deg difference between two boards, it might be that you need to calibrate the ADC rather than the thermistor. There's a guide for doing it with Duet boards, but not sure how it compares for one of the ports for the E3...
                        https://duet3d.dozuki.com/Wiki/Calibrating_thermistor_and_PT1000_readings

                        E3D TC with D3Mini and Toolboards.
                        Home-built CoreXY, Duet Wifi, Chimera direct drive, 2x BMG, 300x300x300 build volume
                        i3 clone with a bunch of mods

                        1 Reply Last reply Reply Quote 0
                        • undefined
                          Wombat37
                          last edited by Wombat37 25 Aug 2021, 16:18

                          I seem to be on a roll, now 😀

                          I've started reviewing the data sheets for expensive "high quality thermistors". Whereas the resistance seems to be stable (<1%) at a given temperature, the absolute resistance can be very variable. The specs seem be all over the place for Selco thermistors as shown in the table below. The Beta values change significantly between 0-50°C and 25-85°C ranges and the R25 value varies by almost 5% in some instances. The R25 variance doesn't affect things too much but the change in Beta certainly does and measurements are going to be way-off once the high temperatures are reached if we use Beta values for low temperatures in the M308 entry. So, in my mind, unless anybody can convince me otherwise, buying an expensive, high quality thermistor does not mitigate the need for proper temperature calibration. If the thermistor Beta and R25 varies between devices, then all the more need for calibration. QED.

                          02e2d26e-5b1d-4349-b9d5-eea19aa9fe76-image.png

                          1 Reply Last reply Reply Quote 1
                          • undefined
                            Phaedrux Moderator
                            last edited by Phaedrux 25 Aug 2021, 16:22

                            How expensive is expensive for a high quality thermistor? Is it comparable to the price of a PT100 with daughterboard or a simple PT1000? I would say that the thermistor simply isn't the right tool for the job if you need accuracy across a wide range of temps.

                            Not to dissuade you from the calibration angle. Being able to take something cheap and calibrate it into better functioning is definitely worthwhile.

                            Z-Bot CoreXY Build | Thingiverse Profile

                            undefined 1 Reply Last reply 25 Aug 2021, 16:34 Reply Quote 0
                            • undefined
                              Wombat37 @Phaedrux
                              last edited by Wombat37 25 Aug 2021, 16:34

                              I seem to be losing this argument 🤕

                              My understanding is that a thermistor can match the performance of a platinum RTD - if it's properly calibrated!

                              It is the calibration that is the challenge because it's very non-linear and variable.

                              If we can make this easy then anyone's system currently using a thermistor (which I assume is the vast majority of us) could, without making any hardware modifications, get better temperature control of the hot-end (even with cheap thermistors). This would lead to consistent performance over long periods and and more reliable portage of methods between different systems.

                              Why wouldn't we want to do this?

                              undefined 1 Reply Last reply 25 Aug 2021, 17:33 Reply Quote 1
                              • undefined
                                T3P3Tony administrators @Wombat37
                                last edited by T3P3Tony 25 Aug 2021, 17:33

                                @wombat37 said in Hot-End Thermistor Temperature calibration:

                                calibration that is the challenge because it's very non-linear and variable.

                                its not that we don't want to do this, but this is the issue. three options as far as i can see:

                                1. Use a accurate meter and temperature bath/oven to get good coefficients at the temps you are interested in printing at (difficult).
                                2. Print temperature towers for the filament/thermistor/controller combination. use that temperature.
                                3. Use a more repeatable temperature sensor like a PT100 or PT1000

                                I favour 3, which still needs some of 2 to be done anyway because every filament is different.

                                www.duet3d.com

                                undefined 1 Reply Last reply 25 Aug 2021, 18:21 Reply Quote 2
                                • undefined
                                  Wombat37 @T3P3Tony
                                  last edited by 25 Aug 2021, 18:21

                                  @t3p3tony

                                  Your point for an accurate thermometer is well taken but I'm not sure why you would need an oven/bath to do this. Air baths are notorious for thermal gradients (I used to help design and evaluate gas chromatographs). Pushing a well calibrated 1-mm (or smaller) diameter thermocouple probe through the heat-break and into the inside of the nozzle would be my approach.

                                  I have a fourth suggestion:

                                  1. Publish thermistor Beta values for the 180-260°C range. I will try to put together some suggestions for these based on manufacturers' published R vs T tables.

                                  This must be much better than using the Beta values published for a 0-25°C range.

                                  Maybe this will be enough to eliminate the need for calibration.

                                  1 Reply Last reply Reply Quote 1
                                  • undefined
                                    ignacmc @Phaedrux
                                    last edited by 26 Aug 2021, 07:51

                                    @phaedrux Then a PT1000 could be adequate for any temp below 350ºC? I intend to be able to print in PLA, PETG, ABS....

                                    Predator with Duet3 Mini 5+, Smarteffector v4 and LGX Lite Extruder

                                    undefined undefined 2 Replies Last reply 26 Aug 2021, 08:09 Reply Quote 0
                                    • undefined
                                      jay_s_uk @ignacmc
                                      last edited by 26 Aug 2021, 08:09

                                      @ignacmc yes, PT100 is great for lower temps too

                                      Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

                                      undefined 1 Reply Last reply 26 Aug 2021, 08:10 Reply Quote 0
                                      • undefined
                                        ignacmc @jay_s_uk
                                        last edited by ignacmc 26 Aug 2021, 08:10

                                        @jay_s_uk Think I will be getting one and ditching the NTC100K....I suppose it does not have any disadvantage over a thermistor even at low temps

                                        Predator with Duet3 Mini 5+, Smarteffector v4 and LGX Lite Extruder

                                        1 Reply Last reply Reply Quote 1
                                        • undefined
                                          deckingman
                                          last edited by 26 Aug 2021, 08:23

                                          Just to throw another spanner in the works, temperature sensors will only the measure the temperature at the point where they are fitted and not necessarily at the point we are interested in. One can have a temperature gradient between the cold filament entering the hot end and the nozzle tip, with the heater and sensor fitted somewhere along that gradient. Furthermore, nozzles are often made from hardened materials which have different thermal characteristics to the block into which they are screwed. Also, the nozzle temperature can be affected by deflected part cooling air. Some time ago I attempted to measure this phenomenon https://somei3deas.wordpress.com/2020/05/21/the-effect-of-deflected-part-cooling-air-on-brass-and-steel-nozzle-temperatures/

                                          My conclusion from all of this is that a temperature sensor will only give an approximate indication of the temperature that we are really interested in due to a number of factors in addition to the accuracy of the sensor itself. So calibrating a sensor to make it as accurate as possible is largely irrelevant as one will still need to print temperature towers in order to determine the optimum temperature to use, regardless of the absolute value reported by the sensor itself.

                                          Ian
                                          https://somei3deas.wordpress.com/
                                          https://www.youtube.com/@deckingman

                                          1 Reply Last reply Reply Quote 1
                                          7 out of 37
                                          • First post
                                            7/37
                                            Last post
                                          Unless otherwise noted, all forum content is licensed under CC-BY-SA