Hi
I’m aiming for making a distance measurement between approximately 25 mm to 175 mm (distance is varying). Intermeasure period/ODR of around 20-50 ms/ 20 – 50 Hz, depending on how stable the readings are.
I have been looking at and testing different STMicroelectronics sensors, the VL6180X being the best option for my job. I have also testet the AMS TMF8801.
The VL6180X is doing everything as wanted, but its readings are somewhat unstable eg. jumping around from 97 to 102 mm (for a correct actual distance of 100 mm).
I have testet other STMicroelectronics sensors, the VL53L4CD and VL53L5CX, but they seem to have the same problem with unstable readings.
I also tested the GP2Y0E03, which is very accurate, and stable, as long as the surface is 100 % perpendicular to the sensor, which it is not always for my case (but apart from that an impressive sensor).
Regarding the TMF8801. I think it is the best ToF sensor, as it is very stable (either it is reading out the same one value or jumping between two values). I have been testing the TMF8801 using the libraries from sparkfun and DFrobot.
Using the sparkfun library. The readings from the sensor makes a “jump” at 99 mm. Depending on if its calibrated or not, it the jumps from 99 to ~105 / ~131 mm. I have written this as an issue in the sparkfun library github. I cant figure out why this happens, maybe its because its missing this RAM patch download.
Using the DFrobot library. The “jumping” is eliminated OK. Maybe because this library has a RAM patch download function. The problem with this library is I cant change the intermeasure period/ODR, its say default 100 ms / 10 Hz (but it seems more like 180 ms).
Regarding RAM patch, the TMF 8801 AN000597 says that App0 Application (I²C Register 0 has the value 0xC0), outdated, so do not use without patching.
And yes, I did try to put my own library together with parts from both, but I think I overrated my abilities, it did not work : )
If anyone would any experiens with getting the TMF8801 running/ running without these problems, I would be very glad to hear about. (I did try the sparkfun forum without any luck).
Possibly even a complete other sensor, even though I have been looking for any.
Libraries:
https://github.com/sparkfun/SparkFun_TMF8801_Arduino_Library
https://github.com/DFRobot/DFRobot_TMF8x01
TMF8801 DS and AN:
https://ams.com/tmf8801