OptimalSystem USB-dongle with u-blox NEO-6P PPP Chip Review

From OpenStreetMap Wiki
Jump to navigation Jump to search

OptimalSystem USB-dongle with u-blox NEO-6P PPP Chip Review

In late 2011 u-blox announced a variant of its 6 series GPS modules that support Precise Point Positioning (PPP) with a precision of less then 1 metre, the NEO-6P. OptimalSystem sells a USB dongle that is based on this chip that they have developed together with OneTalent GNSS.

While the module supports classical DGPS and RTK with a raw data output that can be processed by e.g. RTKLIB, for usage in OSM it is more interesting that it supports accurate measurements standalone without external (and potentially expensive) data.


OptimalSystem PPP-USB dongle with SMA connector and N60XAM antenna

Usage in Linux

It is not necessary to install additional drivers to connect the u-blox NEO-6P PPP to Linux. u-block provides some notes about its usage in Linux.

After connecting the device, check dmesg output, to see which device was created to talk with the GPS.

$ dmesg | grep tty
[    0.000000] console [tty0] enabled
[   84.050316] cdc_acm 3-2:1.0: ttyACM0: USB ACM device

The device reported is ttyACM0. To confirm that the GPS is connected, read the data come in with:

$ cat /dev/ttyACM0
$GPRMC,203034.00,A,4132.87463,N,00824.18492,W,0.177,,020613,,,D*64
$GPVTG,,T,,M,0.177,N,0.327,K,D*21
$GPGGA,203034.00,4132.87463,N,00824.18492,W,2,08,1.31,208.5,M,50.3,M,,0120*48
$GPGSA,A,3,16,06,03,21,18,19,22,07,,,,,2.04,1.31,1.56*02
$GPGSV,4,1,13,03,55,301,47,06,72,336,47,07,14,319,46,11,03,239,17*7C
(...)

Sharing GPS data with gpsd

gpsd can be used to read the GPS data and broadcast it to other applications.

To start gpsd, use:

$ gpsd -N -n -D 2 /dev/ttyACM0
gpsd:INFO: launching (Version 3.4)
gpsd:INFO: listening on port gpsd
gpsd:INFO: NTPD ntpd_link_activate: 1
gpsd:INFO: stashing device /dev/ttyACM0 at slot 0
gpsd:INFO: opening GPS data source type 2 at '/dev/ttyACM0'
gpsd:INFO: speed 115200, 8N1
gpsd:INFO: speed 9600, 8O1
gpsd:INFO: speed 115200, 8N1
gpsd:INFO: gpsd_activate(): activated GPS (fd 6)
gpsd:INFO: device /dev/ttyACM0 activated
gpsd:INFO: running with effective group ID 1000
gpsd:INFO: running with effective user ID 1000
gpsd:INFO: startup at 2013-06-02T20:33:06.000Z (1370205186)
gpsd:INFO: /dev/ttyACM0 identified as type Generic NMEA (0.000608 sec @ 115200bps)
(...)

Applications

After starting gpsd, applications should be configured to read data from gpsd.

gpsprof

gpsprof performs accuracy and latency profiling on a GPS. It can be installed with:

$ sudo apt-get install python-gps

Use gpsprof to plot the accuracy of NEO 6P PPP, with:

$ gpsprof | gnuplot -persist

After collecting the samples, a graph is produced.

Gpsprof-u-blox6p-ppp.png