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 voltage | 3.3–5 V |
| Type | sensor |
| Part | Melexis MLX90640 |
| Ships with | generic modules — plain 0.1″ headers, no connector system |
| Datasheet | Melexis 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
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.