Can I use my own GPS for greater accuracy with UGPS G2?

Yes, many customers do this, and in fact we recommend it for best performance. The acoustic positioning (local with respect to the antenna or receivers) which is the heart of the UGPS G2 system typically performs very well, but the accuracy of the global positioning is dependent upon the quality of the GPS position and heading obtained by the UGPS topside unit. The UGPS topside has a built-in GPS antenna and IMU, but better performance can be obtained with higher quality equipment.

To input the data from an external GPS/compass device into the UGPS topside, we typically recommend use of the following script.

One would typically plug one's device into a computer over serial, and then run the above script on your computer with something like the following input arguments for the case of external GPS, if the serial port is /dev/ttyUSB1 and the baud rate is 4800.

./nmea_ugps_linux_amd64 -i /dev/ttyUSB1@4800

If the IP address of the UGPS topside unit is something other than, one would need to add it as an argument using the -u parameter, as follows for example.

./nmea_ugps_linux_amd64 -i /dev/ttyUSB1@4800 -u

The script can also handle input over UDP as opposed to serial. In that case, one would use

./nmea_ugps_linux_amd64 -i

where 7777 can be replaced by any available port. Assuming that the GPS device is connected to your computer via IP address (say), one would configure the GPS device to send its data to


As an alternative, the script '' at the following link can also be used. Its input arguments are very similar.

As another possibility, one can call the UGPS API directly, making a PUT call to (replacing by by the correct IP address of the UGPS topside unit as needed) with JSON body of the following form. It is necessary to also have available heading information.

"lat": 63.422,
"lon": 10.424,
"orientation": 42

This API endpoint is documented at the following link.


If the topside unit is on a moving boat, accuracy will also be dependent on heading information. We recommend if possible to use a GPS device which can output both GPS data (NMEA sentences) and heading data (HDT sentences, for example). The scripts detailed above can handle compass input as well, in fact without any changes if HDT sentences are used. If another type of sentence is used rather than HDT, one can specify this using the -h flag, as follows for example.

./nmea_ugps_linux_amd64 -i /dev/ttyUSB1@4800 -h HDM


We have successfully tested the following device.


It is possible to use two separate devices, one for GPS and one for heading data, but then it will be necessary for you to write a little code yourself which takes in the two inputs, and makes an API call to the UGPS topside at the endpoint described above.