D-STAR One Mobitex protocol decoded

D-STAR One are a series of Amateur satellites with an on-board D-STAR digital voice repeater. The first satellite of the series, called D-STAR One, was launched on November 2017 but was lost due to a problem with the upper stage of the rocket. The second satellite, called D-STAR One v1.1 Phoenix, was launched in February 2018 but never worked. On 27 December 2018, a Soyuz rocket launched the next two satellites in the series: D-STAR One Sparrow and D-STAR One iSat. I hear that, unfortunately, these two newer satellites haven’t been coordinated by IARU.

Besides using the D-STAR protocol, these two satellites also transmit telemetry in the 70cm Amateur satellite band using the Mobitex protocol, as described in the CMX990 modem datasheet. They use GFSK at 4800 baud.

In the past, I have talked about the Mobitex protocol in the context of the BEESAT satellites by TU Berlin. I described some notes about the Mobitex-NX variant used in these satellites, and contributed to the beesat-sdr GNU Radio decoder for the Mobitex-NX protocol.

Now, I have adapted the Mobitex-NX decoder to work also with the D-STAR One satellites, and added a decoder to gr-satellites. The decoder requires my fork of beesat-sdr to be installed.

One month of Es’hail 2 Doppler data

In a previous post I talked about my Doppler measurements of the Es’hail 2 10706MHz beacon. I’ve now been measuring the Doppler for almost a month and this is a follow-up post with the results. This experiment is a continuation of the previous post, so the measurement setup is as described there.

It is worthy to note that, besides the usual satellite movement in its geostationary orbit, which causes the small Doppler seen here, and the station-keeping manoeuvres done sometimes, another interesting thing has happened during the measurement period.

On 2018-12-13 at 8:00 UTC, the antenna where the 10706MHz beacon is transmitted was changed. Before this, it was transmitted on a RHCP beam with global coverage. After the change, the signal was vertically polarized and the coverage was regional. Getting a good coverage map of this beam is tricky, but according to reports I have received from several stations, the signal was as strong as usual in Spain, the UK and some parts of Italy, but very weak or inexistent in Central Europe, Brazil and Mauritius. It is suspected that the beam used was designed to cover the MENA (Middle East and North Africa) region, and that Spain and the UK fell on a sidelobe of the radiation pattern.

At some point on 2018-12-19, the beacon was back on the RCHP global beam, and it has remained like this until now.

The figure below shows my raw Doppler measurements, in parts-per-billion offset from the nominal 10706MHz frequency. The rest of the post is devoted to the analysis of these measurements.

In-orbit testing of Es’hail 2 Amateur transponders

Yesterday, December 23, MELCO carried out some in-orbit tests of the Es’hail 2 Amateur radio transponders. Since Es’hail 2 is currently under commissioning, it was expected that at some point the Amateur transponders would be activated for testing, but no announcement of the tests was done in advance. At around 11:00 UTC, Rob Janssen PE1CHL, noticed that the narrowband transponder was active and a carrier signal was being transmitted through it.

Since then, I monitored most of the tests and sent updates on Twitter, together with other people (see also the posts in the AMSAT-DL forum). Without knowing the details of the test plans, we limited ourselves to watching and following the tests that were being made. If some schedule of the tests had been published in advanced, we could have thought, prepared and performed some interesting measurements on the downlink signals.

I understand that since these tests are carried out by MELCO, AMSAT-DL might not have the specific details, but still I think that AMSAT-DL is publishing very little information about Es’hail 2 events. It was only at 22:35 UTC that AMSAT-DL published a small note on Twitter about the tests. I think the greatest concern is that people start transmitting through the transponder, interfering with the tests. However, since news spread very fast these days through social media, I think that publishing more information rather than keeping things discreetly serves better to prevent people from using the transponder during the commissioning. In any case, I’ll repeat it here:

Es’hail 2 is currently under commissioning. The 2.4GHz uplink of the Amateur transponders should never be used until authorized by AMSAT-DL. The Amateur transponders will sometimes be enabled for in-orbit testing by the MELCO/Es’hailSat/AMSAT-DL engineers. Relax, sit back, and watch the tests on the 10GHz downlink.

I also think that publishing more information would be beneficial to educate the community of radio Amateurs. Some people have asked me about the concept of in-orbit tests. After a satellite is launched into orbit, the performance of all its systems is tested to ensure that it matches design specifications, simulations, and pre-launch tests done on ground. This is important to guarantee that any problems, malfunction or damage that occurred during the launch can be diagnosed and hopefully mitigated by activating backup systems or other reliability measures. In-orbit testing of large satellites can take several months, since there are many complex systems that need to be tested remotely.

In the case of the Amateur radio payload of Es’hail 2, MELCO is carrying out the tests, since the payload was built by MELCO according to the design specifications by AMSAT-DL. The kind of tests they are performing are related to the performance of the bent-pipe transponders. They sweep in frequency the transponders to make sure that the passband shape is as expected. They transmit carriers of different power levels to check for linearity of the transponder and AGC performance, and they try different gain/power level settings of the transponder power amplifier to make sure it performs correctly over all its working range.

This is a rough account of the tests that were made yesterday, using my tweets as a sort of activity log.

Recommendations for receiving Es’hail 2

A couple days ago, Janos Tolgyesi HG5APZ asked me by email about different hardware setups to receive the Amateur radio transponders on Es’hail 2, with an interest on inexpensive but effective solutions. He was quite happy with my detailed reply and convinced me to turn it into a blog post, so that other people can learn from it.

This post is intended for people that do not know much about Es’hail 2 but are interested in receiving it. If you’ve been investigating about the different setups that people are doing to receive it, then probably you’ll not learn anything new here. The post addresses questions such as “do I need a modified LNB” and similar.

FUNcube telemetry submitter for gr-satellites

After doing a PW-Sat2 telemetry submitter, I’ve set out to add an telemetry submitter for the FUNcube telemetry server. I’ve been in contact with Dave Johnson G4DPZ, who has been kind enough to send me a Java example explaining how the submission protocol works.

The protocol is very simple. It is based on a HTTP POST request whose content is the telemetry frame in hex. To prevent spoofing, some sort of HMAC formed by an MD5 digest of the message concatenated with a user-specific authorization code is used in the POST url. The authorization code is distributed to each user when registering on the server. The Python implementation of the telemetry submitter is here.

To use the submitter in gr-satellites, you need to obtain your Site Id (or username) and the Authorization code (which is usually sent to you by email when registering). See the README for how these parameters have to be specified in the decoder.

Studying Es’hail 2 Doppler

Es’hail 2, the first geostationary satellite carrying an Amateur radio payload, was launched on November 15. I wrote a post studying the launch and geostationary transfer orbit, and I expected to track Es’hail 2’s manoeuvres by following the NORAD TLEs. However, for reasons not completely known, no NORAD TLEs were published during the first two weeks after launch.

On November 23, people found Es’hail 2 around the 24ºE geostationary orbital slot by receiving its Ku-band beacons at 10706MHz and 11205MHz. On November 27, NORAD TLEs started being published, confirming the position of Es’hail 2 around 24ºE. Since then, it has remained in this slot. Apparently, this is the slot that will be used for in-orbit test before moving the satellite to its operational slot on 25.5ºE or 26ºE.

Since November 27, I have been monitoring the frequency of the 10706MHz beacon to measure the Doppler. A geostationary satellite is never in a fixed location as seen from the Earth. It moves slightly due to imperfections in its orbit and orbital perturbations. This movement is detectable as a small amount of Doppler. Here I study the measurements I’ve been doing.

Decoding ESEO

ESEO is an educational satellite project for university students led by ESA. It is a microsatellite based on the S-50 platform by SITAEL and indeed serves as an in-orbit validation of that platform. It carries payloads developed by students in 10 European universities, and also a FUNcube payload from AMSAT-UK. It was launched last Monday in the SSO-A launch.

The satellite transmits 9k6 GFSK telemetry in the 70cm Amateur satellite band (do not confuse this telemetry with the telemetry sent by the FUNcube payload in the 2m Amateur satellite band). Last week I wrote an open letter to the directors of the ESEO program requesting the publication of the complete specifications for this telemetry. The existing documentation is published here as two documents called attachment 1, which describes the coding of the frames, and attachment 2, which describes the structure of the telemetry frames.

The main problem motivating my open letter was that the information in attachment 2 was insufficient to produce a telemetry decoder for ESEO. However, last Tuesday an updated version of this document was published. This new version seems to include all the information we need. Apparently, this new version has been published due to my open letter and the pressure made by some people at ESA surrounding the ESEO project.

I would like to thank all the people that have expressed their opinion about the importance of having well documented protocols in the Amateur radio service, as well as all the people in ESA that have pushed for the publication of the documentation, and understood that this is an important matter.

In this post we look at the coding used by ESEO, that is, everything described in attachment 1, and how the decoder in gr-satellites is implemented.

Uploading PW-Sat2 telemetry with gr-satellites

Yesterday I spoke about decoding the telemetry of PW-Sat2 with gr-satellites. Today I have added to gr-satellites a telemetry submitter block that sends the frames to the PW-Sat2 telemetry server. All users of the PW-Sat2 decoder from gr-satellites are recommended to set this up and submit telemetry to the PW-Sat2 telemetry server, as well as to the SatNOGS database. Here are the instructions to configure the submitter.

Decoding PW-Sat2 with gr-satellites

PW-Sat2 is a students satellite made by the Students Space Association at Warsaw University of Technology, in Poland. The project started in 2013 and was finally launched last Monday in the SSO-A launch. The satellite carries a sail to aid in deorbiting. This will be deployed on the 39th mission day. The deorbit is expected to happen in one year.

The satellite team has made available a lot of open-source software, such as groundstation software for Radio Amateurs, a telemetry server and even the software that runs on the on-board computer. There is also a good amount of design documentation. This is something a bit unusual and admirable for a university satellite.

PW-Sat2 transmits standard G3RUH-scrambled BPSK AX.25 frames in the 70cm Amateur Satellite band. The baudrate can be selected between 1k2, 2k4, 4k8 and 9k6 by the satellite team. The interesting thing is that there are many types of packets besides telemetry. For instance, it can list and transfer on-board files, such as the images taken by the satellite camera. These packets can be decoded by using the FramePayloadDecoder software.

Since the FramePayloadDecoder software is quite complex and it is written in Python, I have decided to make a telemetry parser for gr-satellites that simply loads this software into GNU Radio and passes the frames to the decoder. Here are the instructions to set this up.