element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Project Videos
  • Challenges & Projects
  • element14 presents
  • Project Videos
  • More
  • Cancel
Project Videos
Documents Building a Customisable Handheld Arduino Thermal Imaging Camera
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Project Videos to participate - click to join for free!
Related
Recommended
Engagement
  • Author Author: cstanton
  • Date Created: 21 Aug 2026 10:14 AM Date Created
  • Last Updated Last Updated: 26 Aug 2026 4:28 PM
  • Views 184 views
  • Likes 6 likes
  • Comments 3 comments

Building a Customisable Handheld Arduino Thermal Imaging Camera

Rather than wait weeks to borrow a thermal imaging camera, Katie Dumont set out to build one from scratch. Combining a Seeed Studio MLX90640 thermal array sensor with an Arduino UNO R4 Minima and a colour display, she produced a portable thermal camera that can highlight heat loss, reveal hidden hot spots and display temperature variations in real time. The project goes beyond simply wiring modules together, with a custom-designed 3D printed enclosure, rugged physical controls, configurable temperature scales and plenty of experimentation to get the best image from the sensor. It's a practical build that demonstrates just how accessible thermal imaging has become for makers, engineers and anyone curious about what's really going on beneath the surface.

Get Fired Up and Watch Katie Build

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

Why wait to borrow a thermal imaging camera when the core technology is now available as a relatively affordable sensor module? Faced with long waiting lists for energy-efficiency thermal cameras, Katie Dumont decided to build one instead. The result is a handheld thermal imaging camera based around an Arduino UNO R4 Minima, combining a 32 × 24 infrared sensor array with a colour touchscreen display, physical controls and a custom-designed enclosure.

Rather than replicating the behaviour of a commercial thermal camera, the project explores how easily a thermal imaging system can be tailored to specific requirements. Temperature ranges can be adjusted, colour mappings can be customised and the hardware remains open to future upgrades.

image

The Hardware Platform

At the heart of the build is the Seeed Studio MLX90640 infrared thermal imaging sensor. Unlike a conventional camera, the MLX90640 does not capture visible light. Instead, it measures infrared radiation across a grid of 768 sensing elements arranged in a 32 × 24 array.

"It's got an array of thermal sensors of 32 by 24 of them so should get a fairly decent image of the temperatures."

The sensor communicates over I²C, making it straightforward to interface with modern microcontroller platforms. One of the aspects that immediately stood out during development was its quoted accuracy.

"It's plus and minus 1.5 degrees C accuracy so I should be fairly confident with what I get out of this as an accurate representation of the temperature."

Supporting the sensor is the Arduino UNO R4 Minima, based on the Renesas RA4M1 microcontroller. With significantly more RAM and processing capability than earlier Uno generations, it is capable of handling the calculations required to process MLX90640 image data while simultaneously driving a display.

Visual output is provided by a DFRobot Fermion capacitive touchscreen display module, creating a compact self-contained handheld instrument. Two Multicomp Pro pushbuttons provide range adjustment controls, while a custom 3D-printed enclosure holds everything together.

image

Validating the Sensor and Designing for Real-World Use

Before committing to the enclosure design and software architecture, the project began with a simple proof-of-concept test.

The thermal sensor and display were wired together with the Arduino, and example software from the display and sensor libraries was adapted into a quick prototype. To verify operation, two everyday thermal references were selected: an ice cube and a container of near-boiling water.

"I've taken the example code for the library for the camera and the screen and just popped them together just to make a really simple test to check this is going to do what I want it to do."

The resulting thermal images immediately demonstrated that the system was operating correctly. Cold regions appeared deep blue, while high-temperature regions saturated towards red. Even subtle thermal effects became visible.

"I'm getting detail of the steam coming off the cup as that greeny, so not as hot but hotter than ambient temperature."

The testing phase also verified that temperature gradients around the cup could be observed clearly, with transitions through yellow and green before reaching ambient background temperatures. Many DIY thermal imaging projects stop at a bench-top prototype, but this build was intended to become a practical tool capable of being stored in a toolbox and used repeatedly.

Although the display includes touch capability, a conscious decision was made not to use touchscreen controls for normal operation.

"I also want quite a rugged tool that I can keep in a toolkit."

Instead of relying on touch gestures, the design uses dedicated physical buttons to adjust display ranges. This approach allows a protective acrylic window to be fitted over the display, increasing durability while simplifying operation.

"For just two buttons, two physical buttons are going to be much stronger in a work environment than having a touch screen."

It is a practical engineering compromise. While touchscreens provide flexibility, robustness frequently takes priority when creating equipment that may be transported regularly or used in harsher environments.

image

Software Architecture

The firmware was developed using the Arduino IDE, combining display libraries from DFRobot with thermal imaging support from the Adafruit MLX90640 library.

Rather than relying on a fixed colour scale, the software introduces configurable temperature limits and colour mappings. Arrays define selectable temperature bands and associated palette values, allowing the display range to be adapted to different inspection scenarios.

"I've made an array of temperatures that I think would be nice to choose between for the minimum and for the maximum."

A significant enhancement beyond the initial proof-of-concept was the addition of a graphical reference scale. Alongside the thermal image itself, the software generates a colour bar displaying the current temperature mapping and ambient reference point.

"I've made a little bar on the screen just so you've got something to reference."

This is particularly useful when comparing thermal scenes because colours alone can sometimes be misleading without context. Showing the active scale ensures that temperature differences remain meaningful as users adjust ranges.

The display rendering process converts each measured temperature into a colour lookup value and then expands the low-resolution thermal array into larger screen pixels.

"Displaying each pixel as 13 by 13 square."

This scaling approach preserves the sensor's underlying structure while making the image large enough to be useful on the handheld display.

image

Custom Enclosure Development and Performance and Practical Applications

To transform the electronics into a finished product, a dedicated enclosure was modelled and 3D printed.

The housing was designed around the precise requirements of the hardware, including mounting locations for the Arduino, openings for the pushbuttons, accommodation for the acrylic display cover and a dedicated aperture for the thermal imaging sensor.

The enclosure design was created in FreeCAD, allowing dimensions to be adjusted until everything aligned correctly. Once printed, the finished parts closely matched the original CAD model and provided the foundation for final assembly.

The completed unit feels much closer to a commercial inspection tool than a development-board prototype, while still retaining all of the flexibility of an open-source design. The finished camera provides a useful way of visualising heat loss, identifying hot components and locating unexpected temperature variations. Like many MLX90640-based systems, it operates at relatively modest frame rates due to the amount of processing required to convert raw sensor data into temperatures and rendered images.

Even so, the camera is perfectly capable of highlighting thermal differences across surfaces, electrical equipment and household environments.

"It'll give me an idea of just what temperature something is with a visual graphic of where that is."

For energy-efficiency surveys, that means doors, windows, insulation gaps and draught-prone areas become immediately visible. For electronics work, it offers a way to identify unexpectedly hot components and thermal bottlenecks without specialised commercial equipment.

imageimage

Future Enhancements and Final Thoughts

One of the advantages of building a thermal camera rather than purchasing a finished product is that new capabilities can be added whenever the hardware allows.

The most obvious next feature would be image capture.

"The addition for actually capturing that picture and having it as an image file."

The display hardware already includes an SD card slot, opening up the possibility of storing thermal snapshots directly to removable media. However, implementing this feature requires careful consideration.

"The only thing I'd worry about is in processing that it might make the whole camera image speed that it's updating slower."

Another particularly interesting possibility would be combining visible-light imagery with thermal information, similar to the image-overlay functionality found on professional thermal cameras.

"To have an actual normal camera and be able to overlay the thermal imaging sensor data onto a real picture."

While technically achievable, this would likely demand considerably more processing power than is available within the current hardware configuration. The concept nevertheless demonstrates how extensible the design could become should a future revision migrate to a more powerful platform. This project demonstrates just how accessible thermal imaging technology has become. By combining an MLX90640 infrared sensor, an Arduino UNO R4 Minima, a colour display and a carefully considered enclosure design, Katie has produced a capable handheld thermal camera that can be customised far beyond the capabilities of many entry-level commercial units.

What began as an attempt to avoid a lengthy borrowing queue evolved into a fully featured thermal inspection tool with configurable temperature ranges, physical controls, a rugged enclosure and a clear upgrade path. Whether used for identifying household heat loss, examining electronic assemblies or simply exploring temperature differences in the world around it, it is an excellent example of turning readily available maker hardware into a genuinely useful instrument.

Key Hardware Used

  • Arduino UNO R4 Minima Development Board
  • Seeed Studio MLX90640 Thermal Imaging Sensor (32 × 24 IR array)
  • DFRobot Fermion TFT Capacitive Touch Display
  • Multicomp Pro Pushbutton Switches
  • 3D-printed PLA enclosure
  • 3 mm acrylic display protection window

Interested in building your own version or adapting the design?

Supporting Links, ECAD and Code

- 

Parts Used and Buy Links

Product Name Manufacturer Quantity Buy Kit
ABX00080 Development Board, UNO R4 Minima Arduino 1 Buy Now
DFROBOT Capacitive TouchScreen, Fermion, TFT LCD, Arduino Board DFROBOT 1 Buy Now
114020141 Thermal Imaging Camera/IR Array Board SEEED Studio 1 Buy Now
R13-24A-05-BB Pushbutton Switch, R13-24, 7.2 mm, SPST-NO" Multicomp Pro 2 Buy Now
MP015138 3D Printer Filament, 1.75mm, Milk White, PLA" Multicomp Pro 1 Buy Now
Product Name
3mm Clear Acrylic sheet
 

  • infrared imaging
  • thermal camera diy
  • arudino project
  • i2c sensor
  • maker electronics project
  • 3d printed enclosure
  • thermal mapping
  • handheld thermal camera
  • arduino uno R4
  • heat loss detection
  • electronics diagnostics
  • mlx90640
  • thermal sensor project
  • temperature visualisation
  • friday_release
  • thermal imaging camera
  • Share
  • History
  • More
  • Cancel
Actions
  • Share
  • More
  • Cancel
  • Sign in to reply
  • beacon_dave
    beacon_dave 19 hours ago

    Perhaps might want to consider another button to allow for emissivity adjustment, depending upon the type of material you are trying to measure.

    Looks like a great project that has potential use for many STEM type activities.

    It would be interesting to see what the outside of a house looks like in Winter time using it.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • shabaz
    shabaz 20 hours ago

    Nice project! That looks very usable as-is, without any extra enhancements needed.

    I had a couple of ideas however (I learned from using an older Melexis sensor that was lower-res).

    (1) I believe you can get very fast frame rates, but it could take some effort to find the current bottlenecks. Maybe it is the graphics library or the particular TFT (I have not checked). Sometimes it is quicker with a custom library if it is known beforehand what scaling is needed, if just an image is to be displayed. Also, it may be quicker rendering line-by-line perhaps (depends on the TFT driver).

    (2) It's possibly worth looking at 'bilinear interpolation' (AI might be able to do this), it makes quite a visual difference with low-res sensors.

    (3) The Uno R4 is powerful, but it could be worth checking if Pi Pico is quicker, since there's not a lot of math needed, and the faster M0 might work out better (I don't know for sure at all though).

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • ralphjy
    ralphjy 21 hours ago

    Very nice!  I built a similar project about 5 years ago Wio Terminal Thermal Camera.   I didn't figure out how to save the image to the SD card as a standard image file, but ended up saving the pixel array values in a csv file so that I could render images later.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube