I have mistakenly run setEmissivity function of MLX9014 which is most likely overwrote first register of MLX90640 as its address was given.
I have saved its eeprom data after it happen...
I have assumed the first register should be around 0x00C4 as other sensors have similar data but it has a value of 0x00AE now.
So, I have tried to restore my eeprom save by calling MLX90640_I2CWrite function where it differs but using 0x00C4 for first register; res is its return value.
On re-run, the following changes are trying to be run again:
[000] 00AE --> 00C4, res:254
[196] 1BF0 --> 1BD0, res:0
So, it seems I can not modify first register and register 196 becomes 1BF0 instead of 1BD0 sometime after eeprom write and restart of firmware.
Also, I had other corrupted data somehow...
Read temperature values are extremely bad (around -20 - -40 degree Celsius), so it seems calibration data were also lost.
However, I can draw a thermal image using these data and if I use another sensor's configuration, it displays relatively correct temperatures.
Could you please look at my eeprom data and suggest what could be wrong and what may I do to restore as much data of the sensor as possible?
Thank you your help in advance.
This is my current EEPROM data in the following format:
[addr] value
where address is (0x2400 + addr):
Hello,
I have mistakenly run setEmissivity function of MLX9014 which is most likely overwrote first register of MLX90640 as its address was given. I have saved its eeprom data after it happen...
I have assumed the first register should be around 0x00C4 as other sensors have similar data but it has a value of 0x00AE now. So, I have tried to restore my eeprom save by calling MLX90640_I2CWrite function where it differs but using 0x00C4 for first register; res is its return value.
The following changes were happened: [000] 00AE --> 00C4, res:-1 [012] 0000 --> 1901, res:0 [105] 0000 --> 0080, res:0 [196] 1BF0 --> 1BD0, res:0 [198] 0000 --> 24B0, res:0 [291] 0000 --> 08B0, res:0 [384] 0000 --> 14B2, res:0 [477] 0000 --> 0362, res:0 [570] 0000 --> F370, res:0 [663] 0000 --> F830, res:0 [756] 0000 --> 17F2, res:0
On re-run, the following changes are trying to be run again: [000] 00AE --> 00C4, res:254 [196] 1BF0 --> 1BD0, res:0
So, it seems I can not modify first register and register 196 becomes 1BF0 instead of 1BD0 sometime after eeprom write and restart of firmware. Also, I had other corrupted data somehow...
Read temperature values are extremely bad (around -20 - -40 degree Celsius), so it seems calibration data were also lost. However, I can draw a thermal image using these data and if I use another sensor's configuration, it displays relatively correct temperatures.
Could you please look at my eeprom data and suggest what could be wrong and what may I do to restore as much data of the sensor as possible?
Thank you your help in advance.
This is my current EEPROM data in the following format: [addr] value where address is (0x2400 + addr):