I am somewhat lost regarding the extraction of payload data from CubeSats since my specialty lies in orbital mechanics rather than signal processing. I understand that the payload is transmitted in Protocol Data Units (PDUs) in hexadecimal format. Currently, I am utilizing GNU Radio to process signals received from CubeSats. To achieve this, I am employing the gr-satellites module to demodulate the carriers. The satellite decoder block can be connected to various sinks such as hexdump or kiss file sink to store telemetry data. The output it produces is typically in PDU or hexadecimal format. I am curious if there are any methods available to further process and decipher these PDUs or hex data and examine the binary telemetry, which is not human-readable.
I tried to explore if there was a suitable block within the satnogs_gr-satellites package, but unfortunately, I couldn’t locate one.
As example this old payload telemetry:
2014-06-20 06:23:37.040 UTC: from IZ0VXZ to II0US (UI, payload: 66 byte)
000 > C0 00 92 92 60 AA A6 40 60 92 B4 60 AC B0 B4 E1 03 F0 55 53
020 > 36 76 0F 00 00 01 38 01 00 28 32 5D 02 96 A7 BA B7 0F 0E 1A
040 > 00 01 00 4D 00 29 FF DB DD 00 B8 01 0F 01 15 9F AE 2F 40 7B
060 > 8D 3E 8E 00 58 00 91 0E 83 0E AA 0E 61 00 39 01 49 01 0B 00
080 > 08 00 00 02 89 C0
Are there any specific programs or GNU Radio blocks designed for this purpose?
I attempted something in Python similar to testing, but unfortunately, I was not successful.
def hex_to_string(hex_string):
hex_string = ''.join(hex_string.split())
result = ""
for i in range(0, len(hex_string), 2):
hex_pair = hex_string[i:i+2]
decimal_value = int(hex_pair, 16)
char = chr(decimal_value)
result += char
return result
hex_string = "46 F5 AF F5 54 F5 AF 01 01 02 1E 01 23"
result_string = hex_to_string(hex_string)
print(result_string)
The flowgraph I have constructed utilizes a HackRF One as the Software-Defined Radio (SDR), similar to the Greencubesat decoding process. I have set the sample rate to 2.5 Mbps. Since I am currently in the process of constructing an antenna, I haven’t analyzed a CubeSat signal yet. However, I have considered the Nyquist theorem for decimation and bandwidth adjustment.