MCP9600 detected on I2C but no TEMP logged — CubeOrangePlus, Plane 4.6.3

Hi all,

I’m trying to get an MCP9600 thermocouple amplifier working on a CubeOrangePlus and I can’t get any temperature out of it, so I’d appreciate some help. I’ve done a fair bit of testing already, so here’s everything up front. A boot log and a full parameter file are attached below.

Setup

  • Board: CubeOrangePlus
  • Firmware: ArduPlane 4.6.3, a custom build from custom.ardupilot.org
  • Sensor: Seeed Grove I2C Thermocouple Amplifier, part 101020594 (MCP9600), with a K-type thermocouple attached. Connected to the I2C2 port. I also tried connecting a SparkFun SEN-16295 (with 3.3V power supply), the result is the same
  • No DroneCAN/UAVCAN GPS is connected.

The sensor is definitely alive and on the bus

Wa0607.param (18.6 KB)

  • The same module reads realistic, accurate temperatures on an Arduino using the Seeed MCP9600 library.
  • On the Cube I ran a small I2C scan. It reliably finds the device on bus 0 at address 0x60, and reading the device-ID register (0x20) returns 0x40. Buses 1 and 2 report nothing. So the Cube clearly sees and talks to the chip on bus 0.

The problem

  • No TEMP message is ever written to the dataflash logs — the TEMP message type simply doesn’t appear in the log at all, across ~10 fresh logs after reboots.
  • I also can’t find the temperature anywhere in Mission Planner.

Parameters I’ve set (confirmed in Full Parameter List)

  • TEMP1_TYPE = 2 (MCP9600)
  • TEMP1_BUS = 0 (also tried 1, 2, 3, with a reboot each time)
  • TEMP1_ADDR = 96 (0x60)
  • TEMP1_SRC = 0
  • TEMP1_SRC_ID = 1
  • TEMP_LOG = 1
  • LOG_DISARMED = 1

Reboot after every change. Vehicle is on the bench, disarmed.

Wiring / bus levels I’ve checked

  • Continuity end-to-end is good, no SDA/SCL swap.
  • Powered from the Cube I2C2 port (pin 1 = 5V): VCC reads ~4.8V, SDA/SCL idle at ~3.7V (the Grove board has its own pull-ups).
  • I also tried powering the module from a bench supply at 3.3V with a common ground, to match the Cube’s 3.3V bus level.

My questions

  1. With TEMP1_SRC = 0, where exactly should the temperature show up? Is it strictly the TEMP message in the dataflash log, or should it also appear somewhere in Mission Planner (Status tab, a HUD field, etc.)? I want to be sure I’m not just failing to find a value that’s actually there.
  2. The device clearly responds on bus 0 at 0x60, but no TEMP is ever logged. What am I missing?
  3. Is there any boot message or status text I should look for that shows whether the sensor initialized?

Boot log and parameter file attached. Thanks for any help.