Open Thermal Camera

Opensource, inexpensive, mobile thermal camera for use in electronics, home inspection, non-contact thermometer, heat distribution and more.

Similar projects worth following
This project is based on the MLX90640 sensor to provide an opensource, hackable, customizable, mobile thermal camera. The camera has a resolution of 32x24 pixels. There are 2 hardware revisions, one with a Type-C connector and another with a reversible MicroUSB connector. The camera is used in conjunction with an Android application to display and take pictures of temperature distribution. All the necessary files are available on Github.

Check out the project files over at Open Thermal Camera GitHub page:

  • 1 × MLX90640 sensor Far infrared thermal sensor array, 32x24 resolution
  • 1 × STM32F042F6Px Microcontroller, footprint: TSSOP-20_4.4x6.5mm_P0.65mm
  • 1 × Resistor SMD 0805, 130R 1.15x1.40mm
  • 1 × Resistor SMD 0805, 10R 1.15x1.40mm
  • 1 × Capacitor SMD 0805, 2u2 .15x1.40mm

View all 16 components

  • Housing files

    TheMarpe05/30/2021 at 17:53 0 comments

    Hi everyone.

    To make the project complete with all the needed source files and components I went ahead and uploaded the missing design files for the enclosure.

    The enclosure was designed in FreeCAD version 0.18

    Check it out here:

  • A small batch arrived

    TheMarpe03/17/2020 at 20:22 0 comments

    Thanks to PCBWay for reaching out and giving us an opportunity to try out their assembly service. We have order a small batch of 20 pieces. You can out their service here:

    This is how PCBs turned out:

    Looking good! The connectors were left unpopulated intentionally to be able to customize the USB version on demand.

    Thanks again to PCBWay for sponsoring the assembly. We are very satisfied with their service.

  • Maker Faire Rome - European Edition

    TheMarpe10/18/2019 at 20:30 0 comments

    The Maker Faire in Rome has started on 18th October. We'll be at the event the whole weekend.

    Anyone who is visiting or is thinking about visiting this years faire in Rome, feel free to swing by our booth and try out the Open Thermal Camera for yourself!

    We are presenting in Pavilion 7: Discover,  Booth - C4.

    Looking forward to your visit!

  • Node.js module for Open Thermal Camera

    Erik09/21/2019 at 20:01 0 comments

    We have created a Node.js module (otc) that supports all available interface calls. On top of that, a demo cross-platform desktop app is in the making! Electron uses node.js' runtime therefore we used the mentioned module to create a simple cross-platform app. It was tested with WIn10 and RPI3 (Raspberrian). OTC is connected to the computer/RPI with a USB 3.1 Type C Female To USB 3.0 Male Connector. The electron app is already available on github.

    In the future we are planning to create a module for Python as well, which will support all interface calls.

    Next stop: People counter!

    Electron demo app run on RPI. On the image there's me, with a hand on my head.

  • Hardware redesign

    TheMarpe09/14/2019 at 18:57 2 comments

    Open Thermal Camera went through a slight redesign. The hardware is now unified for both Type-C and MicroUSB version. The housing can accept either of the PCB variants.

    (Right: Type-C variant, Left: back view of MicroUSB variant)

    With this step the hardware part is coming to an end and we'll start with improving the application side even further.

  • Tool for heat inserts

    TheMarpe09/01/2019 at 08:08 0 comments

    For easier assembly and consistent results with heat inserts, I took an evening to create a heat insert tool for use with a Ersa soldering iron.

    It looks something like this

    It's made for M2.5 inserts, which are used in housing for our project.

    This helps with much nicer finish as tested on our prototype housing.

  • Building more prototypes

    TheMarpe05/23/2019 at 20:01 0 comments

    While preparing for the upcoming Mini Maker Faire in Italy, Trieste, we've build more prototypes for people to try out and give their opinion on it.

    Also if you are around or you consider coming to Mini Maker Faire in Trieste this week 25th and 26th of May, do stop at our booth with number M-94 and give our project a try :)

    On to the pictures:

    More sensors came from DigiKey.

    Our first microUSB PCB revision to be fully assembled.

    MicroUSB and Type-C prototypes.

  • Project presentation at Mini Maker Faire Ljubljana

    Erik05/12/2019 at 09:37 0 comments

    Yesterday (11-May-2019) we presented our Open Thermal Camera at Mini Maker Faire in Ljubljana. Many were impressed with the project and gave us some interesting use case ideas, such as home insulation inspection, water leakage detection, observation of wildlife etc.

    - Out booth at MMF Ljubljana with the number M9

    We had a few gadgets with distinct thermal contrast, such as:

    • RaspberryPi 3B
    • Soldering iron 
    • Faulty PCB where one component was shorted

    We had a great time presenting our project to other makers and DIY enthusiasts =)

  • Android application added to GitHub

    TheMarpe04/29/2019 at 15:04 0 comments

    Today I've created a repository for Android application on GitHub. There is quite some work to be done on application side but things are working well up to this point. In the following days we'll be working on a use case scenario of inspecting a PCB. Stay tuned!

    Link to application repository:

View all 9 project logs

Enjoy this project?



Ivan Arakistain wrote 05/17/2020 at 13:30 point

Is it possible to buy one unit of the thermal camera PCB?

  Are you sure? yes | no

TheMarpe wrote 05/19/2020 at 14:47 point

As of right now, the sensors are in high demand and not available. Therefore assembled PCBs aren't in stock.

If you only require a bare PCB, feel free to write me a private message.



  Are you sure? yes | no

bp wrote 02/25/2020 at 03:02 point

Thanks a lot! It works very nicely. 

The android app is also much better than I expected :) Maybe a panorama photo feature could be added for mobiles with gyroscope? Do you think it is technically possible?

One more question: would you also share the 3d printed case design?

  Are you sure? yes | no

TheMarpe wrote 02/26/2020 at 20:50 point

Hi, thanks for kind words!
I think that stitching would pose a problem because of the low resolution, but might be doable.
As of now the case design isn't openly available, although this might change in the future.

  Are you sure? yes | no

bp wrote 02/27/2020 at 06:32 point

What I'm thinking about is like the Photo Sphere feature of the Google Camera app. It gives you a visual indication within the app where to point your mobile for the photos next to or above/below.

For me even manually putting together photos would help (see my current profile photo) to compensate the low resolution of the sensor, but it is tedious. Also with stitching apps to add control points, set camera parameters - lot of manual steps. Also probably I have to stick with fixed temperature range for the thermal photos.

I think the open source option could be to use OpenCV, but I don't see if it's possible to set control points - it tries to analyze the pictures which is not very useful (as you mentioned because of the low resolution)

Or Google Camera could be used if there would be an android camera driver for this thermal camera, but I guess that would be much more difficult even if possible...

After some searches, I guess OpenCV pipeline could be used/customized (

Or Hugin:

If anybody could help me or point to some directions, please let me know. Also if you think this is just a waste of time :)

  Are you sure? yes | no

k0201pl wrote 01/16/2020 at 10:02 point

Hi! Thanks for great project :D. Is it possible to push to git a hex file, working with the android app? When i built the latest version myself I couldn't get the OTP to be visible to phone.  I managed to get the Electron app to work, but I had to change serial port in ~/Electron-Application/node_modules/otc/index.js on line 85. Should it be this way or should the app find the port itself. Thanks for the reply! 

  Are you sure? yes | no

TheMarpe wrote 01/16/2020 at 10:41 point


Under releases in firmware repository you can find the latest compiled binaries for hardware. Also use the latest Android application. There were some changes in VID/PID along the development. Feel free to write back if the problem still persists.

  Are you sure? yes | no

julian wrote 12/19/2019 at 11:06 point

This project is great,

any possibilities to combine the phone image sensor and the thermal sensor?.

Also, it's possible to get the full PCB mounted from anywhere for lazy HW developers?.


  Are you sure? yes | no

TheMarpe wrote 12/26/2019 at 06:38 point

Hi Julian!

Yes, there is a possible way to do that, but no calibration is supoorted as of now. It's only suitable for longer distances where difference is not as noticable.

I hope to release it on Tindie soon after new year, if everything goes well. Watch out for updates on this page or subscribe to our mailing list.



  Are you sure? yes | no

lalalandrus wrote 11/06/2019 at 00:17 point

Great project, I ordered the PCBs to make a few. I was wondering what the part number for the microUSB connector. 

  Are you sure? yes | no

TheMarpe wrote 11/06/2019 at 09:05 point

Thanks Lalalandrus!

That's great to hear, if you'll need any help building it, don't hesitate to contact me.

Otherwise the connector is from a company called Edley Technology from China, but its very inaccessible to get via the ordinary means.

If you'd like to build the MicroUSB version and you need the connector, write me a private message here on hackaday.

  Are you sure? yes | no

lalalandrus wrote 11/06/2019 at 20:41 point

I will let you know. Too bad I got the boards ordered already before getting this information, I would have switched the footprint. Pictures when I your work duplicated. 

Does your android app perform any interpolation?

  Are you sure? yes | no

lalalandrus wrote 11/13/2019 at 01:04 point

:( i recieved the boards and 1.6mm is too thick for the connector you spec'd i didnt think to check that, the data sheet isnt that great and doesnt say how thick the board needs to be. after checking the connector model, the board needs to be 0.8mm?

  Are you sure? yes | no

Erik wrote 11/12/2019 at 11:03 point

Yes, in settings you can turn on/off the bilinear interpolation. :)

  Are you sure? yes | no

TheMarpe wrote 11/15/2019 at 16:22 point

Yes, the board must be 0.8mm thick for either TypeC or MicroUSB connector.

Will add a warning on the PCB repository as well.

Sorry to hear that. I hope you still succeed in building the project.

  Are you sure? yes | no

josegalvez wrote 11/23/2019 at 07:25 point

Where do you orden the PCB?

  Are you sure? yes | no

Mike Szczys wrote 10/22/2019 at 15:56 point

It was awesome to see you at Rome Maker Faire this weekend. I got to try out the camera, it works great! I really like how the USB-C plug off to one side makes it look like the flash unit for a minature film camera ;-)

  Are you sure? yes | no

TheMarpe wrote 10/22/2019 at 23:54 point

Thanks Mike! Nice meeting you as well :)
That design was the "only reason" for the plug position haha :P
Hope to see you again on some event/faire :)

  Are you sure? yes | no

Preston wrote 09/20/2019 at 14:15 point

New to this style of thing, where I everyone buying the supplies to build this?

  Are you sure? yes | no

TheMarpe wrote 09/20/2019 at 20:24 point

Check out any of the following suppliers: Farnell, Digi-Key & Mouser
Using these suppliers you'll be able to source all needed things to build this.

In case you'd require any help, don't hesitate to write back.
Will also be updating some of the repositories soon, so look out for that as well.

Best regards, Martin

  Are you sure? yes | no

beamrx5 wrote 09/09/2019 at 01:22 point

would it be possible for this module to output in video format (ntsc/pal) and overlay this on a standard dvr camera?

  Are you sure? yes | no

TheMarpe wrote 09/09/2019 at 21:00 point

Hi beamrx5!

This module unfortunately doesn't support video output, but in the works is a library for support of Raspberry Pi and other SBCs with which you could then display the thermal data through any desired video output available.

  Are you sure? yes | no

fail572872916 wrote 05/16/2019 at 16:10 point

Man, I want to make an app that can receive mxl90640 data. It's in an array, but I can't handle pictures. What should I do about it?
In fact, I already have a frame of data, and I want to receive it from Bluetooth and display it on Androdi. I don't know how to deal with it so that it can be displayed. It's about image processing. I hope you can help me.

  Are you sure? yes | no

TheMarpe wrote 05/16/2019 at 17:59 point

Do you have the raw frame data from the MLX90640 sensor or do you already have an array of computed temperatures for each thermal pixel?

  Are you sure? yes | no

fail572872916 wrote 05/17/2019 at 05:12 point

I've got the raw data, which is an experimental function of my collaboration with my classmates. Because the level is limited, I might as well let him generate a picture.

  Are you sure? yes | no

TheMarpe wrote 05/17/2019 at 06:52 point

If you've got the raw frame data, then you also need EEPROM data and you can use the Melexis API to calculate individual pixel temperature.

  Are you sure? yes | no

fail572872916 wrote 05/17/2019 at 07:19 point

I'm stuck in this place. Maybe I'm not technically competent.

  Are you sure? yes | no

TheMarpe wrote 05/22/2019 at 10:07 point

I think it's best if you explain the problem in detail to me through DM. I'll take a look at your case and see if I may assist you

  Are you sure? yes | no

fail572872916 wrote 05/22/2019 at 13:01 point

What is DM?

  Are you sure? yes | no

TheMarpe wrote 05/22/2019 at 14:20 point

A direct message or private message here on

  Are you sure? yes | no

Mike Szczys wrote 05/06/2019 at 19:47 point

Cool! I've seen thermal cameras used to find where insulation is missing in the walls of houses. I could see a smartphone add-on being used by contractors doing weatherization work, but the FLIR unit starts at around $200. Glad to see an open version in the works :-D

  Are you sure? yes | no

Erik wrote 05/09/2019 at 08:54 point

We (me and TheMarpe) initially thought of using it as a cheap PCB heat inspection gadget, since we are both in HW field. I'm glad you like the project and gave us application idea (isulation inspection), we will try it out. We will soon post updates/demo on how to use it and how it performs in real-life applications :)

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates