Product: https://buy.garmin.com/en-US/US/p/578152/pn/010-01722-10#specs
Update rate of Lidar Lite v3 HP, according to instruction manual should be >1000hz. However, I couldn’t make it run faster than 450-470hz. I’m using example code “v3HP_I2C” from garmin arduino library.
Hardware: LLv3HP, Arduino Mega 2560, everything wired according to manual, with 1000uF capacitor close to lidar. Tested with 4,7k, 2,2k and without pull-up resistors on I2C. I have not observed any communication issues.
Update rate testing (2 ways):
- using millis() in code
- running continuous and timed measurement in original code, calculating number of results given in time of 10s.
Both methods gave the same results.
Configuration modes 0,1,3,4,5: 290-360hz
Modes 2,6: 420-470hz at short ranges.
Tested indoors, at distances 1-7m with lidar pointing at normal surfaces at small angles. I also tested it with custom configuration mode with 0x02 set to 0x01 (very low acquisition count) and 0x04 set to 0x00 (quick termination on). Results: up to 470hz. But as stated in manual, I should get >1,5khz with small acquisition count settings and using fast measurement algorithm (take range, read previous measurement, wait), which is used in this library. These results are not at all consistent with “rate = 1/n, where n is the number of acquisitions” equation. Disabling fast i2c resulted in speed reduction to 280-350hz. Measuring distance in standard way (wait, take range, wait, read) reduced speed to 200-300hz.
What is the issue here? How can I achieve update rate >1000 hz with my lidar? Might it be an i2c problem (but connection is stable and if I just take range once and then read the same measurement in loop i can get ~2000hz)?