melexis / mlx90640-library

MLX90640 library functions
Apache License 2.0
241 stars 192 forks source link

Custom Page/Frame Size? #74

Open KevinMechler opened 4 years ago

KevinMechler commented 4 years ago

Hello. I'm looking to use this sensor for a school project to monitor the temperature across the contact patch of a racecar tire. My issue is that it would be run alongside a handful of other sensors on a somewhat crowded i2c bus. Is it possible to reduce the frame size so that each sample took less time on the bus? Ideally, I would like to take it down to 8x32, 4x32, 8x24, or 4x24. I looked through the datasheet, but nothing stuck out.

Again, I'm trying to somewhat filter the data before it is sent over I2C in order to reduce the data frame size.

Thanks, Kevin

slavysis commented 4 years ago

Hi It is possible to read less data, but I am afraid you will need to heavily modify the driver. It is possible to read separate pixels and with the address auto increment you can specify the start address and read as many pixels as you'd like (for more details, please refer to the datasheet). If you want to use the driver as much as possible, you could only change the read-out function and then put the data in the appropriate places in the data array and then call the driver functions with that array (as if it is the full frame data). If you do not want to do that, then you will need to re-write pretty much the whole thing. Another way to do it is to put a small mcu in-between the MLX90640 and the I2C bus - the MCU will communicate with the MLX90640, do the calculations and send out only the data that you want it to send. This will be somewhat more expensive, but you will be able to use the available driver. Have you considered using the MLX90641?