Closed janvgils closed 3 years ago
I wouldn't necessarily expect BY70-3 to use the same telemetry format as BY70-2.
In any case, the values from the parsed header (a CCSDS TM header) don't look correct to me. The frame version should be 0, and 120 is an unexpected value for the first header pointer (I would expect 0 or ff). If we had more packets we could see if the frame count fields make any sense (they should increase sequentially).
I'm not sure what to say about the data in hex. It could be anything.
A relevant question here is: how much does the LilacSat-1 deframer check? (and what does it do). Basically, it performs Viterbi decoding, detects CCSDS 32 bit ASMs, performs CCSDS descrambling, and then demultiplexes the telemetry and digital voice data (which are sort of interleaved). There are really no strong checks (which is the reason for some complains about false decodes with the BY70-2 decoder). The only check is the presence of the ASM, but with the default --syncword_threshold
of 4 it is likely to get false detections. So most likely this packet is just noise, or it is the wrong format, or whatever. It would be reasonable to try with --syncword_threshold 0
to check if at least the ASM is truly present.
i will try to take a look at this recording.
Thanks for the response, I hope this example will also open the way to future new decodes and how to support the development further by walking a path that would make sense.
Thanks for all the information and development.
I can already confirm that the --syncword_threshold
0 is producing no decodes.
It turns out that the protocol used by those transmissions is AX.25. A clue is that there are many decodes in the SatNOGS observation, which seems the be using an AX.25 decoder.
The decodes look like this:
Container:
header = Container:
addresses = ListContainer:
Container:
callsign = u'NPULYT' (total 6)
ssid = Container:
ch = True
ssid = 0
extension = False
Container:
callsign = u'NPUBY3' (total 6)
ssid = Container:
ch = False
ssid = 0
extension = True
control = 0x03
pid = 0xF0
info = b"\x1a\xcf\xfc\x1d\x81\x03\x01\xb2\x9f\xb0R\xac\x80\xf6\x01\x9d\x04\xa1\x03\x00\x10\x00\x10\xd9\x00\x00'\x00\x0b\x00\x01\x00\x01\xef\xef\xf0\x00\x18\xc1\x9e\x01\xb1h\x99\x00\x00\xb7\x8a\x01\xb1h\x85\x01\x98\xe4\xfe\x1a\x14\xc6\xdby1Z\x16\x00\x00\xe0\x00\x04\xe0f\x00\x8b\x04 \xb0\x073\xbd\x00\xff\xc7k\xf7\xff\xc1\xd5\xf9\x00=\xf0\xa2\xff\xffgN\xff\xff\x9e\x8d\xff\xff\x13\x19\x01\xb2p\x0e\x00\x00222\x00\x00\x00\xb0M\xff\xff\xd4\xb2\x00\x00\xa6\x02\x00\x00\x00\x00\xff\xfb\x00\x0e\xff\xf3\xff\xe4\x00\n\x00\x93\x00\x05q\x00\x00\x00\xf9\x00\xff\xf0\xa4\x00\x00\x02\xb5\x00\x00\x05\xdb\x00\xff\xf9\x19\x00E`\x96\x81E`\xf80EaFTEaFTEa\x0b\xb9\xd9\x0b\x027\x01\xc3\xff\xfd\xff\xa5\x00&\x00\x13\x00\xc1\x00\xac\xfe\x18UTP\x00\x00\x00\x00\x00\x1a\xfd\xce\x00\n\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaa}I"
I think that the source address of NPUBY3
is enough to be confident that this is BY70-3, which is also called BY03.
Regarding how to analyse a signal of unknown origin or characteristics, I'm afraid I can't give a general recipe. It boils down to trial and error and often also careful examination by hand.
I'll now add a SatYAML for this satellite.
Thank you, we will go from there, and keep working with trial and error 👍
The new yaml file is now producing the following:
gr_satellites 46839 --wavfile BY70-3_satnogs_3197706_2020-11-25T15-57-05.wav --samp_rate 48e3
-> Packet from 9k6 BPSK downlink
Container:
header = Container:
addresses = ListContainer:
Container:
callsign = u'NPULYT' (total 6)
ssid = Container:
ch = True
ssid = 0
extension = False
Container:
callsign = u'NPUBY3' (total 6)
ssid = Container:
ch = False
ssid = 0
extension = True
control = 0x03
pid = 0xF0
info = b'\x1a\xcf\xfc\x1d\x81\x03\x01\xb2\x9f\xadJ\xd6\x80\xf6\x01\x9d\x04\xa1\x01\x00\x04\x00\x04\xe0d\x00\x8b\x04 \xb0\x073\xbb\x00\xff\xc7\x88J\xff\xc1\xe8\x10\x00>\x1c\x80\xff\xfff\xf8\xff\xff\x9e0\xff\xff\x13w\x01\xb2p\x0e\x00\x00222\x00\x00\x00\xb0J\xff\xff\xd4]\x00\x00\xa9W\x00\x00\x00\x00\xff\xf2\x00\x07\xff\xde\xff\xe4\x00\n\x00\x93\x00\x05r\x00\x00\x00\xcf\x00\xff\xf0\xa6\x00\x00\x02\x01\x00\x00\x05\xaa\x00\xff\xf7\xe4\x00Ea\x1fBE`\xe4\xa6EaY\xdeEaFTEa2\xcb\xd9\t\x02\x13\x01\xc4\xff\xf4\xff\xdd\xff\xfb\x00\x96\x00\xc1\x00\xaf\xfe\x12UTP\x00\x00\x00\x00\x00\x0e\xe0\x8e\x00\x1e\x80\xf6\xc6\x00\x00<\xff\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x00\xa5\x01\x00K\x9d\x00\x10\x00\x0f\xe0\x8e\x00\x02\x00\x00\x00\x00\x1a\xfd\xcb\x00\n\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaa\xadY' (total 232)
gr_satellites 46839 --wavfile BY70-3_satnogs_3197706_2020-11-25T15-57-05.wav --samp_rate 48e3 --hexdump
* MESSAGE DEBUG PRINT PDU VERBOSE *
((transmitter . 9k6 BPSK downlink))
pdu_length = 248
contents =
0000: 9c a0 aa 98 b2 a8 e0 9c a0 aa 84 b2 66 61 03 f0
0010: 1a cf fc 1d 81 03 01 b2 9e 89 d2 f2 80 f6 01 9d
0020: 04 a1 dd 00 04 00 04 df cf 00 8b 04 20 b0 07 32
0030: 7f 00 ff db ba 62 ff d0 30 a3 00 55 6b 09 ff ff
0040: 3b 61 ff ff 6a 87 ff ff 59 00 01 b2 70 0e 00 00
0050: 32 32 32 00 00 00 31 7f 00 00 11 78 00 00 66 42
0060: 00 00 00 00 ff ea 00 13 ff f9 ff e4 00 0a 00 93
0070: 00 0a 79 00 ff fa 09 00 ff e2 b7 00 00 06 e7 00
0080: ff ff 52 00 ff ed b1 00 45 58 f4 e7 45 53 ff 10
0090: 45 45 7f 38 45 5b ee cf 45 61 32 cb d8 fb 00 7a
00a0: 01 ba 00 4b 00 3a 00 37 ff f6 01 6a 02 59 00 33
00b0: 55 54 50 00 00 00 00 00 0e df f8 00 1e 80 f6 c6
00c0: 00 00 3c ff 00 00 00 ff 00 00 00 00 00 00 00 00
00d0: 00 00 01 01 00 a5 01 00 4b 9d 00 10 00 0f df f8
00e0: 00 02 00 00 00 00 1a fc de 00 0a 00 00 00 00 00
00f0: 00 00 00 00 00 aa c6 c7
***********************************
The AX.25 header in that decode seems correct to me.
@janvgils can this issue be closed now?
We have a decoded frame, but does it make sense ?
Today there was a message that there was an unknown satellite transmitting on 437.600 MHz.
After some orbital investigations and comparison there is a big change that it is BY70-3 with ID 46839, the strange is, that it is using 437.600 and not the IARU coordinated frequency 437.443
http://www.amsatuk.me.uk/iaru/finished_detail.php?serialnum=726
Lets say this is indeed BY70-3, so take the latest BY satyaml file and use it as a template for BY70-3, this provides the following:
Using the below cli command it generates the following decodes:
It is all looking pretty wel, but is this a good assumption ?
Are there some ways to do basic sanity checks, so you know you are on the right track?
Regards, Jan PE0SAT