some progress to report, and some issues, and some questions
since the issue with the AuavX2 got identified now, I successfully could connect all three items, the uc4h magnetometer node (configured to Uavcan ID 42), the AuavX2 (which is by default configured to Uavcan ID 10), and the uc4h slcan adapter via the Uavcan bus (ID 127). Things work (mostly) as expected: The uc4h magnetometer is seen correctly in MissionPlanner, and I could calibrate it properly. In the plot below you can see all three magnetometers to nicely track each other. So, this looks G O O D!
Unfortunately, I do not have yet sufficiently many CAN transceivers (they are on order), so I still had to use the pseudo transceiver trick, but I think that's just a momentary nuisance and not a real issue.
The calibration never completed when I had all three magnetometers (Compass #1 = external on i2c, #2 = internal, #3 = uc4h magnetometer node), or #1 and #3, checked to be in use. It then would stop with a beep at some 90y-ish percentages, without any report in the gray message field, and no further response. With #1 and #2 marked as unused the calibration worked immediately. The relax level did not had an effect on this.
* DEV_ID: I do not understand this Dev ID field. It is some strange number. I would have thought that it is somehow related to the node which is connected, e.g., that it's unique ID is in some way used to produce a DEV_ID. Also, it doesn't matter if the magnetometer node is present or not. This is unlike with the other magnetometers, where the fields adapt to which magnetometers are present (at startup). What is the DEV_ID supposed to be?
* Orientation: I've mounted both compass #1 (external on i2c) and #3 (uc4h node) such that their magnetometer chips are oriented identically, but I had to choose Yaw90 for #3 in order to get it in sync with the other compasses. This is obviously due to the hard-coded "internal" rotation of the data for HMC5883-type compasses. However, it raises the question what the default behavior of a uavcan magnetometer is supposed to be? I would be inclined to also put some hard-coded internal rotation in my code. ??