Mlx90614 Proteus Library

The MLX90614 is a contactless IR temperature sensor with a digital SMBus/I2C output (addressable), commonly used to measure object and ambient temperatures. Proteus lacks an official behavioral model for the device; creating a custom library enables circuit simulation and firmware testing.

This code snippet illustrates reading the object temperature register.

#include <Wire.h>

#define MLX90614_ADDR 0x5A #define MLX90614_OBJ_TEMP 0x07

void setup() Serial.begin(9600); Wire.begin();

void loop() float temp = readTemperature(); Serial.print("Object Temperature: "); Serial.print(temp); Serial.println(" C"); delay(1000);

float readTemperature() int16_t rawTemp;

Wire.beginTransmission(MLX90614_ADDR); Wire.write(MLX90614_OBJ_TEMP); Wire.endTransmission(false);

Wire.requestFrom(MLX90614_ADDR, 3);

if (Wire.available() >= 3) uint8_t low = Wire.read(); uint8_t high = Wire.read(); uint8_t pec = Wire.read(); // Packet Error Code

rawTemp = (high << 8) 
return NAN;

If you are working on a contactless temperature measurement project (like a forehead thermometer or HVAC monitor), you likely need the MLX90614 sensor. Unfortunately, Proteus does not include this sensor in its default library.

Here is how to get it running in your simulation.

Appendix A — Registers (condensed)

Appendix B — Code Samples (select excerpts)

Appendix C — Test Vectors

Appendix D — Change Log

Appendix E — References


Deliverables (suggested in repository)

Estimated development timeline (single developer) mlx90614 proteus library


If you want, I can:

Which deliverable should I produce first?

is a non-contact infrared (IR) thermometer that measures object temperatures ranging from

using IR radiation. Because Proteus does not include this sensor in its default library, you must manually add a third-party library to simulate it. 1. Downloading and Installing the Proteus Library

To use the MLX90614 in your simulation, you need library files (typically ) specifically designed for it. Locate Files

: Download the MLX90614 library package from a reliable source like The Engineering Projects Identify Library Files : Ensure you have three essential files: InfraredSensorsTEP.LIB InfraredSensorsTEP.IDX InfraredSensorsTEP.HEX

(This file is often required for the sensor's internal simulation logic). Installation Steps Navigate to your Proteus installation directory (usually

C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\Data\LIBRARY Paste the files into the Restart Proteus to initialize the new components. 2. Basic Pin Configuration

The MLX90614 typically uses an I2C (SMBus) interface for communication. Tomson Electronics Description Connection Type Power supply (3.3V or 5V version) Connect to VCC Connect to GND Serial Clock Connect to Microcontroller SCL Serial Data Connect to Microcontroller SDA 3. Simulating in Proteus Once installed, you can build your circuit: Search for Component The MLX90614 is a contactless IR temperature sensor

: Open the "Pick Devices" window (press 'P') and search for "MLX90614" or "Infrared Sensor". Load HEX File

: Double-click the sensor in your schematic. In the properties panel, under Program File , browse and select the InfraredSensorsTEP.HEX file you downloaded earlier. Interactive Simulation : Most Proteus libraries include a

. During simulation, you can toggle this pin or adjust a potentiometer to simulate different temperature inputs. 4. Software Interfacing (Arduino Example)

To read data from the sensor in your simulation, use a standard library like the Adafruit MLX90614 Library Adafruit Learning System

How to Add Arduino UNO Library to Proteus | Step-by-Step Guide 25 Feb 2025 —

The MLX90614 Proteus library is a third-party simulation model designed to test non-contact temperature sensors by enabling I2C communication and simulating both object and ambient temperature ranges. It features an interactive, high-resolution modeling setup (17-bit ADC) essential for virtual testing with microcontrollers such as Arduino, though it requires manual installation into the Proteus library folder. For instructions on how to set up the library, see The Engineering Projects Mlx90614 proteus library - meredithquivavoter1973's Ownd

You should see the component appear. Place it on the schematic. It typically has 4 to 5 pins:


Approach: create a Proteus VSM (Virtual System Modelling) device using either:

Key behaviors to implement:

Implementation details: