Pimoroni Melexis MLX90640 Thermal Camera Blank

I am trying to connect Pimoroni Melexis MLX90640 Thermal Camera to a Raspberry Pi 3 B+, however after trying several attempts using python programs, the camera only showed “Figure 1” blank.
Can you please share your thoughts?
Thank you in advance for your help.

How is it connected?
If you do an i2c scan is it detected?
sudo i2cdetect -y 1
Any error messages when you run your python program?

Thank you for your kind response.

Mlx90640 is connected directly to raspberrypi 3 b+ pin out 3.6V, SDA, SCl, NC, and GND.
sudo i2cdetect -y 1 detected “33”
There was no error message when I run the python program, only display Figure 1 and blank.

Anything should I adjust on the mlx90640?

If the camera has a pull off protective cover, make sure you removed it.
Is this the guide your following?
mlx90640-library/examples/src at master · pimoroni/mlx90640-library (github.com)

I don’t own one, just so you know. I do use a ton of Pimoroni i2c breakouts though. And several camera setups using the Pi Foundation camera.

Thank you for your kind guidance.
I have tried to follow “the guide”
However, it appeared this error {AttributeError: ‘SMBus’ object has no attribute ‘msg’}

pi@raspberrypi:~/seeed_ircamera $ sudo python3 seeed_python_ircamera.py
libEGL warning: DRI2: failed to authenticate
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to ‘/tmp/runtime-root’
Traceback (most recent call last):
File “seeed_python_ircamera.py”, line 322, in
run()
File “seeed_python_ircamera.py”, line 316, in run
dataThread = DataReader(port)
File “seeed_python_ircamera.py”, line 66, in init
self.dataHandle = seeed_mlx90640.grove_mxl90640()
File “/usr/local/lib/python3.7/dist-packages/seeed_mlx90640.py”, line 58, in init
self.refresh_rate = RefreshRate.REFRESH_0_5_HZ
File “/usr/local/lib/python3.7/dist-packages/seeed_mlx90640.py”, line 83, in refresh_rate
self._I2CReadWords(0x800D, controlRegister)
File “/usr/local/lib/python3.7/dist-packages/seeed_mlx90640.py”, line 699, in _I2CReadWords
write = self.bus.msg.write(self.addr,[addr>>8,addr&0xFF])
File “/usr/local/lib/python3.7/dist-packages/grove/i2c.py”, line 51, in getattr
return getattr(self.instance, name)
AttributeError: ‘SMBus’ object has no attribute ‘msg’

Are you running it from an IDE or from terminal?
Python 2 or python 3?

I am running it from a terminal with Python3

Wish I had more but I’m at the end of my skill level with this one. =(
Hel Gibbons might be able to help though. @hel

It looks like you’re trying to use a Seeed library there, not the Pimoroni one?

I found this Github issue that might be of help: MLX9060 I2C lib issue: AttributeError: 'SMBus' object has no attribute 'msg' · Issue #2 · Seeed-Studio/Seeed_Python_MLX9064x · GitHub - sounds like it might be worth trying uninstalling and reinstalling grove.py?