Backup thermistor and Dual Heater Cartridges
-
As far as I know there is no way to set it up to control the heater besides using it as a safety. By that I mean you can set up the second thermistor to monitor the temp and if the temp goes over a preset, it can turn off the heater. It would look like this below (this is what I use for my dual thermistor heated bed setup):
; Heaters ;bed heater - dual sensor config ;hex stud thermistor: https://www.amazon.com/gp/product/B07Q5MKSLS/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1 M308 S0 P"0.temp0" Y"thermistor" T100000 B3950 C0.0 A"Build Plate Temp" ; configure sensor 0 as thermistor on pin temp0 ;Built in Keenovo sensor M308 S1 P"0.temp1" Y"thermistor" T100000 B4725 C7.06e-8 A"Bed Heater Temp" ; configure sensor 1 as thermistor on pin temp1 M950 H0 C"0.out0" T0 Q60 ; create bed heater output on out0 and map it to sensor 0 M307 H0 B0 S1.0 ; disable bang-bang mode for the bed heater and set PWM limit M307 H0 R0.153 C1735.5 D31.48 S1.00 M140 H0 ; map heated bed to heater 0 M143 H0 S120 ; set temperature limit for build plate to 120C M143 H0 T1 P1 S125 A2 ; Monitor heater thermistor, if temp goes above 125C temporarily turn off M143 H0 T1 P2 S132 A3 ; Monitor heater thermistor, if temp goes above 132C cut "atx" supply
The M143 commands on lines 12 and 13 are what set the second thermistor to perform actions based upon temperature.
Edit: This setup uses Sensor 0 as the control thermistor and Sensor 1 as the safety cutoff. In my case Sensor 0 is threaded into my aluminum build plate. Sensor 1 is mounted in the bed heater itself. I use sensor 0 to drive my bed temp but I don't want me heater itself to go over a preset temp.
I do not believe there is an easy way to average the temps.
-
@alex-cr ok how about a dual heater cartridge to even the heating on the block?
-
@wdenker
By that do you mean both a dual thermistor and dual heater? And you want them controlled at the same time with the same temperature?If that was the case, i believe you can put an H1:2 (whatever your heater numbers end up being) in your tool definition command, M563.
Edit: I should add you will need to set up the two heaters separately then use the M563 command to combine them.
-
-
@alex-cr this is what my config looks like now.
; Heaters M305 P0 T100000 B4138 R4700 ; set thermistor + ADC parameters for heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C M305 P1 X501 R4700 ; set thermistor + ADC parameters for heater 1 M143 H1:2 S450 ; set temperature limit for heater 1 to 280C M305 P2 X502 R4700 ; set thermistor + ADC parameters for heater 1 ; Fans M106 P0 S0 I0 F500 H-1 ; set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off M106 P1 S1 I0 F500 H1 T45 ; set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on M106 P3 S1 I0 F500 H1 T15 ; set fan 3 value, PWM signal inversion and frequency. Thermostatic control is turned on M106 P4 S1 I0 F500 H1 T15 ; set fan 4 value, PWM signal inversion and frequency. Thermostatic control is turned on ; Tools M563 P0 D0 H1:2 ; Define tool 0 G10 P0 X0 Y0 Z0 ; Set tool 0 axis offsets G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C
-
What firmware version are you running? Does E0 light up and heat when commanded?
Just to confirm you are using PT1000s right?
Also move your M143 H1:2 command to after you set up the second heater.
-
-
Very nice. So I am not surprised that tuning them does not work. There was another post from a bit ago about that same issue, mainly around the new Dyze extruders that use multiple heaters. I will see if I can find it...
edit: I found where it was talked about:
https://forum.duet3d.com/topic/19761/new-heater-tuning-algorithm/104?_=1620261469960Here is what I would do in your case, keep in mind I have never done this but it might get you going. Try tuning one heater set first by itself. Then apply those settings to that heater(The M307 commands). Then (if you can) try tuning the other heater with the other one while it is hot. I would then take your parameters from the hot tune and see if you can manually tweak them (by using values between the "cold" tune and "hot" tune) to get the whole system to work together.
-
Here's what I heard back
if you have two independently controlled heaters, that are in the same heaterblock they will be tightly thermally coupled and the PID loops will fight each other. the easiest solution if possible is to control both heater cartridges from the same heater output, using just one thermistor. The second thermistor can be configured as a safety overtemp sensor, but that's not involved in the PID loop.
If that's not possible and you must have independant control, you might be able to PID tune each in isolation and then try and tune the values to work in tandem, but there's always going to be two PID loops fighting each other.
Possibly in the future it may become possible to add multiple heaters to a single virtual heater so you could control two heater outputs with a single sensor, but that's not possible now.
-
@wdenker, as @Alex-cr said you can set up the second temperature sensor as an over-temperature cutout, using the M143 command.
If they are thermistors or PT1000 sensors, you can average them by connecting them in series or in parallel and then treating them as a single sensor with double or half the resistance. Series connection is safer because if either connection breaks, the whole sensor will go open circuit; however when using thermistors, the average will be biased towards the lower temperature of the two.