Chang’e 5 polarization in the ATA observations

In my previous post, I talked about an observation of Chang’e 5 made with Allen Telescope Array last Sunday, 2020-11-29. I still need to write the report corresponding to the observation from Saturday 2020-11-28. However, before doing so, I thought it would be interesting to look at the polarization of each of the signals in these recordings. As I already advanced, the polarization is not perfect RHCP, but rather elliptical and time varying.

In fact, it seems likely that most of the antennas of Chang’e 5 are not steerable antennas, but rather, patch-like medium-gain or low-gain antennas. These are circularly-polarized only when seen from the front. They are linearly polarized when seen from a side.

Therefore, by studying the polarization of the Chang’e X-band signals, we can try to learn more about the spacecraft’s attitude and its antennas.

Chang’e 5 LOI-2 observed with Allen Telescope Array

If you follow me on Twitter you’ll probably have seem that lately I’m quite busy with the Chang’e 5 mission, doing observations with Allen Telescope Array as part of the GNU Radio activities there and also following what other people such as Scott Tilley VE7TIL, Paul Marsh M0EYT, r00t.cz, Edgar Kaiser DF2MZ, USA Satcom, and even AMSAT-DL at Bochum are doing with their own observations. I have now a considerable backlog of posts to write, recordings to share and data to process. Hopefully I’ll be able to keep a steady stream of information coming out.

In this post I study the observation I did with Allen Telescope Array last Sunday 2019-11-29. During the observation, I was tweeting live the most interesting events. The observation is approximately 3 hours long and contains the LOI-2 (lunar orbit injection) manoeuvre near its end. LOI-2 was a burn that circularized the elliptical lunar orbit into an orbit with a height of approximately 207km over the lunar surface.

A look at Chang’e 5 telemetry

Chang’e 5 is a Chinese lunar sample return mission. It was launched a few days ago on 2020-11-23 from Wenchang and is estimated to perform lunar orbit injection on Saturday. Since then, a number of Amateurs such as USA Satcom, Paul Marsh M0EYT, Scott Tilley VE7TIL, Fer IW1DTU and others have been receiving the X-band signals from the spacecraft and posting reports over on Twitter. Meanwhile, r00t.cz has been working in decoding the frames, which has led him to the amazing achievement of being able to retrieve a short video from the signal.

In this post I will look at some of the frames demodulated by USA Satcom and Paul during the first couple of days of the mission. The frame structure has many similarities with Tianwen-1, which I have described in several posts, such as here and here. However, there are some interesting differences.

Tianwen-1 TCM3 final trajectory

A few days ago I posted about TCM3, the fourth trajectory correction made by Tianwen-1 so far. After some days, the Chinese DSN has performed precise orbit determination and updated the on-board ephemerides, so that we are now seeing the final trajectory in the telemetry state vectors.

The figure below shows how the state vectors have been updated a couple of times following the TCM, as the DSN computes and uploads an improved trajectory solution. I have plotted this graph in the following way: I have taken the first state vector received after TCM3, on the UTC afternoon of 2020-10-28, and used it to propagate a trajectory in GMAT. The plot shows the difference between the state vectors and the GMAT trajectory.

TCM3 happened on 2020-10-28 at 14:00 UTC, so the reference trajectory computed in GMAT corresponds to the trajectory of the state vectors immediately following the TCM. These are based on a prediction of the burn performance, rather than on the actual results. The graph above shows clearly two changes in the trajectory, one on 2020-10-29, and another one on 2020-11-01.

Since we have already seen the same trajectory for three days without updates, I am confident that this trajectory is now final. The latest state vector we have today is

[0163f5396aeb] 2020-11-04 03:25:57.092300 160383830.37880394 94290296.68475787 45404213.83552203 -9.17821106231485 22.96506090856966 10.332601544380973

As always, this gives the UTC timestamp and the ICRF heliocentric position and velocity coordinates in km and km/s respectively.

I have re-run the calculations in the previous post by back-propagating a state vector from the UTC evening of 2020-11-01, which already belongs to the final trajectory. The change in delta-V in comparison to what I should in the previous post is small. The new delta-V is 2.13 m/s rather than 2.09 m/s, and the components have changed around 5%. The detailed calculations and data can be found in the updated Jupyter notebook.

ATA polarimetry test with GNSS satellites

This post belongs to a series about the activities of the GNU Radio community at Allen Telescope Array. For more information about these activities, see my first post.

The feeds in the ATA dishes are dual polarization linear feeds, giving two orthogonal linear polarizations that are called X and Y and (corresponding to the horizontal and vertical polarizations). In the setup we currently have, the two RF signals from a single dish are downconverted to an IF around 512 MHz using common LOs and then sampled by the two channels of a USRP N32x. Since we have two USRPs, we are able to receive dual polarization signals from two dishes simultaneously.

The two USRPs are synchronized with the 10MHz and PPS signals from the observatory, but even in these conditions there will be random phase offsets between the different channels. These offsets are caused by fractional-N PLL states and other factors, and change with every device reset. To solve this problem, it is possible to distribute the LO from the first channel of a USRP N321 into its second channel and both channels of a second USRP N320. In fact, it is possible to daisy chain several USRPs to achieve a massive MIMO configuration. By sharing the LO between all the channels, we achieve repeatable phase offsets in every run.

During the first weekends of experiments at ATA we didn’t use LO sharing, and we finally set it up and tested it last weekend. After verifying that phase offsets were in fact repeatable between all the channels, I did some polarimetric observations of GNSS satellites to calibrate the phase offsets. The results are summarised in this post. The data has been published in Zenodo as “Allen Telescope Array polarimetric observation of GNSS satellites.

Tianwen-1 TCM3

On 2020-10-28 at 14:00 UTC, Tianwen-1 has made its third trajectory correction manoeuvre. This has been the next manoeuvre after the deep space manoeuvre at the beginning of October. According to the press release, this was a firing of the eight 25N thrusters intended as a minor correction and as a test of this propulsion system. I haven’t found the duration of the burn in the news.

I have followed the same method as in previous burns to compute the moment of the burn and the delta-V vector by extrapolating the telemetry orbit state vectors received by AMSAT-DL in Bochum before and after the burn. This extrapolation locates the burn at 14:02:28 UTC. Note that this time is an approximation for the mid-point of the burn.

The delta-V vector was, in m/s

[-0.6575566 , -0.11513034,  1.97535319],

and the magnitude was 2.09m/s. Assuming a mass of 5000kg and eight 25N thrusters, it would take a burn of 52 seconds to achieve this delta-V.

Update 2020-10-30: according to this news article, the duration of the burn was 42.8 seconds which is some 18% smaller than my estimate. Note that my estimate didn’t take into account the mass of fuel spent by the deep space manoeuvre, which I estimated to be 457kg (giving a decrease in mass of 9%).

Apparently this burn has lowered the periares height significantly in comparison to the trajectory following the deep space manoeuvre, which was around 18000km. Thanks to Achim Vollhardt for noticing this. It’s difficult for me to give a good estimate of the new periares height, because it is quite sensitive to orbit perturbations. I’ve obtained anything between 30 and 800 km by enabling and disabling solar radiation pressure in the GMAT propagator, and we don’t have a good estimate of the spacecraft’s cross-section and reflection coefficient.

The figure below shows one of the GMAT simulations. Note that the periares is near the equator, which is good for insertion into a low inclination orbit.

Periares passage in GMAT

Keep in mind that according to the media still one more trajectory correction manoeuvre remains and that the data used in this post comes straight from the spacecraft’s telemetry, and as such is most likely based on a prediction of the burn rather than on the actual performance of the burn. In a few days, I will publish a new post when the Chinese DSN perform precise orbit determination and upload updated orbital information to the spacecraft.

The data and plots for this post can be found in this Jupyter notebook.

Galileo E24 differential code biases change

Back in July, I wrote about how the Galileo E24 differential code biases were abnormally large in comparison to other satellites from the constellation. This was initially noticed by Bert Hubert from galmon.eu in the large size of the BGDs of this satellite. In that post I did a study of the DCB products from the Chinese Academy of Science and the broadcast ephemeris BGDs, and explained the relation between them.

At the end of September, Bert tweeted that after some maintenance the BGDs of E24 had stopped being so large. That is not so surprising, since the payload on-board the satellite can adjust the relative delays between each of the navigation signals, in order to correct these kinds of problems.

After letting a few weeks go by so that the MGEX products get uploaded, I have now redone some of the plots in that study with the data surrounding the change.

Tianwen-1 attitude change

A month ago, I wrote a post showing the evolution of Tianwen-1‘s attitude so far during its transfer orbit to Mars. For most of the mission, the spacecraft has maintained a fixed attitude where the spacecraft body Y axis was held orthogonal to the planed formed by the spacecraft, Earth and Sun, and the spacecraft to Sun vector had a constant angle of -20 degrees with the spacecraft body X axis.

The figure below shows how the spacecraft axes are labelled. Note the solar panels along the Y axis, the thruster on the -X face, and the high gain antenna on the -Z face.

Yesterday, on 2020-10-22, the spacecraft made an attitude change. The angle between the Sun vector and the X axis was changed back to 0 degrees, which was the angle maintained during the first days of the mission. This can be seen clearly in the figure below.

The angle between the Earth vector and the -Z axis (where the high gain antenna is located) is more interesting, as it gives the slew angle of the antenna. Throughout most of the mission, it was growing and I kept wondering if an attitude change would be done to prevent the antenna from running out of slew range. However, at some point the angle started decreasing. This is basically caused by the Earth “overtaking” Tianwen-1, since the Earth’s orbit is faster (you can see some pictures of this in the last slides of my talk in the AMSAT-UK colloquium).

In this graph we see that the change in attitude also causes a sudden increase of 20 degrees in this angle, so now it is 70 degrees. This shows that the possible slew range for the high gain antenna is much larger than I had initially thought. Perhaps it is not so surprising after we have seen the cut-out in the dish in the in-orbit images published on October 1.

If we zoom in to the last few days, we see that the change in attitude happened at some time when the spacecraft was not in view from Europe, so unfortunately we don’t have any telemetry of the change itself.

I’m not sure of the reason why this attitude change has been done now. It will be interesting to see if the attitude continues with this new 0 degree angle or it switches back to the previous -20 degree angle.

Thanks to AMSAT-DL‘s team at Bochum for continuing the daily collection of telemetry with the 20m antenna. Their effort makes it possible to detect events like this with short notice. The data and code to produce the plots in this post can be found in this Jupyter notebook.

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.