Infrared Mirror

Wow, you look hot!

Infrared Mirror ‘reflects’ infrared radiation, aka heat, using an infrared camera and a matrix of LEDs.

While in a room without interesting heat sources there is not much to see.

Add a heat source, such as yours truly, and Infrared Mirror comes to life.

Placing a hand close to the camera demonstrates the Infrared Mirror’s ability to capture and display a heat source.

Infrared Mirror video with cold and warm objects.

The video above shows the infrared camera’s detection pattern (checker-board) and refresh rate limitations using a cold seltzer can and a warm mug of tea.

The infrared camera is the MLX90640 thermal sensor array by Melexis. The MLX90640 breakout module was purchased from Adafruit and is quick to add to a project using Adafruits MLX90640 library.

The MLX90640 has a resolution of 24×32 with a FOV of 110 degrees.

The Infrared Mirror controls are simple consisting of a power switch, brightness adjustment, and motion indicator.

The LEDs matrix is comprised of 12 8×8 WS2812b panels with a 3D printed grid to create 768 pixels. On top the grid is a acrylic sheet with sheet of privacy plastic attached to the bottom. The privacy plastic diffuses the LEDs and creates a neat frosted glass texture.

The 12 LED 8×8 matrixes are held down using 3mm plywood cross members. This allows the matrixes to be held securely to the grid while exposing surface area to promote heat dispersion.

The frame is constructed of 2020 aluminum extrusion creating a sturdy frame with multiple mounting points for brackets.

The electronics are fairly straightforward consisting of a power supply, camera, microcontroller, and perforated prototype board (acting as the power distribution and MCU mount).

While the MeanWell UHP-200A-5 power supply is capable of providing 40 amps at 5vDC, the Infrared Mirror only consumes roughly 6 amps at 5vDC. The UHP-200A-5 was primary selected for it’s slim and short form factor to fit within the Infrared Mirror’s frame.

The microcontroller is a Teensy 3.2 by PJRC which was selected for it’s processor speed, RAM, and library support. The WS2812b LEDs function marvelously using the FastLED and Teensy combination.

A 3D printed mount for the MLX90640 was designed to allow the camera to be tilted and easy wiring.

The LED matrix’s grid is held in place using a series of brackets.

The inner L-bracket spaces the grid to the accent while the outer L-bracket spaces the accent to the frame. The complicated LED matrix, grid, accent, and acrylic system is necessary for creating the clean and completed aesthetic.

The wall mounting bracket is rather simple and allows for adjustment to mitigate frame tilt due to slightly uneven weight distribution.

The 2020 frame is connected together using 3D printed corner brackets.

When there is no movement after fifteen seconds a ‘screen saver’ kicks in to create a colorful animated artwork.

All credit for the Perlin noise effect library implementation and WS2812b LED matrix driver goes to FastLED author.

Infrared Mirror screen saver video.

The above video is the Perlin noise ‘screensaver’ in action. The frames per second is limited due to the hungry nature of the MLX90640 library.

Source code and design files:

Binary Challenge
01000010 01101001 01101110 01100001 01110010 01111001 00100001
A quadruped robot dog looking for ones and zeros!
Data stored as color!
Infrared Mirror
Wow, you look hot!