Mismatch chip ID, expected 0, found 5

Finally getting around to making sure that all of my devices are fully updated (2025.10.1) and I ran into an issue that I haven’t seen much information on. I have a Shelly 1 PM Gen 3 that has 2025.9.1 on it currently. The OTA fails and says to look at USB/MQTT, but as this is in the wall, it is not accessible right now. I looked at the web server and I see the error:

|22:45:59|[D]|[esp-idf:000]|E (1749786878) boot_comm: mismatch chip ID, expected 0, found 5|
| --- | --- | --- | --- |
|22:45:59|[W]|[esphome.ota:386]|Error ending update! code: 132|
| --- | --- | --- | --- |
|22:45:59|[E]|[component:304]|esphome.ota set Error flag: unspecified|

Thoughts? Am I missing something? I replaced my passwords and keys with *** .

I’m not exactly sure what config is on the device (I may have tried to resolve this before), but when I started today, I downloaded this to backup:

esphome:
  name: "1pm-gen3"
  friendly_name: "1pm-gen3"

esp32:
  board: esp32-c3-devkitm-1
  flash_size: 8MB
  framework:
    # type: arduino
    type: esp-idf
    version: recommended
    sdkconfig_options:
      COMPILER_OPTIMIZATION_SIZE: y

logger:

api:
  encryption:
    key: "***"

ota:
  - platform: esphome
    password: "***"

time:
  - platform: homeassistant

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  fast_connect: on

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "1Pm-Gen3 Fallback Hotspot"
    password: "1Pm-Gen3"

captive_portal:

sensor:
  - platform: ntc
    sensor: temp_resistance_reading
    name: "Temperature"
    unit_of_measurement: "°C"
    accuracy_decimals: 1
    icon: "mdi:thermometer"
    calibration:
      b_constant: 3350
      reference_resistance: 10kOhm
      reference_temperature: 298.15K
  - platform: resistance
    id: temp_resistance_reading
    sensor: temp_analog_reading
    configuration: DOWNSTREAM
    resistor: 10kOhm
  - platform: adc
    id: temp_analog_reading
    pin: GPIO3
    attenuation: 12db

  - platform: bl0942
    uart_id: uart_0
    voltage:
      name: "Voltage"
      id: bvoltage
      icon: mdi:alpha-v-circle-outline
      device_class: voltage
    current:
      name: "Current"
      id: bcurrent
      icon: mdi:alpha-a-circle-outline
      device_class: current
    power:
      name: "Power"
      id: bpower
      icon: mdi:transmission-tower
      device_class: power
    energy:
      name: "Energy"
      id: benergy
      icon: mdi:lightning-bolt
      device_class: energy
    frequency:
      name: "Frequency"
      id: bfreq
      accuracy_decimals: 2
      icon: mdi:cosine-wave
      device_class: frequency
    update_interval: 5s

uart:
  id: uart_0
  tx_pin: GPIO6
  rx_pin: GPIO7
  baud_rate: 9600
  stop_bits: 1

status_led:
  pin:
    number: 0
    inverted: true

output:
  - platform: gpio
    id: "relay_output"
    pin: 5

switch:
  - platform: output
    id: "relay"
    name: "Relay"
    output: "relay_output"

binary_sensor:
  - platform: gpio
    name: "Switch"
    pin: 10
    on_press:
      then:
        - switch.toggle: "relay"
    filters:
      - delayed_on_off: 50ms

  - platform: gpio
    name: "Button"
    pin:
      number: 1
      inverted: yes
      mode:
        input: true
        pullup: true

In troubleshooting, I pulled the updated template from esphome github and modified it to be below:

esphome:
  name: "1pm-gen3"
  friendly_name: "1pm-gen3"
  platformio_options:
    board_build.mcu: esp32c3
    board_build.variant: esp32c3
    board_build.f_cpu: 160000000L
    board_build.f_flash: 80000000L
    board_build.flash_mode: dio
    board_build.flash_size: 8MB

esp32:
  variant: esp32c3
  board: esp32-c3-devkitm-1
  framework:
    type: esp-idf
    version: recommended

logger:

api:
  encryption:
    key: "***"

ota:
  - platform: esphome
    password: "***"

time:
  - platform: homeassistant

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  fast_connect: on

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "1Pm-Gen3 Fallback Hotspot"
    password: "1Pm-Gen3"

uart:
  id: bl0942_uart
  tx_pin: GPIO6
  rx_pin: GPIO7
  baud_rate: 9600
  stop_bits: 1

status_led:
  pin:
    number: 0
    inverted: true

output:
  - id: shelly_1pm_gen3_relay
    platform: gpio
    pin: GPIO4

binary_sensor:
  - id: shelly_1pm_gen3_switch
    name: Switch
    platform: gpio
    pin: GPIO10
    filters:
      - delayed_off: 50ms
  - id: shelly_1pm_gen3_button
    name: Button
    platform: gpio
    pin: GPIO1
    filters:
      - delayed_off: 50ms

sensor:
  - id: temperature
    name: Temperature
    platform: ntc
    sensor: temperature_sensor_resistance
    icon: mdi:thermometer
    entity_category: diagnostic
    unit_of_measurement: °C
    accuracy_decimals: 1
    calibration:
      b_constant: 3350
      reference_resistance: 10kOhm
      reference_temperature: 25°C
  - id: temperature_sensor_resistance
    platform: resistance
    sensor: temperature_sensor_voltage
    configuration: DOWNSTREAM
    resistor: 10kOhm
  - id: temperature_sensor_voltage
    platform: adc
    pin: GPIO3
    attenuation: 12db
  - platform: bl0942
    uart_id: bl0942_uart
    line_frequency: 60Hz
    voltage:
      name: Voltage
    current:
      name: Current
    power:
      name: Power
    frequency:
      name: Frequency
      accuracy_decimals: 2