SpaceCAN - Reliable and space-ready CAN Bus for CubeSats

There is a fairly recent standard published by ECSS that specifies the use of CAN bus and CANopen protocol for space applications (ECSS-E-ST-50-15C). It provides a reliable and fast bus that is feasible to be used in CubeSats, and makes a much better alternative to the commonly used I2C bus.

There are currently Micropython and C prototype implementation being developed under the LibreCube framework. For example, the Micropython implementation can be found here: https://gitlab.com/librecube/WP-1005.

Please feel free to provide your comments or feedback to this.

3 Likes

Hey @artur ! Thanks for the update. Is there a link for the C implementation?

Also here is a nice overview of the spec and its feature
Thanks!

1 Like

An example C implementation can be found here: https://gitlab.com/librecube/WP-1003
We will create a new work package to prepare a more generic C implementation for Atmel AVR 8bit microcontrollers, such that developers can use that as a template.

1 Like

Is CANopen a proprietary standard? I thought I saw info elsewhere suggesting it wasn’t publicly available, but can’t find anything confirming that.

Some parts. The core is openly available here: https://www.can-cia.org/standardization/specifications/
But profiles are needed to be paid for.

Have a look here:
http://ecss.nl/standard/ecss-e-st-50-15c-space-engineering-canbus-extension-protocol-1-may-2015/


2 Likes

Note that we are revising the ECSS-CAN implementation into “SpaceCAN”. That one uses ECSS concept for redundancy management but does not include the bulky and complicated Object Dictionary. Instead, it uses the ISO-TP protocol for transfering larger messages between nodes.

Find the documentation here: https://vault.dediserve.com/s/r2yM6NWfQLa9Dtj
And the micropython implementation here: https://gitlab.com/librecube/prototypes/micropython-space-can

3 Likes

Thanks artur to shared! If any update now?

1 Like

I know of two implementations for embedded devices ongoing, in C++ for mbed and C for FreeRTOS.

@artur can tell you for sure more about this.

Now available here: SpaceCAN - LibreCube Documentation

3 Likes

Can I connect CANopen and spaceCAN nodes on same BUS? are CANopen and spaceCAN compatible ? Thank you.