THERMAL UNIT (MLX 90640) does not work.
I have M5Stack Gray and Thermal Unit.
I use Arduino IDE and I installed Arduino core for ESP32 using the board manager.
I tried the example sketch that was included with M5Stack library.
I find that the THERMAL UNIT works or not is depending on the version of the ESP32 software.
- ESP32 v1.0.0 : not work
- ESP32 v1.0.1-rc1 : work
- ESP32 v1.0.1-rc2 : not work
- ESP32 v1.0.1-rc3 : not work
- ESP32 v1.0.1-rc4 : not work
- ESP32 v1.0.1 : not work
Only the v1.0.1-rc1, the Thermal Unit works. But I do not find the reason.
I want to work the Thermal unit with lastest version of ESP32 software.
Please give me some advice.
This my version (improved) can you try?
hello, change the MLX90640_I2C_Driver.cpp line 46
if (Wire.endTransmission(false) != 7) to if (Wire.endTransmission(false) != 0)
because in ESP32 v1.0.1-rc1, Wire.endTransmission(false) ok will return 7 not 0, in last, is different
Thank you !
Using your programs, I got the data from MLX 90640.
I fixed the code according to your advice.
I got data from MLX 90640 with Arduino core ESP32 v1.0.1.
Thank you !
you like the "improvement"?
I was glad that I could understand why I could not get the data.