1. Introduction
This manual provides detailed instructions for the setup, operation, and maintenance of the Waveshare MLX90640 IR Array Thermal Imaging Camera Module. This module features a 32×24 pixel far-infrared thermal sensor array and communicates via an I2C interface, making it suitable for integration with various microcontrollers such as Raspberry Pi, Arduino (ESP32), and STM32.
Please read this manual thoroughly before using the product to ensure correct operation and to prevent damage.
2. Product Overview and Features
The MLX90640 Thermal Camera Module is designed for thermal imaging applications, offering a compact and efficient solution for temperature detection and visualization.

Figure 2.1: Front view of the MLX90640 Thermal Camera Module, showing the infrared lens and connector.
Key Features:
- Sensor Array: Adopts MLX90640 far-infrared thermal sensor array with 32×24 pixels.
- Field of View: 55° field of view for comprehensive thermal detection.
- Interface: Communicates via I2C interface, configurable to fast mode (up to 1MHz data rate).
- Temperature Sensitivity: Noise Equivalent Temperature Difference (NETD) of 0.1K RMS @1Hz refresh rate.
- Voltage Compatibility: Onboard voltage translator, compatible with 3.3V/5V operating voltage.
- Compatibility: Designed for use with Raspberry Pi, Arduino (ESP32), and STM32 platforms.

Figure 2.2: Bottom view of the MLX90640 Thermal Camera Module, showing the Waveshare branding and model information.
3. Safety Information
- Electrostatic Discharge (ESD): Handle the module with care to prevent damage from electrostatic discharge. Use anti-static precautions.
- Power Supply: Ensure the power supply voltage is within the specified range (3.3V/5V). Incorrect voltage can damage the module.
- Connections: Always double-check wiring connections before applying power to avoid short circuits or incorrect operation.
- Operating Environment: Avoid exposing the module to extreme temperatures, humidity, or corrosive environments.
- Lens Care: Do not touch the infrared lens directly. Clean only with a soft, lint-free cloth if necessary.
4. Setup Guide
4.1. Pinout Description
The MLX90640 module uses an I2C interface for communication. The typical pin connections are as follows:
- VCC: Power supply input (3.3V or 5V).
- GND: Ground connection.
- SDA: I2C Serial Data Line.
- SCL: I2C Serial Clock Line.

Figure 4.1: MLX90640 module with typical jumper wire connections for integration.
4.2. Connecting to a Microcontroller (e.g., Raspberry Pi)
- Power Connection: Connect the VCC pin of the MLX90640 module to the 3.3V or 5V power output of your microcontroller. Connect the GND pin to the microcontroller's ground.
- I2C Connection: Connect the SDA pin of the MLX90640 module to the SDA pin of your microcontroller. Connect the SCL pin of the MLX90640 module to the SCL pin of your microcontroller. Refer to your specific microcontroller's documentation for I2C pin assignments.
- Software Setup: Install necessary libraries and drivers for the MLX90640 sensor on your chosen platform (Raspberry Pi, Arduino, STM32). Waveshare provides development resources and example code for these platforms.
For detailed software setup and programming examples, please refer to the official Waveshare documentation and development resources provided with the module.
5. Operating Instructions
5.1. Data Acquisition
Once the module is correctly connected and the software environment is set up, you can begin acquiring thermal data. The MLX90640 sensor provides a 32×24 array of temperature readings, which can be processed to generate a thermal image.
- I2C Communication: The module communicates via I2C. Ensure your microcontroller's I2C bus is configured correctly and operating at the desired speed (up to 1MHz for fast mode).
- Frame Rate: The sensor can provide data at various refresh rates. The Noise Equivalent Temperature Difference (NETD) of 0.1K RMS is specified at a 1Hz refresh rate. Higher refresh rates may affect NETD.
- Calibration Data: The MLX90640 sensor requires internal calibration data to be read and applied for accurate temperature measurements. This is typically handled by the provided software libraries.
5.2. Thermal Imaging Example
The module can be used to visualize temperature distributions, as shown in the example below with a Raspberry Pi.

Figure 5.1: An example setup demonstrating the MLX90640 module capturing a thermal image of a Raspberry Pi, displaying temperature variations.
The software will typically convert the raw sensor data into a temperature matrix, which can then be rendered as a color-coded thermal image, where different colors represent different temperature ranges.
6. Maintenance
- Cleaning: Keep the module clean and free from dust. Use a soft, dry, lint-free cloth to gently wipe the module. Avoid using liquids or abrasive cleaners.
- Lens Cleaning: The infrared lens is sensitive. If cleaning is absolutely necessary, use a lens cleaning cloth or a soft brush designed for optical components. Do not apply pressure.
- Storage: When not in use, store the module in an anti-static bag in a dry, cool environment, away from direct sunlight and extreme temperatures.
- Firmware Updates: Periodically check the Waveshare official website or development resources for any firmware updates or software library improvements.
7. Troubleshooting
- Problem: Module not detected by microcontroller.
- Solution:
- Verify all wiring connections (VCC, GND, SDA, SCL) are correct and secure.
- Ensure the power supply voltage is within the 3.3V/5V range.
- Check if the I2C bus is enabled and configured correctly on your microcontroller.
- Confirm the I2C address of the MLX90640 module (usually fixed, but check documentation).
- Problem: Incorrect or noisy temperature readings.
- Solution:
- Ensure the lens is clean and unobstructed.
- Verify that the correct calibration data is being applied by your software.
- Check for electromagnetic interference in the operating environment.
- Confirm the refresh rate setting; higher rates might introduce more noise if not handled correctly.
- Problem: Software examples fail to compile or run.
- Solution:
- Ensure all required libraries are installed and correctly linked in your development environment.
- Verify that your microcontroller's operating system or firmware is compatible with the provided examples.
- Check for any specific hardware configurations or jumpers required by the examples.
8. Specifications
| Feature | Detail |
|---|---|
| Sensor Array | MLX90640 Far-Infrared Thermal Sensor |
| Resolution | 32 × 24 Pixels |
| Field of View (FoV) | 55° |
| Interface | I2C (up to 1MHz Fast Mode) |
| Noise Equivalent Temperature Difference (NETD) | 0.1K RMS @1Hz refresh rate |
| Operating Voltage | 3.3V / 5V (compatible) |
| Compatible Devices | Raspberry Pi, Arduino (ESP32), STM32 |
| Product Dimensions | 1.1 x 0.63 x 1.1 inches (approx. 28 x 16 x 28 mm) |
| Item Weight | 0.317 ounces |

Figure 8.1: Dimensional drawing of the MLX90640 Thermal Camera Module (dimensions in millimeters).
9. Warranty and Support
This Waveshare product is covered by standard manufacturer warranty. For specific warranty terms and conditions, please refer to the official Waveshare website or contact their customer support.
Technical Support: Waveshare provides comprehensive development resources and manuals, including examples for Raspberry Pi, Arduino (ESP32), and STM32. These resources are essential for successful integration and operation of the module.
For further assistance, please visit the official Waveshare support page or contact their technical support team directly.





