# 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:
№ | Type | Message | Rate |
---|---|---|---|
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 NodeStatus
and GetNodeInfo
this node also supports the following application-level functions:
№ | Type | Message |
---|---|---|
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 gui tool
.
The following paramters are common for any RacconLab node:
№ | Name | Description |
---|---|---|
1 | uavcan.node.id | Node identifier. Reboot required. |
2 | stats.flight_time_sec | Reserved |
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:
№ | Name | Description |
---|---|---|
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
Open 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 NodeStatus
and 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
GetNodeInfo
it 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
- UAVCAN_RNG_MIN
- UAVCAN_RNG_MAX
Lidar | UAVCAN_RNG_MIN | UAVCAN_RNG_MAX |
---|---|---|
LightWare SF11/C, LW20/C | 0 | 100.0 |
Benewake TFmini LiDAR | 0 | 12.0 |
Garmin Lidar-Lite | 0 | 40.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 Mavlink Console
:

- If the node is not online, it means the problem with physical connection.
- If the node is not
OK
andOPERAT
, 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.
- If
uavcan status
output is fine, butMavlink Inspector
is not, you can try to typelistener distance_sensor
. Normally, it should return something:
# 5.5. Software versions
Version | Description |
---|---|
v0.8.19_43c298d Oct 19, 2022 | - Add vl53l0x |
v0.5.1_baf6e11 Feb 17, 2022 | - Add Garmin Lite v3 |
v0.4.8_7c4d9c7 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. |