Lidar lite v3 - Always busy

Hi!

I require your help regarding a problem I’m encountering.

Description: I do have four garmin lidar lite v3. 3 of them are running perfecly (in i2c), but one is always busy.

Hardware concerned: lidar lite v3

Software concerned: Matlab

Troubleshooting steps already taken: I permuted all my lidar, . whatever is the position (plug, cabling, i2c master), the fault one is always the same.
before conducting any request, measurement, etc. I always write and read on the register 0x01 to know the current status of teh lidar: it is ending by 0, lidar is free, 1 lidar is busy. The fourth lidar, always the same, is always busy and, therefor, I do not relly on the measurement. i was wondering:

  • if something changed in the hardware (4th bought two weeks ago, three other one 2 year ago),
  • if this problem already occur
  • if there is a way to get a ride of this “busy” status

Additional information:

Thank you so much in advance for your help!

HI @FOULC!

Here is the answer that we received from Garmin. Let us know if it helps you in anyway.

In the August/September time frame, we released an updated version of the LLv3 sensor that incorporated changes that improved accuracy and repeatability of measurements as well as a few other updates to improve the manufacturability of the sensor. We did make every effort to maintain backward compatibility, but depending on the user application, there may be some subtle differences in operation.

There are 2 registers that contain the device serial number, 0x16 (high byte) and 0x17 (low byte). To read the serial number, it is necessary to conduct a 2-byte read of these registers. The newest versions of the v3 have an updated I2C module. Most of the changes to the module were made to support I2C repeated START transactions. While the updated I2C module is largely backwards compatible but there are a couple differences in functionality. One of the main differences is that first byte of every WRITE transaction is used to update the LIDAR-Lite’s internal address pointer. So, to perform a successful write, a WRITE transaction must contain a minimum of 3 bytes between the START condition and the STOP condition.
Device I2C writes should take on the following format –

START
Byte 1 = Device I2C address (with WR bit)
Byte 2 = Register address to write to (with optional address auto-increment bit)
Byte 3 = Data0
(more data bytes if desired)
STOP

If this process is not followed, device WRITES will fail. Further, if a device READ occurs after a mis-aligned data WRITE and that READ is trying to take advantage of register address setup that occurs in the previously failed WRITE, then that READ will also fail.
Device I2C reads should take on the following format –

START
Byte 1 = Device I2C address (with WR bit)
Byte 2 = Register address to read from (with optional address auto-increment bit)
STOP
START
Byte 3 = Device address (with RD bit)
Byte 4 = Data0
(more data bytes if desired)
STOP

I hope this information helps your customer resolve their issues. Please let me know if I can be of any additional assistance.

Hi,

I don’t think it is coming from there. The label on the lidar said produced in 01/2020. on top of that, I can access the SN via register 0x16 and 0x17.
It is good to know there was an update of the i2c,
Just to be sure, was tehre any update on the 0x01 regsister with this new version ?

Kind regards

Mathieu

Hey @FOULC

Here is another email from manufacturer:

In August of 2018 Garmin began manufacturing LLv3 sensors with an updated FPGA platform. As part of the transition to this updated platform, the I2C peripheral was replaced with a custom interface that allowed access to the non-volatile memory in the FPGA to support factory calibration of a small distance offset that was observed in some sensors. In some applications with higher performance processors it has been found that these sensors will exhibit a behavior where the BUSY flag in the status register (address 0x01 bit 0) remains in a high state. While in this BUSY state, the sensor will not respond to measurement acquisition commands and appears to be locked up or not powering on.

To correct for this condition, the attached document describes in more detail the communications protocols necessary to ensure compatibility across all versions of the LLv3 sensor.

But there was no document attached.

And the contact person was [email protected].

Hi,

This sounds exactly like that. Really impressed by the support in this forum. many many many thanks !
If you can get this document, this would be lovely.
i will discard this request for all sensors, not asking them their status!

Kind regards

1 Like

We will get in touch with manufacturer.

Hi @FOULC!

Manufacturer is asking for following:

  1. The serial number of the affected device
  2. The date code from the label on the device
  3. A full register dump from 0x00 to 0xFF

Of these things, the first two should be pretty easy to obtain, so please provide that information as soon as it is available and pursue item 3) as possible.

Hi,

  1. 2020/01
  2. 4UV046435
  3. Should I just write and read on all the register ?

Kind regards

Mathieu

1 Like

Forwarded to manufacturer.

Hey @FOULC

Thanks for the information.  Fortunately, this device is of the most current design!

For the memory dump (item 3), I'm suggesting that when it's in the state that the busy flag is always asserted, please start reading from memory at location 0x00 and continue reading successive memory locations through address 0x7F. It will help us a great deal in our troubleshooting efforts to have all those memory locations' values.

Hi @FOULC

Did you manage to get a register dump?

Thank you.