0

Intermittently defective MLX90640 module
Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.

Intermittently defective MLX90640 module

by sj_remington on Fri Jun 18, 2021 7:44 pm

I recently ordered and received the 55 degree FOV breakout board for the MLX90640 [#2586356-2800485271]. Unfortunately it appears to be intermittently defective.

I've connected it to a Teensy 3.2 and an Arduino Pro Mini (5V) using two different Stemma QT connectors, and only occasionally will the sensor even pass the Arduino I2C scanner test. Usually, no device is detected, but sometimes the correct address 0x33 is reported.

Both micros are 100% reliable when used with other I2C devices. Swapping the Stemma cables does not help, not does it matter which of the two Stemma female connectors is used. Same result whether the I2C clock frequency is 100 kHz or 400 kHz, or whether Vin is connected to 3.3V or 5V.

On two occasions I've been able to download some measurements for a few seconds to minutes, then the sensor failed and became unresponsive. The green LED remains lit at all times.

I am satisfied that the problem is in the MLX90640 and not with any other part of either of my setups.

I would appreciate an RMA to return this defective module for a fully functional replacement, or refund. Thanks for considering my request!

sj_remington
 
Posts: 84
Joined: Mon Jul 27, 2020 4:51 pm

Re: Intermittently defective MLX90640 module

by franklin97355 on Fri Jun 18, 2021 8:54 pm

Can you post a picture of the connections? Have you checked that the connections are correct to the board?

franklin97355
 
Posts: 21955
Joined: Mon Apr 21, 2008 2:33 pm
Location: Lacomb, OR.

Re: Intermittently defective MLX90640 module

by sj_remington on Fri Jun 18, 2021 9:11 pm

Sure! Shown connected to the Teensy 3.2. Since the I2C scanner sometimes returns the correct device address, and on two occasions a few pixel data could be collected, there is no question that the connections are correct. For the latter I used the Sparkfun MLX90640 library and the MLX90640_Basic example, unmodified. Since those brief moments of excitement, no further progress has been made.

Blue = SDA = Teensy SDA0 (pin 18)
Green = SCL = Teensy SCL0 (pin 19)
Red, shown connected to USB power,
Black, GND

IMG_1355.JPG
IMG_1355.JPG (410.51 KiB) Viewed 270 times


Edit: made a little progress and managed to get a few full images out before failure. Output of the last run (numbers are in units of 0.1 degree, after subtracting the lowest value in each frame). The blob in the middle is my self-portrait.

No ack read

Error: Sensor did not ack

GetFrame Error: -1

No ack read

Error: Sensor did not ack

GetFrame Error: -1

11 6 0 2 8 6 2 4 4 6 4 6 29 27 15 11 10 8 9 6 10 9 2 9 10 5 6 7 14 13 9 11

7 10 4 4 2 4 4 1 5 2 2 3 10 26 8 6 7 7 8 5 12 12 11 7 13 11 5 6 13 8 8 9

11 7 4 9 7 6 2 3 7 8 5 8 6 6 5 2 8 4 7 7 5 8 3 8 10 9 4 8 7 5 9 10

7 8 3 3 9 9 5 4 9 15 14 13 13 10 6 1 9 5 4 2 4 7 2 5 11 10 10 5 13 9 6 2

10 11 0 6 8 7 4 4 10 7 5 8 6 7 2 6 10 8 2 6 7 5 1 5 7 10 4 9 12 2 3 8

10 9 8 3 5 8 5 2 7 8 3 6 5 7 3 6 8 8 5 7 11 8 7 4 8 8 3 6 4 9 3 5

16 12 7 9 7 13 8 11 11 9 3 12 11 17 10 27 24 37 18 25 12 15 8 11 9 8 7 9 8 7 6 11

18 12 10 10 14 14 11 8 16 15 14 13 21 17 41 36 66 50 54 37 33 17 11 8 14 11 10 6 7 13 6 5

13 12 10 9 10 10 9 10 14 10 9 9 26 52 67 81 83 86 76 80 67 53 18 18 17 15 9 11 9 9 11 10

12 5 6 10 11 9 9 6 7 9 8 8 44 57 82 83 89 90 82 83 77 67 22 17 16 15 12 6 11 13 7 9

12 16 7 8 13 10 4 7 9 12 9 15 38 38 50 47 78 60 55 38 48 29 29 19 13 14 8 13 10 10 12 13

233 9 209 7 8 7 8 6 11 9 12 16 32 35 38 39 51 54 42 37 27 27 32 18 11 13 9 9 13 11 13 12

12 7 7 9 12 11 6 7 12 13 14 34 37 35 34 47 61 64 42 35 30 45 46 32 15 15 12 12 17 16 10 14

11 12 4 14 9 10 7 8 10 14 24 35 63 47 61 51 67 66 59 46 59 47 58 37 13 16 9 8 9 13 10 13

6 9 9 5 9 7 6 8 11 11 16 47 77 82 81 80 69 70 77 80 85 85 64 52 15 10 8 6 11 13 6 9

11 12 6 5 9 8 5 7 8 13 18 37 83 81 84 84 74 69 76 79 84 84 68 56 14 13 9 7 11 12 8 8

12 9 6 8 8 11 5 3 9 10 19 45 84 87 87 88 84 88 83 87 89 87 72 53 17 14 2 9 13 10 7 10

8 12 7 7 11 8 4 6 13 8 22 39 86 89 91 90 91 89 89 87 89 88 70 56 20 14 7 10 12 9 9 9

10 12 7 8 14 11 4 6 11 9 13 34 83 91 94 96 90 90 87 95 90 81 71 45 22 13 7 8 12 10 12 13

14 13 8 5 10 13 6 5 13 12 14 21 77 85 93 95 90 89 85 90 89 82 60 44 18 16 10 8 15 13 11 12

16 8 3 10 12 6 9 9 8 13 14 15 45 76 90 89 95 88 85 91 92 90 55 24 17 16 8 13 17 15 12 10

15 16 8 6 11 9 6 8 12 9 10 13 39 63 93 94 96 94 89 89 95 91 39 27 14 15 11 8 14 16 9 11

9 16 6 9 13 8 7 5 14 13 10 14 28 56 93 97 97 91 89 94 99 97 44 25 16 14 10 12 13 15 7 12

21 11 8 6 15 12 7 9 13 8 10 14 30 41 93 92 93 92 89 92 99 95 48 27 16 12 10 12 16 10 11 6



No ack read

No ack read

No ack read

No ack read

No ack read

No ack read

No ack read

No ack read



Device unresponsive after the stream of "No ack read".

sj_remington
 
Posts: 84
Joined: Mon Jul 27, 2020 4:51 pm

Re: Intermittently defective MLX90640 module

by sj_remington on Mon Jun 21, 2021 12:49 pm

Update: On four occasions I've been able to get image frames from the device, in one case for 45 minutes before it became unresponsive. After it becomes unresponsive, changing the wiring and/or power cycling is ineffective until some indeterminate period of time elapses.

I still wish to return the defective board for refund or exchange for a RELIABLY FUNCTIONING example.

sj_remington
 
Posts: 84
Joined: Mon Jul 27, 2020 4:51 pm

Re: Intermittently defective MLX90640 module

by adafruit_support_carter on Tue Jun 22, 2021 1:01 pm

Red, shown connected to USB power,

The Teensy is a 3V logic board. Try powering from 3V instead of 5V USB.
https://learn.adafruit.com/adafruit-mlx ... ra/pinouts

adafruit_support_carter
 
Posts: 20563
Joined: Tue Nov 29, 2016 2:45 pm

Re: Intermittently defective MLX90640 module

by sj_remington on Tue Jun 22, 2021 1:45 pm

As already described, I tried powering it with 3.3V (first) and 5V (second), using both the Teensy and the Arduino. In the latter case, I just used the I2C address scanner, as the memory is insufficient for full sensor functionality. From my first post:
Same result whether the I2C clock frequency is 100 kHz or 400 kHz, or whether Vin is connected to 3.3V or 5V.


No difference, still fails. I would like to return the device for replacement or refund.

sj_remington
 
Posts: 84
Joined: Mon Jul 27, 2020 4:51 pm

Re: Intermittently defective MLX90640 module

by sj_remington on Wed Jun 23, 2021 11:43 am

The sensor is still unresponsive. I would appreciate an RMA.

Thanks for your attention!

sj_remington
 
Posts: 84
Joined: Mon Jul 27, 2020 4:51 pm

Re: Intermittently defective MLX90640 module

by adafruit_support_carter on Wed Jun 23, 2021 3:33 pm

OK, could still be connection related. Please post a photo of the soldering job on the headers pins on the Teensy.

adafruit_support_carter
 
Posts: 20563
Joined: Tue Nov 29, 2016 2:45 pm

Re: Intermittently defective MLX90640 module

by sj_remington on Wed Jun 23, 2021 4:28 pm

As mentioned, the sensor also fails to respond to the I2C Scanner program on a 5V Pro Mini, so I've included that board in the photo.

IMG_1358.JPG
IMG_1358.JPG (449.31 KiB) Viewed 130 times

sj_remington
 
Posts: 84
Joined: Mon Jul 27, 2020 4:51 pm

Re: Intermittently defective MLX90640 module

by adafruit_support_carter on Wed Jun 23, 2021 4:59 pm

Thanks for the photos. That all looks generally fine.

The MLX90640 not showing up in the I2C scan can be a misleading. Some sensors are just like that.

Also, the MLX90640 can sometimes hiccup on the sensor read. This is known and the Arduino example checks for this and simply tries again when it happens:
https://github.com/adafruit/Adafruit_ML ... st.ino#L63
You mention trying the Sparkfun library, but not sure you've tried the Adafruit library and example?

adafruit_support_carter
 
Posts: 20563
Joined: Tue Nov 29, 2016 2:45 pm

Re: Intermittently defective MLX90640 module

by sj_remington on Wed Jun 23, 2021 5:39 pm

Thanks for the suggestion. I just tried the Adafruit simpletest example with the Teensy 3.2 and this is the result:
Adafruit MLX90640 Simple Test
MLX90640 not found!


That was after successfully getting three entire frames from the device (using the Sparkfun library) before it became unresponsive.

Did you notice that I wrote about having two Stemma connectors, and that the same behavior is observed with either connector, connected to either of the module Stemma sockets?

I tried running the address scanner overnight to see if it ever recovered after becoming unresponsive, but that did not happen. It seems to require an extended power down period to (partially) recover.

sj_remington
 
Posts: 84
Joined: Mon Jul 27, 2020 4:51 pm

Re: Intermittently defective MLX90640 module

by sj_remington on Wed Jun 23, 2021 10:47 pm

I modified simpletest.ino to repeat the initialization attempt, rather than simply hang if it failed:
Code: Select all | TOGGLE FULL SIZE
 while(! mlx.begin(MLX90640_I2CADDR_DEFAULT, &Wire)) {
    Serial.println("MLX90640 not found!");
  }

Result:
Adafruit MLX90640 Simple Test
MLX90640 not found!
MLX90640 not found!
MLX90640 not found!
MLX90640 not found!
MLX90640 not found!
MLX90640 not found!
MLX90640 not found!
MLX90640 not found!
MLX90640 not found!
...

sj_remington
 
Posts: 84
Joined: Mon Jul 27, 2020 4:51 pm

Re: Intermittently defective MLX90640 module

by adafruit_support_carter on Thu Jun 24, 2021 11:41 am

That was after successfully getting three entire frames from the device (using the Sparkfun library) before it became unresponsive.

So you can't even recreate the previous success here?

Did you notice that I wrote about having two Stemma connectors, and that the same behavior is observed with either connector, connected to either of the module Stemma sockets?

Yep. The connectors just pass thru, so getting same on either is expected. Are the STEMMA cables terminating in female connectors the only ones you have?

adafruit_support_carter
 
Posts: 20563
Joined: Tue Nov 29, 2016 2:45 pm

Re: Intermittently defective MLX90640 module

by sj_remington on Thu Jun 24, 2021 11:52 am

So you can't even recreate the previous success here?
Not at the moment, but the device sometimes recovers after an indeterminate period of being powered down. It is currently not working with the Sparkfun library either, but it will probably work again, for a little while. Incomprehensible behavior! Oh, and on one occasion it did respond with the correct I2C address, using a 5V Pro Mini running the address scanner.

Are the STEMMA cables terminating in female connectors the only ones you have?

I have a great deal of experience, a big parts box and can make many types of connector. I'll be happy to solder wires to the board, or install header pins on the board and use Dupont connectors, if that is what it would take to convince you that the device is malfunctioning.

I see no point in using a breadboard, although that is certainly possible. I'm out of ideas, and convinced that my equipment is not at fault. So, what do you suggest?
Last edited by sj_remington on Thu Jun 24, 2021 12:11 pm, edited 1 time in total.

sj_remington
 
Posts: 84
Joined: Mon Jul 27, 2020 4:51 pm

Re: Intermittently defective MLX90640 module

by adafruit_support_carter on Thu Jun 24, 2021 12:10 pm

Just thinking maybe the connectors aren't seating well enough on the pins. This sensor is known to have some quirky behavior, but nothing that should cause this amount of trouble.

Let's see if we can get you a second breakout to try. Send an email to support@adafruit.com and link them to this thread along with the original order number for the breakout you currently have. It's showing as currently out of stock, but support can work with you to try and get you a replacement MLX90640 breakout.

adafruit_support_carter
 
Posts: 20563
Joined: Tue Nov 29, 2016 2:45 pm

Please be positive and constructive with your questions and comments.