Routing decoded packets with Space Packets

Hi!

after a few talks at the fabulous OSCW18 about the future of SatNOGS I decided to created a first demo as a proof of concept for the conversion from decoded SatNOGS data into CCSDS Space Packets.
Routing, serialization and so on are still missing.

Curious?
Give it a try at: https://github.com/TUDSaT/Comms_Software/tree/master/Space_Packet_Protocol
Just run Example.py

For those of you who do not like fun: https://public.ccsds.org/Pubs/133x0b1c2.pdf

If you have any comments or suggestions regarding the implementation or usability please let me know!

Greetings,
Milenko

7 Likes

Here is a short summary of the underlying idea from OSCW18.
Section 2.1.2 of the space packet protocol says:

The major function performed by this [the space packet] protocol is the routing of application data along the LDP [logical data path] through underlying subnetworks. "

The idea: Maybe this can help SatNOGS to create a routing from satnogs-network not only to satnogs-db but also to satellite operators using an existing/upcoming(? ^^) protocol.

Note: A much simpler protocol to solve this requirement is the Simple Downlink Share Convention (SiDS), which is already in use by many cubesat operators, radio amateurs and SatNOGS.


Hi @milenko,
thanks for this example! It worked out of the box. :smiley:

For others: The example takes a raw frame from Observation #260763 and assembles a CCSDS space packet from it.

$ python ./Example.py 
Successfuly assembled the packet
Successfuly build the Space Packet
Successfuly got the Space Packet
b'\x96\x88p\xa6\xa0\xa6`\x86\xa2@@@@\xe1\x03\xf0\xab\xcd\x00\x00\x00B\x03\xf5\x00\xb4u\xb9a\xab[d\x02\x07\x00\x08\x00\t\x00\x01\x00"\x00\xda\x19\xee{\x10i\x01\x00\x00\x00\x00\xdb\t\x06\x00\xe80\x14\x00o\x95\x03\x00\x00?\xed\x18\x00\x04\x07\xf4\x06\xfe\x0c`\x00\'\x00\xfe\x0c\xbf\x0e\r\x00\xa7\x0e\x0b\x060\x07\xb6\x0e\x0e\x00b\r \x00\x16\x00\xfc\x0c\x99\x00U\x00\xc5\x06e\r\x86\x00\xfa\x0c\xb6\x00\x8d\n\xdf\x013\x0f\xa5\x00\xa1\x06\xa4\x06\xd5\x07X\x00\xf9\x0e\x16\x00\x9c\x06\xa0\x06\xd6\x07\xe6\x002\x0f6\x00\xb3\x06\xb5\x06\xeb\x07\x1d\x00\x0f\x0f\t\x00\xa8\x06\xae\x06\xfd\xfcA\x07>\x07@\x07\x00\xc00\x00\x15\x00q\xffl\x00\xb5\xff\xd5\xff\x9a\x00\xf1\xff8\x00\xf1\x00\xff\xff\x17\x01\x11\x0c\x10\x0c+\x0b\x16\x0bt\nQ\na\x0cV\x0c,\x00\x93\x00v\x07\xa1\x01\x883\x883L \x00\x10\x00\x00\x00\x00\x00\xf6\x02\x00\x00\x00\x00\x00\x00\xffr=\x00\xbe\xff\xff\xff\xff\x90\x96\xb0\x15\x1c@'
2 Likes

Hi @kerel

Thank you very much for giving it a try.
Better than I could have been able to explain it!

It should just show the possibility to use it. We will use and implement it anyway including the underlaying protocol which is the Unified Space Data Link.
Implementation of a different Logic Data Path is possible. Transmission of Json files via TCP/IP for example.
Is there a way you would like the most?

Of couse it is possible to use anything more simple to the job but the protocol is also capable of transmitting telecommand frames with the same protocol. I know about the legal problems that will be a seperate discussion.
Anyway for satellite operators this could be an important feature.
It shall not replace the db, it will be a alternative way to route them directly from or to the groundstation or to get the data out of the db in a standardized format.

1 Like