Stacks Image 5
FireCAM is a time-lapse camera designed to take both visual and radiometric thermal images periodically and record them as json-structured files to a local Micro-SD Card. The visual images are stored in jpeg format. The thermal images are the raw radiometric data (temperature) to enable later analysis. The camera includes a touch LCD control panel and a WiFi interface allowing control, configuration and image viewing from an external application.

FireCAM is open-source hardware and software. The design is here. It is also available to order as a bespoke device. Please contact me for more information.
FireCAM is comprised of three components.
  1. Hardware design based around Flir Lepton 3.5 and ArduCAM 2MP image sensors and an ESP32 micro-controller.
  2. Firmware for the ESP32.
  3. A desktop application for Windows and Mac OS X allowing remote control, configuration and viewing of images from a connected FireCAM.


  • 160x120 pixel Radiometric Thermal Imaging Camera (Flir Lepton 3.5)
  • 640x480 pixel Visual Imaging Camera (ArduCAM 2MP)
  • 2.8" 320x240 pixel touchscreen
  • External temperature sensor
  • Micro-SD Card for image storage
  • USB interface for charging, firmware updates and diagnostic output
  • 2500 mA LiPo battery with built-in charger providing 5-6 hours continuous runtime per charge and automatic low-battery shutdown
  • Battery-backed RTC/parameter storage
  • Wifi interface capable of either AP or client modes for remote access
  • Configurable recording intervals from 1 second to 1 hour per image


  • High temperature event monitoring
  • Device thermal monitoring
  • Structure thermal leakage analysis
  • Wildlife detection and monitoring
  • Thermal biometric monitoring
  • Remote accessible camera for AI and data processing applications
Stacks Image 14
Stacks Image 16
Stacks Image 18
Stacks Image 20

Data Format

File and command data are json-structured strings allowing easy interface to custom software tools. A complete file is shown below. Large data sets such as the jpeg image from the visual camera, radiometric data from the thermal camera and thermal camera telemetry data are base-64 encoded (mostly omitted here for clarity.)

"metadata": {
"Camera": "firecam-01DD",
"Version": "2.0",
"Sequence Number": 0,
"Time": "21:18:39",
"Date": "5/18/20",
"Battery": 4.170127868652344,
"Charge": "OFF",
"FPA Temp": 34.769981384277344,
"AUX Temp": 34.969993591308594,
"Lens Temp": 35.67091751098633,
"Lepton Gain Mode": "HIGH",
"Lepton Resolution": "0.01"
"jpeg": "/9j/4AAQSkZJRgABAQEAAAAAAA..."
"radiometric": "I3Ypdg12B3YPdgt2BXYRdgF2A3YFdgF2AXYNdv91+3ULdvd..."
"telemetry": "DgCDMSkAMAgAABBhCIKyzJpkj..."