Portable thermal camera with a Pi and MLX90640

Nov 02, 2026 Last reply: 1 day ago 2 Replies
Jump to replies (2)

The starting idea here is a thermal camera you can carry anywhere: fully portable, versatile, and happy to run off a battery bank. Everything Smart Home turned that into a complete tutorial with a written guide, pairing a Raspberry Pi with an MLX90640 sensor and a 5 inch touch display, and it reads like a build anyone could follow along with.



The assembly looks satisfyingly hands-on. Angled header pins get soldered to pads on the underside of the display PCB, and DuPont jumper wires bridge the Pi's GPIO headers to the sensor, which sits on a Pimoroni breakout board. The whole unit then lives in a custom 3D-printed black enclosure, with the 800x480 HDMI touchscreen driving the visuals. On the software side there is a boot config edit to push I2C to 400000 baud, a check with i2cdetect before anything else runs, and a Python 3 script cloned from GitHub that leans on scipy, numpy and matplotlib.



What stands out to me is the on-screen result: a real-time heatmap with a blue-to-red colour scale, a scale bar, and min and max readings, plus a matplotlib-style toolbar and numerical axis markings on the screen. It feels like proper scientific tooling rather than a toy demo.



For proof it works, the maker aimed it at a 3D printer's heated bed set to 60 degrees Celsius and the readings landed within half a degree of target. The trade-off is speed: around 1.5 frames per second, limited by CPU load from interpolation rather than the interface. Whether tweaking the sensor's control register could lift the framerate is still untested, and a visible light camera overlay is a possible future addition.



Project by Everything Smart Home. Watch it on their YouTube channel:

formatting link


The choice that impresses me is running i2cdetect before launching the Python script. Confirming the sensor answers at its address first isolates any wiring or address trouble from software problems, which should save a lot of head-scratching for anyone following the guide. With four soldered connections between the Pi and the sensor, that check is exactly where I would want a tutorial to slow down and verify things.

Since the framerate is held back by the CPU doing interpolation, an interesting experiment would be editing the sensor's control register to push the refresh rate higher and seeing where the bottleneck actually bites. The sensor reportedly supports 0.5 to 64 Hz with a 2 Hz default, so there looks to be headroom to explore, even if that route has not been tested yet.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required