Build your own GNNS monitoring system

Posted on Mon 04 July 2022 in GNSS

How to build your own GNNS monitoring system

Some time ago, I stumbled over the Galmon project by Bert Hubert. Since I am into everything with space technology, this caught my attention. Bert initiated a project where you can host your own mini observing station and collect status information from the most navigation systems like Galileo (EU), GPS (US), Glonass (RU) and BeiDou (CN). The support how good each of the systems can be observed depends on the public available information. There are well-documented ones like GPS and Galileo and others have not so good support.

He wrote a very detailed blog post how the Galileo positioning system works. It makes fun to read and you learn how this systems work. 

The modern world depends on precise navigation signals. This signals are sent by satellite constellations flying over our heads. It needs big efforts to setup and run this constellations and deliver a good quality service.

My intention was to learn more about the GPS and Galileo system and not only use it in a smartphone but make it run with a basic antenna and get some signals into a computer.

Hardware requirements

To build your own monitoring station you need a computer running one of the supported operation systems and a supported GNSS antenna. Of course you can connect the antenna to your laptop and install Galmon there, but it is much more fun to build a setup you can install somewhere or take with you that is not the computer you work on. For my setup I chose a mini computer I had laying around. You can use a BananaPi or Raspberry PI or any other supported mini computer you are familiar with.

Mini Computer

Of course you can connect the antenna to your laptop and install Galmon there, but it is much more fun to build a setup you can install somewhere or take with you that is not the computer you work on. For my setup I chose a mini computer I had laying around (ODROID-C4). You can use a BananaPi, Raspberry PI, Odroid or any other supported mini computer you are familiar with.

System setup

You should be able to use any modern Linux distribution to run the project. Since there is a docker container available, you maybe should test your first installation using the ready to go solution. This makes life much easier and is working perfectly for me.

Install for example Debian or Armbian on your mini computer and Docker or even better Podman to run the container.

GNNS Antenna

To receive a signal you should invest in one of the more reliable supported antennas with good signal range and a long attached cord. This makes life much easier if you plan to install the setup somewhere to monitor the data over a bigger time period.

I did go with the Navilock NL-8012U antenna. On my I had to update the firmware with a windows tool to make it work correctly. You can have a look on the Github repository of the project, there is a list of good working antennas. Choose one that has good Linux support. Mine has perfect support and no additional driver is needed on Linux.

Software setup

If your hardware and antenna is working you can setup the Galmon stack. Since there is a docker container available it can be done with using this command

Install podman:

sudo apt install podman
You need to add the following line to the /etc/containers/registries.conf.d/docker.conf configuration file:
unqualified-search-registries=["docker.io"]

Install the container:

sudo podman run -it --rm --device=/dev/ttyACM0 -p 10000:10000 berthubert/galmon

This opens an interactive shell within the container. Within the container you now need to run:

./ubxtool --wait --port /dev/ttyACM0 --station 1 --stdout --galileo | ./navparse --bind 0.0.0.0:10000 --html /galmon/share/package/galmon/html
Terminal showing the podman command running the podman container and its output.

You find the well documented ways how to run the software stack on the GitHub project page.

Thats it. If you see some similar output the system is processing the data received by the seen satellites.

Now use a web browser to access the IP of your system on port 10000:

Screenshot of the galmon website output.

It will take some time to collect data and recieve some signals. Be patient :-)

Run it

Place the antenna so it has a good view to the sky for fast and good working signals. From time to time I forgot to place the antenna in a good spot while testing and viewing the signals. You should find a good spot and setup the hardware for best results. Place the antenna in the open and with nothing blocking the view to the sky.