Google Summer of Code 2021

Project Ideas for Google Summer of Code 2021

LibreCube has been selected as mentor organization for this year’s Google Summer of Code https://summerofcode.withgoogle.com

Listed here are the projects we would like to run as part of GSoC 2021 and that you may apply for. Note that we have shortened the list to two projects as they match best the roadmap of LibreCube for this year. The other projects will be offered in the future. If you are interested, please send an email with your CV and motivation statement to info@librecube.org.

Please also note that we want to promote diversity in coding and thus strongly encourage the application of female coders.

Guideline for Proposals: https://google.github.io/gsocguides/student/writing-a-proposal

Proposal Template (just for inspiration): https://docs.google.com/document/d/1YZez6_hgp2dBybEsMZoQ-ONB9IawK4_OPISLHe9Tjew/edit#heading=h.nfvo1oqh0x86

Note: To share your project proposal use an online document collaboration tool such as https://cryptpad.disroot.org and send the link to info@librecube.org.

 


Project: CCSDS File Delivery Protocol in MicroPython

Project Description

The CCSDS File Delivery Protocol (CFDP) has been implemented in Python by LibreCube. The goal of this project now is to port that implementation to MicroPython. As MicroPython is a subset of Python 3.4 most of the code should be portable one-to-one. One of the main issues to tackle is to remove the bitarray dependency. The working setup of this project should be a pyboard with MicroPython that runs an CFDP server entity and a laptop or PC that runs a CFDP client entity and connects to it using UDP transport over WiFi. The same tests cases as for the Python implementation shall be exercised. In addition, the CFDP GUI application shall be used for this and may need to be extended/modified as needed.

Knowledge Prerequisite

  • Must have: sound knowledge of Python3 and UDP transport
  • Should have: knowledge of MicroPython and pyboard

Difficulty

  • Medium

Mentors

  • Sarah
  • Artur

Project: CCSDS Space Packet / USLDP Transport Layer for Python and MicroPython

Project Description

The Space Packet Protocol and the Unified Space Data Link Protocol are part of the CCSDS communications stack for satellite communications and form the network layer and data link layer, respectively. The goal of this project is to implement in Python and also in MicroPython those two protocols and demonstrate it via exchange of data between eg. a pyboard and a laptop/PC. For the underlying transport layer either TCP/UDP protocol may be used or ZMQ.

References

Knowledge Prerequisite

  • Must have: knowledge of Python3 and UDP/TCP
  • Nice to have: knowledge of CCSDS Space Packet standard, MicroPython, ZMQ

Difficulty

  • Medium

Mentors

  • Milenko
  • Artur

Project: Thermalpredict

Project Description

The temperature of system components need to remain within specified limits, otherwise they may fail. For industrial grade components these limits typically range from -40 to +85 degC, which may be enough for terrestrial applications. For CubeSats and other systems in space however, these limits may be exceeded, if no special care is taken. To predict the temperatures, analysis tools are needed. This project aims to provide an open source Python library from which one can build up scenarios to analyze the temperature variation in a simulated environment. Essentially, the user of this library shall be able to use Python classes to build a Geometric Mathematical Model and a Thermal Mathematical Model and to define the environment, and then run a simulation along a given time span.

Knowledge Prerequisite

  • Must have: sound knowledge of Python3
  • Should have: knowledge of thermal engineering (in space environment)

Difficulty

  • Advanced

Mentors

  • TBD

Project: Powerpredict

Project Description

The sun is the only power source for most systems in space. The incoming power from solar cells is quite limited and thus electrical energy is a scarce resource on satellites. To predict whether and for how long certain power loads (such as instruments) can be used during satellite operations, a power analysis is essential. This project aims at developing the ingredients for such an tool, namely an open source Python library. Satellites typically consist of solar cells as energy source, batteries for energy storage, as well as electrical circuitry to distribute and condition power to the various loads. All of those components shall be generically modeled using Python classes. Then, a simulation is run over time to determine the consumed and excessive power on board the satellite.

Knowledge Prerequisite

  • Must have: knowledge of Python3
  • Should have: knowledge of electrical engineering

Difficulty

  • Advanced

Mentors

  • TBD

Project: Attitudepredict

Project Description

Satellites in space are not confined to air friction and gravity as systems on earth, they are almost free of external forces. There are however, disturbance forces due to moon, residual atmosphere, magnetic field, and other influences. That means that satellites in orbit will eventually rotate arbitrarily, if no active attitude control is employed. An attitude control system is used for exactly that, and it is composed of sensors to detect current attitude and actuators to control to the desired attitude. As an open source replacement for the typically used Matlab analysis, this project aims to provide an elegant Python library that models all such components and disturbance forces in a generic way. The user can than simulate the attitude movement to verify control algorithms.

Knowledge Prerequisite

  • Must have: knowledge of Python3
  • Should have: knowledge of attitude engineering and quaternions

Difficulty

  • Advanced

Mentors

  • TBD

Project: 3D Visualization of Celestial Objects and Satellites in your Browser

Project Description

Viewing the position, orientation and movement of satellites and celestial bodies in 3D is useful for visualization of simulations and real-time mission operations. Many software tools exist that can do that. But most of them are desktop-based, and users need to install them on their computer. On the other hand, browser-based solutions do not require the user to install software and can run on any machine that supports modern browsers. Of those, all are coded in Javascript however. We, on the other hand, love Python and want to use it everywhere. Luckily, there are solutions for this that allow writing code in Python syntax and converting it to Javascript in the background. Thus the objective is to develop a framework using those technologies, such that the user can develop a 3D space scenario using Python language, and to have it animated in the browser.

Repository: https://gitlab.com/librecube/prototypes/python-webview3d

Knowledge Prerequisite

  • Must have: knowledge of Python3 and OpenGL/WebGL
  • Nice to have: knowledge of Brython

Difficulty

  • Medium

Mentors

  • TBD