Hello!
I recently posted about my MLX90640 that arrived unable to read any data using the official Melexis library. I am using an Adafruit Bluefruit Circuitplayground, running my sensor off its 3.3V and GND lines and connecting to its SCL and SDA with alligator clips. I have 4.2K pull up resistors to 3.3V on the SDA and SCL pins. I RMAd my previous dead sensor, and the replacement arrived today. This one allows me to gather data, but the data appears to be useless junk. I have pasted below the output of some code that just takes all pixel values and tells me the minimum and maximum. The lowest is apparently absolute 0 while the highest is aroun 4000 degrees Celsius. I am honestly frustrated that this is the second sensor that I have received that is dead on arrival, and I would love any feedback on how to fix it before I RMA this one as well.
Auto-reload is on. Simply save files over USB to run them or enter REPL to disable.
code.py output:
Initializing MLX90640…
Warning: MLX90640 has many bad pixels; disabling bad-pixel handling and continuing.
MLX90640 detected
Capturing 10 frames (one every 2 seconds)…
min: -273.15 max: 3801.26 invalid: 13
min: -273.15 max: 4001.26 invalid: 13
min: -273.15 max: 4001.26 invalid: 13
min: -273.15 max: 4208.9 invalid: 13
min: -273.15 max: 4140.91 invalid: 13
min: -273.15 max: 4001.26 invalid: 13
min: -273.15 max: 3987.96 invalid: 13
min: -273.15 max: 4052.99 invalid: 13
min: -273.15 max: 4001.26 invalid: 13
min: -273.15 max: 4261.25 invalid: 13
Done.
Code done running.
Press any key to enter the REPL. Use CTRL-D to reload.
Adafruit CircuitPython 10.0.3 on 2025-10-17; Adafruit Circuit Playground Bluefruit with nRF52840
>>>
soft reboot
Auto-reload is on. Simply save files over USB to run them or enter REPL to disable.
code.py output:
Initializing MLX90640…
Warning: MLX90640 has many bad pixels; disabling bad-pixel handling and continuing.
MLX90640 detected
Capturing 10 frames (one every 2 seconds)…
min: -273.15 max: 4106.84 invalid: 13
min: -273.15 max: 4055.84 invalid: 13
min: -273.15 max: 4070.25 invalid: 13
min: -273.15 max: 4087.53 invalid: 13
min: -273.15 max: 4001.26 invalid: 13
min: -273.15 max: 4072.82 invalid: 13
min: -273.15 max: 4001.26 invalid: 13
min: -273.15 max: 3949.57 invalid: 13
min: -273.15 max: 4052.99 invalid: 13
min: -273.15 max: 4174.12 invalid: 13
Done.
Code done running.
Press any key to enter the REPL. Use CTRL-D to reload.
soft reboot
Auto-reload is on. Simply save files over USB to run them or enter REPL to disable.
code.py output:
Initializing MLX90640…
Warning: MLX90640 has many bad pixels; disabling bad-pixel handling and continuing.
MLX90640 detected
Capturing 10 frames (one every 2 seconds)…
min: -273.15 max: 3987.96 invalid: 13
min: -273.15 max: 3869.24 invalid: 13
min: -273.15 max: 3846.14 invalid: 13
min: -273.15 max: 3794.3 invalid: 13
min: -273.15 max: 3852.26 invalid: 13
min: -273.15 max: 3863.4 invalid: 13
min: -273.15 max: 3835.27 invalid: 13
min: -273.15 max: 3543.93 invalid: 13
min: -273.15 max: 3695.63 invalid: 13
min: -273.15 max: 3578.01 invalid: 13
Done.
Code done running.
Press any key to enter the REPL. Use CTRL-D to reload.
soft reboot
Auto-reload is on. Simply save files over USB to run them or enter REPL to disable.
code.py output:
Initializing MLX90640…
Warning: MLX90640 has many bad pixels; disabling bad-pixel handling and continuing.
MLX90640 detected
Capturing 10 frames (one every 2 seconds)…
min: -273.15 max: 3984.03 invalid: 14
min: -273.15 max: 3984.03 invalid: 14
min: -273.15 max: 3949.57 invalid: 14
min: -273.15 max: 4052.99 invalid: 14
min: -273.15 max: 4038.86 invalid: 14
min: -273.15 max: 3966.8 invalid: 14
min: -273.15 max: 4104.81 invalid: 14
min: -273.15 max: 4104.81 invalid: 14
min: -273.15 max: 4070.25 invalid: 14
min: -273.15 max: 4004.92 invalid: 14
Done.
Code done running.