GNSS interferometry at Allen Telescope Array

Since the beginning of October, together with a group of people from the GNU Radio community, we are doing some experiments and tests remotely at Allen Telescope Array (ATA). This amazing opportunity forms part of the recent collaboration agreement between SETI Institute and GNU Radio. We are taking advantage of the fact that the ATA hardware is relatively unused on weekends, and putting it to good use for our experiments. One of the goal of these activities is to put in contact GNU Radio people and radio astronomy people, to learn from each other and discover what features of GNU Radio could benefit radio astronomy and SETI, particularly at the ATA.

I’m very grateful to Wael Farah, Alex Pollak, Steve Croft and Ellie White from ATA and SETI Institute for their support of this project and the very interesting conversations we’ve had, to Derek Kozel, who is Principal Investigator for GNU Radio at SETI, for organizing and supporting all this, and to the rest of my GNU Radio teammates for what’s being an excellent collaboration of ideas and sharing of resources.

From the work I’ve been doing at ATA, I already have several recordings and data, and also some studies and material that I’ll be publishing in the near future. Hopefully this post will be the first in a series of many.

Here I will speak about one of the first experiments I did at ATA, which is a recording of one Galileo GNSS satellite using two of the dishes from the array. This kind of recording can be used to perform interferometry. GNSS satellites are good test targets because they have strong wideband signals and their location is known precisely. The IQ recording described in this post is published as the dataset “Allen Telescope Array Galileo E31 RF recording with 2 antennas and 2 polarizations” in Zenodo.

Tianwen-1 DSM final trajectory

A few days ago I spoke about the deep space manoeuvre that Tianwen-1 had executed on 2020-10-09. As remarked in that post, the data we had from that manoeuvre came from extrapolating state vectors from before and after the burn. The state vectors that the spacecraft was broadcasting after the burn most likely came from a prediction rather than from the actual result of the burn. In a few days, we would see a small change in the trajectory as the Chinese DSN performed precise orbit determination and uploaded the results to the spacecraft.

In fact, we saw that change the next day. The figure below is generated in the following way. I have taken the first state vector that we have received after the burn, and propagated its trajectory in GMAT. Then I compute and plot the error in each of the ICRF coordinates between the state vectors broadcast by the spacecraft in the telemetry and this GMAT trajectory. This allows us to see whether the trajectory broadcast by the spacecraft has changed slightly at some point.

As we can see, during the first day the error is close to zero. Afterwards, the trajectory deviates and the error starts growing to several hundreds of km. The new trajectory seems to be stable over the last few days (sorry about the lack of data on the night between the 11th and 12th). This is best shown in the figure below, where the state vector used as a seed to generate the GMAT trajectory is taken from the UTC evening of 2020-10-10. The error is only a fraction of a km. Therefore, we can consider final this new trajectory.

I have updated the calculations I did in the last post to use a state vector from the updated final trajectory. The results don’t change much. The calculations now locate the burn (approximated as an impulse burn) at 15:03:54 UTC with a delta-V of

[-31.08193895,  40.28872314, 308.12845989]

in ICRF coordinates, while my previous calculations estimated a burn at 15:03:59 with a delta-V of

[-31.49477234,  39.29765307, 308.11690616]

The state vector describing the updated post-DSM trajectory in heliocentric ICRF coordinates and UTC epoch is

Tianwen1.Epoch = '10 Oct 2020 19:08:50.122';
Tianwen1.X = 172262669.5024532
Tianwen1.Y = 42536664.64589398
Tianwen1.Z = 21989467.534531824
Tianwen1.VX = -1.7753279668677469
Tianwen1.VY = 25.966616665124505
Tianwen1.VZ = 11.810575717885476

Decoding AMICal Sat in-orbit images

Back in March, I was helping Julien Nicolas F4HVX to test the S-band image transmitter of AMICal Sat before launch. In my post back then, I explained that AMICal Sat uses a Nordic Semiconductor nRF24L01+ 2.4GHz FSK transceiver chip to transmit Shockburst packets at 1Mbaud. I also explained how the Onyx EV76C664 CMOS image sensor works and how to process raw images.

AMICal Sat was finally launched on 2020-09-03, and since them the satellite team has been busy trying to downlink some images, both using the UHF transmitter (which uses the same protocol as Światowid) and the S-band transmitter. This has proven a bit difficult because the ADCS of the satellite is not working, and the downlink protocols are not very robust.

Julien has been sending me recordings done by their groundstation in Russia with the hope that we could be able to decode some of the data. Before several failed attempts where we were hardly able to decode a few packets, we got a particularly good S-band recording done on 2020-10-05. Using that recording, I have been able to decode a full image.

Tianwen-1 deep space manoeuvre

As I have mentioned in several posts, the trajectory in which Tianwen-1 was launched had a closest approach to Mars of around 3 million km, so at some point a large correction manoeuvre was needed. We had already seen small manoeuvres TCM-1 and TCM-2, but we were expecting soon enough this large correction, which is called DSM (deep space manoeuvre). Some sources placed the DSM around the beginning of October, while others were more precise and mentioned that it would happen right after the Mid-Autumn festival holiday season, which this year ended on October 8.

This information turned out to be pretty accurate, since yesterday we heard news that Tianwen-1 had done its DSM at 15:00 UTC on 2020-10-09. This information quickly appeared in the news.

After the Bochum 20m antenna was able to acquire the spacecraft’s signal and gather telemetry at 19:09 UTC, we were able to confirm the manoeuvre in the state vectors transmitted by the spacecraft. Paul Marsh M0EYT was also able to receive telemetry confirming this, starting at 18:18 UTC. This post is an analysis of the data.

Analysis of Object A’s S-band signal

On 2020-09-04, China launched a “reusable experimental spacecraft” of which very little is publicly known. The most popular hypothesis is that this is a robotic spaceplane similar to the X-37B. The spacecraft spent two days in orbit and landed back at Earth, most likely near Lop Nur nuclear test site. Marco Langbroek has a nice post detailing all we know about the mission.

During the time it spent in orbit, the spacecraft released an object which has been catalogued as 2020-063G and is commonly known as “Object A”. On 2020-09-14, Dmitry Pashkov R4UAB detected an S-band signal coming from Object A at around 2280 MHz. This was verified later by Scott Tilley VE7TIL, who received a strong signal with lots of fading, suggesting that the object is tumbling. Marco also did some optical observations of the object.

Scott has sent me a recording of the S-band signal that he did on 2020-09-15 so that I can analyse it and we can learn more about this mysterious object. This post shows the results of my analysis.

Tianwen-1 selfie and attitude

Today, the Chinese National Space Agency and the Chinese Lunar Exploration Program have released some “selfies” taken by Tianwen-1 to celebrate China’s National Day. Apparently, the images have appeared originally in this press release (Google translation), and many media in English have echoed the news.

The best image can be seen below. This kind of image might show us something about Tianwen-1’s attitude, or maybe not? Let’s try to find out.

Tianwen-1 selfie – CNSA and CLEP, original source

Tianwen-1 virtual channel usage

A few days ago, Paul Marsh M0EYT told me that he had seen something interesting in his recording of Tianwen-1‘s signal during the previous night. Paul usually does some nice videos of the signal waterfall by doing screen captures of Spectrum Lab. These clearly show events such as frequency jumps due to groundstation locking, and any high-speed data transmissions. You can see some of these in his Twitter feed.

The waterfall that Paul talked me about can be seen in this video. It corresponds to the night between September 20 and 21. Note that the data sidebands show some horizontal stripes. For a while they disappear altogether, and at other times their density changes. This is what caught Paul’s eye.

Tianwen-1 waterfall between 2020-09-20 and 2020-09-21 by Paul Marsh M0EYT

Paul was convinced that when the stripes disappeared, more data was being transmitted in the signal. I was a bit sceptical about it, but clearly there was something changing in the signal. I thought about the “dancing” related to the subcarrier and data clocks sliding. However, after analysing the signal, I saw that Paul was completely right, as I will explain here. After knowing exactly what happens, I’m still quite amazed that this shows up in the Spectrum Lab waterfall.

Tianwen-1 TCM-2

Last Sunday September 20, around 14:15 UTC, I published a post with an update on Tianwen-1‘s attitude during the mission. I mentioned that we were expecting to see an attitude change to prevent the high-gain antenna from exceeding its maximum slew range. I also mentioned that we were expecting the second trajectory correction manoeuvre (TCM-2) to happen sometime in September according to Chinese media.

Apparently the timing of my post was quite appropriate, because shortly afterwards, at 15:00 UTC (23:00 Beijing time), Tianwen-1 executed its TCM-2. However, news of this didn’t appear until the next morning, at 7:00 Beijing time (23:00 UTC). Unfortunately the manoeuvre happened when the spacecraft wasn’t in view from Europe, so we don’t have Doppler data as for TCM-1. In any case, we can use the state vectors transmitted in the telemetry to study the manoeuvre, by comparing the vectors received before the burn and those received after the burn. In this post I look at this and check if it matches the news report.

Update on Tianwen-1 attitude

A month ago I posted about the ADCS telemetry of Tianwen-1 and how it was controlling its attitude on its cruise orbit to Mars. Since then, AMSAT-DL has been collecting telemetry data from Tianwen-1 using the 20m antenna at Bochum observartory almost all the time that the spacecraft is in view from Germany. This short post is an update with the results collected so far.

Tianwen-1’s attitude is controlled by maintaining the spacecraft’s Y axis (on which the solar panels lie) perpendicular to the plane formed by the Sun, Earth and spacecraft, and by maintaining a fixed angle between the spacecraft’s X axis and the Sun vector. This is done to prevent the solar panels from having to steer constantly to track the Sun.

The figure below shows the angle between the Sun vector an the X axis using all the telemetry collected as of writing this post. We see that the Sun angle was fixed to 0 degrees at the start of the mission, then was changed to -15 degrees for a few days, and finally has been kept at -20 degrees since the beginning of August.

All the dots shown in this picture correspond to telemetry recorded either at Bochum or by Paul Marsh M0EYT. Many thanks to all people involved for their continuous effort in recording telemetry data.

Since the Sun-Earth angle, as seen from the spacecraft, changes as the spacecraft travels along the transfer orbit, and the spacecraft maintains a fixed Sun angle, the Earth angle keeps changing. The high-gain antenna is placed on the -Z axis according to diagrams of the spacecraft. However, the antenna can slew to track the Earth. The figure below shows the angle between the Earth vector and the -Z axis, which is precisely the slew angle needed to point the high-gain antenna.

We see that this slew angle keeps increasing with time. The slew angle of the antenna is limited mechanically, though we don’t know the maximum slew angle. At some point, the spacecraft will have to yaw and reduce its Sun-to-X angle in order to reduce the slew angle to an acceptable value. This is one of the events we are hoping to capture soon in the telemetry.

I don’t know the reason why the spacecraft yawed two times near the beginning of the mission. At first, I thought that the antenna slew was limited to perhaps 20 degrees, so the spacecraft would need to yaw every couple of week to maintain an acceptable antenna slew. Now it is clear that this is not the case, since the slew angle is near 60 degree. It may happen that the spacecraft was yawed for thermal reasons.

The other event we are expecting is the second correction manoeuvre, which according to some sources will happen in September. So far we haven’t seen any indication of this in the telemetry, so stay tuned for more news.

The updated Jupyter notebook where these plots have been made is here.

Measuring Tianwen-1’s modulation

This is a post I had announced since I first described Tianwen-1’s modulation. Since we have very high SNR recordings of the Tianwen-1 low rate rate telemetry signal made with the 20m dish in Bochum observatory, it is interesting to make detailed measurements of the modulation parameters. In fact, there is something curious about the way the modulation is implemented in the spacecraft’s transmitter. This analysis will show it clearly, but I will reserve the details for later in the post.

Here I will be using a recording that already appeared in a previous post. It was made on 2020-07-26 07:47:20 UTC in Bochum shortly after the switch to the high gain antenna, so the SNR is fantastic. The recording was done at 2.5Msps, and the spectrum can be seen below. The asymmetry (especially around +1MHz) might be due to the receive chain.

The signal is residual carrier phase modulation, with 16348 baud BPSK data on a 65536Hz square wave subcarrier. There is also a 500kHz ranging tone.