Pololu Robotics & Electronics
Menu
My account Comments or questions? About Pololu Contact Ordering information Distributors

Pololu Forum

Multiple VL53L1X on multiple robots

Hi,

I am planning on using multiple VL53L1x boards mounted on multiple mobile robots which work on the same arena. Thus, FOV of VL53L1x is going to intersect with each other and to not to disturb other sensor readings, I plan to first collect an ambient reading (without sending and IR beam) and if there are no readings from other VL53L1x I am going to take a ranging measurement. Is it possible to use your library to start a read sequence without emitting any IR beams. Or is is possible to have low level control on IR emitting.

Hello,

We’re not aware of a way to take a reading with a VL53L1X without turning on the emitter, and our Arduino library doesn’t provide the ability to do this. You might consider asking about this on the ST Community site and looking at the official API and its documentation, which can be found on ST’s VL53L1X product page.

If you do find out how to do this, please let us know!

Kevin

Hi,

Thanks for the answer, in the below code extracted from your library VCSEL periods are set and I think I can set these values to higher values in order to decrease the chance of collision of VCSEL emmisions from different sensors. What do you think about it ? and where I can find more information about those parameters. I could not find those in ST’s API documentation. What does those parameters correspond to exactly ? and where did you get those values to set for different ranging modes ?

=====Code from Pololu library========

case Medium:
// from VL53L1_preset_mode_standard_ranging()

  // timing config
  writeReg(RANGE_CONFIG__VCSEL_PERIOD_A, 0x0B);
  writeReg(RANGE_CONFIG__VCSEL_PERIOD_B, 0x09);
  writeReg(RANGE_CONFIG__VALID_PHASE_HIGH, 0x78);

  // dynamic config
  writeReg(SD_CONFIG__WOI_SD0, 0x0B);
  writeReg(SD_CONFIG__WOI_SD1, 0x09);
  writeReg(SD_CONFIG__INITIAL_PHASE_SD0, 10); // tuning parm default
  writeReg(SD_CONFIG__INITIAL_PHASE_SD1, 10); // tuning parm default

  break;

As the comment says, those values are copied from the ones used in the function VL53L1_preset_mode_standard_ranging() in the API. You can see that function in our Arduino port of the API here.

You might be able to tweak some of these parameters to reduce how much the sensors interfere with each other, but we have not really tried making significant changes from the predefined configurations that the API provides, so I don’t think we have much specific advice to offer.

Kevin