Project Overview

This project was inspired by the Thermal Camera with Display project from Adafruit. Ever since they announced the AMG8833 IR Thermal Sensor, I wanted to use it to build a thermal camera for checking hot spots on electrical panels around the house and looking for rabbit nests in the backyard.

Thermal camera using Adafruit Feather Huzzah32 and the  AMG8833 thermal sensor breakout.
Thermal camera using Adafruit Feather Huzzah32 and the AMG8833 thermal sensor breakout.

Although the project is very similar to Adafruit’s on the hardware side, I modified the Arduino (C language) code extensively to adapt it to my needs. Some of the added features:

  • Battery status/charge.
  • Min./Max. temperature values represented by light blue areas (min.) and dark red areas (max.) on the LCD screen.
  • Temperature range adjustment by tapping on the screen’s lower right corner. There are 3 temperature ranges to choose from:
    • 28C to 30C
    • 20C to 80C
    • 50C to 100C

When switching between ranges, the min. and max. temperature values are shown on screen.

I’m also including the files of a 3D printed case I designed to hold all components in a relatively small package.

Software

All the needed files are in the project’s repository on GitHub, including the 3D printed case STLs.

Testing code and connections on breadboard.
Testing code and connections on breadboard.

As indicated above, the Arduino sketch is a modification of Adafruit’s thermal image demo. The revised sketch also makes use of the interpolation.cpp file, so make sure to include it along with the Thermal_Camera.ino file in the Arduino project folder. Adafruit people have already done all the leg work with regards to the bicubic interpolation algorithm, which allows the image shown on the LCD to look as if it was of higher resolution (the AMG8833 sensor can only provide a 8x8 matrix of thermal data).

The number of ranges and temperature thresholds per range are easily configurable in the code. Just revise the line defining the tempRange array at the top of the sketch:

int tempRange[] = {20, 28, 20, 80, 50, 100};

Hardware

Here is the list of components used:

Thermal Camera Hardware.
Thermal Camera Hardware.

As can be inferred by looking at the list above, I’m a big fan of Adafruit. They offer high quality products, well designed and made in the U.S. Their support is excellent and they offer a plethora of video tutorials and educational resources through their learn system available for free to the masses. This website is not sponsored by them, I’m just happy to support such a great company.

Assembly

Once the headers are soldered to the Huzzah32 and the wires are soldered to the thermal sensor pins, assembly of components is pretty straightforward. The diagram is exactly the same as the one on Adafruit’s learning page.

Soldering wires to the thermal sensor header.
Soldering wires to the thermal sensor header.

As seen above, I soldered a standard header to the thermal sensor and then proceeded to soldering wires to the header. Another option would be soldering wires directly to the sensor to save some space.

There is actually little soldering involved as the TFT Featherwing provides two sets of female headers: one for the actual Feather to be inserted into, and a second one which can be used to insert the connecting wires. I soldered pins to the end of the wires to facilitate connections.

Huzzah32 Feather inserted into the 3.4” TFT Featherwing header. Notice pins soldered at the end of the wires.
Huzzah32 Feather inserted into the 3.4” TFT Featherwing header. Notice pins soldered at the end of the wires.

Final assembly. All components inside the 3d printed case.
Final assembly. All components inside the 3d printed case.

3D Printed Case

3d printed case design. Fusion 360.
3d printed case design. Fusion 360.

I custom designed the 3d printed case shown above in Fusion 360. It has a slim profile which makes it easy to carry in jacket/pants pockets. The micro USB port is accessible so that the device can be charged and reprogrammed as needed.

3D printed case. Front in black ABS.
3D printed case. Front in black ABS.

While working on this project, I was experimenting printing with different materials and decided to print the front on black ABS and the back on transparent PETG. Printing PETG proved to be more difficult than expected as printing the main body took several iterations and I was never happy with the end results. With ABS it took just one attempt to get an acceptable outcome.

3D printed case. Back in transparent PETG.
3D printed case. Back in transparent PETG.

Feel free to leave a comment below if you have questions or need any help putting this little device together.