Combining Multiple Thermocouples



  • Can I wire 2x type K thermocouples and read their average? I figure since thermocouples aren't resistors, it's not as simple as doubling some resistance value in the M308 command. Or do multiple thermocouples connected in parallel automatically just average out their voltage (assuming equal wire lengths)?


  • Moderator

    You mean like this?

    https://www.allaboutcircuits.com/textbook/direct-current/chpt-9/thermocouples/

    I'm not really sure how that would work on Duet.

    @dc42



  • Inclined to say "yes" as the voltages should superimpose in theory, but curious to see how that turns out.

    Do you have long enough wires to run both back to the Duet?



  • @bearer I do, type K thermocouples are the same that's often used in automotive EGT gauges so I have some very long lengths of appropriate wire to ensure that the leads aren't using dissimilar metals at any point along their lengths. I'm just waiting on the thermocouple daughter board to be delivered so I can try it out.

    @Phaedrux That confirms what I suspected... I should see an average voltage in a parallel arrangement, with no changes needed in the configuration. What's nice about that is that if one wire breaks or one thermocouples fails, I should still get a mostly-accurate reading from the remaining thermocouple.



  • This appears to work in practice.

    I have 2x ceramic IR emitters (425 watts each @110v AC) with built-in type K thermocouples and very short leads. I wired up a type K lead that has a 3-way junction for each lead before heading directly to the thermocouple doughterboard on a Duet 3 6HC. None of the connections use different metals from the leads themselves. My gcode in config.g looks like:

    M308 S0 P"temp0" Y"thermistor" T100000 B4138 A"Chamber Monitor" ; configure sensor 0 as thermistor on pin temp 0
    
    M308 S3 P"spi.cs0" Y"thermocouple-max31856" A"Chamber Heaters" T"k" F60 ; configure sensor 3 as thermocouple on pin spi.cs0 (2 connected in parallel)
    M950 H2 C"out3" T3                                      ; create chamber heater output on out3 and map it to sensor 3
    M307 H2 D5 B1                                     ; enable bang-bang mode for the chamber heater and set dead time
    M141 H2                                                 ; map chamber to heater 2
    M143 H2 T0 A0 S100                                      ; set temperature limit for chamber based on secondary probe
    

    The "Chamber Monitor" (M308 S0) is a separate thermistor that lives on the effector and measures the temperature of the air being drawn by the hotend heatsink fan. I figure that's a good indication of the air temp where the actual printing is happening, though I'm only using it as a cutoff limit in this case, not the actual heating reference.

    When I set the heaters to 90c, they climb right up to that temperature. The thermocouple reading and my IR thermometer read a temperature that's always within 5c from each other. So it looks like the readings from the two heaters are in fact being averaged. The reading at ambient temperature was also similarly accurate.

    https://i.ibb.co/w452nCr/IMG-20201118-180647.jpg
    https://i.ibb.co/TKbXBZ7/IMG-20201118-180656.jpg
    https://i.ibb.co/nknyZYJ/IMG-20201118-180624.jpg


Log in to reply