Is CAN output from the Cube possible?

I’m just reading up on the CAN bus, and it seems ideal for sharing data with a variety of outboard peripherals, such as data loggers. I’m aware of the use of the CAN ports on the Cube to receive data (e.g. GPS), but is it also possible to have the Cube continuously broadcast selected EKF data on a CAN bus? Examples might include position, attitude, and GPS time, for starters.

If that’s possible, I’d welcome pointers to relevant documentation.

This is a feature that either exists or almost exists.

Where do you wish to use the data?

1 Like

Data would be used by peripherals (typically a sensor and a datalogger) anywhere from 0.5m to 5m away. The goal is that even sensors having their own processor and logger, possibly situated at some distance from the Cube, would still be using a shared time reference and state data.

This is the whole point of Can. Very doable

Does it require writing an extension to Arduplane? Or how does one implement this in practice?

Unless we know exactly the planned layout and how you need the data… etc etc…

But I suspect you will need to do something

I’m willing to give it a go, barring huge obstacles (like learning large portions of the Arduplane code base), but I’d need to know where to start. As noted above, I’d be very happy with the CAN port on the Cube simply broadcasting time, position, attitude, velocity, and maybe airspeed. ASCII would be fine, or whatever is most natural. I’d have to write the code on the receiving end regardless, probably for a Raspberry Pi equipped with a CAN transceiver.


Pinging @jschall

Is it possible to configure data examples as mentioned above to output on Can 1 or 2 connections on carrier board? Orange Cube, If so how would I go about doing this?? where do we start with this.


@olliw42 Can you help? also does UAVCAN Peripheral Firmware have anything to do with making this possible?

@sidbh @Michael_Oborne

Any thoughts?

AP_Periph sort of does this, but is targeted at a specific sensor. ie gps/imu/mag

uavcan doesnt have a system to broadcast a single number without context.

Based on what I’m seeing in this thread, I’m inferring that using UAVCAN to share state data (e.g. the CAN equivalent of selected MAVlink messages) with other devices isn’t yet supported.