Can gen 3 particle products (specifically Boron) support I2C repeated start?
I’m working with the Melexis MLX90614 5V infrared temperature sensor and a Boron LTE for a contactless temperature station. However it appears that for proper operation the sensor requires I2C repeated-start communication.
It does not appear that I2C repeated-start works natively, but I’m wondering: Can I2C repeated start functionality be added using a library?
If not, could I2C be extended via future updates to the particle Device OS?
For example, I was able to get the MLX90614 example sketch working properly on an arduino uno board by using 10KΩ pull up resistors on the SCL and SDA lines using the Adafruit_MLX90614 library.
However when using the same circuit connected to a Boron device along with examples from any of the following MLX90614 libraries:
-
Adafruit_MLX90614 - This library demo just returns the max reading values:
“Ambient = 1037.55C Object = 1037.55C
Ambient = 1899.59F Object = 1899.59F” -
SparkfunMLX90614 - This library’s therm.begin() call always fails, returning a 0.
To me it appears that the I2C repeated start condition is the cause. All of the posts I’ve seen on the particle community forums which relate to the MLX90614 and their related particle cloud libraries were using the photon devices but I cannot get this working on a Boron or Argon device.
If anyone has experience using I2C repeated start sensors on gen 3 devices, any help with that process or any examples would be greatly appreciated.
References:
Datasheet for the MLX90614
Arduino Uno Example that worked