Decoding Lucy

Lucy is a spacecraft that will study the Trojan asteroids, during a twelve year mission. It was launched last Saturday at 9:34 UTC from Cape Canaveral on an Atlas V rocket. Its telemetry downlink is on X-band, at a frequency of 8445.768 MHz.

Iban Cardona EB3FRN made a 30 minute recording of the telemetry downlink at 19:00 UTC on Saturday, as the spacecraft first appeared over Europe after launch. r00t.cz did a brief analysis of this recording overnight, and then published some more details about the telemetry data. On Sunday, at 8:52 UTC, I did a long recording with one of the dishes in the Allen Telescope Array. This recording lasts 3 hours 26 minutes, and ends when the spacecraft set below the 16 degree elevation mask of the ATA. In this post I give a first analysis of the telemetry data in both recordings.

The recording done at ATA can be downloaded from the following datasets in Zenodo:

Tianwen-1 communications relay orbit

As you may have seen in my last post, lately I have been reviewing some of data we have from Tianwen-1. In the days following the landing of Zhurong, back in May, we had so much data in our hands that I couldn’t post about it in a timely manner. We were wondering if we could use this data to plan for a number of experiments with the 20 meter antenna at Bochum observatory. These included trying to receive data from the rover relayed by the orbiter, and trying to detect the rover’s direct X-band link to Earth. We didn’t manage to do any of these, unfortunately, as they had a great deal of luck involved.

During the summer I’ve been involved in several activities such as collaborating with the SETI Institute and BSRC REU summer student programmes by teaching some GNU Radio lessons, and preparing material for GRCon21 (a talk, a workshop and paper). Now I have more time at hand, so it’s good to revisit this data. In this post I’ll look at Tianwen-1’s orbit after the release of the lander.

Tianwen-1 attitude in Mars orbit

It has been a while since the last time I wrote an update about Tianwen-1’s attitude. In that post I showed that Tianwen-1 had changed to a sun angle of 0 degrees with respect to the spacecraft’s X axis on 2020-10-22. Since then, nothing changed, even after the spacecraft arrived to Mars orbit on February 2021, so I have been sloppy and ignored the ADCS telemetry for quite a while.

As you may have heard, the 20 metre antenna at Bochum observatory had a failure at the beginning of June due to a thunderstorm. It has been under repair until the end of August, when it became operational again. As AMSAT-DL has now returned to receive telemetry from Tianwen-1 at Bochum, I am now reviewing the new data to see if anything interesting might have happened in the last months.

I have updated my attitude study Jupyter notebook, since the previous version assumed that the spacecraft’s state vectors were heliocentric coordinates, so it didn’t work in Mars orbit, due to the change to Mars-centric coordinates.

When plotting the new data I have learned that Tianwen-1 changed attitude during the release of the lander on May 14, and has maintained this new attitude until the present day.

Decoding Voyager 1

Today is the 44th anniversary of the launch of Voyager 1, so I want to celebrate by showing how to decode the Voyager 1 telemetry signal using GNU Radio and some Python. I will use a recording that was done back in 30 December 2015 with the Green Bank Telescope in the context of the Breakthrough Listen project. Most of the data from this project is open data and can be accessed through this portal.

In contrast to other posts about deep space probes in this blog, which are of a very specialized nature, I will try to keep this post accessible to a wider audience by giving more details about the basics. Those interested in learning further can refer to the workshop “Decoding Interplanetary Spacecraft” that I gave in GRCon 2020, and also take a look at other posts in this blog.

An update about Chang’e 5 whereabouts

It’s been a while since the last time I posted about Chang’e 5, back at the end of January. Since then we have been occasionally keeping an eye on it with the Allen Telescope Array, and Scott Tilley VE7TIL has also been monitoring with its home station. Until now, the spacecraft has spent its time slowly drifting around the Sun-Earth L1 point. However, it appears that now it is on the move.

The observations I’ve done last weekend from ATA, as well as reports from Scott and other observers show that it has deviated significantly from the ephemerides made by Bill Gray using our radio observations. This is not so surprising, because we haven’t been maintaining those ephemerides with new observations through part of July and all August. What is more surprising is that now the spacecraft’s right ascension and declination is changing rather fast.

The following are the observations I took with the ATA this weekend, using the Chang’e 5 telemetry signal at 8486.3 MHz.

Timestamp (UTC)RA (h)DEC (deg)
2021-08-28 21:007.93114.73
2021-08-29 16:008.11714.05
2021-08-29 21:308.15013.80

This represents an angular movement of 3.25 deg per day, which is a lot if we compare it with the ephemerides around the end of July, which had an angular movement of 0.43 deg per day.

Still we don’t have enough data to fit a good trajectory. It is uncertain whether Chang’e 5 has manoeuvred or is simply being ejected out of the L1 point (orbits around the Langrage points are typically unstable and require station-keeping). We will keep gathering more data points to try to fit a better trajectory.

Yesterday I observed that the signal strength was really good. The figure below shows the spectrum of the signal. The two smaller spikes to the sides of the carrier are the data sidebands, which have an SNR of approximately 5 dB. The spacecraft is still transmitting at 512 baud.

Chang’e 5 signal on 2021-08-29

In comparison, this is the signal on Saturday, which is a few dB weaker.

Chang’e 5 signal on 2021-08-28

And here is the signal on 2021-07-31, which is the previous observation I made.

Chang’e 5 signal on 2021-07-31

These last two spectra are more typical of the signal strengths we’ve been seeing with the ATA (using a single 6 metre dish) since Chang’e 5 arrived the neighbourhood of the L1 point.

Since the signal was so good, I left the ATA recording IQ data in order to decode the telemetry later. Unfortunately the spacecraft movement was fast enough that it exited the beam of the dish in approximately 3 hours (I was tracking a constant right ascension and declination). Still, during these 3 hours we got very few lost frames, as shown in these figures.

The telemetry data in the different APIDs in virtual channel 1 (which is the only virtual channel in use) looks very similar to the data decoded on 2021-01-24. The only noteworthy aspect is that APID 1029 is missing in the data from 2021-08-29. As during the end of January, the data looks rather static, with some periodic changes in channels that could correspond to temperature cycles.

The full plots of the decoded data can be seen in this Jupyter notebook, and the decoded data can be found here.

Tianwen-1 landing

Yesterday, May 14th, at around 23:18 UTC the Tianwen-1 rover Zhurong safely landed on the Utopia Planitia region of Mars. To follow this event, AMSAT-DL made a 7 hour livestream of the orbiter signals as received by the 20m antenna in Bochum observatory. In this livestream we could see the signal losses caused by the manoeuvres of the deorbit burn and collision avoidance burn. Analysis of the telemetry decoded at Bochum shows more details about these manoeuvres. This post is a detailed report of the landing.

QO-100 spring eclipse season

A few days ago, the spring eclipse season for Es’hail 2 finished. I’ve been recording the frequency of the NB transponder BPSK beacon almost 24/7 since March 9 for this eclipse season. In the frequency data, we can see that, as the spacecraft enters the Earth shadow, there is a drop in the local oscillator frequency of the transponder. This is caused by a temperature change in the on-board frequency reference. When the satellite exits the Earth shadow again, the local oscillator frequency comes back up again.

The measurement setup I’ve used for this is the same that I used to measure the local oscillator “wiggles” a year ago. It is noteworthy that these wiggles have completely disappeared at some point later in 2020 or in the beginning of 2021. I can’t tell exactly when, since I haven’t been monitoring the beacon frequency (but other people may have been and could know this).

A Costas loop is used to lock to the BPSK beacon frequency and output phase measurements at a rate of 100 Hz. These are later processed in a Jupyter notebook to obtain frequency measurements with an averaging time of 10 seconds. Some very simple flagging of bad data (caused by PLL unlocks) is done by dropping points for which the derivative exceeds a certain threshold. This simple technique still leaves a few bad points undetected, but the main goal of it is to improve the quality of the plots.

The figure below shows the full time series of frequency measurements. Here we can see the daily sinusoidal Doppler pattern, and long term effects both in the orbit and in the local oscillator frequency.

If we plot all the days on top of each other, we get the following. The effect of the eclipse can be clearly seen between 22:00 and 23:00 UTC.

By adding an artificial vertical offset to each of the traces, we can prevent them from lying on top of each other. We have coloured in orange the measurements taken when the satellite was in eclipse. The eclipse can be seen getting shorter towards mid-April and eventually disappearing.

We see that the frequency drop starts exactly as soon as the eclipse starts. In many days, the drop ends at the same time as the eclipse, but in other days the drop ends earlier and we can see that the orange curve starts to increase again near the end of the eclipse. This can be seen better in the next figure, which shows a zoom to the time interval when the eclipse happens, and doesn’t apply a vertical offset to each trace. I don’t have an explanation for this increase in frequency before the end of the eclipse.

The plots in this post have been done in this Jupyter notebook. The frequency measurements have been stored in this netCDF4 file, which can be loaded with xarray.

BPSK pulse radar revisited

Some months ago I published the analysis of a BPSK pulse radar waveform that Scott Tilley VE7TIL had received through the transponder of Meridian 8 at a downlink frequency of 994 MHz. Now Roland Proesch DF3LZ has analyzed the same recording that I used, finding some different signal parameters. This has made me review my analysis, and it turns out that I made a mistake in finding the symbol rate of the signal. This post is an updated analysis, correcting my mistake.

Decoding the Falcon-9 upper stage

This is hardly news any longer. Since a few weeks ago, some people have been decoding the S-band telemetry from the Falcon-9 upper stage, which includes live video of the exterior of the spacecraft and the liquid oxygen tanks interior. This started with the work of r00t.cz, @aang254 and others, who around the second week of March managed to decode video from the telemetry for the first time. r00t.cz has published some information about the telemetry, @aang254 has added a decoder to SatDump, and Alexandre Rouma is adding a decoder to SDR++. In fact, the whole exercise of decoding the video has become quite popular, and more and more people are contributing to decode the latest launches.

On 2021-03-24 there was a launch of 60 Starlink satellites from Cape Canaveral, and Iban Cardona EB3FRN sent me the IQ recording he did on the first orbit, some 18 minutes after the launch. I decided to make a GNU Radio decoder flowgraph for this, since even though there are already several software decoders, I haven’t seen anyone using GNU Radio. I figured out that I could easily put together a flowgraph using some blocks from gr-satellites. This would make a useful and interesting example of using GNU Radio to decode digital signals.

Tianwen-1 reconnaissance orbit

In my last post about Tianwen-1, I explained how on 2021-02-23 the spacecraft would enter an orbit with a period of 2 Mars sidereal days. This would give a repeating ground track with periapsis passages over the intended landing site in Utopia Planitia. Almost one month has passed since then and AMSAT-DL has continued to receive telemetry state vectors every day with the Bochum 20 meter antenna. This data allows us to study the orbit in detail, including orbit perturbations and any station-keeping manoeuvres that are done to maintain the orbit. This post is my first analysis of the current orbit.