Back to Sensors & Actuators Series

AMG8833: 8×8 IR Thermal Camera Array (Grid-EYE)

April 10, 2026 Wasil Zafar 8 min read

AMG8833 deep dive — 8×8 thermopile array, thermal imaging, people detection, Arduino code, and HVAC/fever screening applications.

Contents

  1. Working Principle
  2. Electrical Characteristics
  3. Interfacing with MCU
  4. Calibration
  5. Code Example
  6. Real-World Applications
  7. Limitations

Working Principle

The AMG8833 (Grid-EYE) from Panasonic is an 8 × 8 infrared thermal imaging sensor that measures the temperature of 64 individual pixels across a 60° × 60° field of view. Each pixel is a thermopile — a series of micro-thermocouple junctions that generate a voltage proportional to the infrared radiation (8–14 µm) received from objects in its field of view. The sensor outputs a 64-element temperature array over I²C at up to 10 Hz.

Unlike single-point IR sensors (like the MLX90614), the AMG8833 provides spatial thermal information, enabling heat mapping, person detection, and thermal imaging at a fraction of the cost of professional thermal cameras. Resolution can be enhanced by software interpolation (bilinear/bicubic) from 8×8 to higher display resolutions.

Electrical Characteristics

ParameterValue
Resolution8 × 8 pixels (64 thermopiles)
Temperature Range0–80 °C object (high gain) / −20 to 100 °C (extended)
Accuracy±2.5 °C (or ±4.5 °C at edges)
Temperature Resolution0.25 °C per LSB
Field of View60° × 60°
Frame Rate1 or 10 Hz (selectable)
InterfaceI²C (0x68 or 0x69, selectable via pad)
Supply Voltage3.3 V
Current Draw~4.5 mA active, ~0.8 mA standby
InterruptProgrammable per-pixel temperature threshold interrupt

Interfacing with an MCU

Connect 3.3 V, GND, SDA, SCL, and optionally INT (for thermal alarm interrupts). Read 128 bytes (64 pixels × 2 bytes each, 12-bit signed) from registers 0x80–0xFF. The Adafruit AMG88xx library handles the register reads and temperature conversion. For display, map pixel temperatures to a colour gradient (blue=cold → red=hot) on an OLED or TFT screen.

Interpolation for better visuals: The raw 8×8 grid looks blocky. Apply bilinear interpolation (upscale to 32×32 or 64×64) for a smoother thermal image. On ESP32/Raspberry Pi, use matplotlib or OpenCV for real-time interpolated display.

Calibration

  • Internal thermistor: The AMG8833 has an on-die thermistor for ambient temperature compensation; read register 0x0E–0x0F to verify
  • Emissivity assumption: The sensor assumes emissivity ε = 1.0 (blackbody). For shiny or metallic surfaces, actual temperature will be higher than reported
  • Cross-pixel uniformity: Edge pixels may have slightly higher error; apply per-pixel offset correction if precision matters
  • Distance/FOV: Each pixel covers 7.5° × 7.5°; at 1 m distance, each pixel sees approximately 13 cm × 13 cm

Code Example

/*
 * AMG8833 8×8 Thermal Camera — Arduino
 * Library: Adafruit_AMG88xx (install via Library Manager)
 * Wiring: 3.3V, GND, SDA, SCL
 */
#include <Wire.h>
#include <Adafruit_AMG88xx.h>

Adafruit_AMG88xx amg;
float pixels[AMG88xx_PIXEL_ARRAY_SIZE]; /* 64 floats */

void setup() {
    Serial.begin(115200);
    if (!amg.begin()) {
        Serial.println("AMG8833 not found!");
        while (1);
    }
    Serial.println("AMG8833 Thermal Camera Ready");
    delay(100);
}

void loop() {
    amg.readPixels(pixels);

    /* Print 8x8 thermal grid */
    float minT = 999, maxT = -999;
    for (int row = 0; row < 8; row++) {
        for (int col = 0; col < 8; col++) {
            float t = pixels[row * 8 + col];
            if (t < minT) minT = t;
            if (t > maxT) maxT = t;
            Serial.print(t, 1);
            Serial.print("	");
        }
        Serial.println();
    }
    Serial.print("Range: ");
    Serial.print(minT, 1); Serial.print(" - ");
    Serial.print(maxT, 1); Serial.println(" C
");

    /* Simple person detection */
    if (maxT > 28.0) {
        Serial.println("** WARM OBJECT DETECTED **");
    }
    delay(500);
}

Real-World Applications

People Detection, HVAC & Contactless Fever Screening

The AMG8833 is used in occupancy detection for smart buildings (count people without cameras for privacy), HVAC zone control (direct heating/cooling where people are), contactless fever screening (airport/office entrance), fire detection (hotspot identification), industrial equipment monitoring (detect overheating), robotics (obstacle thermal signature detection), and DIY thermal cameras. The low cost ($15–25) makes it accessible for projects that don’t need the resolution of FLIR cameras ($200+).

Thermal ImagingPeople DetectionHVACFever Screening

Limitations

  • Low resolution: 8×8 pixels is extremely coarse; fine details are lost. Cannot identify faces or read text.
  • Limited range: 0–80 °C standard; cannot measure high-temperature sources (soldering irons, flames).
  • Emissivity dependent: Shiny and metallic surfaces reflect ambient IR, giving false-low readings.
  • Distance limitation: At 5+ metres, each pixel covers a large area; individual hotspots become unresolvable.
  • No video stream: 10 Hz max; not suitable for fast-moving thermal events.