The QB50 project consists in a constellation of cubesats with the goal of studying the thermosphere. The cubesats are built by different universities around the world and each of them carries one of three different scientific instruments. A total of 36 cubesats have been built for the QB50 project. All of them transmit on the 70cm Amateur satellite band. A total of 28 were launched to the ISS on April 18th on the Cygnus CRS-7 resupply ship. Over the last two weeks, they have been released from the ISS. The complete launch schedule and radio information can be found here (note that the launches on May 23rd were delayed due to an unforeseen EVA). Several other non-QB50 cubesats, some of them transmitting in the Amateur bands, have also been released together with the QB50 satellites. This is probably the time that more Amateur satellite have been released at the same time. The satellites have not separated much yet, giving a great opportunity to record a single pass and analyse the telemetry of all the satellites.
A few days after the release of all the 28 QB50 cubesats, on May 29th at 18:25:29 UTC, I made an SDR recording of the complete pass of all the cubesats. The recording spans the 3MHz of the 70cm Amateur satellite band (435-438MHz) and lasts 23 minutes and 08 seconds. It was made from locator IN80do using a 7 element handheld yagi (the Arrow satellite yagi) held in the vertical polarization and a LimeSDR. The gain of the LimeSDR was set to maximum, but no external LNA was used. Here I look at the recording, list the satellites heard, and decode their telemetry.
A large number of QB50 satellites have been heard with good signals in the recording. According to Jan PE0SAT, not all the QB50 satellites have been confirmed to be active. Also, some non-QB50 satellites that were launched with them have also been heard. Finally, there are as well some unexpected Amateur satellites in the recording, as they happened to be over the horizon at the time of the pass. For some of them, signals are quite weak, since the position of the satellite was far from the beam of the yagi.
QB50 satellites heard (including frequency and time within the recording of a strong transmission):
- 435.800MHz 06:35 qbee SE01. 9k6 FSK AX.25
- 435.900MHz 16:24 nSIGHT AZ02. 9k6 FSK AX.25
- 436.030MHz 10:10 LINK KR01. 1k2 BPSK AX.25 with G3RUH
- 436.400MHz 14:38 Atlantis US02. 9k6 FSK AX.25
- 436.425MHz 16:32 DUTHSat GR01. 1k2 BPSK AX.25 with G3RUH
- 436.510MHz 16:41 LilacSat-1 CN02. 9k6 BPSK with CCSDS FEC
- 436.610MHz 16:01 PolyITAN 2-SAU UA01. 9k6 BPSK
- 436.710MHz 16:59 ExAlta-1 CA03. 4k8 NanoCom AX100
- 436.845MHz 05:49 HAVELSAT TR02. CW
- 436.885MHz 10:26 SpaceCube FR05. Invalid 1k2 AFSK AX.25
- 437.020MHz 05:07 X-CubeSat FR01. Weak and invalid 1k2 AFSK AX.25
- 437.060MHz 04:27 Columbia US04. 9k6 FSK AX.25
- 437.345MHz 15:17 Aalto-2 FI01. CW
- 437.370MHz 17:19 BeEagleSat TR01. CW
- 437.505MHz 17:28 Challenger US01 9k6 FSK AX.25
- 437.740MHz 08:25 Hoopoe IL01. 9k6 BPSK AX.25 with G3RUH
Other satellites in the ISS release:
- 437.400MHz 10:20 CSUNSAT-1. FM CW
Other Amateur satellites heard:
- 435.650MHz 06:49 TW-1B. 4k8 NanoCom AX100
- 437.225MHz 14:52 LilacSat-2. 9k6 BPSK & 4k8 FSK with CCSDS FEC
- 437.430MHz 06:08 AAUSAT-4. 4k8 FSK with CCSDS FEC
- 437.570MHz 18:20 STRaND-1. 9k6 FSK AX.25
Now we pass to an individual analysis of all the satellites heard in the recording. They are ordered roughly in order of appearance.
The satellites which use 9k6 FSK AX.25 have been decoded with direwolf. The rest of them have been decoded with gr-satellites. No attempt has been made to decode all the packets. In general, only one packet from each satellite has been decoded to test if the decoder is working fine and the signal is strong enough.
Direwolf has also been used to parse the AX.25 header of the frames obtained with gr-satellites. To do so, one has to run direwolf with the -p
option to make it create a KISS port on /tmp/kisstnc
and then use nc localhost 52001 > /tmp/kisstnc
to send the KISS output from the gr-satellites flowgraph into direwolf.
The first satellite is the Chinese TW-1B. It uses a NanoCom AX100 FSK transceiver at 4k8. The deviation is quite high, producing a signal which is 40kHz wide (which is probably too much).
The NanoCom AX100 was also used in GOMX-3 and it is supported in gr-satellites. A while ago, I talked about the details of this transceiver. The following packet was decoded with gr-satellites.
pdu_length = 207 contents = 0000: 00 80 a7 aa 02 03 79 7b 79 07 8f ff f0 ff f4 ff 0010: ff ff ac ff dc ff d2 ff e1 ff e3 ff be ff c7 ff 0020: 8d 01 ab 00 00 3a 4d 00 00 00 17 00 37 91 64 00 0030: 00 04 c9 01 02 23 00 00 01 00 3b 69 44 4b ff 8f 0040: 06 00 b1 52 29 00 05 a3 b7 a7 d0 85 98 04 3f 80 0050: 6a 0f 41 27 c7 11 41 40 5f 00 05 00 0b 00 00 00 0060: 39 00 6d 00 26 00 2b 00 66 01 d8 00 a4 00 75 00 0070: 00 00 01 ff fe ff fe 00 00 00 00 38 00 d7 00 00 0080: 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00 03 0090: fb d7 fb eb 40 6c 00 00 50 02 02 00 00 00 00 00 00a0: 00 00 00 00 00 00 00 99 9b df 40 a0 e6 97 3f 48 00b0: ce 69 c5 63 8f 95 c6 b5 4d 7c c4 01 00 00 00 80 00c0: 00 00 00 80 00 00 00 00 aa 26 aa 00 00 04 00
It is a CSP packet, but other than that, the telemetry format is unknown.
The next satellite is Columbia, QB50 US04. As most of the QB50 satellites, it uses 9k6 FSK AX.25 (with G3RUH scrambler). This is not a very good idea for space applications, due to the lack of FEC.
The following two packets were decoded with direwolf.
U frame UI: p/f=0, No layer 3 protocol implemented., length = 238 dest CQ 0 c/r=0 res=3 last=0 source KD8CJT 0 c/r=1 res=3 last=1 000: 86 a2 40 40 40 40 60 96 88 70 86 94 a8 e1 03 f0 ..@@@@`..p...... 010: fa f3 20 07 00 d6 20 bf 25 09 6d 54 00 10 88 74 .. ... .%.mT...t 020: 88 5a 00 00 88 5c 00 18 00 00 00 00 00 00 00 00 .Z...\.......... 030: 00 00 00 00 00 00 00 00 00 00 1a 56 bf c0 00 00 ...........V.... 040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 050: 01 cd 00 00 00 82 00 00 00 77 00 00 00 00 00 00 .........w...... 060: 00 9b 00 00 0f 4b 00 00 00 04 00 00 00 00 00 00 .....K.......... 070: 00 00 00 00 00 01 00 00 00 26 00 00 00 01 00 00 .........&...... 080: 00 00 00 00 0a ae 00 07 ff 00 00 00 0a ae 00 07 ................ 090: ff 00 00 00 00 0d 00 00 00 00 00 00 00 0d 00 00 ................ 0a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0b0: 00 00 5f ff 7f 3f 1e 00 20 03 11 06 61 00 00 96 .._..?.. ...a... 0c0: 01 01 00 00 3f ab 06 00 3f ab 06 00 43 51 20 20 ....?...?...CQ 0d0: 20 20 4b 44 38 43 4a 54 05 00 00 00 40 00 01 00 KD8CJT....@... 0e0: 00 00 00 00 00 00 00 00 00 00 00 00 18 5e .............^
U frame UI: p/f=0, No layer 3 protocol implemented., length = 246 dest CQ 0 c/r=0 res=3 last=0 source KD8CJT 0 c/r=1 res=3 last=1 000: 86 a2 40 40 40 40 60 96 88 70 86 94 a8 e1 03 f0 ..@@@@`..p...... 010: fa f3 20 08 00 de 00 80 20 bf 25 0e b8 b4 88 5b .. ..... .%....[ 020: 88 75 09 af 0a bd 0a c0 0a bf 0a c1 0a b2 0a a9 .u.............. 030: 0a be 00 36 00 f4 00 40 02 43 03 47 03 c9 0a 22 ...6...@.C.G..." 040: 0d 57 00 00 00 30 08 1e 09 f5 0f ff 09 00 00 02 .W...0.......... 050: 00 02 00 02 00 02 00 2c 01 54 04 60 0a 67 02 b4 .......,.T.`.g.. 060: 05 54 04 dc 09 e4 0a 7b 00 75 01 c6 01 9d 09 d3 .T.....{.u...... 070: 05 f2 05 c0 05 1a 09 fc 0a 78 00 10 00 c3 00 c8 .........x...... 080: 00 e3 00 9c 00 ac 00 ae 09 b3 0a 8c 00 08 00 e9 ................ 090: 00 cc 01 20 01 14 00 f5 00 eb 00 00 0a a7 00 3e ... ...........> 0a0: 09 bd ea 56 08 dc 00 72 ea f4 03 d8 24 02 ff 8d ...V...r....$... 0b0: fc ef f3 6e 0e a5 ff 75 ff ff ff ff ff ff ff ff ...n...u........ 0c0: bd c9 d0 00 00 55 b0 66 00 bf d3 c5 00 46 21 5f .....U.f.....F!_ 0d0: 00 08 c1 7e 00 01 36 56 ff ed 55 3b 00 00 00 5a ...~..6V..U;...Z 0e0: 01 2d ff 62 40 00 14 00 05 00 00 6d 00 00 00 00 .-.b@......m.... 0f0: d8 03 00 00 4c ee ....L.
It is worthy to note that Columbia is using the callsign KD8CJT instead of ON04US. The two above packets clearly have a different format. According to the telemetry format, the first packet is of type HK_PKT_TYPE
(I don’t know what this means) and the second is a beacon.
Next comes X-CubeSat, QB50 FR01. Its frequency is near that of Columbia, so a packet from Columbia can also be seen in the image below. This satellite, as well as the other French satellite, QB50 FR05, is using 1k2 AFSK AX.25. However, the signal in the waterfall seems rather strange. It appears that the FM deviation is too low. The carrier is very strong and there is only one weak sideband. In the case of X-CubeSat, the sideband is often under the noise floor. I haven’t been able to decode FR01 or FR05 using direwolf. Clearly something is wrong with these satellites. However, JA0CAW has managed to decode telemetry from FR01.
The next satellite is qbee, QB50 SE01. It uses 9k6 FSK AX.25, but this is an interesting satellite, because the payload of the AX.25 frame is a Reed-Solomon encoded CSP packet. This makes possible correcting bit errors within the packet, but a special decoder needs to be used for this, as a regular AX.25 decoder will drop packets with incorrect CRC.
The following is an AX.25 frame from qbee decoded with direwolf. The length of this packet doesn’t match the description in Open Cosmos web. The payload should be 84 bytes long according to Open Cosmos, but it is only 81 bytes long.
dest '')" 0 c/r=0 res=0 last=0 source '')" 0 c/r=0 res=0 last=0 000: 4f 4e 30 31 53 45 00 4f 4e 30 31 53 45 00 03 00 ON01SE.ON01SE... 010: 02 a2 c0 00 94 ba 91 01 00 68 8f 05 00 00 7d 7c .........h....}| 020: 00 00 00 7e 4f 50 45 4e 20 43 4f 53 4d 4f 53 7e ...~OPEN COSMOS~ 030: 00 9b ea d6 ca ca af 41 08 d4 69 a4 06 55 9a f5 .......A..i..U.. 040: 9a f0 40 d4 44 1b c3 ee bc 31 be b2 b5 f8 cf 02 ..@.D....1...... 050: 5f _
It is interesting to note that the AX.25 header is malformed, since it is written in ASCII. The documentation by Open Cosmos says:
The qb01 beacon callsign fields are not bit-shifted, so unfortunately an AX.25-compliant TNC will have trouble decoding them.
For some reason, several QB50 teams do not seem to get the AX.25 header right.
There is a beacon decoder by Open Cosmos. When run with the frame above, it produces the following output:
================================================================================ ax25 dest: [.ON01SE] source: [.ON01SE] control: 0x00 pid: 0x03 csp header: 0x02a2c000 decode_rs: Reed-Solomon corrected 3 errors beacon wod time: 2000-10-31T17:15:00Z (0x0191ba94) mode: 0x00 vbatt: 8.20 (0x68) ibatt: 0.126 (0x8f) ibus3v3: 0.12 (0x05) ibus5v0: 0.00 (0x00) comm_temp: -15.0 (0x00) eps_temp: 16.2 (0x7d) batt_temp: 16.0 (0x7c) power: 0x00 service_e: 0x00 service_r: 0x00 byline: [~OPEN COSMOS~.] ================================================================================ ax25_payload: AX25 callsign not found decode_human: Failed to deframe AX.25 ================================================================================
Note that the decoder states that 3 byte errors were corrected by Reed-Solomon. This is probably due to the length mismatch, because the frame above doesn’t have any byte errors, as its AX.25 CRC-16 is correct. The beacon decoder includes a sample KISS file and all the packets there are 81 bytes long and also produce 3 Reed-Solomon errors.
Next we have AAUSAT-4 which was launched back in April 2016. It uses 4k8 FSK with CCSDS convolutional code, scrambling and Reed-Solomon.
There is a custom decoder and telemetry parser for AAUSAT-4 in gr-satellites. When run on the packet above, it produces the following output.
AIS: Boot count: 387 Unique MSSI: 65535 COM: Boot count: 213 Packets received: 0 Packets send: 1491 Latest rssi: 0 Latest bit corrections: 0 Latest byte corrections:0 EPS: Boot count: 24582 Up time: 11392971 seconds Real time clock: 2017-05-29 20:27:27 Battery voltage: 7920 mV Cell difference: -8.0 mV Battery current: -80 mA Solar power: 2960 Temperature: 5 C PA temperature: 4 C ADCS1: State: 0 Bdot: (-1121, 159, 958)
The next satellite is HAVELSAT, QB50 TR02. It transmits CW telemetry. The message in this transmission is ON02TR01477F100E
.
SpaceCube, QB50 FR05, is the other French QB50 satellite. As X-CubeSat, it transmits 1k2 AFSK AX.25. The FM deviation seems rather low, again, but the sideband is much stronger than in the case of X-CubeSat. Still, I wasn’t able to decode SpaceCube with direwolf. As far as I know, nobody has been able to decode it. I have been looking at some recordings of SpaceCube before and I have the impression that the CRC-16 in the packet is wrong.
The next satellite is Hoopoe, QB50 IL01, also known as Duchifat-2 (duchifat is Hebrew for hoopoe, which is the national bird of Israel). It uses 9k6 BPSK AX.25 with G3RUH scrambling. The signal is not very strong, but it can be decoded without problems.
There is a decoder for Hoopoe in gr-satellites. The frame above produces the following output when parsed by direwolf.
U frame UI: p/f=0, No layer 3 protocol implemented., length = 46 dest 4X4HSC 0 c/r=1 res=3 last=0 source ON01IL 0 c/r=0 res=3 last=1 000: 68 b0 68 90 a6 86 e0 9e 9c 60 62 92 98 61 03 f0 h.h......`b..a.. 010: 00 31 31 00 08 0a ce 20 00 12 10 03 19 20 bf 22 .11.... ..... ." 020: d4 00 ff 01 6a 98 06 00 a4 9c 98 48 9d 00 ....j......H..
Next comes LINK, QB50 KR01. Presumably it transmits 9k6 BPSK, but currently it transmits 1k2 BPSK AX.25 with G3RUH scrambling.
There is a decoder for LINK in gr-satellites. The frame above decodes as follows.
dest ON01KR 0 c/r=0 res=3 last=0 source D80LW 0 c/r=0 res=3 last=0 000: 9e 9c 60 62 96 a4 60 88 70 60 98 ae 40 60 03 f0 ..`b..`.p`..@`.. 010: 08 66 68 00 08 0a c0 66 00 13 10 03 19 20 bf 25 .fh....f..... .% 020: be 00 ee 00 69 86 05 01 a2 a6 8a 02 d2 42 00 ....i........B.
Note that the AX.25 destination and source addresses are swapped. Also, the “last” marker is not set. Another case of badly formed AX.25 header. There is also a telemetry parser in gr-satellites, which produces the following output.
Container: mode = Otherwise batvoltage = 8.25 batcurrent = 0.0551181102362 3v3buscurrent = 0.125 5vbuscurrent = 0.025 tempcomm = 25.5 tempeps = 26.5 tempbattery = 19.5 spacecraftmode = Commissioning
CSUNSAT-1 is a non-QB50 cubesat that was released from the ISS with the rest of the QB50 cubesats. Presumably it transmits FM CW, although the shape of the signal on the waterfall is quite peculiar. It would be interesting to know how it is produced.
The message in the transmission above is CSUNSAT1 HAAA3AAAAAAAAAAAAAAAAAAAAAAAAAL
.
The next satellite is Aalto-2, QB50 FI01. It is currently transmitting a CW beacon with its callsign: AALTO2
.
In the CW transmission above, sidebands are visible. These are only visible when the signal is strong. It would be interesting to see if the sidebands are AM or FM. On the image above, you can also see the CW signal of BeEagleSat.
LilacSat-2 is also visible in the recording. Since it was quite far from the beam of the yagi during the pass, its signal is pretty weak. gr-satellites has support for LilacSat-2, but the signals were too weak to produce valid decodes.
The next satellite is BeEagleSat, QB50 TR01. It transmits CW telemetry. There is deep fading on the signal with a period of around 5 seconds. The message in the transmission below is ON01TR0164801801009797
.
Next comes Challenger, QB50 US01. It transmits 9k6 FSK AX.25.
The packet above decoded in direwolf produces:
U frame UI: p/f=0, No layer 3 protocol implemented., length = 186 dest QBUS01 0 c/r=0 res=3 last=0 source CQ 0 c/r=1 res=3 last=1 000: a2 84 aa a6 60 62 60 86 a2 40 40 40 40 e1 03 f0 ....`b`..@@@@... 010: 19 00 2d f7 a0 00 89 7f be 20 0f 02 91 3a 19 00 ..-...... ...:.. 020: 86 02 00 00 14 00 00 00 31 47 02 00 3f 01 00 00 ........1G..?... 030: e7 02 88 03 69 02 1f 01 00 18 1d 0e 00 00 83 00 ....i........... 040: 01 16 00 3f 97 00 6b 0a 6e 00 00 2c 99 1d 00 87 ...?..k.n..,.... 050: 16 b0 19 69 4e 37 04 00 07 3c 3b 03 02 b6 05 9f ...iN7...<;..... 060: 05 00 01 7e 7c ff 80 03 04 15 14 a8 8b 00 00 00 ...~|........... 070: 00 00 a1 13 03 00 00 00 00 00 00 00 00 00 00 00 ................ 080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0b0: 00 00 00 00 00 00 e2 5a a5 a5 .......Z..
Update: I hadn’t noted this before, but the destination and source addresses are swapped in the packet above. Another case of a team not getting the AX.25 right.
Atlantis, QB50 US02, is another QB50 satellite from USA transmitting 9k6 FSK AX.25. However, its signal was too weak to produce valid decodes with direwolf.
Update 01/06/2017: I have found that Atlantis is much stronger later on in the recording and many packets can be decoded with direwolf. For instance, in the image below we can see a strong packet together with DUTHSat’s signal.
The packet above decodes in direwolf to produce the following:
U frame UI: p/f=0, No layer 3 protocol implemented., length = 246 dest CQ 0 c/r=0 res=3 last=0 source WD8DOX 0 c/r=1 res=3 last=1 000: 86 a2 40 40 40 40 60 ae 88 70 88 9e b0 e1 03 f0 ..@@@@`..p...... 010: fa f3 20 08 00 de 00 80 20 bf 28 2f c7 3f db 16 .. ..... .(/.?.. 020: db 1b 09 b3 0a ac 0a af 0a af 0a a9 0a a3 0a 98 ................ 030: 0a ab 00 47 00 e0 00 41 02 51 03 54 03 da 0a 52 ...G...A.Q.T...R 040: 0d 66 00 00 00 34 08 1f 09 e6 0f ff 09 50 00 01 .f...4.......P.. 050: 00 00 00 00 00 00 00 34 01 93 04 9b 0a 73 04 30 .......4.....s.0 060: 05 8e 06 3d 0a 27 0a 69 00 2b 01 e5 01 28 05 c7 ...=.'.i.+...(.. 070: 02 33 01 a8 02 1f 09 d6 0a 6f 00 24 01 e4 01 ee .3.......o.$.... 080: 01 e7 00 9e 01 da 02 1e 09 4d 0a 79 00 69 01 0f .........M.y.i.. 090: 01 20 01 40 01 35 01 22 01 18 00 01 0a 99 00 2c . .@.5."......., 0a0: 07 fa f0 4c 04 9f ff c4 fa a5 f8 53 18 4b ff ae ...L.......S.K.. 0b0: f9 b0 03 c0 20 1a 00 37 17 f6 ed f2 eb 53 ff d5 .... ..7.....S.. 0c0: c0 e5 08 00 ff 6c 92 f8 ff 60 3d 72 ff 72 8e 3b .....l...`=r.r.; 0d0: 00 13 ee e3 00 60 98 54 ff f1 cc 4c 00 00 00 f5 .....`.T...L.... 0e0: 01 61 01 28 3f 00 11 00 05 00 00 73 00 00 00 00 .a.(?......s.... 0f0: d8 03 00 00 47 bc ....G.
Interestingly, Atlantis is using the callsign WD8DOX instead of ON02US.
The next satellite is ExAlta-1, QB50 CA03. It has a NanoCom AX100 transceiver from GOMspace and it transmits 4k8 FSK. However, the deviation is much smaller than the case of TW-1B, which uses the same radio and baudrate. While TW-1B used 40kHz of bandwidth, ExAlta-1’s signal fits nicely into 15kHz, which is much more convenient.
Support for ExAlta-1 has been added to gr-satellites. The packet above decodes as:
pdu_length = 144 contents = 0000: 00 3c a8 82 30 12 69 12 78 0e 6f 3e 3b 00 80 01 0010: 05 00 69 00 51 00 00 00 03 00 00 00 3a 00 13 00 0020: 06 00 78 00 01 00 01 01 00 01 00 00 00 00 00 00 0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0050: 00 00 00 00 00 00 00 00 1f 1c 00 00 0c f8 01 00 0060: 05 05 00 00 00 00 00 00 00 00 01 00 00 00 01 00 0070: 00 00 01 00 00 00 15 00 17 00 15 00 14 00 10 00 0080: 0f 00 07 04 01 00 00 01 00 dc 4f 4e 30 33 43 41
A telemetry parser is not yet available in gr-satellites, but the satellite team provides detailed specifications.
PolyITAN 2-SAU, QB50 UA01 presumably transmits 9k6 BPSK AX.25. However, I haven’t been able to decode valid AX.25 frames, even though the signal is strong. The constellation plot locks properly to the 9k6 BPSK signal, and looking at the spectrum, the signal appears scrambled. However, I still have to look at the signal in more detail to find the problem.
Next comes nSIGHT, QB50 AZ02. It transmits 9k6 FSK AX.25. There is deep fast fading, and most of the packets are affected by it.
The packet above produces the following valid decode in direwolf, even though it has deep fading in the middle.
U frame UI: p/f=0, No layer 3 protocol implemented., length = 69 dest ZS1SCS 0 c/r=1 res=3 last=0 source ON02AZ 0 c/r=0 res=3 last=1 000: b4 a6 62 a6 86 a6 e0 9e 9c 60 64 82 b4 61 03 f0 ..b......`d..a.. 010: ff 30 06 80 04 00 00 40 00 00 00 3a d4 03 00 0c .0.....@...:.... 020: 04 c6 16 20 01 00 20 14 14 14 13 07 04 6d 20 91 ... .. ......m . 030: 00 60 00 09 03 00 40 24 00 00 00 00 00 00 00 d8 .`....@$........ 040: c1 14 08 cb 25 ....%
LilacSat-1, QB50 CN02, is the most interesting satellite in the QB50 constellation because of its FM/Codec2 repeater and image downlink following the BY70-1 system. It deserves its own separate post, and I will probably write several. It transmits 9k6 BPSK using CCSDS convolutional code and scrambling.
For now, I have used gr-satellites to decode all the beacons in the recording. The result is in this gist. There are some things to note and improve in the future. First, not all beacon types are supported. The parser only supports the beacon types which were used in BY70-1, but LilacSat-1 uses more beacon types. Second, since there is no Reed-Solomon error correction, it is easier that bit errors slip through. CRC checking is important, and it is currently not done. For instance, the message in telemetry packet 8288 is ON02CN:@Hemìo World!
instead of ON02CN: Hello World!
.
DUTHSat, QB50 GR01, transmits 1k2 BPSK AX.25 scrambled with G3RUH. Presumably, it should transmit 9k6, but it’s currently on 1k2 mode.
I have added support for DUTHSat to gr-satellites. The AX.25 frame above, decoded in gr-satellites and parsed in direwolf produces the following.
dest SZ7DUT 0 c/r=0 res=0 last=1 source SZ7DUT 0 c/r=0 res=0 last=0 000: a6 b4 6e 88 aa a8 01 a6 b4 6e 88 aa a8 00 03 f0 ..n......n...... 010: c8 ff ff 03 00 1f 00 00 e0 4f 75 00 00 d6 00 00 .........Ou..... 020: 00 00 00 00 00 52 67 7a 5b 00 60 4d 75 00 00 32 .....Rgz[.`Mu..2 030: 02 00 30 22 01 00 00 00 00 00 00 00 00 00 00 00 ..0"............ 040: 00 00 00 00 00 00 00 00 00 3f 05 b8 04 00 00 00 .........?...... 050: 00 03 00 11 06 c8 0b ee 0b 75 75 b9 07 ba 07 ba .........uu..... 060: 07 30 01 9b 00 5e 01 74 20 aa 00 00 00 03 00 02 .0...^.t ....... 070: 00 00 00 00 00 06 00 04 00 62 00 00 00 00 00 13 .........b...... 080: 12 15 13 01 04 40 a8 0e 00 00 00 00 00 00 00 00 .....@.......... 090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0b0: 00 00 00 00 00 00 00 00 00 00 00 ...........
Note that DUTHSat is using the callsign SZ7DUT instead of ON01GR.
Finally, STRaND-1 is a satellite launched in 2013 which was off the beam of the yagi during this pass. It does a long transmission in 9k6 FSK AX.25, but the signal in the recording is too weak to decode. (Update: Mike DK3WN remarks that STRaND-1 frames are not AX.25, however, it still uses HLDC framing).
The full recording is available in qb50-436500kHz-2017-05-29-182529.wav
(size around 16GB). I don’t promise to host this file forever, but at least I’ll host it for several months. It is an IQ wav using 16 bit integers samples and 3Msps. Small samples of many of the satellites have been added to satellite-recordings. Update 2022-03-31: the recording is now hosted on Zenodo.
Very impressive Dani. Amazing effort and results. Congratulations on a job well done.
Bob N6RFM
Excellent work. Nsight is tumbling causing the deep fade I have heard.
Jacques ZR1ADC
HI
I just want to correct for FR01. Several stations are able to decode the AFSK 1.2 K data.
For FR05, you are right, the modulation index seem’s a liitle bit low and the data decoding is more difficult.
Great piece of work {and help} Daniel!
Thanks sharing! Keep up the good work for us satellite ? amateurs!
Keep well & 73.
Albert
PD0OXW
Hi
please determine latitude,longitude and altitude of receiver .
Best regards
As stated in the post: “It was made from locator IN80do”
More precisely, the location was 40.5961 N, 3.6963 W, accurate to a few tens of metres. It was made at ground level (roughly 700m ASL).