UAVCAN: Vendor-specific messages with ArduPilot

Hey Folks

I’m currently implementing a STorM32 UAVCAN mount class for ArduCopter, and on the workbench it is actually already working fine (was easier to do than I thought, LOL). There is one nuisance however, and I would be happy if I could give me some advice:

I’m using vendor-specific UAVCAN messages, namespace storm32, and I can’t get them compiled by the ArduPilot build system. I could work around that by putting these messages into the namespace uavcan, i.e. the folder \modules\uavcan\dsdl\uavcan, but that’s obviously not what I should be doing.

Looking into the UAVCAN docu I see that one has to do something with a CMakeLists.txt file, but I really don’t understand what’s written there. My best guess would be to add my message folder to
line 37: set(DSDLC_INPUTS "test/dsdl_test/root_ns_a" "test/dsdl_test/root_ns_b" "${CMAKE_CURRENT_SOURCE_DIR}/../dsdl/uavcan")
in the CMakeLists.txt file in the folder \modules\uavcan\libuavcan, but as said, I really have no clue what I would be doing here.

What should I do?

Since currently it’s quite silent as regards UAVCAN, I take the liberty to directly link to you, guys: @EShamaev, @OXINARF, @Pavel_Kirienko. Pl forgive me if that is disturbing, I wasn’t sure where to best place that question.

Thx, Olli

@olliw42 the described approach seems correct. I hope I’m not too late with my response, the forum failed to email me for some reason.

thx Pavel

I eventually tried that, of course, but it didn’t do the trick. There seem to be more dependencies in their build system.
Since it’s months ago I can’t remember any details, except that I couldn’t figure it out, and finally placed the messages in the standard types section :tired_face: not quite standard conform, but worked


Hey there Olli, I ended up doing the same thing as you previously for vendor specific messages. It would be good to be able to add vendor specific definitions to the build system :slight_smile: