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

    RRF3.01RC11: hot-end thermistor: noisy measurement

    Scheduled Pinned Locked Moved Solved
    General Discussion
    rrf3 thermistor
    2
    5
    572
    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.
    • resamundefined
      resam
      last edited by

      Hi,

      I upgraded from RRF2.05 to RRF3.0 and also 3.01RC11 on my Duet2Wifi 1.04.

      I noticed that my hotend thermistor has very noisy readings above 210°C after the firmware upgrade. I even rolled-back to RRF2.05 and observed super clean measurements again - so I suspect something is either wrong with my config changes, or RRF3 introduced a different ADC setting / measurement algorithm that now results in noise of +/- 10C on my printer.

      Here is my RRF2 config snippet for the heater:

      M305 P1 S"Hotend" R4700 T100000 B4725 C7.06e-8  ; set hotend thermistor parameters
      M307 H1 A560.0 C160.0 D8.0 S1.0 B0              ; hot end heater
      

      And here what I think is the correct RRF3 config snippet:

      ; Hot end temperature sensor and heater
      M308 S1 P"e0_temp" A"Hot End" Y"thermistor" R4700 T100000 B4725 C7.06e-8
      M950 H1 C"e0_heat" T1 Q250
      M143 H1 S280
      M307 H1 A400.0 C140.0 D6.0 S1.0 B0
      

      On RRF2 I get nice clean readings at various stable temperatures:
      Screenshot 2020-05-03 at 14.20.52.png

      Compared to the very noise graph on RRF3 and RRF3.01RC11:
      Screenshot 2020-05-03 at 14.34.34.png

      I tried re-tuning my heater, playing with various values manually, checking my hardware. I can remotely roll-back to RRF2 and the noise is gone - I upgrade to RRF3.0 again, and it is back. I only have the thermostatic hot-end fan on, that kicks in at 50C with 100% - there is no part cooling fan that would affect the readings. Both graphs are in captured in an otherwise idle printer (no movement, or other activity).

      I see temperature reading difference of up to 10C from one sample to the next. At some point this will most likely trip a heater fault and kill a running job.

      Did anyone else observe different temp readings or heating characteristics after upgrading to RRF3?

      1 Reply Last reply Reply Quote 0
      • resamundefined
        resam
        last edited by

        I noticed that none of these variables are used any more in RRF3:
        https://github.com/dc42/RepRapFirmware/blob/v3.01-dev/src/Configuration.h#L128-L130

        @dc42 is this on purpose or did the code get lost during refactoring? For fan speeds it is still there. On RRF2 there was https://github.com/dc42/RepRapFirmware/blob/dev/src/Platform.cpp#L2686, but on RRF3 is seems to be gone. I'm not even sure if my problem is related to PWM frequency - I tried changing the frequency to super low and super high values, but my temperature noise is seemingly unaffected by it.

        dc42undefined 1 Reply Last reply Reply Quote 0
        • dc42undefined
          dc42 administrators @resam
          last edited by

          @resam said in RRF3.01RC11: hot-end thermistor: noisy measurement:

          I noticed that none of these variables are used any more in RRF3:
          https://github.com/dc42/RepRapFirmware/blob/v3.01-dev/src/Configuration.h#L128-L130

          @dc42 is this on purpose or did the code get lost during refactoring? For fan speeds it is still there. On RRF2 there was https://github.com/dc42/RepRapFirmware/blob/dev/src/Platform.cpp#L2686, but on RRF3 is seems to be gone. I'm not even sure if my problem is related to PWM frequency - I tried changing the frequency to super low and super high values, but my temperature noise is seemingly unaffected by it.

          The difference is that in RRF2 the firmware assumed that heater 0 was the bed heater so it set the PWM frequency to 10Hz. In RRF3 it treats all heaters equally. You can add parameter Q10 in your M950 H0 command to get the same behaviour as RRF2.

          Duet WiFi hardware designer and firmware engineer
          Please do not ask me for Duet support via PM or email, use the forum
          http://www.escher3d.com, https://miscsolutions.wordpress.com

          resamundefined 1 Reply Last reply Reply Quote 0
          • resamundefined
            resam @dc42
            last edited by

            @dc42 said in RRF3.01RC11: hot-end thermistor: noisy measurement:

            The difference is that in RRF2 the firmware assumed that heater 0 was the bed heater so it set the PWM frequency to 10Hz. In RRF3 it treats all heaters equally. You can add parameter Q10 in your M950 H0 command to get the same behaviour as RRF2.

            I'm having problems with my hot-end heater: E0, not the bed. I think the default for this was always 250 (assuming by reading the comments in the code).

            I've just tested again with this config on RRF3.01RC11:

            ; Hot end temperature sensor and heater
            M308 S1 P"e0_temp" A"Hot End" Y"thermistor" R4700 T100000 B4725 C7.06e-8
            M950 H1 C"e0_heat" T1 Q10
            M143 H1 S280
            M307 H1 A400.0 C140.0 D6.0 S1.0 B0
            

            Here the chart, first heating from 0 to 230, and then bumping to 240:
            Screenshot 2020-05-03 at 23.34.28.png
            Very noisy again with jumps from one measurement sample to the next of up to 10C.

            Again - I'm not sure if this is even an PWM frequency artefact - is there any plausible correlation of the frequency the mosfets get switched to influence the ADC_REF or other ADC voltages?

            Or did the ADC itself get different setup values in the microcontroller that would explain this difference? Does the ADC aggregate or average a few values? Maybe the smoothing has changed from RRF2 to RRF3?

            1 Reply Last reply Reply Quote 0
            • resamundefined
              resam
              last edited by

              I finally solved my mystery of weird noisy hot-end thermistor readings!
              The problem goes back to even https://forum.duet3d.com/topic/5582/hot-end-auto-tuning-failed-due/1 which is also solved now!

              When I built my printer and my XY carriage I tried to be clever and reduce the number of wires I need to run through my drag chain by combining all ground / power / etc connections as much as possible.

              I wrongly assumed that VSSA can be substituted with GND. I essentially plugged my thermistor into GND+THERMISTOR1. This gave me a "good enough" reading apparently that I never bothered to double check. 🤦

              This however creates a few tiny problems because @dc42 is even more clever and compensates for the extra fuse resistance of VSSA in the firmware - which means I have a wrong reading in certain cases.

              Now I'm running my thermistor wiring the way god @dc42 intended, and I have a super clean temperature reading!

              Let this be a lesson guys! RTFM!

              1 Reply Last reply Reply Quote 2
              • First post
                Last post
              Unless otherwise noted, all forum content is licensed under CC-BY-SA