How to connect an usb GPS receiver with a Linux computer?

Posted by jack wu on

I created this step by step instructions on Ubuntu. Possibly there might be a slight difference if you are using another Linux distribution, but they should be very similar. 

1. Plug in the GPS receiver

After plugging in a GPS / GNSS receiver through the USB port, your GPS should be automatically configured. To verify, type the below command.

ls /dev/tty* 

You will see the “/dev/ttyACM0” has been created automatically(above screenshot). 

(Special note for Columbus V-800 Mark III or Columbus P-7 pro GNSS receiver:)

you will see “/dev/ttyUSB0” or “dev/ttyUSB0” “dev/ttyUSB1” instead.
Since the default baud rates for V-800 Mark III is 38,400 and P-7 Pro is 57,600, Please run the below command to change the baud rate
sudo stty -F /dev/ttyUSB0 38400 for V-800 Mark III
sudo stty -F /dev/ttyUSB0 57600 for P-7 Pro


To further verify if the GPS has been bound to this folder. please type 

sudo cat /dev/ttyACM0

(Special note for Columbus V-800 Mark III or Columbus P-7 pro GNSS receiver:)

please type
sudo cat /dev/ttyUSB0


The GPS input stream shows similar to the below

If you can see the above, which means your GPS receiver works with your Linux computer. 


2. Install gpsd

The next step of installation is to bind the “gpsd” daemon to the GPS receiver so that the applications running on Linux can access the GPS receiver through the “gpsd” daemon. 

The purpose of “gpsd”.

“gpsd” is used to connect applications with the GPS receiver hardware. It manages USB GPS devices so the applications don't have to. In Linux, if you set up the “gpsd” properly with GPS receivers hardware, most GPS location aware applications can get the GPS data by calling “gpsd”. Furthermore, “gpsd” shares the GPS receiver to all applications running on this Linux machine.


To install "gpsd", type

sudo apt install gpsd

The computer responded with something like the below screenshot.

3.Test gpsd with xgps (optional)

If you are confident the GPS is already working properly, just skip this section and go to section 4.

To start the gpsd in interactive mode, type the below command.

sudo gpsd -D 5 -N -n /dev/ttyACM0

(Special note for Columbus V-800 Mark III or Columbus P-7 pro GNSS receiver:)

please type
sudo gpsd -D 5 -N -n /dev/ttyUSB0

It shows.

Now the GPS signal should be available for applications. It is not mandatory but good to confirm that. It can be tried by a tool called  “xgps”. xgps is included in the gpsd-clients package. 


To Install gpsd-clients, open another terminal session & type

sudo apt install gpsd-clients


Above screenshot shows the "gpsd-clients" has been successfully installed. Now type


xgps should look similar to this when the GPS signal is available.





4. Make gpsd available on boot.

To make gpsd automatic startup on boot, update the /etc/default/gpsd file a below



Please make sure 


is included in the "gpsd" config file above. Restart your computer.

(Special note for Columbus V-800 Mark III or Columbus P-7 pro GNSS receiver:)

please make sure


5. Ready to serve.

Now your GPS applications can make use of "gpsd" to acquire GPS data. For example, below shows  the “Marble” application running on Linux which gets GPS data from "gpsd".



We have tested the below USB GPS/GNSS receivers

work with this instruction. They can be purchased from

Share this post

Newer Post →