SatNOGS: A Ground Station for Under €100

· telcokwaks.com ·

6 min read Original article ↗

The SatNOGS Network Project

The goal of the SatNOGS project, as its “about” page indicates, is to have a global network of ground stations. An interface allows you to manage your station, observations, etc. The observations are freely accessible to anyone who wishes. It is possible to participate in the project by installing one or more stations, which allows access to other features, such as scheduling observations on your own station or on others'.

The PoC (Proof of Concept)

In its current state, I consider the station I’ve set up to be just a PoC. It has allowed me to learn a bit more about the world of radio and satellite reception.

The Hardware

For the first iteration of the project, I didn’t want to have a huge budget. I already had a Raspberry Pi and an RTL-SDR dongle.

I was only missing an antenna and possibly a Low Noise Amplifier (LNA). The LNA is a device that amplifies weak signals from an antenna. In our case, it’s best to have it as close to the antenna as possible (within about 1 meter): this way, it amplifies the signal before it gets attenuated by the coaxial cable losses. Placed too far from the antenna, it would amplify an already degraded signal (noise included) without improving the signal-to-noise ratio.

There are several types of antennas: dipole, wire, directional, Yagi, parabolic, and many others. The choice of antenna depends on our needs (frequency, distance, interference, cost, etc.). In my case, I wanted an antenna that was as versatile as possible for several reasons. I don’t know how long I’ll keep the station running (a week, a month, several years), and I’d like to use it for projects other than satellite reception. I decided to go with a discone antenna. It’s versatile in terms of frequency range (25-2000MHz in my case), relatively inexpensive (mine cost less than €100), and it’s omnidirectional.

SatNOGS Account

Before setting up your station, you need to create an account on the website. Then, you just need to create your station. In your account dashboard, you can add a new station. You must give your station a name, and it’s a good idea to add a description of the hardware you’re using. In the “Antennas” tab, you must specify the type of your antenna and the frequency or frequency range it can receive. In the “Settings” tab, it is recommended to set your station to “Testing.” You can change this later when you consider your station to be reliable. After saving, you can see your station in your dashboard. It won’t be “online” yet because the client software hasn’t been installed and configured.

Client Installation

The SatNOGS application is divided into several parts: the server, the client, the signal reception, the antenna rotator (not installed in my case), and the antenna.

satnogs-map

What we will be setting up is the chain from the client to the antenna. The rotator part isn’t necessary in our case since we have an omnidirectional antenna.

The installation is very simple and automated.

First, I installed the Raspberry Pi OS Lite image. Then, connect to your Raspberry Pi via SSH.

A single command installs and launches the SatNOGS configuration. The setup is done through a menu, and the management is handled by Ansible.

1
curl -sfL https://satno.gs/install | sh -s --

At the end of the installation, the satnogs-setup command is executed.

This will allow us to configure our client.

main menu

You will see this interface. First, let’s go into Basic. basic menu This is the minimum configuration required. If you are using an RTL-SDR dongle like me, you can copy this configuration.

You need to change the following variables:

  • SATNOGS_API_TOKEN
  • SATNOGS_STATION_ELEV is the station’s elevation above sea level in meters.
  • SATNOGS_STATION_ID is the ID of the station you just created on the website.
  • SATNOGS_STATION_LAT and SATNOGS_STATION_LON correspond to your station’s latitude and longitude (the more precise the coordinates, the more accurate the predictions and recordings will be, but your anonymity will be reduced).

You can find more information in the documentation.

Here is the final configuration, which can be displayed from the main menu by selecting “Show”. show config

Note that I modified the gain, mainly because the signal was often too weak. The gain corresponds to the equipment’s ability to amplify the received signal. A higher gain will increase the signal strength, which can be useful for weak signals. Be careful, however, as too high a gain can also amplify noise and saturate the receiver, degrading the reception quality.

To change it, go to “Advanced > Radio” and modify the value of SATNOGS_RF_GAIN.

Then, just exit the menu, and the station will be operational.

Scheduling an Observation

Now that the installation and configuration are complete, you can schedule observations. To do this, go to your station on the website, and in the Future Passes tab, you will find all available observations.

To test your station, the documentation recommends certain satellites that are known to have good results. cf

The client will query the server to check for new observations and retrieve the necessary information (date/time, frequency, etc.). You can find all your observations in the “Information” tab of your station by clicking on the button with a number. btn_observation

Grading the Observation

When an observation is complete, it needs to be graded. There are 4 different statuses: “Unknown,” “Good,” “Bad,” and “Failed.” If data frames are decoded during the observation, it will automatically be marked as “Good.” A manual check is also possible. You can look at the “Waterfall.” The waterfall is a visual representation of the signal. It can be graded in 3 ways: “With Signal,” “Without Signal,” or “Unknown.” The documentation provides examples to help you decide.

My Observations

I was able to capture a few observations, including images from weather satellites (NOAA) and audio from the ISS. They are far from perfect, mainly because my antenna is not optimized for receiving satellite signals, and I don’t have an LNA.
Although I had purchased an LNA, I ultimately didn’t install it for two practical reasons.
First, the antenna’s cable, which is several meters long, is directly soldered. To place the LNA as close to the antenna as possible (which is crucial for its effectiveness), I would have needed to cut the cable and add connectors—a modification I wanted to avoid for this PoC.
Second, an LNA is an active component that requires a power source, which would have added unwanted complexity to the project.

noaa1 noaa2 Here we can see France, part of England, and Italy.

Note: since this article was written, NOAA-15, NOAA-18, and NOAA-19 were decommissioned during 2025 (sources: NOAA OSPO, rtl-sdr.com).

Conclusion

This was a brief introduction to the SatNOGS project; there is much more to discover. Regarding my station, I plan to change the antenna to a QFH or a Turnstile Moxon antenna, which are more suitable for this type of application: they are circularly polarized, like the signals from the NOAA satellites (RHCP), whereas my discone is vertically polarized. I’m thinking of building it myself with some 3D-printed parts.