ESPHome + Pico W + Max31856 changes?

I’ve tried searching without any luck. I’m running a Home Assistant Yellow with all current updates on it and all add-ons. I am running ESPHome which has a Raspberry Pi Pico W connected to a MAX31856 board connected to a K-type thermocouple.

I previously had this set up connected for monitoring my woodstove and it worked great for the last 2 seasons. It appeared to be working correctly displaying ambient temps (~72-66 F) as I’ve done each update that has been rolled out.

I started the fire today and it steadily went to -327 F and reported as out of range. I took the thermocouple out of the stove and it “raised” back as it cooled down. I put it in a cup of ice water and it rose to 120 F. Out of the icewater and it came back down to 43 F (lower than ambient by about 30 F). I didn’t change any wiring (ie polarity of the thermocouple or wires between the Pico W and the MAX board). Not sure where to start, replace the thermocouple, the MAX31856, the Pico W or could have an update caused this? Any suggestions on what to check?

Update - reversed wiring from thermocouple to MAX31856 to the WRONG way red to the positive and now it tracks in the correct direction (higher temp = higher displayed temp) but no where close to temps ie 162 F reference displays as 218 F and 204 F as 295 F??

Quite likely bad thermocouple. Do you have multimeter to do some test?

yes, have a multimeter. Seeing your post I’ve measured at room temp and get about 10 ohms on resistance. Room temp is 0.0-0.1 mV. I added an ice cube and it went to -1 mV

Hmm. Doesn’t confirm defected probe.
What you get in boiling water? Should be ~4mV.

Moved thermocouple and reconnected. - Ice water bath gives -0.8mV and boiling water (or just below, boiled in microwave and took out to submerge) gave me 3.1 mV. returned to ice bath and returned ot -0.8mV. I also reconnected to the MAX31856 with correct polarity (red to negative) and confirmed it is inverting readings in home assistant ie as temps at probe rise, indicated temps drop?

Ok, looks like the probe is fine.
But if you didn’t swap the wires and did not do changes to the code there has to be something else wrong… Double check your code first.

ok, thanks. It has been a while since I set it up, don’t remember exactly how I did it. Currently running through ESPHome in Home Assistant. Here is my YAML

esphome:
  name: catalytic-combustor
  friendly_name: Catalytic Combustor

rp2040:
  board: rpipicow
  #framework:
    # Required until https://github.com/platformio/platform-raspberrypi/pull/36 is merged
    #platform_version: https://github.com/maxgerhardt/platform-raspberrypi.git

# Enable logging
logger:

#WiFi
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
    static_ip: !secret combustorip
    gateway: !secret gatewayip
    subnet: 255.255.255.0
  # Enable fallback hotspot in case wifi connection fails
  ap:
    ssid: !secret combustor_ap_ssid
    password: !secret combustor_ap_password

# Enable Home Assistant API
api:
  encryption:
    key: !secret ota_catalytic-combustor_api_key

ota:
  platform: esphome
  password: !secret ota_catalytic-combustor_password



# Example configuration entry
spi:
  clk_pin: GPIO06
  miso_pin: GPIO08
  mosi_pin: GPIO07

sensor:
  - platform: max31856
    name: "Catalytic Combustor"
    icon: "mdi:fireplace"
    cs_pin: GPIO09
    update_interval: 5s  # update in every loop() iteration

Looks good to me.
At this point I would bet on damaged max31856. With high bets.

I appreciate your help. I’ve ordered a replacement max31855 (quicker availability) for now. I’ll update when I get it set up.

I noticed that 31855 component has access for reference_temperature (CJC), which would have been useful here to verify Max.

Had a death in the family so didn’t get a chance to reply. I swapped out the MAX31856 for a new MAX31855 and reconfigured the yaml file. Same thermocouple and same Pico W. Working correctly now! Thanks for your recommendations.

Sorry for your family… But nice you solved it!