Using the MLX90640 (thermal camera) with Uno


I'm trying to get a thermal image with the MLX90640 from Melexis. Melexis made a library to read the array from the sensor but the Uno has not enough RAM to process all the values from the 768 pixels. The sensor uses I2C communication. The library sends an array of data so I think that if I could ask one pixel at a time and send it trough the serial port that I would able to reconstruct the image.

I have already made the code to send the data through the serial port and with LabVIEW assigned each value to a color that goes from blue to red depending on the temperature measured by the pixel.

Is it possible to make??

Thank for your answers


Check the more powerful Arduinos for their RAM capacity. How much space does each pixel ned? 2! 24 bits, 3 byte, or more?

The library (see attachment) uses 20ko but sends all the pixel’s values in an array so what I’m trying to do is to send each pixel’s value one by ne to be able to use it with the Uno (5.22 KB)

Product description states that it is NOT UNO COMPATIBLE. also suggests trying a Tensy at minimum.

That's why I'm trying to reduce the program y reading one pixel at a time...

NickoChang: That's why I'm trying to reduce the program y reading one pixel at a time...

But why does it need to be a Uno? Other micro controllers can store much more data in RAM, and process faster, while still being programmable by Arduino Software.

What kind of processing do you want on the Arduino? If the data stream only is converted from I2C to Serial, or to be written to a SD card, memory size is not a limiting factor.

i have created mlx90640 code that compiles on nano, uno. it uses up to ~1k with i2c buffering. it does image reads as fast as 3 times a second currently. and it does detailed To measurements of the entire screen at 8/10 of a second. project info

mlx90640 code runs on nano, teensy-lc and teensy3.1/3.2 code github look in /updates folder

amg8833 sensor code

it is in a constant state of improvement. currently it outputs 64x48. i'm also beginning integration of code for lcd support.

feel free to try it out and provide me feedback with issues.