We have a device running Cyphal/CAN v1.1 on the network. We can see its topics using the new Cynic tool:
$ 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:
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 DSDL type (Cyphal v1.1 does not provide any standard configuration facilities or anything application-layer in general):
$ 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:
$ 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 or the Specification v1.1:
$ 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:
The traffic is visible on Yakut Monitor as well, but it says zombie because v1.1 nodes may not publish the heartbeat:

