Thermal imaging · Melexis MLX90640

MLX90640 — i2c address & wiring

32×24 far-infrared thermal camera streaming 768 temperature pixels over i2c.

Key facts

MLX90640 at a glance

i2c address
0x33
fixed address
Logic voltage3.3–5 V
Typesensor
PartMelexis MLX90640
Ships withgeneric modules — plain 0.1″ headers, no connector system
DatasheetMelexis MLX90640 — manufacturer documentation ↗

The chip

What the Melexis MLX90640 actually is

Far-infrared thermal array producing a 32×24 grid of non-contact temperature measurements at up to 64 Hz, in 55° and 110° field-of-view variants. Factory calibration lives in on-chip EEPROM; the host reads raw frames plus calibration constants and computes per-pixel temperatures from them.

Watch out: The frame maths needs real horsepower — roughly 20 KB of RAM and floating-point work per frame — so Uno-class boards can't run it; use an ESP32, Teensy or Raspberry Pi. It ships at 0x33 and the address only changes by rewriting EEPROM, so treat it as fixed and use a multiplexer for multiple units.

Wiring

How to connect the MLX90640

HOST · Arduino / ESP32 / Pi MLX90640 3V3/5V VCC VCC · 3.3–5 V GND GND GND SDA SDA SDA · data SCL SCL SCL · clock 0x33 pull-up resistors to VCC on SDA & SCL — usually already on the breakout

The MLX90640 talks i2c at address 0x33. It runs at 3.3–5 V, so match your host's logic level — if your host is 5 V and a board on the bus is 3.3 V-only, add a level shifter. Use the compatibility checker to confirm the exact cable for your setup.

The address is fixed, so two MLX90640s can't share a bus directly — the address-conflict guide covers the workarounds (multiplexer, second bus).

Wiring is the usual four: power, ground, SDA and SCL, plus pull-up resistors — almost always already fitted on the breakout. Nothing showing up? Run an i2c scan first; if the bus is silent, the 7-step checklist finds it faster than guessing.

Go deeper

Guides covering the MLX90640

Alternatives

Other thermal imaging boards

Get one

Questions

MLX90640 i2c FAQ

What is the MLX90640's i2c address?

The MLX90640 sits at a fixed address of 0x33. It can't be changed, so two of them can't share one bus without a multiplexer or a second bus.

What voltage does the MLX90640 run at?

3.3–5 V logic. That range covers both 3.3 V and 5 V hosts, so it drops onto a Pi, ESP32 or Arduino without a level shifter.

Can I use two MLX90640s on one i2c bus?

Not directly — every MLX90640 answers to 0x33, so two on one bus would collide. Use a TCA9548A multiplexer to give each its own channel, or put the second one on a separate bus.

Does the MLX90640 come as a plug-together breakout?

Not in the mainstream connector ecosystems — MLX90640 modules are generic boards with 0.1″ headers, so you'll be soldering headers and running jumper wires to SDA, SCL, power and ground.

What should I watch out for with the MLX90640?

The frame maths needs real horsepower — roughly 20 KB of RAM and floating-point work per frame — so Uno-class boards can't run it; use an ESP32, Teensy or Raspberry Pi. It ships at 0x33 and the address only changes by rewriting EEPROM, so treat it as fixed and use a multiplexer for multiple units.