Library — Mlx90614 Proteus

Title

Comprehensive Guide to Building and Using an MLX90614 Proteus Library

In Proteus:

  1. Add a Virtual Terminal (View → Virtual Terminal).
  2. Connect its TXD to Arduino's RXD (or use Serial.print to Virtual Terminal).
  3. Add a Virtual I2C Debugger (optional, to monitor I2C traffic).

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.


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);

Key Takeaways:

As of 2025, the demand for contactless sensing is exploding. Mastering this library will accelerate your product development cycles, reduce hardware debugging, and give you a professional edge. Download the library, build your virtual circuit, and start measuring heat without ever touching a soldering iron.


Do you have a verified MLX90614 library file? Share the SHA-256 hash in the comments below to help the community avoid corrupted downloads.


The Ghost in the Sensor

Dr. Aris Thorne believed in two things: the infallibility of simulation and the promise of contactless heat.

For six months, he had been designing a thermal screening portal. His weapon of choice was the MLX90614, a gem of a sensor that could read surface temperature from a distance. But Aris didn't build with physical parts anymore. He built in Proteus—the cathedral of circuit simulation, where code met schematic before reality.

There was just one problem. The MLX90614 didn't exist there.

Proteus had libraries for LEDs, op-amps, even esoteric motor drivers. But a calibrated infrared thermopile with a digital I²C interface? Nothing. It was a blind spot in the simulation universe.

"I'll just find the library," Aris told his reflection at 2:00 AM.

He began where all engineers do: Google. "MLX90614 Proteus library" returned 47 results. Ten were broken Russian forum links. Twelve pointed to a long-dead Dropbox. The rest were YouTube tutorials with titles like "How to add ANY sensor to Proteus!!!"—each video featuring pixelated screen captures and synth music, ending with a "contact me for files" that never responded.

Aris dug deeper.

He found a GitHub repository from 2015. A user named ElectroVoid had claimed to build a custom library. The repository had three stars and a single issue: "Doesn't compile." Aris downloaded it anyway. The folder contained a cryptic .IDX file, a .HEX with no matching source, and a text file named README_final_FIXED(2).txt. Inside:

"Just change the SDA pin to RC4 and pray. Works 60%."

Aris laughed bitterly. Engineers didn't pray. Engineers simulated.

He spent the next week building his own model. He pored over the MLX90614 datasheet—its 17-bit RAM, its emissivity correction, its nasty habit of locking up if the I²C clock stretched too long. He wrote a DLL in C to mimic the sensor's behavior. He linked it to a Proteus primitive. He named it MLX90614_LIBv1.

When he ran the simulation, the temperature read 127.89°C in a 22°C room.

The ghost was in the machine.

Frustrated, Aris did the unthinkable. He soldered.

A real MLX90614 arrived from DigiKey. He wired it to an Arduino Nano, not Proteus. He wrote a quick sketch. The sensor saw his finger from 10cm: 34.2°C. His coffee: 68.5°C. The window: 12.1°C. Real. Perfect. Alive.

He returned to his screen. The empty Proteus workspace stared back.

That night, Aris found a new forum post. Buried on a Romanian electronics site, deep in a thread about "I²C timing hell," a user named "Claudiu_B" had posted:

"Why you simulate temperature? Temperature is not logic. Temperature is the world. Proteus cannot know your room. Just write code, flash chip, measure real. Simulation is map, not territory." mlx90614 proteus library

Below it was a file: mlx90614_proteus_lib_final.rar.

Aris downloaded it. He scanned for viruses. He loaded it into Proteus. It worked perfectly on the first run—responding to simulated I²C commands with plausible ambient temps, toggling the IR_READY flag like a metronome.

He checked the code inside. It was almost identical to his own failed DLL. But one line was different. Where Aris had written return (raw_ir_data * 0.02) - 273.15;, Claudiu_B had written:

return (raw_ir_data * 0.02) - 273.15 + (sin(millis() * 0.001) * 0.1);

A tiny, beautiful, useless oscillation. A flicker of noise. A reminder that no real sensor is perfect.

Aris smiled. He saved the library. He ran his thermal portal simulation. The LEDs blinked. The buzzer beeped. The virtual MLX90614 reported 23.1°C, then 23.3°C, then 22.9°C.

He closed his laptop and touched his real coffee mug. It was still warm.

Some things you don't simulate. Some things you just feel.

The End

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 Title Comprehensive Guide to Building and Using an

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:

5. Proteus 8+ Workaround – Arduino + Library

The Ultimate Guide to the MLX90614 Proteus Library: Simulating Non-Contact Temperature Sensing

Part 2: Installing the Library

  1. Close Proteus completely.
  2. Copy the 3 files (.HEX, .IDX, .LIB) into:
    C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\LIBRARY
    
    (Adjust path for your Proteus version)
  3. Restart Proteus.

Arduino Sketch Example (for simulation)

#include <Wire.h>
#include <Adafruit_MLX90614.h>

Adafruit_MLX90614 mlx = Adafruit_MLX90614();

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

void loop() Serial.print("Ambient = "); Serial.print(mlx.readAmbientTempC()); Serial.print("*C\tObject = "); Serial.print(mlx.readObjectTempC()); Serial.println("*C"); delay(500);

Looks like your connection to Community was lost, please wait while we try to reconnect.