“Bad LiDAR Health” even if "RNGFND_LANDIND = 1" in arduplane firmware 3.8.0

“Bad LiDAR Health” even if “RNGFND_LANDING = 1” in arduplane firmware 3.8.0

And when landing rangefinder really didnt work!

3.8.0 rc4


Fixed Wing



Even I am getting same problem with Quad, connected LidarLite with pixhawk using PWM. Not getting Sonar Range or Sonar Voltage.
I am referring the following guide - http://ardupilot.org/copter/docs/common-rangefinder-lidarlite.html#problems-with-the-lidar-lite-v2

Not sure, what is going wrong. Were you able to fix it?

Which Lidar are you using? I got the output range data from my Lidar successfully, my problem is the plane did not use range data during landing process.

I am using Garmin Lidar Lite v3 and connecting via PWM. http://static.garmin.com/pumac/LIDAR_Lite_v3_Operation_Manual_and_Technical_Specifications.pdf

I have rechecked the connectors, BEC voltage in PWM pins & tried the setup with firmware versions : APM:Copter V3.4.6 & APM Copter V3.3.3 but not getting the Sonar Range or Sonar Voltage values.

Attached is the log file generated from Mission Planner for your reference.

rngfinder_mission_planner.txt (15.3 KB)

Any pointers will be appreciated.


Im using I2C port here. And as now it works good, but plane dont use it in landing.

What is your drone type and firmware ?

My drone type is a quadcopter and firmware is APM:Copter V3.5.0-rc6 (efab409b)

You mentioned, that you used I2C port, did you directly connected your Lidar Lite V3 with I2c or did you create a new connector with Capacitor and BEC connections?

@ak1801 Iam using it directly connected through I2C port, no BEC. Till now I can read the data successfully. You must notice that there are some changing of parameters in V3.5.0 from older firmwares.

@FireFly - Thanks for your response. Yesterday I tried directly connecting LidarLite V3 through I2C, unfortunately it didn’t work. I tried with RNGFND_TYPE = 3. Even tried setting it to 4 & 15, but no luck. Any other parameter change am I missing?

As mentioned in forums & docs, after making the connections I tried to test I2C using NSH console - using commands:

ll40ls info i2c
ll40ls test i2c

but it said ll40ls command not found.

Can you share what are you getting after running these commands?

Thanks for your support.

LidarLite v3 you must set RNGFND_TYPE = 15, are your other I2C devices work well?

Yes, I connected the Optical Flow with same I2C and it works fine.

Okay, I2C port is good, then its hardware problem or your Lidar having a problem I think

Just to make sure : Have you connected the Lidar on I2C and set rangefinder type to 15 ?
If you have an Arduino or a Raspberry Pi you can check if it works on I2C with the Garmin libraries

@FireFly @ppoirier - The lidar is working fine now with I2C. I am getting the Sonar Range but not getting the Sonar Voltage.

I was following the old guide for making the connections - http://ardupilot.org/copter/docs/common-rangefinder-lidarlite.html
But I just now found out that there has been change in pinout wires from the lidar and the above guide does not work for Lidar Lite V3.

Finally, I referred to the official manual by Garmin - https://static.garmin.com/pumac/LIDAR_Lite_v3_Operation_Manual_and_Technical_Specifications.pdf

Also found a new guide/manual for making correct connections/settings of Lidar Lite V3 with PixHawk running on ArduPilot firmware - https://www.lambdrive.com/depot/Robotics/Controller/Firmware/ArduPilot/LIDAR-Lite.html#connection

Note - I am connecting the lidar directly to pixhawk using I2C (without adding the capacitor but it is recommended as per the official manual)
I am now gonna try the new connections using PWM and will post the findings.

Hope it helps someone.

Why do you want to go with PWM ?
I2C is faster and more accurate.

Currently, I am experimenting with both I2C and PWM. I read on the Ardupilot site that there were some bugs encountered with I2C for earlier versions of Lidar Lite and since V3 is currently supported in beta version only, I want to be handy with both the approaches.

Also, I would like to compare the results from both the ways to have a better understanding.


Cool then, keep us updated with the results,
I am curious to see how the 10 microsec/cm pulse width conversion will be handled compared to directly sending the values on the I2C

1 Like

Congratulations! And I agree with ppoirier, I2C is better.

1 Like

Thanks… Just wondering - are you getting Sonar Voltage with I2C?
I am only getting Sonar Range, not Sonar Voltage with I2C but I am getting both the values with PWM approach(added a 470 Ohm resistor).

Please let me know.