Improved signal processing for LilacSat-2 VLBI

Last week I published my results about the LilacSat-2 VLBI experiment. There, I mentioned that there were some things I still wanted to do, such as studying the biases in the calculations or trying to improve the signal processing. Since then, I have continued working on this and I have tried out some ideas I had. These have given good results. For instance, I have been able to reduce the delta-range measurement noise from around 700m to 300m. Here I present the improvements I have made. Reading the previous post before this one is highly recommended. The calculations of this post were performed in this Jupyter notebook.

TY-2 decoded

In January, I took a look at TY-2 telemetry. This is a Chinese cubesat that transmits 9k6 FSK telemetry in the 70cm Amateur band. In my previous post I tried to reverse engineer the packets from TY-2 and got as far as recognizing the syncword, and noting that the syncword is the same as the one sent by the GOMspace NanoCom AX100 transceiver. However, in all AX100 transceivers I had seen, the syncword was sent scrambled with a G3RUH scrambler, and TY-2 sent it unscrambled. This left me a bit puzzled. The payload seemed to be scrambled and I was unable to descramble it, preventing any further progress.

Since then, I have tried to get in contact with the satellite team to see if they could give me any additional information about TY-2 and its companion TY-6 (which uses the same format). Finally, the satellite team have answered me, giving me some details and confirming me that they use the AX100. This has allowed me to finish the decoder. An updated decoder is now available in gr-satellites. Thanks to BI1AEM for his help. Here I look at the specific details of the format used by TY-2.

Amateur VLBI experiment with LilacSat-2

On 23 February, Wei Mingchuan BG2BHC published on Twitter the first Amateur VLBI experiment. This consisted of a GPS-synchronized recording of signals from LilacSat-2 using USRPs in groundstations at Harbin and Chongqing, which are about 2500km apart. Wei has made a Github repository containing the recording (in MATLAB file format) and some signal processing in MATLAB. I have done some signal processing of my own with the recording and published my results in a Jupyter notebook. Here I describe some general aspects about VLBI and its use in Amateur radio, and some specific details of the signal processing I have done.

Mystery 9k6 BPSK satellite

On January 28th, Tetsu JA0CAW reported on Twitter his reception of an unknown satellite. The time of reception was 2018-01-28 12:15 UTC and the frequency was around 435.525MHz. The time and frequency coincided with a PicSat pass over JA0CAW’s station in Japan. He provided an IQ recording of the signal. So far, the satellite that originated the signal has not been identified. Several people have tried to listen to this satellite again, but I haven’t seen any other reports. Doppler identification has not been attempted and it is perhaps unfeasible with the few packets in JA0CAW’s recording.

I have looked at the recording to try to identify the satellite. The modulation is easily seen to be BPSK at 9600baud. The signal presents a lot of fading, so demodulation without bit errors is difficult. There seems to be a scrambler in use. I’ve tried descrambling with G3RUH and CCSDS without any luck. I’ve also failed to identify a preamble or frame sync marker.

To look at the packets in more detail, I’ve resorted to do demodulation as postprocessing in a Jupyter Python notebook. The resulting notebook is here. It is written with detailed comments, so it can be of interest to anyone who wants to learn these techniques.

The only interesting piece of information that I’ve been able to extract from my analysis is that the bits in the packets present strong self-correlations at lags of 1920 bits (and multiples). This is 240 bytes, but I have no clue of what to make of this.

As always, I would be grateful if anyone can provide any additional information about this unknown satellite.

A first look at TY-2

TY-2 is a 6U Chinese cubesat that was launched on January 19th in a CZ-11 rocket from Jiuquan, together with several other small satellites, including TY-6. According to the IARU Satcoord, TY-2 and TY-6 transmit 9k6 GMSK telemetry in the 70cm Amateur satellite band (435.350MHz for TY-2 and 436.100MHz for TY-6).

Several Amateurs such as K4KDR and PD0OXW have tried to decode the packets from TY-2 and TY-6 without success. I have taken a look to an IQ recording of TY-2 that Scott K4KDR has sent me and at least I’ve managed to do something (though not much) with it. Here I describe my findings.

PicSat telemetry parser added to gr-satellites

PicSat is a recently launched cubesat from the Observatoire de Paris. It is designed to observe the Beta Pictoris star system, using a telescope based on an optical fibre. It transmits telemetry in the 70cm Amateur satellite band and it also carries a V/U FM Amateur transponder as a secondary payload. In my previous post, I decoded the 1k2 BPSK + G3RUH AX.25 packets from PicSat, and added a decoder to gr-satellites. Now I have added a telemetry parser to the gr-satellites decoder.

Decoding satellites from the PSLV 2018-004 launch

On Friday 12 at 03:59 UTC, a PSLV-CA launched from Satish Dawan Space Centre, India, to deliver Cartosat-2F, as well as some smaller satellites, into a Sun-synchronous polar orbit. Cartosat-2F is an Earth observation satellite for cartographic applications. The ride was shared by several Amateur satellites: FOX-1D, which is AMSAT-NA‘s third 1U FM cubesat, and the first one supporting the L/V mode (as well as the usual U/V mode); PicSat, a 3U cubesat from the Observatoire de Paris designed to observe the Beta Pictoris star system, which also carries a V/U FM transponder for Amateur use; CNUSail-1, a solar sail demonstrator 3U cubesat from Chungham National University, South Korea; CANYVAL-X 1 & 2, a system from Yonsei University, South Korea, consisting of a 1U and a 2U cubesat in formation flight which form a virtual telescope (with the light focusing unit in one cubesat and the detector in the other); KAUSAT-5, a 3U infrared Earth observation cubesat from Korea Aerospace University; and STEP Cube Lab, a 1U cubesat from Chosun University, Korea. There were also several non-Amateur small satellites in the launch.

On Saturday 13 morning, at 09:54:46 UTC, I did a recording of the 70cm Amateur satellite band to try to receive and decode all these satellites. I used a 7 element handheld yagi from Arrow and a LimeSDR directly connected to the antenna with a short coaxial cable. My location was approximately 40.5961º N, 3.6963º W, 700m ASL (locator IN80do). The recording is IQ at 4Msps, centred at 436.5MHz, and lasts 8 minutes and 4 seconds. Here I detail my analysis of the recording.

A brief study of TLE variation

During my research and experiments about using WSJT-X modes through linear transponder satellites, one of the questions I had is by how much do TLEs of different epochs for the same satellite vary. This was glimpsed in part II, where I plotted the “best delay” parameter for TLEs of different age.

The topic of accuracy in TLE computation and propagation is rather complex. A NORAD TLE is the result of an orbit determination after several radar measurements at different epochs, so the elements are in some sense “averaged” over time. Also, the SGP4 propagator is simple and doesn’t model many orbit perturbations. However, NORAD TLEs are specially crafted to give improved results when used with SGP4.

Nevertheless, here I present a simple way of studying the rate of change of NORAD TLEs at different epochs. This procedure might not be very meaningful or sophisticate, but still seems to yield some interesting results.

Waterfall from the FT8 test through FO-29

In the previous post, I detailed my experiments transmitting FT8 through the FO-29 linear transponder. I recorded a complete pass of the FO-29 satellite while I transmitted an FT8 signal trough the transponder on even periods. As I promised in that post, I have now made a waterfall with the recording to show the activity through the linear transponder, and the strength of my FT8 signal in comparison with the SSB and CW signals of other users.

The watefall can be seen below. You can click on the image to view it in full size. A higher resolution version is available here (24MB). The horizontal axis represents frequency and the vertical axis represents time, with the beginning of the pass at the top of the image. The waterfall has been corrected for the downlink Doppler and the DC spike of the FUNcube Dongle Pro+ has been removed.

From left to right, the following signals can be seen: The CW beacon can be seen as a faint vertical signal. Next, there is some interference coming through the transponder in the form of terrestrial FM signals. Then we can see my FT8 signal, being transmitted only on even periods. Finally, around the centre of the image, we have a few SSB and CW signals through the transponder. Note that most of these signals increase in frequency as the pass progresses. This is because many people keep a fixed uplink and only tune the downlink by hand to correct for Doppler. Unfortunately, full computer Doppler correction is not very popular. I also used a fixed uplink frequency for my FT8 signal, but only to simplify the experiment. The best procedure is to correct for the uplink Doppler to keep a constant frequency at the satellite.

Waterfall of FO-29 downlink (Doppler corrected)

We can see that the SSB and CW signals are much stronger than my FT8 signal. Indeed, some of the CW signals are particularly strong at times, perhaps putting too much pressure on the linear transponder.

The waterfalls in this post have been created using this Jupyter notebook.

First FT8 test through FO-29

Continuing with my research on using WSJT-X modes through linear transponder satellites in low Earth orbit (see part I and part II), a few days ago I transmitted and recorded an FT8 signal through the V/U linear transponder on FO-29 during a complete pass. The recording started at 2017/10/23 20:26:00 UTC and ended at 20:42:30 UTC. It was made with a FUNcube Dongle Pro+ set to a centre frequency of 435.850MHz and connected to a handheld Arrow satellite yagi through a duplexer. Here the duplexer was used to avoid desense on transmit.

An FT8 signal was transmitted on every even period during the recording, at a fixed frequency of 145.990MHz, using a Yaesu FT-817ND and the Arrow antenna. The signal was transmitted using lower sideband (i.e., inverted in the frequency domain) to get a correct FT8 signal through the inverting transponder. The transmit power was adjusted often to get a reasonable signal through the transponder and avoid using excessive power. There have been reports and complaints of people using too much power with digital modes through linear satellites. In this post, a study of the power is included to show that it is possible to use digital modes effectively without putting any pressure on the satellite’s transponder.

Out of the 33 even periods, a total of 24 can be decoded by WSJT-X using the best TLEs from Space-Track. No measures were taken to correct for the time offset \(\delta\) that has been studied in the previous posts, as the TLEs already provided a good Doppler correction. Regarding the choice of TLEs, there are still some remarks to make. First, the epoch of the TLEs used was 2017/10/23 21:39:16 UTC, so these TLEs were actually taken after the pass. The previous TLEs were taken a few hours before the pass, and it is likely that they also provided a good correction, perhaps by using a time offset \(\delta\) if necessary. However, I do not know if these previous TLEs were also available from CelesTrak before the start of the pass, as it seems that TLEs take a while to propagate from Space-Track to Celestrack. To explain why the TLEs with no time offset correction are enough, it will be interesting to study the rate of change of TLE parameters for FO-29. This will be done in a future post.

The results of this test look very promising. Even though this wasn’t an overhead pass (the maximum elevation was 40º), the maximum rate of change of the Doppler was over 20Hz/s for the self-Doppler seen on the FT8 signal and 35Hz/s for the downlink Doppler seen on the CW beacon. Most of the periods which couldn’t be decoded were near the start or end of the pass. This is the only test that I know of that has decoded FT8 signals in the presence of high rates of change of Doppler. The previous tests by other people were made at low elevations, where the rate of change of Doppler is small. This test has shown that it is possible to get many decodes with high rates of change of Doppler, even using no corrections to the TLEs. Here I continue with a detailed analysis of the recording.