Mlx90614 Proteus Library Link
The MLX90614 Proteus library is a vital tool for engineers and hobbyists looking to simulate contactless infrared (IR) temperature measurement without purchasing hardware. This sensor, often called the GY-906, uses I2C (SMBus) communication to provide highly accurate ambient and object temperature readings. Key Features of the MLX90614 Sensor Measurement Range: Factory calibrated from for ambient and for object temperatures.
High Precision: Features a 17-bit ADC and a measurement resolution of
Digital Interface: Uses a 2-wire SMBus (compatible with I2C) for easy integration with microcontrollers like Arduino.
Applications: Ideal for medical thermometers, automotive climate control, and industrial monitoring. How to Install the MLX90614 Proteus Library
Since Proteus does not always include the MLX90614 by default, you must manually add third-party library files (typically .LIB, .IDX, and .HEX). Introduction of MLX90614 - The Engineering Projects
Hello friends, I hope you all are doing great. In today's tutorial, we are gonna have a look at detailed Introduction to MLX90614. The Engineering Projects
There is no official or native MLX90614 library for Proteus (from Labcenter Electronics). Proteus’s default component library does not include this specific IR temperature sensor.
However, you have several practical options to simulate an MLX90614 in Proteus:
The "Dead Sensor" Fix
If the library loads but never responds (always NACK):
- Right-click the MLX90614.
- Select Edit Properties.
- Check "Exclude from Simulation" – ensure it is NOT checked.
- Verify the clock speed of your microcontroller matches the I2C standard (100kHz or 400kHz). The library may not tolerate 1MHz Fast Mode+.
Option B: Create from Arduino Library (Advanced)
Use the MLX90614_Proteus Arduino project (available on GitHub) to generate the .HEX file yourself if you have an actual sensor. mlx90614 proteus library
11. Example Arduino Code (read object temp)
#include <Wire.h>
#define MLX_ADDR 0x5A
void setup()
Serial.begin(115200);
Wire.begin();
float readTemp(uint8_t reg)l;
return val * 0.02;
void loop()
float tobj = readTemp(0x07); // example object register
float tamb = readTemp(0x06); // ambient
Serial.print("Tobj: "); Serial.println(tobj);
Serial.print("Tamb: "); Serial.println(tamb);
delay(1000);
2.1 Prerequisites
- Proteus Design Suite (Version 8.x recommended).
- MLX90614 Proteus Library files (typically
MLX90614.LIBand potentiallyMLX90614.HEXor.DSNdepending on the source).
9. Integration with Microcontroller Models
- Arduino (AVR), PIC, STM32 examples showing wiring and code.
- Power sequencing and pull-ups: explain need for I2C pull-up resistors in simulation or how Proteus handles them.
- Example connection diagram and typical breadboard wiring in Proteus.
- Firmware notes: reading temperature, using PEC, configuring emissivity, storing calibration constants.
Introduction: The Simulation Gap
The Melexis MLX90614 is a staple in modern embedded systems. As an infrared thermometer, it allows microcontrollers to measure temperature without physical contact, making it ideal for medical devices (thermal guns), industrial maintenance, and smart home automation.
However, for firmware developers and hobbyists, a significant bottleneck exists before hardware prototyping: Simulation. Proteus Design Suite (ISIS) is the industry standard for simulating microcontroller circuits. Unfortunately, the default component libraries in Proteus do not include the MLX90614.
This creates a paradox: How do you write, test, and debug I2C code for an MLX90614 without soldering a single wire? The answer lies in the MLX90614 Proteus Library—a custom-built simulation model.
This article serves as a complete resource: what the library is, where to find it, how to install it, how to use its advanced features, and how to write the firmware that drives it.
4. Software Implementation (Firmware)
The MLX90614 communicates via SMBus. While similar to I2C, SMBus has specific timing and protocol requirements. The standard I2C library in Arduino (Wire.h) can be adapted, but using a specific MLX90614 library (such as the Adafruit MLX90614 library) simplifies implementation significantly.
Final Notes
- The Proteus simulation is functional but not 100% accurate (emulates I2C behavior but not thermal response time).
- For precise prototyping, test with real hardware after simulation passes.
- Always verify your library files come from a trusted source.
Now you can simulate MLX90614 in Proteus successfully.
The MLX90614 is a high-precision, non-contact infrared (IR) thermometer sensor widely used for medical, industrial, and automotive temperature monitoring. Integrating it into a Proteus simulation allows developers to test I2C communication and temperature logic before moving to physical hardware. Overview of the MLX90614 Sensor
The MLX90614 operates by detecting infrared energy emitted by an object and converting it into a digital temperature reading.
Communication Protocol: Uses SMBus, which is highly compatible with the I2C standard used by Arduino and other microcontrollers. The MLX90614 Proteus library is a vital tool
Measurement Range: Typically measures object temperatures from to with a high accuracy of in the medical range.
Pinout: Consists of four main pins: VCC (Power), GND (Ground), SCL (Serial Clock), and SDA (Serial Data). Integrating the MLX90614 Library in Proteus
Since Proteus does not include every specialized sensor by default, you must manually add the library files to the software's directory.
Download the Library: Locate a specialized IR sensor library for Proteus, such as those provided by The Engineering Projects.
Add Library Files: Extract the downloaded folder to find three essential files: .LIB, .IDX, and sometimes .HEX. Install to Proteus Directory:
Navigate to your Proteus installation folder (usually C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\Data\LIBRARY).
Paste the extracted .LIB and .IDX files into this LIBRARY folder.
Restart Proteus: Close and reopen the software to refresh the component database.
Search and Place: In the "Pick Devices" window (press 'P'), search for "MLX90614" or "Infrared Sensor" to add it to your schematic. Simulating with Arduino Right-click the MLX90614
To make the sensor functional in your simulation, you must provide it with firmware.
Arduino IDE Library: Install the Adafruit MLX90614 Library via the Arduino Library Manager to simplify coding.
Generate HEX File: Write your sketch in the Arduino IDE and click "Verify" to compile it. This generates a .HEX file in a temporary folder.
Upload to Proteus: Double-click the Arduino board in your Proteus schematic, click the folder icon next to Program File, and select your generated .HEX file. Typical Applications Medical: Non-contact forehead thermometers.
Industrial: Monitoring moving machine parts where contact sensors are impractical.
Automotive: Real-time monitoring of engine or tire temperatures. MLX90614 IR Thermometer Driver Library for Arduino - GitHub
Title: Integrating the MLX90614 Infrared Thermometer in Proteus ISIS: Library Compilation, Simulation, and Firmware Development
Abstract
This paper provides a comprehensive technical guide on simulating the MLX90614 non-contact infrared thermometer within the Proteus Design Suite. As the MLX90614 is not included in the standard Proteus library, this document outlines the methodology for integrating third-party libraries, configuring the simulation environment, and developing embedded firmware to interface with the sensor via the SMBus protocol. This guide is intended for embedded systems engineers and students requiring virtual prototyping capabilities for thermal sensing applications.