MLX90640 vs AMG8833: which i2c thermal camera?
Two thermal arrays, both on two wires, both affordable — and they are not competing for the same job. One needs a real computer and gives you an image. The other runs on an Uno and gives you a heat map. Pick by host first, resolution second.
Side by side
MLX90640 vs AMG8833: the numbers that decide it
| Spec | MLX90640 | AMG8833 |
|---|---|---|
| Resolution | 32×24 — 768 px | 8×8 — 64 px |
| Frame rate | up to 64 Hz | 1 or 10 fps |
| i2c address | 0x33 (fixed) | 0x69 / 0x68 (strap) |
| Voltage | 3.3–5 V | 3.3–5 V |
| Host needed | ESP32 / Teensy / Pi | anything, incl. Uno |
| Field of view | 55° or 110° variants | 60° |
The real constraint
768 pixels is more work than it sounds
The MLX90640's resolution is the headline, but the thing that decides whether you can use it is what those pixels cost to process. The sensor doesn't hand you temperatures. It hands you raw readings plus a block of calibration constants from its EEPROM, and your host computes the actual temperature per pixel from them — floating-point maths, 768 times, every frame.
That needs roughly 20 KB of RAM and an FPU you'd like to have. An Arduino Uno has 2 KB of RAM in total. It is not a close call: the Uno cannot run this sensor, and no amount of clever code fixes a 10× memory shortfall. An ESP32, a Teensy or a Raspberry Pi handles it comfortably.
The 64 Hz figure deserves the same scepticism. The sensor will stream that fast; your host almost certainly can't keep up with the maths, so a realistic microcontroller frame rate is single digits. On a Pi it's a non-issue.
The AMG8833 inverts all of this. 64 pixels is a rounding error of RAM, the sensor does more of the work internally, and 10 fps is genuinely 10 fps. It runs on an Uno. That's the actual trade: not "which is better" but "what's driving it".
Watch out
The AMG8833 sits on the worst address on the bus
Both breakouts we list ship the Grid-EYE at 0x69, with 0x68 available from the address strap. Those two addresses are the most contested on i2c: the DS3231 real-time clock is fixed at 0x68, and the MPU-6050 uses 0x68/0x69 depending on its AD0 pin.
A thermal camera with a timestamp is an obvious build — a datalogger that records when the heat appeared. So is a thermal camera on something that moves. Both of those put you straight into a collision, and because the AMG8833's alternate is the MPU's alternate, you can't always strap your way out. A TCA9548A multiplexer is the reliable fix; our collision roundup covers the rest of that neighbourhood.
The MLX90640 dodges this entirely at 0x33, which nothing else common uses. Its address is effectively fixed — changing it means rewriting EEPROM — so two on one bus means a mux, but one is trouble-free.
Both of them
Infrared doesn't go through your enclosure
This catches people regardless of which sensor they pick. Far-infrared is blocked by ordinary glass and by most plastics. You cannot mount either of these behind a window, a clear project-box lid, or a lens from a visible-light camera. The sensor needs an open aperture, or a window made from a genuinely IR-transparent material like silicon or thin polyethylene.
Bus-wise they're both undemanding: standard i2c, 3.3–5 V, no level shifting needed for a Pi or ESP32. The MLX90640 moves real data volume, so if you're pushing 64 Hz it's worth raising the bus clock and keeping the wiring short — capacitance bites sooner at speed.
Verdict
Which i2c thermal camera should you buy?
Take the MLX90640 if you want a thermal image — hunting heat leaks, checking a board for a hot component, anything where you need to recognise a shape — and you have an ESP32, Teensy or Pi to run it. The 110° lens is the one for indoor work; 55° for looking at something specific from further away.
Take the AMG8833 if you want thermal presence — is someone in the room, is that corner cold, has the machine warmed up — or if your host is small. It's cheaper, it runs anywhere, and for detection rather than imaging, 64 pixels is genuinely enough. Just plan the address before it collides with your clock.
Get one
Questions
Thermal camera FAQ
What's the difference between the MLX90640 and the AMG8833?
Resolution, mostly — and everything that follows from it. The MLX90640 is a 32x24 grid, so 768 temperature pixels; the AMG8833 Grid-EYE is 8x8, so 64. That's a 12x difference in data, and it decides everything else: the MLX90640 needs a host with real RAM and floating-point maths, while the AMG8833 runs on almost anything. One gives you a recognisable thermal image, the other gives you a heat map.
Can an Arduino Uno run the MLX90640?
No. The frame maths needs roughly 20 KB of RAM plus floating-point work per frame, and an Uno has 2 KB total. Use an ESP32, a Teensy or a Raspberry Pi. The AMG8833 is the one that fits on an Uno — 64 pixels is a small enough array that an 8-bit part can hold and process a frame.
What i2c address do these thermal cameras use?
The MLX90640 is at 0x33, fixed for practical purposes — changing it means rewriting on-chip EEPROM. The AMG8833 ships at 0x69 on both SparkFun and Adafruit breakouts, with 0x68 available from its address strap. That 0x68/0x69 pair is the most contested on the bus: the DS3231 RTC and the MPU-6050 are both there.
How fast are they?
The MLX90640 runs up to 64 Hz, but that's a spec-sheet number — in practice your host's ability to compute 768 pixels of calibrated temperature is the limit long before the sensor is, and 4–8 Hz is a realistic working rate on a microcontroller. The AMG8833 does 1 or 10 fps and hits its rated speed easily, because 64 pixels is nothing to process.
Are these good enough to find heat leaks in a house?
The MLX90640 genuinely is, with the 110-degree lens — 768 pixels is enough to see a draughty window frame or a missing patch of insulation as a shape you can recognise. The AMG8833 will tell you one corner of a wall is colder than another, which is useful, but you're reading a chunky 8x8 grid, not looking at a picture.
Do they need a lens or line of sight?
Line of sight, yes — these read far-infrared, which ordinary glass blocks completely. You cannot put either behind a normal window or a standard plastic enclosure. Thermal-transparent materials exist (silicon, germanium, some thin polyethylene), but for most projects the sensor looks out through an open aperture.