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
- 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.
- The device clearly responds on bus 0 at 0x60, but no TEMP is ever logged. What am I missing?
- 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.