Decoding packets from GOMX-3: modulation and coding

Recently, Mike DK3WN pointed me to some decoder software for the satellite GOMX-3. This satellite is a 3U cubesat from GomSpace and transmits in the 70cm Amateur band. It has an ADS-B receiver on board, as well as an L-band SDR. As far as I know, no Amateur has decoded packets from this satellite previously, and Mike had some problems running the decoder software. I have taken a look at the software and tried my best to decode some packets from GOMX-3. So far, I have been able to do Reed-Solomon decoding and get CSP packets. However, I don't have the precise details for the beacon format yet. Here, I describe all of my findings.

Continue reading "Decoding packets from GOMX-3: modulation and coding"

A bunch of data from AAUSAT-4

Recently, I have published a Gnuradio AAUSAT-4 decoder in Github. It is based on software from the university team, but several parts have been rewritten completely.

The current features of this decoder are as follows:

  • FEC decoding of both long frames and short frames using the code from bbctl (this code is included in the Gnuradio decoder)
  • CSP header parsing according to the specifications in Wikipedia
  • Parsing of the COM and EPS fields in telemetry beacons, using the code from the university team

In the future, I would like to be able to parse more data from the satellite, but I don't have the format specifications. I'm trying to get the university team to send me some information.

Continue reading "A bunch of data from AAUSAT-4"

Receiving Ku-band geostationary satellite beacons

After sorting out some problems with several connectors which caused huge phase noise in the external 27MHz reference, I have my 10GHz receiver up and running as it should. This station will be used to receive Es'hail-2 in the future. The station is composed of a 95cm offset dish, an Avenger PLL321S-2 Ku-band LNBF modified to use an external 27MHz reference, an OCXO/Si5351A kit used as the 27MHz reference, an RTL-SDR, and a cheap DVB-S2 receiver as a power supply (this allows me to change polarizations and LO frequency easily).

The dish is pointing to the 26ºE or 25.5ºE orbital position, where Es'hail-2 will be. Actually, I have pointed the dish to peak the beacon from BADR-5 the best I can. To test the performance of the station, I have tried to receive the beacons from several Ku-band satellites. Here are the results.

Continue reading "Receiving Ku-band geostationary satellite beacons"

First signals from AAUSAT-4

Today I woke up early to receive the signals from AAUSAT-4 as it passed over Spain for the first time. This satellite was launched from Kourou yesterday at 21:02UTC into a Sun-synchronous orbit. The main payload for the launch was Sentinel-1B, a 5GHz Synthetic Aperture Radar satellite from the Copernicus project of the ESA. The remaining satellites that were launched by the Soyuz rocket were Microscope, from the French CNES, designed to test Einstein's equivalence principle and the three cubesats in the Fly You Satellite! program: OUFTI-1, from the University of Liège, which carries a D-STAR amateur radio transponder, e-st@r-II, from the University of Torino, and AAUSAT-4, from the University of Aalborg, which carries an AIS receiver. Since the launch was into a polar orbit, the first pass of the Fly Your Satellite! cubesats over Spain was at 05:42UTC today.

Continue reading "First signals from AAUSAT-4"

Scanning Ku band satellites with the FUNCube Dongle

I've recently installed my satellite dish and modified LNBF in my garden. This equipment will be used to receive Es'hail 2, the first geostationary satellite carrying an amateur radio transponder. Here I'll look at the hardware I'm using, how I did the alignment to the 25.5ºE geostationary orbital position where Es'hail 2 will be located, and how to have some fun scanning the direct broadcast satellites in the Ku band with a FUNCube Dongle Pro+.

Continue reading "Scanning Ku band satellites with the FUNCube Dongle"

Updating Gpredict transponder files

Gpredict stores the information for the satellite transponders in plain text files, one file per satellite. These files are called .trsp files. The files shipped with the stable version tend to become outdated pretty soon, as new satellites are launched. However, the project's git repository is usually up to date.

The following shell script will download the files from git and install the .trsp files in Gpredict's config path in the user's home folder. This can be used in Linux and probably other Unix-like operating systems. Something similar can also be done in Windows.

This is just an easy and temporary workaround to keep the transponder files updated, as Alexandru OZ9AEC, who is Gpredict's author, thinks of perhaps using an online database as a long-term solution.

Doppler correction with GNURadio

When receiving signals from a satellite, it can be important to correct for the Doppler shift in the signal. Normally, I use Gpredict to track satellites and compute the Doppler shift. Gpredict can control the frequency of a receiver using Hamlib to track the Doppler shift. When using an SDR receiver, there are several possible ways of using Gpredict's frequency control.

Normally, the SDR software doesn't support Hamlib control in a way that it's useful and easy to use for this purpose. This is the case with Linrad, which is the software I use, and probably with many other popular SDR softwares. An easy solution is to let Gpredict completely control the frequency of the SDR receiver through Hamlib and prevent the SDR software from controlling the frequency. With the FUNCube Dongle Pro+, which is the receiver I normally use, this is easy to do. It can be controlled without problem with recent versions of Hamlib, and if you set the dongle in Linrad as an "Undefined" card instead of a FUNCube Dongle, then Linrad will not try to control its frequency.

The problem with this solution is that each time that the frequency gets updated, it does so in a non phase continuous manner, because the PLL of the receiver has to lock on to the new frequency, effectively losing reception for just a tiny amount of time. This supposes no problem for SSB, CW or FM reception, because your ears just don't notice. However, if you want to receive any digital signal or SSTV, the frequency change usually messes with the decoder software, which loses sync and suffers decoding problems. An alternative solution is to leave the receiver frequency fixed and correct for Doppler shift in software.

Continue reading "Doppler correction with GNURadio"

LilacSat-2 downlink signal strength

In a previous post, I recorded and decoded LilacSat-2 telemetry. This satellite transmits telemetry on 437.200MHz and 437.225MHz using two different radios and antennas, as can be seen in the radio info page. The transmission on 437.200MHz is usually 9k6 BPSK telemetry, but this is the same frequency, radio and antenna that is used for the amateur FM transponder when it is active. Looking at the waterfall as I recorded the IQ, I had the impression that the signal on 437.200MHz was much weaker than the signal on 437.225MHz. Using my LilacSat-2 receiver and the IQ recording I did, I have plotted the signal strength on both frequencies to compare.

Continue reading "LilacSat-2 downlink signal strength"