From cbf3cee0961fbe8c17fb0aa9468f25564f286c08 Mon Sep 17 00:00:00 2001 From: CarlOlsson <carlolsson.co@gmail.com> Date: Thu, 5 Apr 2018 14:46:45 +0200 Subject: [PATCH] ll40ls: increase the number of samples used to find a correlation peak for LitarLite Signed-off-by: CarlOlsson <carlolsson.co@gmail.com> --- .../distance_sensor/ll40ls/LidarLiteI2C.cpp | 14 +++++++++++--- src/drivers/distance_sensor/ll40ls/LidarLiteI2C.h | 3 +++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/drivers/distance_sensor/ll40ls/LidarLiteI2C.cpp b/src/drivers/distance_sensor/ll40ls/LidarLiteI2C.cpp index 5c829e85ab..c5a9066c18 100644 --- a/src/drivers/distance_sensor/ll40ls/LidarLiteI2C.cpp +++ b/src/drivers/distance_sensor/ll40ls/LidarLiteI2C.cpp @@ -329,18 +329,26 @@ int LidarLiteI2C::measure() } /* - reset the sensor to power on defaults + reset the sensor to power on defaults plus additional configurations */ int LidarLiteI2C::reset_sensor() { - int ret = write_reg(LL40LS_MEASURE_REG, LL40LS_MSRREG_RESET); - + int ret; + ret = write_reg(LL40LS_MEASURE_REG, LL40LS_MSRREG_RESET); if (ret != OK) { return ret; } // wait for sensor reset to complete usleep(1000); + ret = write_reg(LL40LS_SIG_COUNT_VAL_REG, LL40LS_SIG_COUNT_VAL_MAX); + + if (ret != OK) { + return ret; + } + + // wait for register write to complete + usleep(1000); return OK; } diff --git a/src/drivers/distance_sensor/ll40ls/LidarLiteI2C.h b/src/drivers/distance_sensor/ll40ls/LidarLiteI2C.h index e99042897f..f2252ab19a 100644 --- a/src/drivers/distance_sensor/ll40ls/LidarLiteI2C.h +++ b/src/drivers/distance_sensor/ll40ls/LidarLiteI2C.h @@ -68,6 +68,9 @@ #define LL40LS_SW_VERSION 0x4f #define LL40LS_SIGNAL_STRENGTH_REG 0x5b +#define LL40LS_SIG_COUNT_VAL_REG 0x02 /* Maximum acquisition count register */ +#define LL40LS_SIG_COUNT_VAL_MAX 0xFF /* Maximum acquisition count max value */ + class LidarLiteI2C : public LidarLite, public device::I2C { public: -- GitLab