Skip to content

THERMAL is a thermal imager Unit contains a thermopile sensors named MLX90640. It can be used to measure the surface temperature of an object and form a thermographic image by a temperature gradient composed of different surface temperatures. The image resolution is 32 x 24.

The MLX90640 Infrared (IR) sensor array combines high resolution and reliable operation in harsh environments, providing a cost-effective alternative to more expensive high-end thermal imaging cameras. Unlike the case of a microbolometer, the sensor does not require frequent recalibration, ensuring continuous monitoring and reducing system cost.

The field of view (FoV) option includes a standard 55° x 35° version and a wide angle version of 110° x 75° for distances up to 7m. This Unit is 110°×75° FoV, also known as the BAA package.

The Unit communicates with the M5Core through the Grove A interface, IIC address is 0x33

Product Features

  • Operating Voltage: 3V ~ 3.6V
  • Current Consumption: 23mA
  • Field of View: 55°x35°
  • Measurement Range: -40°C ~ 300°C
  • Resolution: ±1.5°C
  • Refresh Rate: 0.5Hz-64Hz
  • Operating temperature: -40°C ~ 85°C
  • Two Lego-compatible holes

Kit includes

  • 1x THERMAL Unit
  • 1x Grove Cable


  • High precision non-contact temperature measurements
  • Intrusion / Movement detection
  • Visual IR thermometers


Arduino IDE

The code below is incomplete. To get complete code, please click here

/*     MLX90640.ino */ #include <M5Stack.h> #include <Wire.h> #include "MLX90640_API.h" #include "MLX90640_I2C_Driver.h"  // declaration uint16_t eeMLX90640[832];//32 * 24 = 768 int SetRefreshRate;  // initialization /* load system parameter */ MLX90640_DumpEE(MLX90640_address, eeMLX90640); /* load extraction parameter */ MLX90640_ExtractParameters(eeMLX90640, &mlx90640); SetRefreshRate = MLX90640_SetRefreshRate(0x33, 0x05); M5.Lcd.fillScreen(TFT_BLACK); infodisplay();  // display heat map M5.update(); infodisplay(); interpolate_image(reversePixels,ROWS,COLS,dest_2d,\                     INTERPOLATED_ROWS,INTERPOLATED_COLS); 

More information




The Thermal Camera Unit (MLX90640) appears in the following collections:

SKU M5-U016