The control and monitoring bus is the backbone for routing commands and telemetry among spacecraft subsystems. Typically, a central processing unit is commanding other intelligent nodes (such as the power system, communication system, and payloads) and collects status information from them. The data to be exchanged on this bus is of moderate volume but must be transmitted in a reliable way.
Almost every CubeSat uses the I2C bus as system bus. This is a problem because the I2C bus is not fault tolerant and has been reported as the source of mishaps to a number of satellite missions. We propose to replace I2C bus with CAN bus, which is heavily employed in automotive and industrial applications since decades and has been qualified for use in space. For this, we have developed the SpaceCAN protocol, which utilizes CAN as transport technology and combines elements of ECSS CAN Bus Extension Protocol for reliability and robustness, and the ISO-TP protocol for large message transfer.
In this workshop we use pyboards, running MicroPython, to demonstrate a typical setup and operation of this reliable system bus. Participants of the workshop will learn how the time distribution works, the synch service, and how to exchange messages (telecommand and telemetry) between the master node (ie. on board computer) and attached slave nodes (ie. subsystems).