melexis / mlx90640-library

MLX90640 library functions

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

EEPROM write problem, is this sensor CRAZY!?

VaZso opened this issue · comments

commented

Hello,

I have developing a product which uses this sensor...
Now I have a dev board which displays a thermal image and so far it worked.

Today, I wanted to check a fireplace temperature as I have to write a documentation of the sensor's capability.
So I have connected it to a power bank which I have used earlier.

Thermal image has lagged so I have restarted the board and now I only see a chess table-like static image.

Basically its EEPROM became corupted(!!!) and calibration data loading thus providing an error.

I have a complete EEPROM save of this sensor which I have tried to write back to it.
It could modify a few registers but a lot of registers seem to be unmodifiable.

For example, very first register of my sensor became 0x0000 which originally was 0x00C5 and I can not make it to be 0x00C5 again.

Does this sensor have something like a write protection which prevents me to update some registers to its normal value or what is happening?

If this sensor can put itself in a state of death without even an option to restore values then it does not worth working with it.
IS THIS SENSOR REALLY THAT BAD?

I do not have write commands to the sensor so that is not the reason for EEPROM corruption but I have some floating wires which may collect noise... so that may be a reason but it has worked so far for relatively long time and I CAN NOT WRITE EEPROM VALUES to put it back to normal state.

Somebody please help me how to modify its whole EEPROM back to saved original values.
...is it possible at all?
...or is this sensor a piece of.....?

commented

I have assembled the system using one of my self-designed boards (by doing some hardware modifications necessary for sensor) which may has better routing than the dev board and now I had an idea to retrying to restore the original board to a working state.

Now I could restore full contents of the sensor's EEPROM data.
The reason it was failed for me earlier was a too short timeout while communicating with the sensor on writing its EEPROM.
So it could write some values to its EEPROM but not to all addresses.

I still don't know what was the reason it thought I would like to write to its EEPROM when only read commands were issued but that is still a 3rd party-made development board where sensor was soldered using short wires.

So, I would like to apologize for the above and it seems there are not any restrictions writing to sensor's EEPROM just need to allow enough time for doing its work...

Still I feel it is advised to save sensor's EEPROM contents in case of a similar problem occurs to be able to restore sensor to it's original, working state.

As a result, I would like to share some photos of myself smiling at the "camera" after got it working again:
image

It is the content I am displaying on my board's display using a 128x128 OLED panel but saved to BMP to a micro SD card.
PT is another (PT1000) sensor attached and D is difference of PT and Max. measured point of MLX (and some rounding). :)

Sorry again and I hope it may also help when others running into a similar problem later.
I am closing this issue.