# Cyphal/CAN v1.0 vs. v1.1 compatibility example

**URL:** <https://forum.opencyphal.org/t/cyphal-can-v1-0-vs-v1-1-compatibility-example/2875>\
**Category:** Applications & Usage\
**Created:** [July 20, 2026, 6:25pm UTC](https://forum.opencyphal.org/t/cyphal-can-v1-0-vs-v1-1-compatibility-example/2875 "2026-07-20T18:25:11Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![pavel.kirienko](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/pavel.kirienko/32/9_2.png) [@pavel.kirienko](https://forum.opencyphal.org/u/pavel.kirienko)\
**Post date:** [July 20, 2026, 6:25pm UTC](https://forum.opencyphal.org/t/cyphal-can-v1-0-vs-v1-1-compatibility-example/2875/1 "2026-07-20T18:25:11Z")

</div>

We have a device running Cyphal/CAN v1.1 on the network. We can see its topics using the new [Cynic](https://github.com/OpenCyphal-Garage/cynic) tool:

```json
$ cn ls
{"hash": 15629337813696154377, "evictions": 0, "subject": 26189, "name": "feedback"}
{"hash": 11138084457145460620, "evictions": 0, "subject": 33172, "name": "command.i8"}
{"hash": 13789741955605845191, "evictions": 0, "subject": 16576, "name": "com.zubax.fluxgrip/1a7c39dc781016bf/zubax.manage"}

```

For Cynic to work without specifying the `--can` option, we have `cynic.toml` in the current working directory containing:

```toml
can = "slcan0"
dsdl_root = ".../zubax_dsdl/zubax"

```

Let’s say we want an older v1.0 subscriber to receive the feedback messages. If you look at the network using a v1.0 tool, like Yakut, normally it won’t see any subjects at all – Cyphal/CAN v1.1 uses a 16-bit-subject CAN message format not seen by v1.0 nodes. To allow a v1.0 node to pub/sub on our topic, we have to pin it, which we do by _remapping_ the topic into `1234#1234` for subject-ID 1234 and so on. This particular device accepts the remap configuration via a management topic that uses the [`zubax.fluxgrip.Manage`](https://github.com/Zubax/zubax_dsdl/blob/master/zubax/fluxgrip/Manage.0.1.dsdl) DSDL type (Cyphal v1.1 does not provide any standard configuration facilities or anything application-layer in general):

```json
$ cn --io zubax/zubax_dsdl/zubax/fluxgrip/Manage.0.1.dsdl \
    req com.zubax.fluxgrip/1a7c39dc781016bf/zubax.manage \
    -- 'remap: "feedback=/1234#1234"'
{
    "success": {},
    "_meta_": {"ts": "2026-07-20T21:15:00.999403+03:00", "remote": 15, "topic": "com.zubax.fluxgrip/1a7c39dc781016bf/zubax.manage", "seqno": 0}
}

```

Then restart:

```json
$ cn --io zubax/zubax_dsdl/zubax/fluxgrip/Manage.0.1.dsdl req com.zubax.fluxgrip/1a7c39dc781016bf/zubax.manage -- 'restart: no'
{
    "success": {},
    "_meta_": {"ts": "2026-07-20T21:17:57.168525+03:00", "remote": 15, "topic": "com.zubax.fluxgrip/1a7c39dc781016bf/zubax.manage", "seqno": 0}
}

```

The topic is now remapped as configured – the part after the `#` is removed because it is a pin expression that is consumed by the local node. For details see the [Cy documentation](https://github.com/OpenCyphal-Garage/cy#-topic-pinning-to-a-specific-subject-id) or the Specification v1.1:

```json
$ cn ls
{"hash": 11938621558174105243, "evictions": 4294966061, "subject": 1234, "name": "1234"}
{"hash": 11138084457145460620, "evictions": 0, "subject": 33172, "name": "command.i8"}
{"hash": 13789741955605845191, "evictions": 0, "subject": 16576, "name": "com.zubax.fluxgrip/1a7c39dc781016bf/zubax.manage"}

```

Then we can open, say, Yakut and observe the traffic which is now ordinary v1.0:

 ![image](https://forum.opencyphal.org/uploads/default/original/2X/8/87ce64426d4b04d9deb0e4d71e2bd70c54c57543.png)

The traffic is visible on Yakut Monitor as well, but it says `zombie` because v1.1 nodes may not publish the heartbeat:

 ![image](https://forum.opencyphal.org/uploads/default/original/2X/f/ff50364c816cfc6631e7f127c4d79c0317bb7fc9.png)
