GARMIN 15776 LIDAR-Lite V4 LED Distance Measurement Sensor
Specifications
Specification | Measurement |
Unit dimensions (L × W × H)
NOTE: Measurements do not include an attached connector. |
52.2 x 24 x 21.2 mm (2.1 x 0.9 x
0.8 in.) |
Weight | 14.6 g (0.5 oz.) |
Operating temperature | -20 to 60°C (-4 to 140°F) |
Storage temperature | -40 to 85°C (-40 to 185°F) |
Power (operating voltage) | 4.75 to 5.25 Vdc |
Current consumption | 2 mA idle
85 mA during an acquisition |
Input voltage (VIN) | 3.3 V Max |
Range | 5 cm (1.97 in.) to 10 m (32.8 ft.) |
Resolution | 1 cm (0.4 in.) |
Beam divergence | 4.77 degrees |
LED wavelength | 940 nm |
Optical aperture | 14.9 mm |
Update rate | I2C: Greater than 200 Hz typical ANT: Up to 200 Hz to a 90% reflective target indoors at 2 m in normal operating mode |
Interface | I2C or ANT®
Configurable for SPI with user applications |
Measurement repeatability
NOTE: As measured indoors to a 90% reflective target; 1 cm is equivalent to 1 standard deviation. Measurements were obtained using high accuracy mode. |
± 1 cm to 2 m
± 2 cm to 4 m ± 5 cm to 10 m |
52.17 mm (2.05 in.) | |
44.98 mm (1.77 in.) | |
10.6 mm (0.42 in.) | |
24.03 mm (0.95 in.) | |
1 mm (0.04 in.) | |
18 mm (0.71 in.) | |
21.35 mm (0.84 in.) | |
21.2 mm (0.83 in.) |
- Mounting OptionsCable tie: You can secure the device to your application using a 3.6 mm (0.14 in.) wide cable tie. You should route the cable tie through the channel in the center of the device. Double-sided tape: You can secure the bottom of the device to your application using double-sided tape. For best results, you should select a tape that has a high-strength bond.
- Labeling Requirements The LIDAR-Lite v4 LED device is an FCC-certified transmitter. If you are integrating the device with another product, you must ensure the FCC ID is visible from the outside of your product. You are responsible for meeting any other labeling requirements imposed by the FCC rules and any rules related to the compliance of your end product.
- ConnectionsLIDAR-Lite v4 LED Connection Diagram The through-holes on the LIDAR-Lite v4 LED device are arranged in 2 rows of 5 holes each, with a 2 mm pitch between each connection.
Device Dimensions
Pin | Pin Name | Function | V Max |
VIN | 5 V Power | 5 V | |
GND | Ground | — | |
I2C SDA | I2C Data | 3.3 V |
Pin | Pin Name | Function | V Max |
I2C SCL | I2C Clock | 3.3 V | |
GPIOA | General Purpose I/O | 3.3 V | |
GPIOB | General Purpose I/O | 3.3 V | |
VRETURN | nRF52840 DBG | 3.3 V | |
nRESET | nRF52840 DBG | 3.3 V | |
SWCLK | nRF52840 DBG | 3.3 V | |
STUDIO | nRF52840 DBG | 3.3 V |
Operational Information
Technology
This device measures distance by calculating the time delay between the transmission of near-infrared light and its reception after reflecting off of a target, using the known speed of light. The LIDAR-Lite v4 LED contains an nRF52840 SoC from Nordic Semiconductor. This SoC pairs an ARM Cortex-M4 processor with 1 MB of flash memory and 256 KB of RAM. The included 2.4GHz multiprotocol radio and S340 SoftDevice support Ultra Low Power (ULP) wireless technologies, including ANT and Bluetooth® 5 LE. The LIDAR-Lite v4 LED comes preloaded with an application that allows the developer to communicate with the device using several methods. An I2C interface allows the device to be connected to an external micro-controller, or it can be controlled and operated wirelessly using the ANT wireless protocol in accordance with the ANT Ranging Profile. The LIDAR-Lite v4 LED also comes preloaded with a Bluetooth LE secure DFU bootloader, which enables wireless software updates using a Bluetooth LE-capable device.
Theory of Operation
When the device takes a measurement, it first performs a receiver adjustment routine, correcting for changing ambient light levels and allowing maximum sensitivity. The device sends a reference signal directly from the transmitter to the receiver. It stores the transmit signature, sets the time delay for “zero” distance, and recalculates this delay periodically after several measurements. Next, the device initiates a measurement by performing a series of acquisitions. Each acquisition is a transmission of the main light signal while recording the return signal at the receiver. If there is a signal match, the result is stored in memory as a correlation record. The next acquisition is summed with the previous result. When an object at a certain distance reflects the light signal back to the device, these repeated acquisitions cause a peak to emerge, out of the noise, at the corresponding distance location in the correlation record. The device integrates acquisitions until the signal peak in the correlation record reaches a maximum value. If the returned signal is not strong enough for this to occur, the device stops at a predetermined maximum acquisition count. Signal strength is calculated from the magnitude of the signal record peak and a valid signal threshold is calculated from the noise floor. If the peak is above this threshold, the measurement is considered valid and the device will calculate the distance. If the peak is not above the threshold, it will report 1 cm. When beginning the next measurement, the device clears the signal record and starts the sequence again.
I2C InterfaceThis device has a 2-wire, I2C-compatible serial interface. It can be connected to an I2C bus as a slave device, under the control of an I2C master device. It supports 400 kHz Fast Mode data transfer. The I2C bus operates internally at 3.3 Vdc. Internal 13-kiloohm pull-up resistors ensure this functionality and allow for a simple connection to the I2C host. The device has a 7-bit slave address with a default value of 0x62. The effective 8-bit I2C address is 0xC4 write and 0xC5 read. The device does not respond to a general call. Support is not provided for 10-bit addressing. The device auto-increments the register address with successive reads or writes within an I2C block transfer. This is commonly used to read the two bytes of a 16-bit value within one transfer. See ObtainingMeasurements from the I2C Interface, page 2. For a list of all available control registers, see Control Register List, page 5. For more information about the I2C protocol, see I2C Protocol Information, page 4. Obtaining Measurements from the I2C InterfaceYou can obtain measurement results from the I2C interface.
- Write 0x04 to register 0x00.
- Read register 0x01.
- Repeat step 2 until bit 0 (LSB) goes low.
- Read two bytes from 0x10 (low byte 0x10 then high byte 0x11) to obtain the 16-bit measured distance in centimeters.
Pin | Description | Functionality | Details |
GPIO A | TRIGGER | LIDAR-Lite v4 LED
measurement trigger input |
Toggle to start a distance measurement. The LIDAR- Lite v4 LED starts a distance measurement on either the rising or falling edge. If a distance measurement is triggered while the device is busy, the requested measurement is ignored. |
GPIO B | MONITOR | LIDAR-Lite v4 LED BUSY
status output |
Indicates when the LIDAR- Lite v4 LED is busy. If low, the device is idle and is ready to start a distance measurement. If high, the device is busy taking a distance measurement. Wait for the signal to drop before you toggle GPIO A to trigger a distance measurement. |
Triggering and Reading Distance Measurements
- Toggle the TRIGGER
- Wait for the MONITOR pin to go
- Read two bytes from 0x10 (low byte 0x10, then high byte0x11) to obtain the 16-bit measured distance in
NOTE: If you need to take distance measurements as quickly as possible, you can reverse steps 2 and 3 so the LIDAR-Lite v4 LED device takes a distance measurement while performing the I2C register read. When this occurs, the LIDAR-Lite v4 LED device is in the process of measuring the distance while the registers are read. The distance returned is the previously triggered measurement.
ANT
ANT is a practical wireless network protocol running in the 2.4 GHz ISM band. Designed for ultra-low power, ease of use, efficiency, and scalability, ANT easily handles peer-to-peer, star, tree, and mesh topologies. Other ANT capable devices can connect to the LIDAR-Lite v4 LED to control it, receive data from it, and configure it wirelessly. ANT messages are sent and received from the LIDAR-Lite v4 LED in accordance to the ANT ranging profile. For more details about the ANT ranging profile and the capabilities and workings of the ANT wireless protocol, see ANT Ranging Profile and ANT Message Protocol and Usage at https://github.com/garmin/. Connecting Wirelessly Using ANT Before you can connect to the LIDAR-Lite v4 LED using ANT, you must complete these tasks.
- Install Windows 7 Service Pack 1 or higher on your PC
- Install .Net Framework 4.5 or higher on your PC
- Install Visual C++ 2008 SP1 Redistributable Package or higher on your PC
- Purchase a Garmin® ANT USB-m stick
- Connect the USB ANT stick to your
- Download and install the Garmin ANT demo PC application on your computer (https://github.com/garmin/) .
- Configure and connect the PC application to the LIDAR-Litev4 LED device as specified in the readme file that is included with the Garmin ANT demo PC
I2C Protocol Information
The sensor module has a 7-bit slave address with a default value of 0x62 in hexadecimal notation. The effective 8 bit I2C address is 0xC4 write, 0xC5 read. The device will not respond to a general call.
The last NACK in the read is optional, but the formal I2C protocol states that the master shall not acknowledge the last byte.
I2C Protocol Operation
This protocol description uses the term master to refer to the host controller, and the term LIDAR device to refer to the LIDAR-Lite v4 LED device acting as a slave on the I2C bus. When working with the I2C serial bus protocol, the LIDAR device operates as follows.
- The master initiates data transfer by establishing a start condition, which consists of a high-to-low transition on the SDA line while SCL is
- The master sends an address byte, which consists of the 7-bit slave
- The master sends a read/write bit with a zero state, which indicates a written request. A write operation is used as the initial stage of both read and write
- If the slave address corresponds to the LIDAR device address, the LIDAR device responds by pulling SDA low during the ninth clock pulse. This operation is considered the acknowledge bit. At this stage, all other devices on the bus remain idle while the selected LIDAR device waits for data to be written to or read from its shift
- Data transmits over the serial bus in sequences of nine clock pulses (eight data bits followed by an acknowledge bit). These transmissions must occur on the SDA line during the low period of SCL and remain stable during the high period of SCL.
- The master sends an 8-bit data byte following the slave address, which loads the I2C control register on the LIDAR device with the address of the first control register to be accessed.
- The master requests a read operation from the LIDAR device or sends a write operation to the LIDAR
Read OperationAfter the master establishes communication with the LIDAR device, you can obtain a reading from the LIDAR device.
- The first data frame sets the address of the desired read
- The master sends a stop bit at the completion of the first data
- The master initiates a new start condition, which consists of the slave I2C device address with the read bit set (one state).
- The LIDAR device sends an acknowledge bit to the master when it receives a valid
- The master reads one or more data bytes in succession. The internal device address pointer auto increments with each byte
- The master strobes the acknowledge bit following each data byte except for the final byte in the transfer before sending the stop condition.
- After the read cycle is done, the master sends a stop condition to complete the
- The master sends one or more 8-bit data blocks to the LIDAR The internal device address pointer auto increments with each byte access.
- The LIDAR device sends an acknowledge bit to the master when it receives and writes a valid data
- After the write cycle is done, the master sends a stop condition to complete the
Control Register List
Address | R/W | Name | Description | Initial Value | Details |
0x00 | W | ACQ_COMMANDS | Device command | — | 0x00, page 5 |
0x01 | R | STATUS | System status | — | 0x01, page 5 |
0x05 | R/W | ACQUISITION_COUNT | Maximum acquisition count | 0xFF | 0x05, page 6 |
0x10 | R | FULL_DELAY_LOW | Distance measurement low byte | — | 0x10, page 6 |
0x11 | R | FULL_DELAY_HIGH | Distance measurement high byte | — | 0x11, page 6 |
0x16 | R | UNIT_ID_0 | Unit ID, byte 0 | — | 0x16, page 6 |
0x16 | W | UNIT_ID_0_UNLOCK | Write unit ID 0 for I2C address unlock | — | 0x16, page 6 |
0x17 | R | UNIT_ID_1 | Unit ID, byte 1 | — | 0x17, page 6 |
0x17 | W | UNIT_ID_1_UNLOCK | Write unit ID 1 for I2C address unlock | — | 0x17, page 6 |
0x18 | R | UNIT_ID_2 | Unit ID, byte 2 | — | 0x18, page 6 |
0x18 | W | UNIT_ID_2_UNLOCK | Write unit ID 2 for I2C address unlock | — | 0x18, page 6 |
0x19 | R | UNIT_ID_3 | Unit ID, byte 3 | — | 0x19, page 6 |
0x19 | W | UNIT_ID_3_UNLOCK | Write unit ID 3 for I2C address unlock | — | 0x19, page 6 |
0x1A | R/W | I2C_SEC_ADDR | Write new I2C address after unlock | — | 0x1A, page 6 |
0x1B | W | I2C_CONFIG | Default address response control | 0x00 | 0x1B, page 6 |
0x1C | R/W | DETECTION_SENSITIVITY | Peak detection threshold bypass | 0x00 | 0x1C, page 6 |
0x30 | R | LIB_VERSION | Read Garmin software library version string | — | 0x30, page 7 |
0x52 | R/W | CORR_DATA | Correlation record data control | — | 0x52, page 7 |
0x72 | R | CP_VER_LO | Coprocessor firmware version low byte | — | 0x72, page 7 |
0x73 | R | CP_VER_HI | Coprocessor firmware version high byte | — | 0x73, page 7 |
0xE0 | R | BOARD_TEMPERATURE | Board temperature | — | 0xE0, page 7 |
0xE1 | R | HARDWARE_VERSION | Board hardware version | — | 0xE1, page 7 |
0xE2 | R/W | POWER_MODE | Power state control | 0xFF | 0xE2, page 7 |
0xE3 | R/W | MEASUREMENT_INTERVAL | Automatic measurement rate | 0xFF | 0xE3, page 7 |
0xE4 | W | FACTORY_RESET | Reset default settings | — | 0xE4, page 7 |
0xE5 | R/W | QUICK_TERMINATION | Quick acquisition termination | 0x08 | 0xE5, page 7 |
0xE6 | W | START_BOOTLOADER | Start secure Bluetooth LE bootloader | — | 0xE6, page 7 |
0xEA | R/W | ENABLE_FLASH_STORAGE | Store register settings | 0x00 | 0xEA, page 7 |
0xEB | R/W | HIGH_ACCURACY_MODE | Improved accuracy setting | 0x14 | 0xEB, page 8 |
0xEC | R | SOC_TEMPERATURE | SoC temperature | — | 0xEC, page 8 |
R/W | Name | Description | Initial Value |
W | ACQ_COMMANDS | Device command | — |
Bit | Function |
7:0 | Write 0x03: Take distance measurement without receiver bias correction
Write 0x04: Take distance measurement with receiver bias correction |
Bit | Function |
5 | DC error flag
0: No error detected 1: An error was detected in correcting DC noise bias, and distance measurements are expected to be inaccurate |
4 | DC bias done flag
0: The device is performing automatic DC noise bias corrections 1: DC noise is within tolerance, and the automatic DC noise bias corrections are currently idle |
3 | Low power flag
0: Device is powered on. I2C commands can be issued at a normal rate. 1: The device is in low power mode. To allow the device to power on and perform the I2C command, a 10ms delay after each command is recommended. |
Bit | Function |
2 | Reference overflow flag
0: Reference data has not overflowed 1: Reference data in correlation record has reached the maximum value before overflow (this occurs when taking measurements with biasing enabled) |
1 | Signal overflow flag
0: Signal data has not overflowed 1: Signal data in correlation record has reached the maximum value before overflow (this occurs with a strong received signal strength) |
0 | Busy flag
0: Device is ready for a new command 1: Device is busy taking a measurement or powering on |
0x05
R/W | Name | Description | Initial Value |
R/W | ACQUISITION_COUNT | Maximum acquisition count | 0xFF |
Bit | Function |
7:0 | Maximum number of acquisitions during measurement |
0x10
R/W | Name | Description | Initial Value |
R | FULL_DELAY_LOW | Distance measurement low byte | — |
Bit | Function |
7:0 | Distance measurement result in centimeters, low byte. |
0x11
R/W | Name | Description | Initial Value |
R | FULL_DELAY_HIGH | Distance measurement high byte | — |
Bit | Function |
7:0 | Distance measurement result in centimeters, high byte. |
0x16
R/W | Name | Description | Initial Value |
R | UNIT_ID_0 | Unit ID, byte 0 | — |
W | UNIT_ID_0_UNLOCK | Write unit ID 0 for I2C address unlock | — |
Bit | Function |
7:0 | Read byte zero (LSB) of the unit ID
Write the value in UNIT_ID_0 here as part of enabling a non- default I2C address. See I2C_SEC_ADDR (0x1A, page 6). |
0x17
R/W | Name | Description | Initial Value |
R | UNIT_ID_LOW | Unit ID, byte 1 | — |
W | UNIT_ID_1_UNLOCK | Write unit ID 1 for I2C address unlock | — |
0x18
R/W | Name | Description | Initial Value |
R | UNIT_ID_2 | Unit ID, byte 2 | — |
W | UNIT_ID_2_UNLOCK | Write unit ID 2 for I2C address unlock | — |
Bit | Function |
7:0 | Read byte two of the unit ID
Write the value in UNIT_ID_2 here as part of enabling a non- default I2C address. See I2C_SEC_ADDR (0x1A, page 6). |
0x19
R/W | Name | Description | Initial Value |
R | UNIT_ID_3 | Unit ID, byte 3 | — |
W | UNIT_ID_3_UNLOCK | Write unit ID 3 for I2C address unlock | — |
Bit | Function |
7:0 | Read byte three (MSB) of the unit ID.
Write the value in UNIT_ID_3 here as part of enabling a non- default I2C address. See I2C_SEC_ADDR (0x1A, page 6). |
0x1A
R/W | Name | Description | Initial Value |
R/W | I2C_SEC_ADDR | Write new I2C address after unlock | — |
Bit | Function |
7:0 | 0x00: Use default valid measurement detection algorithm based on the peak value, signal strength, and noise in the correlation record. 0x01 to 0xFF: Set simple threshold for valid measurement detection. Values 0x20 to 0x60 generally perform well. |
0x30
R/W | Name | Description | Initial Value |
R | LIB_VERSION | Read Garmin software library version string | — |
Bit | Function |
7:0 | Read 11 consecutive bytes in one I2C read for the full library version string. Each byte represents a character using ASCII encoding. |
0x52
R/W | Name | Description | Initial Value |
R/W | CORR_DATA | Correlation record data control | — |
Bit | Function |
7:0 | Read two consecutive bytes to retrieve correlation record data as a 16-bit, two’s complement value. The memory index is incremented automatically, and successive two-byte reads produce sequential data.
Write 0x00: Reset correlation internal pointer to zero. |
0x72
R/W | Name | Description | Initial Value |
R | CP_VER_LO | Coprocessor firmware version low byte. | — |
Bit | Function |
7:0 | Coprocessor firmware version low byte. |
0x73
R/W | Name | Description | Initial Value |
R | CP_VER_HI | Coprocessor firmware verison high byte | — |
Bit | Function |
7:0 | Coprocessor firmware version high byte. |
0xE0
R/W | Name | Description | Initial Value |
R | BOARD_TEMPERATURE | Board temperature | — |
Bit | Function |
7:0 | Returns the board’s temperature as an 8-bit, two’s complement value in Celsius. |
0xE1
R/W | Name | Description | Initial Value |
R | HARDWARE_VERSION | Board hardware version | — |
Bit | Function |
7:0 | Board hardware version |
0xE2
|
0xE3
R/W | Name | Description | Initial Value |
R/W | MEASUREMENT_INTERVAL | Automatic measurement rate | 0xFF |
Bit | Function |
7:0 | This register is used in conjunction with Synchronous Mode
(0xE2, page 7). 0x00 and 0xFF: Trigger a distance measurement for every ANT message 0x01 to 0xFE: The number of ANT channel periods to wait before triggering a distance measurement, effectively reducing the automatic measurement rate. HIGH_ACCURACY_MODE must be disabled before adjusting the measurement interval (0xEB, page 8). |
0xE4
R/W | Name | Description | Initial Value |
W | FACTORY_RESET | Reset default settings | — |
Bit | Function |
7:0 | 0x01 to 0xFE: Resets the NVM/Flash storage information back to default settings and executes a SoftDevice reset. |
0xE5
R/W | Name | Description | Initial Value |
R/W | QUICK_TERMINATION | Quick acquisition termination | 0x08 |
Bit | Function |
7:0 | 0x00: Enable measurement quick termination. The device terminates the distance measurement early if it anticipates the signal peak in the correlation record will reach the maximum value. 0x08: Disable measurement quick termination. |
0xE6
R/W | Name | Description | Initial Value |
W | START_BOOTLOADER | Start secure Bluetooth LE bootloader. | — |
Bit | Function |
7:0 | 0x01 to 0xFE: Restarts the device and launches the Bluetooth LE advertiser. All other functionality is disabled while using the Bluetooth LE bootloader. |
|
0xEA
R/W | Name | Description | Initial Value |
R/W | POWER_MODE | Power state control | 0xFF |
pin J-Link Wiring
You should connect the 10-pin J-Link debugging probe to the LIDAR-Lite v4 LED device as shown in the diagram and table below.
NOTE: A 10-pin J-link debugging probe cannot supply power to the LIDAR-Lite v4 LED device. Connections 1 and 2 are connected to the device from an external power supply. The power supply and debugging probe should share a common ground at pin 2 on the LIDAR-Lite v4 LED device.
Connection | 10-Pin J-Link Debugging Probe Pin | LIDAR-Lite v4 LED Pin |
— | 2 (GND) to common ground | |
— | 1 (VIN) to power source | |
3 (GND) to common ground | — | |
1 (VCC) | 7 (VRETURN) | |
10 (nRESET) | 8 (nRESET) | |
2 (SWDIO) | 10 (SWDIO) | |
4 (SWCLK) | 9 (SWCLK) |
20- pin J-Link Wiring
You should connect the 20-pin J-Link debugging probe to the LIDAR-Lite v4 LED as shown in the diagram and table below.
Connection | 20-Pin J-Link Debugging Probe Pin | LIDAR-Lite v4 LED Pin |
7 (SWDIO) | 10 (SWDIO) | |
1 (VCC) | 7 (VRETURN) | |
20 (GND) | 2 (GND) | |
15 (nRESET) | 8 (nRESET) | |
19 (5V Supply) | 1 (5V) | |
9 (SWCLK) | 9 (SWCLK) | |
Short 11 to 12 | Not applicable |
Standard Arduino
The LIDAR-Lite v4 LED maximum signal level is 3.3 V. A signal greater than 3.3 V will damage the device. You should connect the Arduino DUE and the LIDAR-Lite v4 LED as shown in the diagram and table.NOTE: You must splice the ground wires so all components share a common ground. These components include the power supply, the programmer, the microcontroller operating I2C, and any GPIOs.
Item | Arduino DUE | LIDAR-Lite v4 LED | V Max |
5V | 1 (5 V) | 5 V | |
GND | 2 (GND) | — | |
SDA 20 | 3 (SDA) | 3.3 V | |
SCL 21 | 4 (SCL) | 3.3 V | |
PWM 3 | 6 (GPIOB) | 3.3 V | |
PWM 2 | 5 (GPIOA) | 3.3 V |
Troubleshooting
Product SupportContact your authorized Garmin Reseller for troubleshooting information related to your device and its specific application.Go to support.garmin.com for general help and information, such as product manuals, specifications, and frequently asked questions. The I2C is not responsive while the device is powered on GPO B and is used as a boot pin to start the LIDAR-Lite v4 LED Bluetooth LE bootloader. If GPIO B is grounded when the device is powered on, the bootloader is enabled and I2C and ANT functionality are disabled. Verify GPIO B is not grounded
- If the LIDAR-Lite v4 LED device still has the default application installed from the factory, verify that you have the Garmin developer key
- If you have reprogrammed the device and you are using the public network key, verify that you have the public network key
- Verify that you have the same RF frequency selected on both the LIDAR-Lite v4 LED device and the Garmin PC
- Verify that you have the correct channel parameters
TIP: You can set wildcards for the channel parameters to connect to any device. On the PC simulator, if you set the device number and transmission type to zero, the Garmin PC simulator connects to a device with any device number and transmission type.
References
[xyz-ips snippet=”download-snippet”]