# 5. DroneCAN Interface
This page is about DroneCAN related details such as interface, supported features, parameters, configuration and usage examples and software versions. For general information, refer to the 1. General page., for hardware related details including connection example scheme please refer 2. Adapter Hardware.
This section is related to the latest released version of the software.
# 5.1. DroneCAN Interface
This node interacts with following messages:
|1||publisher||uavcan.equipment.range_sensor.Measurement (opens new window)||10 - 100 Hz|
|2||publisher||uavcan.equipment.power.CircuitStatus (opens new window)||2 Hz|
Besides required and highly recommended functions such as
GetNodeInfo this node also supports the following application-level functions:
|1||RPC-service||uavcan.protocol.param (opens new window)|
|2||RPC-service||uavcan.protocol.RestartNode (opens new window)|
|3||RPC-service||uavcan.protocol.GetTransportStats (opens new window)|
# 5.2. DroneCAN Parameters
The parameters might be visualized using
The following paramters are common for any RacconLab node:
|1||uavcan.node.id||Node identifier. Reboot required.|
|3||crct.enable_vin_check||Set ERROR status if Vin voltage is less than 4.5 V|
|4||crct.enable_5v_check||Set ERROR status if 5V voltage is out of range 4.5 - 5.5 V|
|5||system.log_level||Minimal log level message which might be sended by this device. |
0 - debug
1 - info
2 - warn
3 - error
4 - disable
|6||system.can_bus_check_level||Every CAN bus error will be treated as a specified level of error. Appeared since v0.9.8|
|7||uavcan.node.name||Custom name of the node. Reboot required.|
Rangefinder node related parameters:
|1||rangefinder.measurement_period||Period of measurement and publishing|
|2||rangefinder.type||Defines which sensor to use: |
0 - LW20/C (i2c)
1 - TF-Luna (uart)
2 - Garmin lite v3 (i2c)
3 - vl53l0x (i2c)
|3||rangefinder.id||Id of the sensor in the message.|
# 5.3. Getting started (bench test)
Before mounting on a real vehicle, especially when using the node for the first time, it is recommended to test the node and perform configuration on a bench using gui_tool (opens new window). This utility allows to easily use the full functionality of the node.
Step 1. Connect the node to a sniffer. The node should blink.
An example of connection scheme just for bench testing and configuration is shown below.
Alternatively, in a vehicle you may want to connect the node via Molex CAN connector.
By the LED color you can determine the node state:
- Orange blinking means either something is not properly configured or something wrong.
- Red blinking means some critical error. It is related to a software or hardware issue.
- Normally, the node should blink with blue color.
Please, refer to the LED meaning page (opens new window) for details.
Step 2. Open gui_tool and set the local node ID. The node should send data and respond to GetNodeInfo
gui_tool. Apply the
Local Node ID by clicking the button in the corresponding field at the top. Check that the node publishes some data like
GetNodeInfo. Basically, it means that it should show: Name, Mode, Health and Uptime.
You can quickly press 2 times on the node in
Online nodes list. You should be able to see additional information such as node name, software version, UID, etc.
The node should respond with the software version that suits you (probably it should be the latest available stable version).
If your node doesn't send
GetNodeInfoit probably means that your gui_tool is still in anonymous mode. Apply local node ID.
Step 3. Configure the node ID, store parameters, then reboot it. ID value should be updated.
Select the node ID by changing
uavcan.node_id that fits your CAN-network without ID-collision.
Step 4. Check CircuitStatus. The node should measure the input voltages and temperature correctly.
Use Tools > Subscriber to look at topics.
If you power a node from USB, the voltage should be ~5V.
The temperature may be a slightly higher than in your room.
Step 5. Open subscriber panel. The node should publish range_sensor.Measurement.
Below you can see an example of a messages.
You can also try
Tools->Plotter and create a plot with measurements.
# 5.4. PX4 integration
The node has been tested multiple times on the VTOL application with autopilot based on PX4 with defferent version (v1.12, v1.13, etc).
Step 1. Configure parameters
Typically, you need to setup the following PX4 parameters (opens new window):
- UAVCAN_ENABLE must be non zero
- UAVCAN_SUB_RNG must be Enabled
|LightWare SF11/C, LW20/C||0||100.0|
|Benewake TFmini LiDAR||0||12.0|
Reboot the vehicle after the configuration.
Step 2. Check the distance sensor in Mavlink Inspector
Verify that max and min distances are correct and current_distance is adequate. The distance is shown in centimeters.
Step 3. Troubleshooting
If distance sensor is not appeared in Mavlink Inspector, try to repeat the previous steps.
It can be useful to run
uavcan status in
- If the node is not online, it means the problem with physical connection.
- If the node is not
OPERAT, it is either is not correctly configured, or it has a connection problem.
- If the node is online, but the rangefinder sensor channel is not appeared, it means a problem with your PX4 configuration.
uavcan statusoutput is fine, but
Mavlink Inspectoris not, you can try to type
listener distance_sensor. Normally, it should return something:
# 5.5. Software versions
Oct 19, 2022
|- Add vl53l0x|
Feb 17, 2022
|- Add Garmin Lite v3|
Jan 31, 2022
|- Add TF Luna support|
|v0.3.6_830e6ff (opens new window) |
Oct 06, 2021
|- Increase measurement rate and add filter to output |
|v0.3.0_alpha_0fe6caf (opens new window) |
Aug 5, 2020
|First ever released version. Only sf1xx is supported.|