I want to use a MLX90640 to monitor part temperature in a post cure box for 3D resin printers.
The first module showed no reaction after connecting except for the power LED. The sample program ended with the message “MLX90640 not detected at default I2C address. Please check wiring. Freezing”, a message I got to see more often in the following. Switching between different 3.3v controllers did not bring any improvement.
My German dealer Exp-Tech then replaced the module under warranty. Yesterday the new sensor arrived and of course I tried it out immediately (on an Arduino Due). To my disappointment with the same result as before.
One defective sensor is a coincidence, two defective sensors in a row are a problem. So I searched for more info on the sensor and also came across this forum. I ran an I2C scanner, as many do, and both sensors are found at 0x33. There is also no short between SDA or SCL and ground on my specimens.
The source code mentions the Teensy 3.1, so I tried one of the meanwhile discontinued Teensy 3.6 I still had in stock. With the first sensor, obviously defective after all, again no reaction, but the new one suddenly reports and delivers its temperature values.
There are already many posts about the MLX90640, which is obviously a very picky and unfortunately also unreliable sensor. At least it runs on the Teensy 3.6, which is only a small consolation in view of its discontinuation. The current 4.1 differs significantly from the predecessor models.
Since Exp-Tech needs this post as proof of a defective sensor, I wanted to at least share my experience and a possible solution.