Pimoroni Melexis MLX90640 Thermal Camera Breakout

Yes, supply the addresses as merely “33” and “34” , etc. No leading 0x, no MSB as that’s hardcoded. I had more instructions in the serial monitor output, but my little old Arduino was running out of dynamic memory, so I removed them.

Current address, (enter), New address, (enter), Power On/Off Reset, (enter) and the new address should be written and displayed.

If you’re a more accomplished programmer, please help with the type mismatch warnings and adding error checking would be great. When I first changed it to take serial input I was writing an int (two bytes) to the address byte and seem to have lost one of my sensors doing this. Not terribly amusing, considering the cost of them!

1 Like

Sure, thanks for the information.

Not sure why the admin is taking so long to release my reply on the steps I took, probably due to multiple links in the post.

Let me try this method and see if I can improve on the code, not a pro coder myself though…

Just a guess but they may have concerns about somebody bricking the device while trying it? They could actually be tying it themselves before posting it? Again just a guess on my part, they must have a reason though. The delay may also have something to do with it being the weekend?

My code (posted on an independent site and linked above) is the one with the potential to be dangerous, RE: no error checking. I believe Arun is referring to his instructions on the github site to get the sensor working, since I seem to have not been able to recreate my initial working state.

There are some other references on github to people having issues with the sensors being finicky. Nothing to do with pimoroni, just Melexis. I think I may be on the trail of why a couple of mine stopped working, but no time to deal with it, yet. I’ll post if I get to the bottom of it.

Ok, there is a lot going on in this thread. I missed the link, see it now though d’oh . =)

Looked at the code, I’m a total NOOB with Arduino. I have several UNO’s but haven’t done a whole lot with them yet other than the super simple stuff.
My python skills are average I think, as I’m self taught after buying several raspberry Pi’s. I haven’t had any formal training in any programing language unfortunately. =( That just how things went for me. My job was more hardware related than software. I’m retired now. =)

1 Like

Hi ion_four and alphanumeric,

Just tested your code using Arduino and changed my sensor addresses to 34 and 35 successfully :). Thank you so much. Now trying to test if all three can work together to output the individual readings; modifying the github sample code for that.

Meanwhile, I wrote to them to review and release my comments for the steps I followed for making it work the first time using the Pimoroni github page. Will wait till tomorrow, if no reply I will write it somewhere else and pass you the link.

Thanks again to both of you for the help so far.
Regards,
Arun

Alright, my post is online now. You can see the steps I took to make it read the first time in the above post.

Did you ever get multiple sensors working to your liking? I ended up moving across the country and haven’t gotten back into this project until now! I’m currently reinstalling everything on my RPi, once again, to see if I can get it working.

Hi,

Yes, I managed to get it working with three different IR sensors. Just that the sensors needs to issue reset command (“i2c detect -y 1”) after every cycle. Else, somehow the RPi will be unable to detect the sensors after reading a few times.

Regards,
Arun

I’m glad to hear it worked out for you! I finally got around to reinstalling everything and the first sensor I tried again did not work, giving me a segmentation fault. I think this sensor may have a dead pixel that is not being corrected for by the example programs. I’m going to change the i2c addresses of another sensor back to the default, but now I’m having trouble with my Arduino IDE. ha!

Ah I see. Yes, probably the more sensor pixels died. I understand that the sensor can auto correct up to 4 pixels. reinstalling the Arduino IDE might help? :)

Hi,
I’m recently using an IR-Array, the MLX90640, which is great.
But in some cases the accuracy is not quite good, I assume I can make it better by

  1. setting a more correct emissivity of the object.
  2. compensating the result directly
    So, it’s there a function or a parameter that I can use in the python library?

Many thanks for the replies :)