Skip to main content

Connect external USB GPS to full gateway

Connecting external GPS to your FULL gateway will provide you with additional 1% boost of your rewards (both Send and Receive)



Steps to perform in order to connect external USB GPS to full gateway:

  1. Plug in the USB port of the GPS in one of the available USB ports on the gateway.
  2. Open the gateway local dashboard with inserted USB GPS – http://gatewayIP:17080/gateway
  3. Log in of you are not already log in.
  4. On the info page you should be able to see the GPS status:


  1. Navigate to “Setup Gateway” and select it.
  2. The browser should redirect you to “Gateway Setup” page.
  3. Check the GPS status – by default it should be disabled.

  1. Change the status to enable by pressing on toggle button in front of GPS tag.
  2. New options should appear – “GPS Device”. The default device should be populated – /dev/ttyACM0

  1. Press the Save button. You should see in the right bottom corner of the browser green message –

“Configuration saved. Rebooting…”. Wait for device to reboot and log in again.

  1. Log in to local again and check on Info page the GPS Location status. It should looks like :

The local dashboard should show the coordinates if they are valid. If not it would shown “no fix”.

If everything is running correctly you can see in the Crankk Dashboard:

Troubleshooting in case the USB GPS is not working:

  1. Remove the USB connector of the GPS and plug it again – in same port and/or different port if available.
  2. Log in to gateway via SSH client – in order to log in you would need ssh client like Bitvise or you could use Windows CMD or Windows Power Shell. Execute the following command to check if USB GPS devices are enabled:

cat /etc/default/gps

# Devices gpsd should collect to at boot time.

# They need to be read/writeable, either by user gpsd or the group dialout.



# Other options you want to pass to gpsd



# Automatically hot add/remove USB GPS devices via gpsdctl



The output should be like this with USBAUTO=true


  1. Execute the following command to check for USB GPS presents:

gpsctl -n

If command don’t find device it should return:

gpsctl:ERROR: no devices connected.

If command find device it should return device name.

Other way to check if device is present in operating system is to execute one of this commands:

ls /dev/ttyACM*

dmesg | grep tty

dmesg | grep pps


If device is present this commands should shown it. In case of device don’t have the default address get the output from ls /dev/ttyACM* and replace in “GPS Device” with the correct one from the output.

  1. If device is present and path is set correctly then you should check the device output data. This could be done again via login to gateway and check the output of this command(in this case I use the default device path adjust in in case yours is different):

cat /dev/ttyACM0

The output of the working USB GPS should be something like this:









In case there is output, but it looks like this :
!7      |

^-ǿ�� �f


L���4 y�J#X~$�


That mean the GPS is working, but not decoding the data correct. What you could do is to adjust the device speed with this command(in this case I use the default device path adjust in in case yours is different):

gpsctl -f -n -s 4800 /dev/ttyACM0

You could always copy the output of the command and parse it on

This should shown if the GPS coordinates are displayed correctly.

  1. Check if the packet forwarder send those coordinates periodically to the Chirpstack server.
    This could be seen in crankk-pktfwd container logs :
    Invalid not coordinates :
    [06/02/2024, 09:59:58.004] ### [GPS] ###

[06/02/2024, 09:59:58.006] # Invalid time reference (age: 1707213597 sec)

[06/02/2024, 09:59:58.008] # no valid GPS coordinates available yet

Valid coordinates:
[06/02/2024, 10:08:12.324] ### [GPS] ###

[06/02/2024, 10:08:12.326] # Invalid time reference (age: 1707214092 sec)

[06/02/2024, 10:08:12.328] # GPS coordinates: latitude 30.39920, longitude -95.33444, altitude 93 m

[06/02/2024, 10:08:12.331] ### Concentrator temperature: 30 C ###