CCSDS File Delivery Protocol (CFDP) in micropython

Discussion about programs, libraries and tools that work with MicroPython. Mostly these are provided by a third party.
Target audience: All users and developers of MicroPython.
Post Reply
Shayan
Posts: 2
Joined: Sun Mar 28, 2021 4:49 am

CCSDS File Delivery Protocol (CFDP) in micropython

Post by Shayan » Mon Jun 21, 2021 1:11 pm

Hello everyone!

The CCSDS File Delivery Protocol (CFDP) was developed by the Consultative Committee for Space Data Systems (CCSDS) and is similar to FTP in many ways. The CFDP protocol provides reliable transfer of files from one endpoint to another and has been designed to work well over space links that suffer from outtakes and long delays.

We have developed a python as well as a micropython ported implementation of this to demonstrate its scope as a ready-to-use Space Software which can be used not only by space systems such as rovers or CubeSats but also by other pyboard based projects to carry out successful file transfers. Currently, the project has been successfully tested with ESP-32 using UDP as transport over WiFi but we hope as the project progresses and we implement the lower layers of the CCSDS stack it will gradually be tested with other pyboards along with carrying out file transfers using transceivers.

However, this project is currently unstable due to memory constraints that arise quite frequently to tackle this problem we resorted to using pre-compiled .mpy files however even this sometimes causes our system to crash due to memory allocation errors. Currently, we are using ESP-32 with 520KB RAM. It would be great if other developers could assist us with this problem and suggest changes.

Link to our project -https://gitlab.com/librecube/prototypes ... ython-cfdp
CFDP GUI can be used for testing file transfers - https://gitlab.com/librecube/prototypes/python-cfdp-gui
If you are having issues, please let us know. Reach us at Matrix or via Email.

Cheers!

Post Reply