# 3. Cyphal interface

This page is about Cyphal related details such as interface, supported features, registers, configuration and usage examples and software versions. For general information please refer to the 1. General page, for hardware related details including wiring examples please refer to the 2. Hardware page.

# 3.1. Cyphal interface

This node interacts with the following data types:

Common for any node

Type Message
1 pub uavcan.node.Heartbeat (opens new window)
2 RPC-service uavcan.node.GetInfo.Response (opens new window)
3 RPC-service uavcan.node.ExecuteCommand (opens new window)
4 RPC-service uavcan.register.List (opens new window)
5 RPC-service uavcan.register.Access (opens new window)
6 pub (since hardware v3) uavcan.node.port.List (opens new window)

Here ExecuteCommand supports COMMAND_RESTART=65535, COMMAND_FACTORY_RESET=65532 and COMMAND_STORE_PERSISTENT_STATES=65530.

Circuit status service

Like any other RaccoonLab node, this node also supports the Circuit status service. It uses the following subjects:

Type Message Topic name
1 pub uavcan.si.sample.voltage.Scalar.1.0 crct.5v
2 pub uavcan.si.sample.voltage.Scalar.1.0 crct.vin
3 pub uavcan.si.sample.temperature.Scalar.1.0 crct.temp

Airspeed service

It uses the following subjects:

Type Message Topic name
1 publisher uavcan.si.sample.velocity.Scalar.1.0 (opens new window) aspd.speed (not supported yet)
2 publisher uavcan.si.sample.pressure.Scalar.1.0 (opens new window) aspd.press
3 publisher uavcan.si.sample.temperature.Scalar.1.0 (opens new window) aspd.temp

# 3.2. Cyphal Registers

Register name Note Description
0 id reboot required Node ID
1 uavcan.pub.press.id Port identifier
2 uavcan.pub.press.type immutable uavcan.si.sample.pressure.Scalar.1.0
3 uavcan.pub.speed.id Port identifier
4 uavcan.pub.speed.type immutable uavcan.si.sample.velocity.Scalar.1.0
5 uavcan.pub.temp.id Port identifier
6 uavcan.pub.temp.type immutable uavcan.si.sample.temperature.Scalar.1.0
7 uavcan.pub.crct.5v.id Port identifier
8 uavcan.pub.crct.5v.type immutable uavcan.si.sample.voltage.Scalar.1.0
9 uavcan.pub.crct.vin.id Port identifier
10 uavcan.pub.crct.vin.type immutable uavcan.si.sample.voltage.Scalar.1.0
11 uavcan.pub.crct.temp.id Port identifier
12 uavcan.pub.crct.temp.type immutable uavcan.si.sample.temperature.Scalar.1.0
13 name reboot required Node custom name

You can get the list of registers, read and write them using Yakut (opens new window) cli or Yukon (opens new window) gui.

# 3.3. Getting started (bench test)

Before using in the real application, it is necessary to configure the device. Yakut (opens new window) cli and Yukon (opens new window) are recommended.

The simplest connection scheme just for bench testing and configuration is shown below.

bench_test_standby

1. Configure the environment

Typically you need to:

  1. Configure all required environment variables
  2. Compile DSDL based on public regulated data types
  3. Create SLCAN based on CAN sniffer

Please refer to the Yakut and Yukon documentations to understand how to do it.

2. Monitor the node

Let's say, you have a correctly connected Cyphal node to a CAN sniffer.

The node state might be visualized using Yakut. Run y mon to see the node. The possible command output is:

y_mon

Alternatively, you can use Yukon. An example of the Monitor window is shown below:

yukon_monitor_default

3. Ports configuration

Must have ports to be configured are:

  • aspd.press,
  • aspd.temp.

According to the specification (opens new window) the port IDs should be in the range [0, 6143].

After you assign port IDs, save the parameters and reboot the node, you will see the following:

yukon_monitor_configured

4. Check the result

You can subscribe to the sensor:

yukon_subscription

# 3.4. Ardupilot integration

not supported yet

# 3.5. PX4 integration

not supported yet

# 3.6. Software versions

Version Date SHA Link
v1.4.0 Jun 19, 2023 52df65ce link (opens new window)
v1.2 Feb 23, 2023 b4e042b link (opens new window)
v1.0.2 Oct 23, 2022 53abc8b link (opens new window)