M5Stack Thermal Camera 2 Unit combines ESP32 WiSoC with MLX90640 thermal camera

We’ve already seen the ESP32 used with a thermal camera (Flir Lepton 3.5) in the tCam-Mini IR board, but M5Stack Thermal Camera 2 Unit offers a more affordable ESP32 thermal camera solution thanks to the MLX90640 IR array thermal camera with a 32×24 resolution.

Based on the ESP32-PICO-D4 system-in-package (SiP) with a dual-core microcontroller offering WiFi and Bluetooth connectivity, the camera module offers a field of view of 110°x75°, and a temperature measurement range of -40°C to 300°C.

M5Stack Thermal Camera 2 Unit

M5Stack Thermal Camera 2 Unit specifications:

  • SiP – ESP32-PICO-D4 system-in-package with ESP32 dual-core Tensilica LX6 cores, 448 KB ROM, 520 KB SRAM, 4MB SPI flash, 2.4 GHz WiFi 4 and Bluetooth 4.2
  • IR camera – Melexis MLX90640 Infrared (IR) sensor with 32×24 pixels IR array, range: -40°C to 300°C with +/-1.5°C resolution, FoV: 110°x75° (See datasheet)
  • Expansion – Grove I2C HY2.0-4P interface (“Port A”)
  • Misc – Reset button, passive buzzer, user RGB LED
  • Power Supply – 5V @ 0.5A via Grove connector (“Port A”)
  • Dimensions – 48 x 24 x 8mm
  • Weight – 4.9 grams
  • Temperature Range – -40°C to +85°C
M5Stack Thermal Camera 2 Unit UIFlow
UIFlow sample

The company says the device can be programmed with the Arduino IDE or UIFlow visual programming web interface, but the documentation only shows the UIFlow sample shown above. It looks like the program it meant to run on an M5Stack Core2 module (or similar) to which the Thermal 2 Unit is attached. For reference, Melexis also released a C/C++ library for the MLX90640 IR sensor and Sparkfun published  Arduino samples, both of which have been available for several years.

The MLX90640 IR thermal camera and by extension, the M5Stack Thermal Camera 2 Unit, can be used for high-precision non-contact temperature measurement, motion detection, as a visual infrared thermometer, and in various DIY projects.

ESP32 MLX90640 thermal camera

The M5Stack Thermal Camera 2 Unit ships with an HY2.0-4P cable and sells for $69.99 on the company’s online store.

Share this:

Support CNX Software! Donate via cryptocurrencies or become a Patron on Patreon

ROCK Pi 4C Plus
Subscribe
Notify of
guest
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
11 Comments
oldest
newest
Willy
2 months ago

I’d be curious to know the effective frame rate they reach. I have this thermal sensor attached to an Odroid-Go (ESP32 as well). It’s read over I2C and thus is not particularly fast. You need to read it twice to get a full image since it’s interlaced like a checker board. I’m using a default refresh speed of 4Hz which in practice gives me only 2 frames per second due to the slow transmission over I2C. The real problem is blurred pixels if you move a little bit. Note that for the price it remains an excellent deal and I’m… Read more »

David
David
2 months ago

@Willy said: “I’d be curious to know the effective frame rate they reach… I’m using a default refresh speed of 4Hz which in practice gives me only 2 frames per second due to the slow transmission over I2C.” I do not have this sensor but I skimmed the datasheet. The refresh rate goes up to 64 frames per second, user-set. One frame has two interlaced subframes, 0 & 1. There are 32 x 24 = 768 pixels per full frame. So 32×24 = 768 pixels/frame x 64 frames/sec = 49,152 pixels/sec max. The I2C port supports 400 kHz or 1… Read more »

Willy
2 months ago

Oh rest assured that I’ve read the datasheet plenty of times and I can confirm it’s reading the device that slows things down. Just read it twice and it takes twice as long. It’s in part due to the software I2C implementation in the ESP32 that’s too slow. Also one calculation was wrong in your example, you forgot to count the number of bits of resolution for each sample (I don’t remember right now but I think it was something like 12 bits). I also seem to remember that there was something inefficient in transferring data following the checker board… Read more »

David
David
2 months ago

OK Willy, thanks for the reply. It’s discouraging to hear you are still experiencing slow read rates.

Paul
Paul
2 months ago

What possible uses could there be for a thermal camera with such a low resolution? It’s only 32×24, that’s only 768 total pixels! That’s only 0.0008 megapixels.

Jacques
2 months ago

It allows for presence detection with more precision and/or targeting than regular PIR sensors which only have 2 or 4 pixels, and only see variations in differences and nothing more. A regular PIR sensor will see someone arriving, leaving or moving (within specific conditions). This sensor will also see someone actually staying in the same location without moving or moving very little. Also a regular PIR sensor will have a fixed field of view (determined by the Fresnel-like lens in front of the actual sensor). Anything within the field of view will be detected and you can’t do anything about… Read more »

evadim
evadim
2 months ago

What resolution you expect from IR camera?

Willy
2 months ago

I found that I’m using mine about every weekend. With such devices, you slowly discover new use cases you hadn’t thought about. I built it initially to see if I could spot hot parts on an SBC, and it ended up being useful to detect a hung machine on a shelf that was very hot, finding that some laptop power supplies are really inefficient because they’re hot on the floor, adjusting my fridge’s temperature and checking where the coolest/hottest place are, detecting leaks under doors, spotting dead batteries within a LiPo pack during charge, distinguishing two identical components that you’ve… Read more »

David Jashi
2 months ago

Enough to see a heat leak or cold spot.

ManfredB
ManfredB
2 months ago

This article is inadequate without a sample image taken with the sensor or at the very least a simulated image.

Tyler
Tyler
2 months ago

You can find a sample image from the MLX90640 sensor by clicking the “Arduino samples” link in the article -> https://github.com/sparkfun/SparkFun_MLX90640_Arduino_Example

Weller PCB manufacturer