Transporter-13 Rideshare : VSFB SLC-4E : 15 March 2025 (06:39 UTC)

Hi Scott,

I think the CCSDS scrambling is correct. The first frame you decoded from the flatsat data using this setting has the correct structure of a SpacePacket in a SpaceDataLink frame.

Specifically, the 14th byte (0x03) indicates that the service is ‘Housekeeping’ and the next byte (0x19) is the ‘Housekeeping Parameter Report’ sub-service.

I think you’ll see the same service and sub-service if you try the CCSDS descrambler on your live-captured data.

Unfortunately, the contents of a housekeeping parameter report isn’t standardised, so we’ll need the HERMES team to interpret that part.

But this looks really promising!

Thank you for the analysis! I do not have any familiarity with any of the standardized (‘expected’) bytes in a SpaceDataLink frame, so that is extremely helpful.

As a reminder, my live capture appeared at first glance to be a single packet but when looked at more closely in Inspectrum, each downlink was actually a PAIR of packets:

… and when run through GNU Radio with the deframer block set to ‘Scrambler = CCSDS’, the following frames are produced:

Bits 3 to 12 are the Spacecraft ID (SCID). These frames are both from a satellite with the SCID set to 36 (decimal).

To the HERMES team: Did you set the SCID different on the different CubeSats? Can you tell if this is H1 or H2 from the SCID of 36 (0x24 in hex)?

Bits 13-15 are the Virtual Channel ID and in this case have a value of 3. The third byte in the frame is the ‘Master Channel Frame Count’. The fourth byte is the ‘Virtual Channel Frame Count’. It’s really common for CubeSats to only use one virtual channel so both counts will always match exactly.

Since you got got 0x11 for the frame counts in the first frame and 0x12 for the next, it indicates that these are definitely consecutive frames. That’s probably really obvious from how close together they were anyway.

1 Like

It is with great pleasure that I confirm that the two packets decoded by @K4KDR belong to HERMES H2!!!

The satellite is alive and kicking with all its major subsystems in nominal conditions.

We hence confirm to look for our beacons using CCSDS scrabler and NASA-DSN convolutional coding. We are still looking to achieve contact with our ground stations, may I ask you the G/T of your ground station?

Francesco from HERMES team

4 Likes

Can I also ask you the TLE you used for the pass you have recorded?

SCID of H1 is 722
SCID of H2 is 724

2 Likes

Does the satellite always transmit, or only above a specific ground station?

Always

1 Like

Thanks, I will check my obs over Europe

1 Like

Sorry, not familiar with “G/T”. Just a guess, but if you are asking about location, my lat/lon is:

37.78 N, 77.61 W

I an using an omni antenna, so was not tracking with any exact TLE. However, for observation timing, I was using what has been provided in this thread:

HERMES (H1)                                                          
1 98615U 25045A   25083.29468750 +.00015584 +00000-0 +32766-2 0 00017
2 98615 097.3796 338.1189 0012983 032.8183 327.1795 15.13578724000000
HERMES (H2)                                                          
1 98614U 25045A   25084.28431713 +.00015593 +00000-0 +32766-2 0 00015
2 98614 097.3833 339.0894 0007113 076.4640 283.5026 15.15603533000006
2 Likes

Thanks for sharing the location, it is useful for us to correlate the TLEs.

Just to be clear, I was just wondering how to compare the performance of our ground station with yours. The first figure of merit I was able to think of is the gain over noise temperature (G/T). Please let me know if you have any other idea or number you can share.

Which bytes in the decode provide one of these values? I’m sure it’s right in front of me but I’m not making the connection. Thanks!

You have to convert the first two bytes of the packet in binary format and then extract bits 2 to 11 and covert them back in decimal format.

For instance your packets are from H2 because:
[HEX] 2D 47 → [B] 0010110101000111

Extracting the SCID bits → [B] 1011010100 → [D] 724

1 Like

By the way, I am not able to decode these packets from your IQ file using the ground station modem (which is proprietary and I have not too much visibility into) due to low SNR. I have tried to built a GNUradio flowgraph on my own, but even using the deframer settings you suggested no packets are printed. I think I could be missing something in the GSFK demodulator. Would you mind sharing your flowgraph?

Thanks again for the amazing night you gifted us!

1 Like

You are very welcome!

I hope that my GRC file is self-explanatory… there are comment blocks to label the purpose of each input option. (I/Q file, audio file, or ‘live’ audio from GQRX)

Regarding the use of an I/Q file as input, please note the use of an adjustable ‘BFO’ so that the observed signal can be centered at the zero point of the spectrum for proper decoding. This is particularly useful if you set the ‘Repeat’ option to ‘Yes’ when using an isolated packet as the input.

A copy has been uploaded to:

https://www.qsl.net/k/k4kdr//grc/hermes/

2 Likes

0352utc 27-Mar, no signals seen around 401.500 USA-East

Thanks Scott,

Thanks to for puzzle part, I created this flow graph to replay the IQ you recorded.

To decode the signals from the cli one can use the following yaml file.

name: HERMES-H1
norad: 98615
data:
  &tlm Telemetry:
    unknown
transmitters:
  25k CCSDS downlink:
    frequency: 401.500e+6
    modulation: FSK
    baudrate: 25000
    framing: CCSDS Concatenated
    frame size: 223
    RS basis: dual
    RS interleave depth: 1
    scrambler: CCSDS
    convolutional: NASA-DSN
    syncword threshold: 2
    data:
    - *tlm

gr_satellites HERMES-H1.yml --rawfile 2025-03-26--401500_unk_187500_IQ.raw --samp_rate 187500 --iq

***** VERBOSE PDU DEBUG PRINT ******
((transmitter . 25k CCSDS downlink) (rs_errors . 0))
pdu length =        223 bytes
pdu vector contents = 
0000: 2d 47 12 12 18 00 08 14 e9 03 00 6e 20 03 19 00 
0010: 00 00 39 00 01 24 dd b9 07 14 00 68 37 91 79 e7 
0020: 37 ee 65 82 37 86 3d e6 3f 2b c1 71 bf 38 c1 15 
0030: 3e 2e 71 44 bc 6e c6 64 3b a4 54 03 ba 03 be 51 
0040: 00 00 37 13 ca 95 96 5a 4b 14 d2 66 00 00 00 00 
0050: c5 b2 38 a0 c4 b4 7f fc 00 00 00 00 42 0a f3 30 
0060: 00 00 00 00 00 00 00 00 41 74 86 36 20 00 00 00 
0070: 41 f3 7f e1 0e 62 30 05 00 58 6c e0 e0 e0 e0 e0 
0080: e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 
0090: e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 
00a0: e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 
00b0: e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 
00c0: e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 e0 
00d0: e0 e0 e0 e0 e0 e0 e0 e0 e0 01 00 c0 00 fe 63 
************************************

For some unknown reason I haven’t see any signs of life over Europe, we will try again today.

Jan | PE0SAT

4 Likes

Updated TLE for TEVEL2 first group, which is now split in two groups too, for avoiding confusion I will refer to these as g11 (1-3), g12 (4-6), g2 (7-9):

TEVEL2-1
1 98647U 25052B   25086.00290248  .00000000  00000-0  30005-3 0    08
2 98647  97.4482   9.1037 0005205  42.4020  12.7947 15.17002531    09
TEVEL2-2
1 98646U 25052B   25086.00290248  .00000000  00000-0  30005-3 0    07
2 98646  97.4482   9.1037 0005205  42.4020  12.7947 15.17002531    08
TEVEL2-3
1 98645U 25052B   25086.00290248  .00000000  00000-0  30005-3 0    06
2 98645  97.4482   9.1037 0005205  42.4020  12.7947 15.17002531    07
TEVEL2-4
1 98644U 25052B   25085.94879485  .00000000  00000-0  30005-3 0    03
2 98644  97.4482 352.2097 0005205  42.4020  86.6132 15.17002531    00
TEVEL2-5
1 98643U 25052B   25085.94879485  .00000000  00000-0  30005-3 0    02
2 98643  97.4482 352.2097 0005205  42.4020  86.6132 15.17002531    09
TEVEL2-6
1 98642U 25052B   25085.94879485  .00000000  00000-0  30005-3 0    01
2 98642  97.4482 352.2097 0005205  42.4020  86.6132 15.17002531    08

Note: g11 and g12 groups are based on the deployment order and on some decodings, however the satellite that are in each group on those two may change with newer more accurate observations
Note 2: The TLE are again an approximation and don’t fit very well but will give better observations that will allow us better separation in the future

1 Like

Amazing @PE0SAT ! Thank you!

Just one note: scrambler should be set to CCSDS.

Let’s hope for more becons!

Davide from the HERMES team

2 Likes