Google Summer of Code 2023

Project Ideas for Google Summer of Code 2023

Listed here are projects we would like to run as part of GSoC 2023 and that you may apply for. Those projects align with the roadmap of LibreCube for 2023, which is to develop a rover based on CubeSat technology and international space protocols, all of which to be developed as open source projects. More information about the overarching rover project can be found here:

https://cryptpad.fr/drive/#/2/drive/edit/rX06l+AA4H+8WUxmTzXfwn0F/

We want to promote diversity in coding and thus strongly encourage the application of female coders.

For direct questions regrading any of those project ideas please write us at info@librecube.org.

All code repositories will be hosted here: https://gitlab.com/librecube/prototypes


Project: Space Link Protocol Stack

Project Description:

The CCSDS and ECCS space standards define a whole stack of protocols for end-to-end transfer of application layer data units. This protocol stack bears some similarity with the internet protocol stack, but is designed for application in space domain, where the bottom layer is the physical radio link. The protocol stack comprises the Telecommand and Telemetry Frame protocol, the Space Packet Protocol, and the Packet Utilization Protocol. The goal of this project is to implement this stack layer by layer, taking advantage of previous prototype works in that area.

The stack is to be implemented on a Raspberry Pi in Python language.

Expected Outcome:

  • Python protocol stack that demonstrates the end-to-end working of command sending and telemetry reception.

Skills Required/Preferred:

  • Python
  • Preferably some knowledge about related CCSDS/ECSS space link standards

Mentors:

  • Shayan

Difficulty: Advanced

Project Size: 350 hours


Project: On-Board Control Procedure (OBCP) Engine

Project Description:

Most modern spacecraft implement custom-developed software engines for running scripts or procedures on board. A procedure essentially sends out commands and monitors the results of it. It typically allows decision branches and other logic to be implemented.

This project is about the development of an open source OBCP engine, which shall interpret and executes procedures written in PLUTO (= a domain specific language standardized by ECSS for space applications). The engine shall be implemented in Python according to the recommendations given in the ECSS space standard ECSS-E-ST-70-01C. It shall be possible to load/start/stop a desired procedure that is available in file storage.

The project can make use of the existing PLUTO to Python parser project. The project is to be implemented in Python running on a Raspberry Pi.

Expected Outcome:

  • Python module of the OBCP engine that demonstrates the basic functionalities of running a PLUTO procedure on an embedded system.

Skills Required/Preferred:

  • Python
  • Raspberry Pi
  • Preferably knowledge of related ECSS standards

Mentors:

  • Artur

Difficulty: Advanced

Project Size: 350 hours


Project: Satellite Bus Protocols

Project Description:

Typically there are several communication bus systems on a spacecraft. There is usually a main bus for transfer of commands and telemetry between on board computer and other systems, and a number of dedicated other buses for data transfer. Likewise, for LibreCube applications we want to develop such bus protocols and make them available open source. This project therefore focuses on the modifications of the SpaceCAN protocol to make it useful for the rover internal communication. Also, the data transfer between camera board and on-board computer, as well as the transfer between communication board and on-board computer shall be designed and implemented. The latter protocols shall be rather simple but cover all needed functionality, most likely using UART for interfacing.

Expected Outcome:

  • Python modules for the different bus protocols that demonstrate base functionality of data sending and receiving.

Skills Required/Preferred:

  • Python
  • SpaceCAN and CAN bus
  • UART communication

Mentors:

  • Artur

Difficulty: Medium

Project Size: 175 hours