Thermocouple safety with RRF3



  • Hey everyone,

    I was doing some testing yesterday and saw something a bit alarming in the new firmware. When the thermocouple data line (MISO) is cut, the thermocouple will read 0C. I would have thought that it should read 2000C to ensure the software doesn’t suddenly try to go full power to the heater. Yes, you should get a heater fault after a few seconds this way, but the damage may already be done.

    What was the reasoning with targeting 0C instead of 2000C as the temperature read error cutout?


  • administrators

    I think I see what is happening. Once the MAX31856 has been initialised successfully, after that RRF only reads the result and fault status registers. If MISO is not connected, it will float high or low and those registers will be read as either all 0s or all 1s. If they are read as all 0s then it will look like a reading of 0C and no fault.

    I can try enabling the pullup resistor on that pin, which may make the registers read as all 1s.



  • @dc42
    Thanks. I guess I could probably put a pull-up resistor on the circuit as well with the same effect.

    Also, is there any way to display the fault codes as an error message? I can’t tell you how often I’ve had themocouple problems not realizing they were shorted to ground or something.


  • administrators

    @TLAS said in Thermocouple safety with RRF3:

    @dc42
    Thanks. I guess I could probably put a pull-up resistor on the circuit as well with the same effect.

    Also, is there any way to display the fault codes as an error message? I can’t tell you how often I’ve had themocouple problems not realizing they were shorted to ground or something.

    If you send M308 S# where # is the sensor number, it will tell you the last error.



  • Awesome. I’m running a bit older version on my main machine that doesn’t have it, but it’ll be nice to have when I finish the Duet 3 upgrades.