-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Framerate 0Hz not valid #29
Comments
I'm not entirely clear about what you're asking, but I'll try to answer anyway. |
The UART part is fine, confusion comes from the use of I2C and internal frame rate setting of the sensor. For exemple: In your exemple you set the framerate to 20hz and then use the getData method. How is the frame rate irelevent? In our use case we'll:
The engineer says that sending SET_FRAME_RATE with FRAME_0 is not possible in I2C. |
Well, that is peculiar! I assume that the Frame Rate command |
Looping in my colleague @evsc as well Using a sensor for which I just change UART to I2C mode, and set addr to 1. Step 1 returns: READY 5A 06 03 00 00 63 00 00
Here's a sample of how we typically use the library:
|
Hey Bud, just to confirm what Renaud posted above. I ran a little test: In an I2C setup, with your I2C library, when setting the framerate to 0 the get_data command returns successfully (status == TFMP_READY), but all values are zero. It requires the trigger_detection command to be called before the getData command, for it to return actual non-zero values.
So, don't delete those lines from the library :) |
I am not a Benewake engineer. This is my understanding of how the damn thing works: • An internal chip generates Lidar data at 4Khz. A mixed signal processor (MSP) continuously averages that data, which is then sampled by the user. Normal, asynchronous, serial mode output sample rates (frame-rate) are between 1 and 1000. Lower rates deliver more accurate results because the amount of data averaged into each sample is larger. The default rate is 100. My example code sets the frame-rate to 20. • Frame-rate 0 is used only for low-power applications because it shuts down the chip and the MSP. When a trigger is received, the chips wake up, send a programmed burst of data to the MSP, average it, and send it serially to the user. • In I2C mode, any frame-rate setting should be irrelevant, except when it is set to zero. In that case a trigger command must be sent before data can be sampled and read off of the MSP. I could be wrong. When I get the time, I will play around with it more and let you know what I find out. I apologize for any inconvenience. |
There's no inconvenience! For context, we are using the frame-rate-0 mode, because have setups with multiple sensors, where the sensors face each other, or face reflecting surfaces. Triggering them by code, we could avoid that light beams from one sensor could potentially reflect into and interfere with another sensor. |
After discussions with a Benewake rep engineer, he made us aware that 0Hz could not be used in I2C mode. That being said, we used the setting multiple time. Is there a possibility the sensor keeps an internal polling but says the frame rate setting command was succesful, despite it not being "valid"?
The text was updated successfully, but these errors were encountered: