MLX90614 IR Temp. Sensor


Has anyone tried using a MLX90614 IR Temperature Sensor? I have tried (unsuccessfully) to use the i2cmaster library in this article: I found that the i2cmaster library was unstable. I've decided to use the PWM mode on this sensor because I am running low on SRAM and can't afford to include another library. (I am already using SD, Wire, Servo, and ADXL345 )

Has anybody had an experience using the PWM mode on this sensor? How do you "set" the sensor to PWM mode? According to the data sheet, it is factory set to SMBus but can be switched to PWM.

Thanks in advance! Ethan

The datasheet is a bit of a mess I'm afraid and there are several versions of this sensor for different voltages. I think it starts up in PWM mode so long as SCL is pulled high. A low pulse on SCL of 1.44ms or more should change it to SMBUS (I2C) operation.

So firstly tell us the exact part number and how you've wired it up... (exactly as per that article??)

I am using a MLX90614ESF-BAA-ND

I had it working initially using the i2cmaster.h library in that bildr article. However, after about 30 seconds or so it seems to crash. The arduino hangs up entirely. I was thinking that I am using too much RAM - causing the arduino to freeze.

That's why I am trying to use PWM. I haven't hooked anything up yet. I have it currently connected as per the bildr article.

I would assume the normal connections to VSS and VDD and PWM, but I'm not sure what to do about the extra pin.

Put a 4K7 pull-up on it and leave it open for pwm. Usually works for me.


You can use the start of the main sketch on this page:

It provides an smbus implementation in a tight manner. Are you short on SRAM or flash storage? Usually a library should not use much SRAM if it's designed properly. The routines from the link above don't use RAM themselves, you have to provide the storage to it for reading, so you don't need additional SRAM.

On that page you can also see how that sensor usually is configured (with a separate sketch). So to put it into PWM mode you have to configure it in SMbus mode, at least I don't know of any other method.

Don't mind because the page uses another type of the sensor, the software to configure and read it is identical.