Othernet’s open source open-ondd receiver

Back in 2016, I became interested in Othernet‘s satellite filecasting service, which back then was called Outernet. Outernet was a start up company that offered a free global satellite service with which some internet contents such as weather updates or Wikipedia pages were broadcast. The main goal of the company was making this content available in developing countries, remote locations, and in general, in places that couldn’t afford an internet connection. Outernet started being popular with Amateur radio operators, hobbyists and makers, who saw it as an interesting project to set up at home for fun.

Most of the Outernet’s software stack was open source, and their receivers were some kind of embedded Linux system. However, the key parts of the receiver, which were the demodulator and the implementation of the filecasting protocol, were closed source and the protocols and specs they used were not documented publicly. Unhappy with this, I wrote in their forums asking if these software pieces could be open sourced. After receiving a negative reply, I decided to try to reverse-engineer all this, with the goal of writing some documentation and producing an open-source alternative implementation.

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.

More 10 GHz sun observations

Back in 2019, I took advantage of the autumn sun outage season of Es’hail 2 to make some observations as the sun passed in front of the fixed 1.2 metre offset dish I have to receive the QO-100 transponders. Using the data from those observations, I estimated the gain of the dish and the system noise. A few weeks ago, I have repeated this kind of measurements in the spring sun outage season this year. This post is a summary of the results.

Interferometric imaging with Allen Telescope Array

In the weekend experiments that we are doing with the GNU Radio community at Allen Telescope Array we usually have access to some three antennas from the array, since the rest are usually busy doing science (perhaps hunting FRBs). This is more than enough for most of the experiments we do. In fact, we only have two N32x USRPs, so typically we can only use two antennas simultaneously.

However, for doing interferometry, and specially for imaging, the more antennas the better, since the number of baselines scales with the square of the number of antennas. To allow us to do some interferometric imaging experiments that are not possible with the few antennas we normally use, we arranged with the telescope staff to have a day where we could access a larger number of antennas.

After preparing the observations and our software so that everything would run as smoothly as possible, on 2021-02-21 we had a 18 hour slot where we had access to 12 antennas. The sources we observed where Cassiopeia A and Cygnus A, as well as several compact calibrators. After some calibration and imaging work in CASA, we have produced good images of these two sources.

Many thanks to all the telescope staff, specially to Wael Farah, for their help in planning together with us this experiment and getting everything ready. Also thanks to the GNU Radio team at ATA, specially Paul Boven, with whom I’ve worked side by side for this project.

This post is a long report of the experiment set up, the software stack, and the results. All the data and software is linked below.

Tianwen-1 phasing orbit

Last Saturday 2021-02-20 at 11:46:42 UTC Tianwen-1 passed the periapsis of its elliptical polar orbit at Mars and made a retrograde burn to reduce its apoapsis radius. The trajectory planning of the spacecraft can be seen in its Wikipedia page: the spacecraft first arrived into a low inclination elliptical orbit by making a Mars orbit insertion at periapsis, then coasted to apoapsis, where it performed a plane change, and then it arrived at periapsis, performing the manoeuvre described in this post.

Over the next few days the spacecraft should move into a reconnaissance orbit, which is given in Wikipedia to be a 265 x 60000 km orbit (having a period of 2 days) with an inclination of 86.9 degrees. However, the last burn hasn’t lowered the apoapsis that much. The current orbit is approximately 280 x 84600 km (3.45 day period) with an inclination of 87.7 degrees. A possible reason for using the current orbit, which has been described as a phasing orbit, will be explained in this post after reviewing the data we have about the burn.

Voyager-1 single dish detection at Allen Telescope Array

This post has been delayed by several months, as some other things (like Chang’e 5) kept getting in the way. As part of the GNU Radio activities in Allen Telescope Array, on 14 November 2020 we tried to detect the X-band signal of Voyager-1, which at that time was at a distance of 151.72 au (22697 millions of km) from Earth. After analysing the recorded IQ data to carefully correct for Doppler and stack up all the signal power, I published in Twitter the news that the signal could clearly be seen in some of the recordings.

Since then, I have been intending to write a post explaining in detail the signal processing and publishing the recorded data. I must add that detecting Voyager-1 with ATA was a significant feat. Since November, we have attempted to detect Voyager-1 again on another occasion, using the same signal processing pipeline, without any luck. Since in the optimal conditions the signal is already very weak, it has to be ensured that all the equipment is working properly. Problems are difficult to debug, because any issue will typically impede successful detection, without giving an indication of what went wrong.

I have published the IQ recordings of this observation in the following datasets in Zenodo:

Tianwen-1 plane change manoeuvre

Today at 9:00 UTC Tianwen-1 made its plane change manoeuvre, as reported by Xinhua. Yesterday I showed my planning for this manoeuvre. Shortly after the spacecraft returned to the high gain antenna after the manoeuvre, the Bochum 20m antenna operated by AMSAT-DL received state vectors with the new trajectory. These state vectors allow us to calculate the timestamp of the burn and the delta-V vector, as I have done in other occasions. It is convenient to remark that the state vectors that we are seeing right now are probably a prediction. In the next few days we will see updates in the trajectory as the Chinese DSN measures the effects of the actual burn and updates the onboard ephemerides.

Tianwen-1 plane change planning

Today, the Chinese media published a short piece of news stating that tomorrow, 2021-02-15, Tiawen-1 will make make a plane change to a polar orbit. The post is accompanied by an short video, which includes an animation depicting the manoeuvre. A screenshot of the video is shown below. As the spacecraft arrives to apoapsis, it effects a plane change into an ascending polar orbit.

Tianwen-1 plane change manoeuvre. Source 人民日报 in weibo.com

This is a good moment to review the maths behind a plane change manoeuvre and compute what the manoeuvre will look like.

Emirates Mars Mission MOI burn observed in Bochum

A few days ago, Emirates Mars Mission (Hope), and Tianwen-1 performed their Mars orbit injection burn (MOI). AMSAT-DL made a livestream for each of the two events, showing the X-band signals of the spacecraft as received with the 20m antenna at Bochum.

In the case of Tianwen-1 the signal was pretty strong even while the spacecraft was on the low gain antenna, and we could clearly see the change in Doppler rate as the thrusters fired up. However, in the case of Emirates Mars Mission the signal disappeared as soon as the spacecraft switched to the low gain antenna. In fact DSN Now reported a received power of -155 dBm with the 34m DSS55. That was a large drop from the -118 dBm that it was reporting with the high gain antenna. Therefore, nothing could be seen in the livestream waterfall until the spacecraft returned to the high gain antenna, well after the manoeuvre was finished.

Nevertheless, a weak trace of the carrier was still present in the livestream audio, and it could be seen by appropriate FFT processing, for example with inspectrum. I put up a couple of tweets showing this, but at the moment I wasn’t completely sure if what I was seeing was the spacecraft’s signal or some interference. After the livestream ended, I’ve been able to analyse the audio more carefully and realize that not only this weak signal was in fact the Hope probe, but that the start of the burn was recorded in perfect conditions.

In this post I’ll show how to process the livestream audio to clearly show the change in drift rate at the start of the burn and measure the acceleration of the spacecraft.