Nooploop TOFSense-F Laser Range Sensor User Manual
- June 9, 2024
- Nooploop
Table of Contents
- Nooploop TOFSense-F Laser Range Sensor User Manual
- Disclaimer
- Life Support Policy
- Regulatory Approvals
- 1Introduction
- 2 UART Output
- 2.1 Active Output
- 2.2 Query Output
- 3 IIC Output
- 3.1 IIC Communication
- 4 I/O Output
- 5NAssistant Operations
- 5.1 Firmware Update
- 5.2 Record, Replay and Export
- 6 FOV
- 7 Protocol Unpack
- 7.1 Introduction
- 7.2 Example
- 7.2.1 NLink_TOFSense_Frame0
- 7.2.2 NLink_TOFSense_Read_Frame0
- 7.2.3 NLink_TOFSense_F_Setting_Frame0
- 7.2.4 NLink_TOFSense_IIC_Frame0
- I2C communication process:
- Sinal data read
- Multiple data write
- Multiple data read
- 8 FAQ
- Q1. Can it be used in outdoor conditions?
- Q2. Is there interference between multiple modules?
- Q3. Why does the module have no data output?
- Q4. What should be noted during installation?
- Q5. Is the UART, IIC, and I/O of the module the same interface?
- Q6. After switching to IIC or I/O mode, why does NAssistant software not
- Q7. Whether the module can output point cloud information ?
- Q8. What data will the module output when it exceeds the range?
- Q9. What is the serial port communication terminal model used by the
- Q10.How to calculate the received ad 08 00 as distance value?
- Q11.How is the checksum calculated?
- Q12.Why cannot I communicate in IIC mode?
- Q13.What if there is an error or no data when compiling the ROS driver
- 9 Reference
- 10 Abbreviation and Acronyms
- 11Update Log
- 12 Further Information
- References
- Read User Manual Online (PDF format)
- Download This Manual (PDF format)
Nooploop TOFSense-F Laser Range Sensor User Manual
Disclaimer
Document Information
Nooploop reserves the right to change product specifications without notice.
As far as possible changes to functionality and specifications will be issued
in product specific errata sheets or in new versions of this document.
Customers are advised to check with Nooploop for the most recent updates
on this product
Life Support Policy
Nooploop products are not authorized for use in safety-critical applications (such as life support) where a failure of the Nooploop product would cause severe personal injury or death. Nooploop customers using or selling Nooploop products in such a manner do so entirely at their own risk and agree to fully indemnify Nooploop and its representatives against any damages arising out of the use of Nooploop products in such safety-critical applications.
Regulatory Approvals
The TOFSense-F series sensors, as supplied from Nooploop, has not been
certified for use in any particular geographic region by the appropriate
regulatory body governing radio emissions in that region although it is
capable of such certification depending on the region and the manner in which
it is used. All products developed by the user incorporating the TOFSense-F
series sensors must be approved by the relevant authority governing radio
emissions in any given jurisdiction prior to the marketing or sale of such
products in that jurisdiction and user bears all responsibility for obtaining
such approval as needed from the appropriate authorities.
1Introduction
This document mainly introduces how to use the TOFSense-F and TOFSense-F P, as well as the precautions to be taken during use. You may need to refer to the following information for assistance in understanding:
- TOFSense-F_Datasheet.pdf
2 UART Output
2.1 Active Output
The UART active output mode can be used in single module configurations for
TOFSense-F/TOFSense-F P modules, which by default output measurement
information at a frequency of 50Hz (maximum 350Hz), and the output format
follows the NLink_TOFSense_Frame0 protocol.
To connect TOFSense-F series products to the NAssistant software via a USB to
TTL module (referring to the data manual for wiring and power voltage), after
successful identification, click to enter the setting page . The configuration
diagram for UART active output mode is shown in Figure
- After configuring the parameters, you need to click the ‘Write Parameters’ button to save the
parameters. Once the parameters are written successfully, you can read the parameters once to confirm if they have been successfully saved. (After changing the baud rate parameter of the module, you need to unplug and replug the USB to TTL module for the module to be automatically recognized.)
2.2 Query Output
The UART query output mode can be used in single module configurations for
TOFSense-F series products. In this mode, the controller sends a query command
containing the module ID to the module to be queried, and the module outputs a
frame of measurement information. The query frame format follows the
NLink_TOFSense_Read_Frame0 protocol, and the output frame format follows the
NLink_TOFSense_Frame0 protocol.
To connect TOFSense-F series products to the NAssistant software via a USB to
TTL module (referring to the data manual for wiring and power voltage), after
successful identification, click to enter the setting page . The configuration
diagram for UART query output mode is shown in Figure
- After configuring the parameters, you need to click the ‘Write Parameters’ button to save the
parameters. Once the parameters are written successfully, you can read the
parameters once to confirm if they have been successfully saved. (After
changing the baud rate parameter of the module, you need to unplug and replug
the USB to TTL module for the module to be automatically recognized.)
Figure 2: Configuration diagram for UART query output mode
3 IIC Output
3.1 IIC Communication
In IIC communication mode, the controller can send a read frame to the
specified slave address of the module to be queried according to the IIC
communication timing to obtain distance and other related information of the
module. In addition, various parameters such as the output mode of the module
can also be changed through IIC communication. The format of the read and
write frames follows the NLink_TOFSense_IIC_Frame0 protocol.
When the module is in UART mode (note that NAssistant cannot recognize modules
in IIC mode), TOFSense-F series products can be connected to the NAssistant
software via a USB to TTL module (referring to the data manual for wiring and
power voltage). After successful identification, click to enter the setting
page . The configuration diagram for IIC output mode is shown in Figure 3. The
IIC slave address of the module (7-bit slave address is 0x08 + module ID, and
the ID setting range is 0
to 111) can be changed by setting the module ID. After configuring the parameters, you need to click the ‘Write Parameters’ button to save the parameters.
Note: After switching to IIC mode, please refer to the FAQ section for a way
to switch back to UART mode
Figure 3: Configuration diagram for IIC output mode
4 I/O Output
In I/O output mode, the module cannot output distance values. The two signal lines have opposite levels, and the level of the I/O port is inverted only when the distance changes from small to large and exceeds the high threshold value, or when it changes from large to small and falls below the low threshold value.
When the module is in UART mode (note that NAssistant cannot recognize modules in I/O mode), TOFSense-F series products can be connected to the NAssistant software via a USB to TTL module (referring to the data manual for wiring and power voltage). After successful identification, click to enter the setting page . First, set the hysteresis starting point ‘Band_Start’ and the hysteresis width ‘Bandwidth’ to determine the hysteresis interval. The configuration diagram for I/O output mode is
shown in Figure 4. The distance value is converted to a high or low level
output by hysteresis comparison, and the TX/SCL and RX/SDA outputs are
complementary. The hysteresis comparison schematic is shown in Figure 5. After
configuring the parameters, you need to click the ‘Write Parameters’ button to
save the parameters.
Note: After switching to I/O mode, if you need to change parameters such as
Band_Start and Bandwidth, you can refer to the FAQ section to switch back to
UART mode and then configure the parameters.
For example, if Band_Start and Bandwidth are set to 500 (unit: mm), the low
threshold value is
0.5 meters, and the high threshold value is 1 meter. When the ranging value is
0.3 meters, RX is high level and TX is low level. When the ranging value
increases to 0.8 meters, RX is high and TX is low. When the ranging value
exceeds 1 meter, the level is reversed, RX is low, and TX is high. When the
ranging value drops from more than 1 meter to 0.8 meters, RX is low and TX is
high, and when the ranging value drops below 0.5 meters, the level is
reversed, RX is high, and TX is low.
If only one threshold value is needed, Bandwidth can be set to 0. Also note
that the high level output by the module is 3.3V, and the output current is
small. When driving other devices, be sure to check if it can be driven. If it
cannot be directly driven, you can use a relay or other methods to drive it.
Figure 4: I/O output mode configuration diagram
For TOFSense-F/TOFSense-F P, the value range of Band_Start and Bandwidth is [0~15000] / [0~25000], with the unit of mm.
Figure 5: Hysteresis comparison diagram
5NAssistant Operations
5.1 Firmware Update
At present, TOFSense-F/TOFSense-FP does not support firmware online upgrading.
5.2 Record, Replay and Export
NAssistant provides a convenient data recording, playback, and export function. Users can click the button on the main page menu bar to start real-time raw data recording, and click the button again to stop recording and output the .dat file. The recorded .dat file can be extracted by clicking the button to open the default storage path and sent to the after-sales engineer for troubleshooting. The software is equipped with a playback control bar, which can adjust the playback rate, progress, etc. (the recorded data is the data received by the NAssistant software during the time between the two clicks of the recording button).
Both real-time and playback modes can export text data to a local .xlsx file
by clicking the button
Click the button again to stop exporting and automatically open the folder
where the file is located. The exported data is the data received or played
back by the NAssistant software during the time between the two clicks of the
export button.
Note: If the folder is not automatically opened, find the corresponding folder
according to the log prompt in the lower left corner of the software’s main
page, or click the menu button, click “Open Data Folder”, and look for it in
the “export_data” folder.
Figure 6: Data recording playback and export
6 FOV
The field of view parameter represents the angle covered by the module’s emitted ranging light. The initial field of view parameter for the module is 1~2 degrees.
7 Protocol Unpack
7.1 Introduction
This chapter’s protocol analysis examples are based on the NLink protocol, and
you can also download the NlinkUnpack sample analysis code developed in C
language from the official website, which can effectively reduce the user’s
development cycle.
Based on the data situation of TOFSense-F series products, in order to
represent more data with fewer bytes, we use integers to represent floating-
point numbers and transmit them through protocol frames. Therefore, when
unpacking, the actual data with the multiplier is actually a floating-point
number and needs to be divided by the multiplier indicated in the protocol.
In particular, for int24 type, we need to first convert it to int32 type. To
maintain the sign, we use the method of left shift and then divide by 256. For
example, for position data, we use int24 to represent it, and the multiplier
is 1000. The parsing code is as follows:
uint8_t byte[] = {0xe6,0x0e,0x00};//Decimal value: 3.814
//uint8_t byte[] = {0xec,0xfb,0xff};//Decimal value: -1.044
nt32_t temp = (int32_t)(byte[0] << 8 | byte[1] << 16 | byte[2] << 24) / 256;
float result = temp/1000.0f;
Currently, the protocol verification is mainly based on the single-byte
checksum at the end of the
protocol frame. Example code:
uint8_t verifyCheckSum(uint8_t *data, int32_t length){ uint8_t sum = 0;
for(int32_t i=0;i<length-1;++i){ sum += data[i]; return sum == data[length-1];
7.2 Example
The document assumes a single module continuous ranging scenario.
7.2.1 NLink_TOFSense_Frame0
Data source: Connect the module to the host computer, configure UART as
active output mode, using NLink_TOFSense_Frame0 protocol. For parsing distance
data, please refer to the FAQ.
Raw data: 57 00 ff 00 9e 8f 00 00 ad 08 00 00 03 00 06 41
Table 1: NLink_TOFSense_Frame0 Parsing table
Data | Type | Length (Bytes) | Hex | Result |
---|---|---|---|---|
Frame Header | uint8 | 1 | 57 | 0x57 |
Function Mark | uint8 | 1 | 00 | 0x00 |
reserved | uint8 | 1 | … | * |
id | uint8 | 1 | 00 | 0 |
System_time | uint32 | 4 | 9e 8f 00 00 | 36766ms |
dis*1000 | uint24 | 3 | ad 08 00 | 2.221m |
dis_status | uint8 | 1 | 00 | 0 |
signal_strength | uint16 | 2 | 03 00 | 3 |
range_precision | uint8 | 1 | 06 | 6cm |
Sum Check | uint8 | 1 | 41 | 0x41 |
7.2.2 NLink_TOFSense_Read_Frame0
Data source: Connect the module to the host computer, configure it as
UART query output mode with ID set to 0. To query data, send the following
bytes from the host computer. If you need to query modules with different IDs,
simply change the ID and checksum bytes accordingly.
Raw data: 57 10 FF FF 00 FF FF 63
Table 2: NLink_TOFSense_Read_Frame0 Parsing table
Data | Type | Length (Bytes) | Hex | Result |
---|---|---|---|---|
Frame Header | uint8 | 1 | 57 | 0x57 |
Function Mark | uint8 | 1 | 10 | 0x10 |
reserved | uint16 | 2 | … | * |
id | uint8 | 1 | 00 | 0 |
reserved | uint16 | 2 | … | * |
Sum Check | uint8 | 1 | 63 | 0x63 |
7.2.3 NLink_TOFSense_F_Setting_Frame0
This protocol is a module parameter setting protocol, which can modify the parameters of the module through serial instructions. This function is an advanced feature and if the parameters are modified incorrectly, it may cause the module to not work properly. It is recommended to use this function after having a certain understanding of the entire system parameters.
Table 3: NLink_TOFSense_F_Setting_Frame0 Parsing table
Data | Type | Length (Bytes) | Description |
---|---|---|---|
Frame Header | uint8 | 1 | value = 0x54 |
Function Mark | uint8 | 1 | value = 0x20 |
mix | uint8 | 1 | bit0: [0:write],[1:read]—WO |
reserved | * | 1 | Reserved.The default value is 0xFF |
id | uint8 | 1 | Node ID—RW |
system_time
|
uint32
|
4
| terminal system time,unit:ms—WO
node system time,unit:ms—RO
mode
|
uint8
|
1
| bit1:output mode-[0:active],[1:inquire]—WR
bit2-3:range mode-[00:short],[01:medium],[10:long]—WR
bit4:0:interface mode-[00:uart],[01:can],[10:io],[11:iic]—WR
reserved| *| 2| Reserved.The default value is 0xFF
uart_baudrate
|
uint24
|
3
| UART:4800,9600,14400,19200,38400,43000,57600,76800,115200,230400,46
0800,921600,1000000,1200000,1500000,2000000,3000000
CAN:100000,250000,500000,1000000,2000000,3000000
FOV.x| uint8| 1| Reserved.The default value is 0xFF
FOV.y| uint8| 1| Reserved.The default value is 0xFF
FOV.x_offect| int8| 1| Reserved.The default value is 0xFF
FOV.y_offect| int8| 1| Reserved.The default value is 0xFF
band_start| uint16| 2| [0,25000],unit:mm
band width| uint16| 2| [0,25000],unit:mm
reserved| uint8| 1| Reserved.The default value is 0xFF
refresh rate| uint16| 2| Data refresh rata:1,2,5,10,25,50,100,200,350Hz
filter factor| uint8| 1| Filter factor: 0~255.Default:5
reserved| uint8| 4| Reserved.The default value is 0xFF
Sum Check | uint8 | 1 | the sum check is equal to all previous bytes addded |
---|
7.2.4 NLink_TOFSense_IIC_Frame0
Slave address : The module acts as a slave on the I2C bus and its default address is 0x08 (7-bit address). The slave address is 0x08 + the module ID, so changing the module’s ID parameter will change the slave address. When communicating, it is important to pay attention to address shifting and adding the read/write bit, i.e., when the address is 0x08, the byte with the read/write bit is 0x10 (write) or 0x11 (read).
Register address : If there is no corresponding parameter in the register, the default output is 0xff.
Table 4: NLink_TOFSense_IIC_Frame0 Register parsing and communication flow chart
Starting
address
|
bit
| R/W
---|---|---
0x00
| 31| 30| 29| 28| 27| 26| 25| 24| 23| 22| 21| 20| 19| 18| 17| 16| 15| 14| 13| 12| 11| 10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0|
RO
Reserved| product version
[15-0] product version
0x04
| 31| 30| 29| 28| 27| 26| 25| 24| 23| 22| 21| 20| 19| 18| 17| 16| 15| 14| 13| 12| 11| 10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0|
RO
bootloader version| hardware version
[15-0] hardware version
[31-16] bootloader version
0x08
| 31| 30| 29| 28| 27| 26| 25| 24| 23| 22| 21| 20| 19| 18| 17| 16| 15| 14| 13| 12| 11| 10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0|
RO
firmware version
[0-31] firmware version
0x0C
| 31| 30| 29| 28| 27| 26| 25| 24| 23| 22| 21| 20| 19| 18| 17| 16| 15| 14| 13| 12| 11| 10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0|
RW
Reserved
|
ID
| Reserved| Ragne mode| Output mode|
Interface mode
[0-2] Interface mode: 0-UART , 1-CAN , 2-I/O , 3-IIC (RW)
[3] Output mode: 0-Active output,1-Query output (RO)
[4-5] Ragne mode: 0- Short,1-Median,2-Long (RO)
[8-15] ID: Device ID (RW), the slave address will take effect only after a
power cycle after changing the ID.
0x10
| 31| 30| 29| 28| 27| 26| 25| 24| 23| 22| 21| 20| 19| 18| 17| 16| 15| 14| 13| 12| 11| 10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0|
RW
UART Baudrate
[0-31] uart baudrate
0x14
| 31| 30| 29| 28| 27| 26| 25| 24| 23| 22| 21| 20| 19| 18| 17| 16| 15| 14| 13| 12| 11| 10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0|
RO
CAN Baudrate
[0-31] can baudrate
0x18
| 31| 30| 29| 28| 27| 26| 25| 24| 23| 22| 21| 20| 19| 18| 17| 16| 15| 14| 13| 12| 11| 10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0|
RO
FOV.y_offest| FOV.x_offest| FOV.y| FOV.x
[0-7] FOV.x : X direction FOV, unit: °
[8-15] FOV.y : Y direction FOV, unit: °
[16-23] FOV.x_offest : FOV offset in the X direction, unit: °
[24-31] FOV.y_offest : FOV offset in the Y direction, unit: °
0x1C
| 31| 30| 29| 28| 27| 26| 25| 24| 23| 22| 21| 20| 19| 18| 17| 16| 15| 14| 13| 12| 11| 10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0|
RO
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---
bandwidth| bandstart
[0-15] bandstart : I/O mode latency start,
unit: mm
[16-31] bandwidth : I/O mode loop bandwidth, unit: mm
0x20
| 31| 30| 29| 28| 27| 26| 25| 24| 23| 22| 21| 20| 19| 18| 17| 16| 15| 14| 13| 12| 11| 10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0|
RO
Systime
[0-31] Systime : system time, unit: ms
0x24
| 31| 30| 29| 28| 27| 26| 25| 24| 23| 22| 21| 20| 19| 18| 17| 16| 15| 14| 13| 12| 11| 10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0|
RO
Distance
[0-31] Distance : The distance,unit: mm
0x28
| 31| 30| 29| 28| 27| 26| 25| 24| 23| 22| 21| 20| 19| 18| 17| 16| 15| 14| 13| 12| 11| 10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0|
RO
Signal_strength| Dis_status
[0-15] Dis_status : The distance status
[16-31] Signal_strength
0x2C
| 31| 30| 29| 28| 27| 26| 25| 24| 23| 22| 21| 20| 19| 18| 17| 16| 15| 14| 13| 12| 11| 10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0|
RO
Filter factor| Refresh rate| Range_precision
[0-7] Range_precision : Measurement accuracy, unit: cm, 0xFF represents
greater than or equal to 255cm, 0x00 represents less than 1cm.
[8-23] Refresh rate , unit:Hz
[24-31] Filter factor: 0 ~ 255. Default :5
I2C communication process:
Single data write
Start| Slave Addr|W| ACK| Reg Addr| ACK| Data[7:0]| ACK| Stop
---|---|---|---|---|---|---|---
Sinal data read
Start| Slave Addr|W| ACK| Reg Addr| ACK| Stop
---|---|---|---|---|---
Start| Slave Addr|R| ACK| Data[7:0]| NACK| Stop
Multiple data write
Start| Slave Addr|W| ACK| Reg Addr| ACK| Data[7:0]| ACK| Data[7:0]| ACK|
Data[7:0]| ACK| Stop
---|---|---|---|---|---|---|---|---|---|---|---
Multiple data read
Start | Slave Addr | W | ACK | Reg Addr | ACK | Stop |
---|---|---|---|---|---|---|
Start | Slave Addr | R | ACK | Data[7:0] | ACK | Data[7:0] |
Stop
| | | | | | | | | |
Start: Start signal W: Read flag 1 R: Write flag 0
ACK: Acknowledge NACK: Non-acknowledge Stop: Stop signal
8 FAQ
Q1. Can it be used in outdoor conditions?
The module can resist some natural light influence and can be used outdoors.
Q2. Is there interference between multiple modules?
When multiple modules are working at the same time, even if the infrared light emitted from one module crosses or hits the same position as another module, it will not affect the actual measurement. However, if two modules are at the same horizontal height and facing each other, the measurement may be affected for both of them.
Q3. Why does the module have no data output?
Each module has undergone strict testing before shipping. If there is no data, please first check if the mode, wiring (power supply voltage, wire sequence correctness, and whether the pins on both sides of the communication are conducting as recommended by using a multimeter to test), baud rate, and other configurations are correct. For IIC output mode, the host needs to read data from the set slave address through IIC communication according to the communication timing in the manual. For I/O output mode, please refer to the relevant section on I/O mode introduction.
Q4. What should be noted during installation?
If you don’t want to detect the ground or other reflective surfaces, you need to avoid obstruction within the FOV angle during installation. In addition, attention should be paid to the height of the ground, and similar reflective surfaces such as ground obstruction should be avoided within the FOV. If the installation height is close to the ground, you can consider installing the module slightly tilted upward.
Q5. Is the UART, IIC, and I/O of the module the same interface?
The module’s UART, IIC, and I/O interfaces share the same physical interface, and the corresponding pin sequence can be converted for different communication modes.
Q6. After switching to IIC or I/O mode, why does NAssistant software not
recognize the module? How to switch between different communication modes?
Currently, the NAssistant software only supports the recognition of modules in UART mode. In UART mode, the host computer can enter the setting page to configure the module as an IIC or I/O communication mode after successful recognition through the software. In IIC communication mode, the module can be switched back to UART or I/O mode by sending instructions to the module according to the IIC communication protocol. Additionally, if there is no IIC test environment or if it is switched to I/O mode, it can be switched back to UART mode as follows:
- The user needs to prepare a USB to TTL module that supports 921600 baud rate (CP2102 is recommended) and install the corresponding driver, connect the USB to TTL module’s TX, RX, and GND to the corresponding pins of the TOF module, and temporarily not connect the VCC pin. Then plug the USB to TTL module into the
- Open the NAssistant software, click on the icon to enter the serial port debugging assistant, change the baud rate to 921600, select the COM port corresponding to the USB to TTL module, and then click the connect button to connect to the COM port (most situations will automatically connect). In the one-way send text box, enter 54 20 00 ff 00 ff ff ff ff 00 ff ff 00 10 0e ff ff ff ff ff ff ff ff ff ff ff 00 ff ff ff ff 7c , change the send interval in the timer send column to 20ms, and then check the timer
- At this point, connect the USB to TTL module’s 5V to the TOF module’s VCC pin. The module will switch to UART mode and start outputting data. Then uncheck the timer send button, disconnect the USB to TTL module, and then power on the module. Finally, click the recognition button on the main page to recognize the
If the switch fails, pull out the USB to TTL module and repeat the entire step. Do not plug and unplug the VCC pin repeatedly while sending commands. If the module can be recognized normally but the serial port output data is abnormal, you can manually change to UART mode in the setting page.
PS: If the TOF module’s VCC pin is connected to the USB to TTL module’s 5V and the module continuously sends protocol data such as 80 00 80 00…, first click the connect button to temporarily disconnect the COM port, change the baud rate to 115200, and then click the connect button to reconnect to the COM port. If the data in the serial port debugging assistant starts with b3 b1 at this point, enter de ed 00 00 05 04 3b 01 00 00 10 in the one-way send text box and click send. Then disconnect the USB to TTL module, power on the module, and click the recognition button on the main page to recognize the module. If the data still starts with b3 b1 after re-plugging, repeat the PS steps.
Q7. Whether the module can output point cloud information ?
The module can only output one distance at a time and does not currently support the output of point cloud information.
Q8. What data will the module output when it exceeds the range?
TOFSense-F:
When the range exceeds 15 meters, the error is large in the range of 15 to approximately 20 meters. Beyond the maximum range of 20 meters, the distance output is fixed at 0 meters. At this time, you can refer to the distance status indicator in the data manual to determine the validity of the data.
TOFSense-F P:
When the range exceeds 25 meters, the distance output is fixed at 0 meters. At this time, you can refer to the distance status indicator in the data manual to determine the validity of the data.
Q9. What is the serial port communication terminal model used by the
module? Flight control, MCU without this terminal interface how to do?
The module uses a GH1.25 terminal. You can purchase GH1.25 to other terminal adapters or cut off the GH1.25-GH1.25 connection that comes with the product and weld other terminals yourself. Please refer to the data manual for wiring sequence, power supply voltage, signal line level, etc.
Q10.How to calculate the received ad 08 00 as distance value?
The data in the protocol frame is stored in little-endian mode, and it is multiplied by a certain multiple during encoding. For example, “ad 08 00” is first restored to hexadecimal data 0x0008ad,which translates to 2,221 in decimal, and divided by 1000 to become 2.221 meters.
Q11.How is the checksum calculated?
The checksum is the sum of all the bytes in the previous data, and the lowest byte is taken as the data. For example, the checksum for the data “55 01 00 ef 03” is 0x55 + 0x01 + 0x00 + 0xef + 0x03 = 0x0148, so the checksum is 48. Therefore, the complete data of this frame is 55 01 00 ef 03 48.
Q12.Why cannot I communicate in IIC mode?
In IIC mode, the SDA and SCL pins of the device are recommended to output in open drain mode, and a pull-up resistor is required on the bus. When communicating, it is necessary to write the start, stop, read, write, acknowledge, etc. functions according to the standard IIC communication timing, and when communicating with the TOF module, refer to the NLink_TOFSense_IIC_Frame0 protocol in the user manual to read and write the registers. It is particularly important to note the shifting of the 7-bit slave address and the addition of the read-write bit transmission.
Q13.What if there is an error or no data when compiling the ROS driver
package
Before using the ROS driver package, the user needs to read the README.MD document in the driver package and follow the steps and precautions in the document. The user can also refer to the “ROS Driver Application Graphic Tutorial” on the official website for use.
9 Reference
[1] TOFSense-F_Datasheet.pdf
10 Abbreviation and Acronyms
Table 5: Abbreviation and Acronyms
Abbreviation | Full Title |
---|---|
TOF | Time of Flight |
FOV | Field of View |
HW | Half Wave |
VCSEL | Vertical Cavity Surface Emitting Laser |
UART | Universal Asynchronous Receiver/Transmitter |
IIC | Inter-Integrated Circuit |
11Update Log
Table 6: Update Log
Version | Firmware Version | Data | Description |
---|---|---|---|
1.0 | 1.0.5 | 20210918 | 1. Release first edition manual |
1.1
|
1.1.7
|
20220926
| 1. Added explanation of serial setting frame protocol
2. Optimized some descriptions
1.2| 1.1.8| 20230404| 1. Optimized the description in the FAQ section
12 Further Information
Company: SZ Nooploop Technology Co.,Ltd.
Address: A2-207, Peihong building, No. 1, Kehui Road, Science Park
community, Yuehai street, Nanshan District, Shenzhen
E-amil: marketing@nooploop.com
Website:www.nooploop.com
References
Read User Manual Online (PDF format)
Read User Manual Online (PDF format) >>