An I2C temperature sensor did not answer at start-up
What ArduPilot says:
- … reset failed
- … read sn failed
- … wrong I2C addr of 0x0x…, setting to 0x0x…
- SHT3x: SN0x…0x…0x…0x…0x…0x…
- … device is null!
A separate temperature sensor (TEMPn_TYPE; a TSYS03, or an SHT3x in 4.7) is set up on an I2C bus, and the driver could not reach it at boot. “device is null!”: the bus in TEMPn_BUS does not exist on this board. “reset failed” or “read sn failed”: nothing answered at that address. “wrong I2C addr …, setting to …”: TEMPn_ADDR was not the sensor's fixed address and was corrected for this run. “SHT3x: SN…” is good news: the sensor answered with its serial number.
What to do, most likely first
The sensor is not wired, has no power, or SDA and SCL are swapped.
FixCorrect the wiring and reboot with the battery connected (props off).
TEMPn_BUSorTEMPn_ADDRdoes not match where the sensor is.FixSet the bus number of the connector you used and the sensor's address in decimal, then reboot.
No such sensor is fitted.
FixSet
TEMPn_TYPEto 0.
Parameters to look at
| Parameter | What it is |
|---|---|
TEMP1_TYPE | Temperature Sensor Type |
TEMP1_BUS | Temperature sensor bus |
TEMP1_ADDR | Temperature sensor address |
The code that sends it
… reset failed
libraries/AP_TemperatureSensor/AP_TemperatureSensor_SHT3x.cpp AP_TemperatureSensor_SHT3x::init() · Open in ArduPilot Copter-4.7.1
libraries/AP_TemperatureSensor/AP_TemperatureSensor_TSYS03.cpp AP_TemperatureSensor_TSYS03::init() · Open in ArduPilot Copter-4.7.1
… read sn failed
libraries/AP_TemperatureSensor/AP_TemperatureSensor_SHT3x.cpp AP_TemperatureSensor_SHT3x::init() · Open in ArduPilot Copter-4.7.1
… wrong I2C addr of 0x0x…, setting to 0x0x…
libraries/AP_TemperatureSensor/AP_TemperatureSensor_TSYS03.cpp AP_TemperatureSensor_TSYS03::init() · Open in ArduPilot Copter-4.7.1
SHT3x: SN0x…0x…0x…0x…0x…0x…
libraries/AP_TemperatureSensor/AP_TemperatureSensor_SHT3x.cpp AP_TemperatureSensor_SHT3x::init() · Open in ArduPilot Copter-4.7.1
And 1 more messages, sent from the same places.