Hugo van Santen

disappointing  VL53L0x multiple sensors driver

Discussion created by Hugo van Santen on Apr 25, 2018
Latest reply on May 8, 2018 by john kvam


I got a st VL53L0X shield from ST, and for any people who needed some code, I wrote some faste code here:
les-beffroyables/télémétrie/1er_test_53L0A1 at master · h2mille/les-beffroyables · GitHub  and can use the 3 sensors+write on the 7digit screen.
Anyway this are my conclusions, using it on Arduino Uno original:
-the original code doesn't work on multiple sensors: I had some stupidly hard calibration error  on the use of the 2nd sensor.

-Adafruit used your driver to make a new one, and as far as I tryed, it was really quick: it neither work. Anyway, every sensor takes 40% of memory space of the arduino. I think it's really quite a lot for a simple telemeter sensor. But even with only two sensors, it doesn't work. Ok, I'm using a competitor board, and ST doesn't like it. But is the code really optimised to save space?.
-Pololu made a code using just few percent of memory per sensors, and I can use very easily 3 of them. It's easy, simple, and seems to be based on reverse engineering.  I think it's the only option, as I didn't see any documentation provinding full information about memory map of the chip, initialisation,etc...
-Pololu's code works fine for 3 sensors, but on continuous mode; it doesn't work with more sensors. One of them kind of disconnect (at least stop responding). So I consider ¨Pololu's code working far better than ST's driver.


The sensor itself works fine, but I was told it provides kind of low res 2.5d scanning, to gets moves and so on. What I get is a very small but not very well made telemeter which get sometings some wrong sample (sees something when it shouldn't and sometimes the opposite).


I'm using it for fun, for some hackerspace robotics project, and so I would be glad to only use the arduino IDE. I'm really lazy to try it on a nucleo board, as it shouldn't make a difference. Or did ST used some int instead of int32_t? Some more useful opinion? Does someone can use it properly?
ps: Some people use it with IO expander on I2c line, and now I start to understand why.