I’m making use of the MLX90640 thermal sensor array. It’s a sensor that’s used as thermal camera on a low resolution (Error - Melexis). I’ve been working with it for the past week on a Raspberry Pi 3B+ without any problems. However I couldn’t get it to work for the NVidia Jetson TX2. After trying numerous solutions I went back to the Pi with the same sensor and it turned out the sensor was no longer working with the same software.
Besides using the software I had written myself I tried the examples by the manufacturer (https://github.com/pimoroni/mlx90640-library) without any luck. It will either return I2C Read Error!
on the Jetson or frameData timeout error waiting for dataReady
in combination with a Segmentation fault
on the Pi.
I can still detect the sensor with i2cdetect
:
pi@raspberrypi:~/ $ sudo i2cdetect -yr 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- 33 -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
The standard address is 0x33.
The reason I’m asking is because it is very hard to find information on the sensor or other i2c sensors having the same issue. The odd thing is that it used to work properly in the exact same situation on the Pi. Ever since I’ve been trying to get it to work on the Jetson nothing seems to work anymore. The only thing I can think of is the Jetson somehow changed the internal registers of the sensor. Any ideas are welcome as I’ve tried everything as far as I know.