SparkFun Forums 

Where electronics enthusiasts find answers.

Have questions about a SparkFun product or board? This is the place to be.
By dwyer2bp
I have been trying to troubleshoot an odd issue with this sensor. This is my first time with the MLX90640, so I figured there was a lot of room on my end to adapt to the learning curve. However, I believe I have an issue which is inherent to the hardware itself.

When I try to use Sparkfun's linked MLX library I notice that any I2C read will always BEGIN at the same device memory address. It is as if the camera device is not storing my requested 16-bit address during an I2C-Write sequence.

I2C-Write to slave (0x33) address (0x2400)

When I perform a 2 byte read, the bytes 0x0009 (or sometimes 0x0008) are read. I'm using a logic analyzer to determine this.

Example (more):
I2C-Write to slave (0x33) address (0x8000)
read return 0x0009

I2C-Write to slave (0x33) address (0x8010)
read return 0x0009

I2C-Write to slave (0x33) address (0x240F)
read return 0x0009

In fact, when I perform a 32byte read instead of a 2byte read, I receive the same 32bytes of data every time. After checking the data sheet and expected data, it seems the device is stuck at providing reads beginning at address 0x8000 every time.

I believe this device is defective but would like others to help point any faults here. I was using the un-modified code provided in the product's link by Sparkfun. The Serial output always says "Parameter extraction failed", and the 'error code' associated with this during the EEPROM parsing was -4. However, I don't believe this is an error with that error code, I believe the data being 'parsed' was never from the EEPROM at all.