Today I will show you how to receive and decode signals from space. Not as, of course, as contactees and lovers of foil caps do, but in all seriousness. We will study the so-called L-Band – a frequency range from 1 to 2 GHz, which is actively used for communication with satellites.
L-Band reception is not something completely new for radio amateurs. But it wasn’t easy before. It was necessary to calculate and make an antenna, solder a low-noise amplifier (because the signals from the satellite are very weak), then set up all this. In addition, the devices for this lesson cost a lot of money.
Now everything has become much simpler and cheaper: you can keep within $ 100 for an antenna along with a receiver. As for the satellites themselves, we will consider two systems: Iridium and Inmarsat . They are interesting in that they are operating communication systems and you can see how they work “live”. Moreover, there are software decoders for these systems that you can run, check out the sources on GitHub.
The set for receiving satellite signals consists of three main components: a receiver, an antenna and a low noise amplifier (LNA, Low Noise Amplifier).
Let’s start with the receiver. There are three main options.
Option 1 – RTL-SDR V3
This is already a classic of the genre, one of the best and proven inexpensive receivers based on the famous RTL-SDR. The receiver provides operation at frequencies up to 1.7 GHz and a span of 2 MHz. The price of the receiver is about $30, together with an antenna and a mini-tripod (it will also come in handy on the farm).
It is important to take the original model: there are cheaper clones on AliExpress, but, firstly, their quality is not guaranteed, and secondly, the receiver must be able to supply power to the antenna input (bias tee), otherwise nothing will work.
Option 2: Nooelec NESDR SMArTee v2
This receiver is approximately comparable in characteristics to the previous one, it has a non-disconnectable bias tee, and it can be convenient for receiving satellites. It is advisable to choose the second version, because the first has a lower maximum current output (250 mA versus 100). This is important: some LNAs (for example, Nooelec SAWbird) consume about 180 mA.
There is another model Nooelec NESDR SMArt, without Tee in the name, it will not fit.
Option 3 – SDRplay RSPduo
It is a better quality receiver that offers up to 8 MHz reception bandwidth, which is much easier to find signals. The ADC itself also has a higher bit depth (12 bits instead of 8), which is better for receiving weak signals.
The RSPduo has multiple antenna inputs and can receive signals from 2 kHz to 2 GHz. Its price, however, is already about $250.
Antennas are different, patch antennas and parabolic antennas are best suited for our purposes. Spiral antennas are popular among homemade antennas: they are quite easy to make at home. Some use a redesigned GPS antenna with a bandpass filter removed. In general, there are many options. From what you can just take and buy without “file modification”, you can recommend the RTL-SDR Active L-Band 1525-1637 Patch Antenna Set.
This is a ready-made antenna with a built-in amplifier, to get started, just connect it to the receiver and activate it in the bias tee settings, so that the antenna is powered. The price of the antenna is $35.
A parabolic antenna for Wi-Fi gives good results, but it is rather bulky.
Although this antenna is designed for the 2.4 GHz band according to the documentation, it works well at 1.7 GHz. It does not have a built-in LNA, it will have to be purchased separately.
The choice for the aspiring satellite receiver is pretty simple: the $ 30 RTL-SDR V3 receiver and the $ 35 RTL-SDR Patch Antenna. We connect all this to a PC and we can receive radio signals. Everything will cost $ 65. For another five bucks, you can buy an SMA extension cable and a three-meter USB cable: they come in handy if the antenna and receiver are located far from the computer.
And if you want to receive weaker signals, you can upgrade the setup and put a bigger antenna, there is no limit to perfection.
I tested everything on this kit.
On this we will finish with the hardware and move on to the software. I will not tell you how to connect RTL-SDR to a computer and how to install SDR # with plugins, there were enough articles about this, including those written on “INSIGHT” (Making the first steps with RTL-SDR).
To receive Inmarsat, you will need to install a Virtual Audio Cable so that you can transfer sound from SDR # to the decoder program. For decoding Iridium, we will be using Ubuntu from Windows 10.
What signals are we going to receive?
Inmarsat is a British company that uses a constellation of thirteen geostationary satellites orbiting 35,786 km. Satellites are geostationary, they rotate synchronously with the Earth. To receive their signal, you do not need to know the exact time of flight: they are always in the same place relative to the Earth’s surface (unlike NOAA satellites).
Inmarsat provides various services for data transmission, text messages, telephony. This is relevant where there is no “usual” coverage – in aviation, in the navy. More details can be found on the official website . Part of the data is encrypted, part is transmitted in clear text.
As you can see, the reception area covers virtually the entire surface of the Earth. However, geostationary satellites are located above the equator and reception can be difficult at the northernmost latitudes.
The American company Iridium uses a different approach: 66 satellites fly in low orbit – 781 km above the Earth’s surface, the number of satellites is calculated so that at any moment there are at least three satellites above each point.
The higher the signal level from the satellite, the better the communication in northern latitudes, but the cost of servicing the satellite constellation is probably higher. Like Inmarsat, Iridium provides data, messaging and voice services .
This concludes with the theory and move on to practice: let’s see what decoders are available for both systems.
Receiving Inmarsat signals
As you remember, the Inmarsat satellites are geostationary. Therefore, first of all, we are looking for a direction to the satellite, for which you can use the dishpointer.com website . We choose our location, find one of the Inmarsat satellites and get the angle and height of the satellite where the antenna will need to be directed.
I tried different programs for Android, but none of them came up – some are covered with ads, many have only satellites for TV, but no Inmarsat support. As a result, the DishPointer website turned out to be the most convenient solution. By the way, an open sky is desirable for reception: if the satellite is closed by houses, then there may be no signal.
Then we connect the RTL-SDR receiver with an antenna and enter a command
rtl_biast -d 0 -b 1to supply voltage to the RTL-SDR antenna output. The antenna will not work without power.
Now you can run the software. The frequencies are easy to find on your own . If everything was done correctly, then when you point the antenna to the sky, you will see satellite signals on the SDR # screen.
First, we will look at the plugin for SDR # , which was created by a person with the nickname Scytalec. Scytale-C allows you to decode messages that have been transmitted via Inmarsat satellites. The program consists of two parts: the plugin itself, which is installed in SDR #, and a separate QuickUI decoder.
The Scytale-C plugin should be active and, if configured correctly, will show the
LockedBPSK status and phase constellation.
Now we launch Quick-UI, the program can show both the contents of packets in JSON and decoded messages.
The second useful program is JAERO . It is focused on receiving ACARS (Aircraft Communications Addressing and Reporting System) messages that are intended for aircraft and transmitted via Inmarsat satellites.
JAERO works through Virtual Audio Cable, so in the SDR # settings you will need to specify the appropriate device for audio output. To receive messages, you need to select a signal in JAERO, with normal decoding, a QPSK phase constellation should appear, as shown in the figure.
JAERO allows you to decode different signals, not only text, but also voice. Those interested can explore the program’s capabilities on their own.
This is where we are done with Inmarsat and move on to receiving Iridium signals.
Receiving Iridium Signals
Receiving Iridium is a slightly trickier topic, the format of the signals themselves is much more complex. Iridium satellites transmit signals in the form of short bursts at various frequencies; for clarity, you can show a screenshot of the SDRplay receiver with a 4 MHz bandwidth.
The tricky part of accepting Iridium for most users is that the decoder
gr-iridiumcan only be compiled on Linux. We will take advantage of the fact that in Windows 10 you can install Ubuntu from the Microsoft Store as standard. The decoder itself works from the command line, so before starting it, it is advisable to look at the spectrum using SDR # and remember the frequency at which the most signals are visible.
Another complication: the bandwidth in which the Iridium signals are transmitted exceeds the 2 MHz provided by RTL-SDR. So we will inevitably miss some of the packages. Ideally, we need a wider bandwidth receiver like SDRplay or HackRF. But we’ll still see how this works with RTL-SDR.
To do this, you need to perform several actions.
1. Launch Ubuntu , compile and install the required components. The Iridium decoder consists of two separate components – gr-iridium and iridium-toolkit . Compilation and installation instructions are available on the GitHub page.
2. Activate bias tee in Windows with the command
rtl_biast -d 0 -b 1. The problem with Ubuntu on Windows 10 is that Linux does not see USB-connected devices and we cannot launch the receiver directly. Therefore, we will start the server in Windows with the
rtl_tcp.exe -a 0.0.0.0 -f 16XXXXXXXX, where
XXXis the frequency we need.
3. Create a file in Ubuntu
rtl_tcp.conf in a folder
gr-iridium/examples with the following content.
[osmosdr-source] sample_rate=2000000 center_freq=16XXXXXXXX device_args='rtl_tcp=127.0.0.1:1234' ## Automatic bandwidth bandwidth=0 ## LNA gain gain=19 ## Moderate gains if_gain=30
4. Start recording packages with the command
iridium-extractor -D 4 examples/rtl_tcp.conf | grep "A:OK" > output.bits
The number of recorded packets (marked as
ok) should grow as shown in the screenshot.
If the labels
okdo not appear and there are only zeros on the screen, then it is useless to go further, you need to figure out what is wrong. Most often the problem is that you did not activate bias tee, and without it the antenna will not work, or you have chosen the wrong frequency.
You can stop recording for a while. At the output, we should get a file
output.bits, the size of which depends on the number of packages collected.
5. Launch iridium-parser with the command
python iridium-parser.py output.bits > output.parsed.
The data is ready. For example, you can extract the coordinates of passing satellites using the command
grep ^IRA output.parsed | perl mkkml tracks > output.kml
The result of processing a record, however, is quite dependent on luck – extensive traffic from satellites is not always the case.
By the way, it is interesting to watch Iridium signals on your own, without the help of a decoder. As the review of the recording in the Signals Analyzer program shows, the data is transmitted in the form of short signals (burst) with a length of about 9 ms.
The waveform indicates phase modulation. The picture shows two types of signals, occupying different spectral widths. Phase plane analysis shows a wide signal transmission rate of 240 bps, which yields a data volume of approximately 2 KB per packet. The narrowband signal has a speed ten times slower, but they are transmitted more often.
This concludes our brief introduction to the reception of satellite signals. Of course, this is not all that is interesting that can be taken from space. For example, reception of high-resolution images (HRPT, high-resolution picture transmission) from meteorological satellites is very interesting.
For acquaintance, you can watch a detailed tutorial on receiving American GOES weather satellites . Unfortunately, in Europe, these satellites are practically invisible and are located over the horizon.
In my opinion, the topic of satellite reception has been studied quite little: some are good at soldering antennas and amplifiers, but they are not very versed in digital signal analysis, and vice versa – programmers do not really like to solder. But recently, ready-made and inexpensive solutions have appeared that work out of the box.