'\" t .\" Title: ubxtool .\" Author: [see the "AUTHOR" section] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 5 December 2020 .\" Manual: GPSD Documentation .\" Source: The GPSD Project .\" Language: English .\" .TH "UBXTOOL" "1" "5 December 2020" "The GPSD Project" "GPSD Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" ubxtool \- u\-blox tool .SH "SYNOPSIS" .HP \w'\fBubxtool\fR\ 'u \fBubxtool\fR [\-?] [\-\-command\ \fIcommand\fR] [\-\-delitem\ \fIitem,layers\fR] [\-\-device\ \fIdevice\fR] [\-\-disable\ \fIdisable\fR] [\-\-enable\ \fIenable\fR] [\-\-file\ \fIfile/device\fR] [\-\-getitem\ \fIitem,layer,position,end\fR] [\-\-help] [\-\-host\ \fIhost\fR] [\-\-inspeed\ \fIspeed\fR] [\-\-port\ \fIport\fR] [\-\-portid\ \fIport\fR] [\-\-preset\ \fIpreset\fR] [\-\-protver\ \fIprotver\fR] [\-\-rawfile\ \fIrawfile\fR] [\-\-readonly] [\-\-setitem\ \fIitem,val,layers\fR] [\-\-setspeed\ \fIsetspeed\fR] [\-\-timestamp] [\-\-verbosity\ \fIverbosity\fR] [\-\-version] [\-\-wait\ \fIwait\fR] [\-c\ \fIcommand\fR] [\-d\ \fIdisable\fR] [\-e\ \fIenable\fR] [\-f\ \fIfile/device\fR] [\-g\ \fIitem,layer,position,end\fR] [\-h] [\-i\ \fIport\fR] [\-p\ \fIpreset\fR] [\-P\ \fIprotver\fR] [\-r] [\-R\ \fIrawfile\fR] [\-S\ \fIsetspeed\fR] [\-s\ \fIspeed\fR] [\-t] [\-V] [\-v\ \fIverbosity\fR] [\-w\ \fIwait\fR] [\-x\ \fIitem,layers\fR] [\-z\ \fIitem,val,layers\fR] [[server[:port[:device]]]] .SH "DESCRIPTION" .PP ubxtool is a tool for u\-blox GPS\&. If you do not have a u\-blox GPS then can stop reading now\&. .PP This tool operates with your u\-blox GPS at a very low level\&. To understand ubxtool you must first be familiar with your u\-blox GPS and the documentation for the u\-blox binary protocol\&. The u\-blox protocol varies greatly depending on GPS model and firmware revision\&. Use the u\-blox documentation for your model and firmware\&. .PP ubxtool can decode common u\-blox binary messages, poll the GPS status, enable and disable GPS features, and send user generated commands to the GPS\&. It can read binary messages from a file\&. It can read and write directly through a serial device, or through a running gpsd instance\&. .SH "OPTIONS" .PP The program accepts the following options: .PP \fB\-?\fR, \fB\-h\fR, \fB\-\-help\fR .RS 4 Makes ubxtool print a usage message and exit\&. Use with \fB\-v 2\fR to see all enable/disable and preset values\&. Use with \fB\-v 3\fR to additionally see all configuration items (long)\&. .RE .PP \fB\-c COMMAND\fR, \fB\-\-command COMMAND\fR .RS 4 Send a command to the GPS\&. Accepts one parameter, COMMAND, a comma\-separated list of hexadecimal bytes specifying the class, the ID, and any needed payload\&. The header, length, and checksum are added automatically\&. .RE .PP \fB\-\-device DEVICE\fR .RS 4 The DEVICE on the gpsd to connect to\&. Defaults to all\&. .RE .PP \fB\-d OPTION\fR, \fB\-\-disable OPTION\fR .RS 4 Disable an option in the GPS\&. Accepts one parameter, OPTION, the option to disable\&. Use \fB\-h \-v 2\fR to see all possible OPTIONs\&. A few possible OPTIONs are: .PP BEIDOU .RS 4 Disable use of the BeiDou (COMPASS) constellation\&. .RE .PP BINARY .RS 4 Disable sending of the basic binary messages\&. .RE .PP ECEF .RS 4 Disable sending of ECEF binary messages\&. .RE .PP GALILEO .RS 4 Disable use of the GALILEO constellation\&. .RE .PP GLONASS .RS 4 Disable use of the GLONASS constellation\&. .RE .PP GPS .RS 4 Disable use of the GPS and QZSS constellations\&. .RE .PP NED .RS 4 Disable sending of NED binary messages\&. UBX\-NAV\-VELNED and UBX\-NAV\-RELPOSNED\&. .RE .PP NMEA .RS 4 Disable sending basic NMEA messages\&. The messages are GBS, GGA, GSA, GGL, GST, GSV, RMC, VTG, and ZDA\&. .RE .PP PPS .RS 4 Disable TIMEPULSE 0\&. .RE .PP RAWX .RS 4 Disable sending of the UBX\-RXM\-RAWX messages\&. .RE .PP SBAS .RS 4 Disable use of the SBAS constellation\&. .RE .PP SFRBX .RS 4 Disable use of the SFRBX messages\&. .RE .PP SURVEYIN .RS 4 Disable survey\-in mode with TMODE2\&. .RE .PP TP .RS 4 Disable sending UBX\-TIM\-TP\&. .RE .RE .PP \fB\-e OPTION\fR, \fB\-\-enable OPTION\fR .RS 4 Enable an option in the GPS\&. Accepts one parameter, OPTION, the option to enable\&. \fB\-e\fR accepts the same OPTIONs as \fB\-d\fR, except the action is to enable the option\&. .RE .PP \fB\-f FILE\fR, \fB\-\-file FILE\fR .RS 4 Connect to a file or device\&. Accepts one parameter, FILE, the file or device to open\&. Files are opened read\-only\&. Character devices are opened read/write, unless the \fB\-r\fR parameter is given\&. Requires the pyserial module\&. .RE .PP \fB\-g ITEM,LAYER,POSITION,END\fR, \fB\-\-getitem ITEM,LAYER,POSITION,END\fR .RS 4 Get the value of ITEM from LAYER, starting at POSITION, up to END key/value pairs (UBX\-CFG\-VALGET)\&. All parameters past ITEM are optional and decimal\&. If LAYER is absent, then layers 0, 1, 2 and 7 are all requested\&. See the section on CONFIGURATION ITEMS .RE .PP \fB\-\-host HOST\fR .RS 4 Connect to the gpsd on HOST (server)\&. Defaults to localhost\&. .RE .PP \fB\-i port\fR, \fB\-\-portid port\fR .RS 4 Specifies port ID # (interface) for port\-related commands such as UBX_CFG\-PRT\&. .RE .PP \fB\-p PRESET\fR, \fB\-\-preset PRESET\fR .RS 4 Send a preset command the GPS\&. Usually accepts one parameter, PRESET, the name of the command to send\&. A few PRESETS, like LOG\-FINDTIME, accept additional comma separated parameters\&. More than one \-p may be used\&. .sp Only the common PRESETS are shown here\&. To see the full list, including optional parameters, run "ubxtool \-h \-v 2"\&. .PP COLDBOOT .RS 4 Coldboot the GPS (UBX\-CFG\-RST)\&. .RE .PP HOTBOOT .RS 4 Hotboot the GPS (UBX\-CFG\-RST)\&. .RE .PP MODEL,model .RS 4 Configure the Dynamic Platform Model to model\&. (UBX\-CFG\-NAV5)\&. Model is the decimal number of the desired mode\&. .RE .PP PMS .RS 4 Set power management settings (UBX\-CFG\-PMS)\&. "PMS,pow" where pow is powerSetupValue\&. .RE .PP RATE .RS 4 Set measurement and nav rate (UBX\-CFG\-RATE)\&. "RATE,meas,nav" meas is the measRate in milli seconds\&. The nav argument is the navRate in cycles and defaults to 1 .RE .PP RESET .RS 4 Reset configuration to defaults (UBX\-CFG\-CFG)\&. .RE .PP SAVE .RS 4 Save current configuration (UBX\-CFG\-CFG)\&. .RE .PP MON\-RESETODO .RS 4 Reset the odometer (UBX\-MON\-RESETODO)\&. .RE .PP MON\-VER .RS 4 Poll GPS version (UBX\-MON\-VER)\&. .RE .PP WARMBOOT .RS 4 Warmboot the GPS (UBX\-CFG\-RST)\&. .RE .sp Most PRESET parameters are simple poll commands\&. They merely poll the GPS to respond with the associated message\&. For example "ubxtool \-p CFG\-GNSS" asks the GPS to respond with a UBX\-CFG\-GNSS message describing the current GNSS configuration\&. Increase the verbosity of the output by adding the "\-v 2" or "\-v 3" options\&. .RE .PP \fB\-\-port PORT\fR .RS 4 Use PORT to connect to gpsd\&. Defaults to 2947\&. .RE .PP \fB\-P protver\fR, \fB\-\-protver protver\fR .RS 4 Sets the protocol version to use for sending commands\&. Minimum 6 (Antaris 4)\&. Use "ubxtool \-p MON\-VER" to see the version your receiver supports\&. Many newer u\-blox receivers will fail silently or oddly if this is not set correctly\&. Default 10 (u\-blox 5)\&. .RE .PP \fB\-r\fR, \fB\-readonly\fR .RS 4 Read only\&. Do not send anything to the GPS\&. .RE .PP \fB\-R RAW\fR, \fB\-\-rawfile RAW\fR .RS 4 Save all raw serial data received from the GPS into the file RAW\&. .RE .PP \fB\-s SPEED\fR, \fB\-\-inspeed SPEED\fR .RS 4 Set local serial port speed to SPEED bps\&. Default 9,600 bps\&. .RE .PP \fB\-S SPEED\fR, \fB\-\-setspeed SPEED\fR .RS 4 Set the GPS serial port speed to SPEED bps\&. .RE .PP \fB\-t\fR, \fB\-\-timestamp\fR .RS 4 Timestamp decoded messages with seconds since the epoch\&. Use it twice and also get UTC time\&. .RE .PP \fB\-v VERBOSITY\fR, \fB\-\-verbosity VERBOSITY\fR .RS 4 Set verbosity level to VERBOSITY\&. Verbosity can be from 0 (very quiet), 2 (decode messages), to 4 (very noisy)\&. Default 1\&. .RE .PP \fB\-V\fR, \fB\-\-version\fR .RS 4 Print ubxtool version and exit\&. .RE .PP \fB\-w WAIT\fR, \fB\-\-wait WAIT\fR .RS 4 Wait for WAIT seconds before exiting\&. Default 2 seconds\&. .RE .PP \fB\-x ITEM,LAYERS\fR, \fB\-\-delitem ITEM,LAYERS\fR .RS 4 Delete the value of ITEM name from LAYERS\&. The bit map LAYERS is optional\&. By default, delete in both the BBR and FLASH layers in the receiver (UBX_CFG\-VALDEL)\&. Returning to the reciver default for that item\&. See the section on CONFIGURATION ITEMS .RE .PP \fB\-z ITEM,VAL,LAYERS\fR, \fB\-\-setitem ITEM,VAL,LAYERS\fR .RS 4 Set the value of ITEM name to VAL in LAYERS in the GPS (UBX\-CFG\-VALSET)\&. VAL and the bit mask LAYERS are decimal\&. ",LAYERS" is optional\&. The default LAYERS are RAM and FLASH See the section on CONFIGURATION ITEMS .RE .PP \fB[server[:port[:device]]]\fR .RS 4 By default, ubxtool collects data from all compatible devices on localhost, using the default GPSD port 2947\&. An optional argument may specify a server to get data from\&. A colon\-separated suffix is taken as a port number\&. If there is a second colon\-separated suffix, that is taken as a specific device name to be watched\&. Further details on the \fBgps\fR(1) man page\&. .RE .SH "CONFIGURATION ITEMS" .PP Configuring u\-blox GPS with the traditional configuration messages is fraught with problems\&. Many configuration messages interact in odd ways\&. Something as simple as changing the serial port speed requires you to read the current configuration using UBX\-CFG\-PRT for the proper port, merging in the change, the writing back the changed UBX\-CFG\-PRT message\&. Or just guessing at the current configuration and overwriting it all\&. .PP The u\-blox 9 series, protocol version 27+, tries, but does not completely succeed, to solve the problem with Configuration Items\&. If your GPS does not support protocol version 27+, then this section does not apply to you\&. .PP Most of the configuration variables in the GPS have been assigned a 32\-bit Key ID\&. Each Key references one specific value\&. A typical receiver may have over 1,100 Key IDs\&. Each Key ID has been assigned a Key Name\&. Most of the Key Names are documented by u\-blox and supported by ubxtool\&. To see all the Key Name understood by ubxtool do: "ubxtool \-h \-v 3"\&. .PP To get the value related to an item, use "\-g ITEM"\&. .PP To reset the value related to an item to it default value, use "\-x ITEM"\&. .PP To set an ITEM name to a value, use "\-z ITEM,VAL"\&. .PP If you only want to set an ITEM in one layer, use "\-z ITEM,VAL,LAYER"\&. .PP See the EXAMPLES section for concrete examples\&. .SH "EXAMPLES" .PP All examples assume that UBXOPTS is set with the protocol version of your receiver\&. Be sure to replace the "\-P 18" with your correct prototype version\&. .sp .if n \{\ .RS 4 .\} .nf export UBXOPTS="\-P 18" .fi .if n \{\ .RE .\} .PP Dump configuration and status of the GNSS recceiver\&. The "\-w 4" is to provide extra time for the operations to complete\&. .sp .if n \{\ .RS 4 .\} .nf ubxtool \-p CONFIG \-p STATUS \-w 4 \-v 2 .fi .if n \{\ .RE .\} .PP Decode raw log file: .sp .if n \{\ .RS 4 .\} .nf ubxtool \-r \-f ublox\-neo\-m8n\&.log .fi .if n \{\ .RE .\} .PP Change GPS port speed of device on /dev/ttyAMA0 to 230,400 bps: .sp .if n \{\ .RS 4 .\} .nf ubxtool \-S 230400 \-f /dev/ttyAMA0 .fi .if n \{\ .RE .\} .PP Watch entire GPS reset cycle, include $GPTXT messages: .sp .if n \{\ .RS 4 .\} .nf ubxtool \-p COLDBOOT \-w 20 \-v 2 .fi .if n \{\ .RE .\} .PP Poll Enabled Constellations: .sp .if n \{\ .RS 4 .\} .nf ubxtool \-p CFG\-GNSS .fi .if n \{\ .RE .\} .sp Dump gpsd data from a remote server named x\&.example\&.com: .sp .if n \{\ .RS 4 .\} .nf ubxtool \-w 5 x\&.example\&.com .fi .if n \{\ .RE .\} .sp .SS "Version 27+ examples" .PP The following examples require a GPS supporting protocol 27 or greater\&. Be sure to set your protocol version first: .sp .if n \{\ .RS 4 .\} .nf export UBXOPTS="\-P 32" .fi .if n \{\ .RE .\} .PP To check the current dynamic model, change it to 6 (AIR1, Airborne with <1g acceleration), revert to the default setting, and verify the faults was restored\&. .sp .if n \{\ .RS 4 .\} .nf $ ubxtool \-g CFG\-NAVSPG\-DYNMODEL [\&.\&.\&.] UBX\-CFG\-VALGET: version 1 layer 0 reserved 0,0 layers (ram) item CFG\-NAVSPG\-DYNMODEL/0x20110021 val 2 [\&.\&.\&.] $ ubxtool \-z CFG\-NAVSPG\-DYNMODEL,6 [\&.\&.\&.] UBX\-ACK\-ACK: ACK to Class x6 (CFG) ID x8a (VALSET) [\&.\&.\&.] $ ubxtool \-g CFG\-NAVSPG\-DYNMODEL [\&.\&.\&.] UBX\-CFG\-VALGET: version 1 layer 0 reserved 0,0 layers (ram) item CFG\-NAVSPG\-DYNMODEL/0x20110021 val 6 [\&.\&.\&.] $ ubxtool \-x CFG\-NAVSPG\-DYNMODEL [\&.\&.\&.] UBX\-ACK\-ACK: ACK to Class x6 (CFG) ID x8c (VALDEL) [\&.\&.\&.] $ ubxtool \-g CFG\-NAVSPG\-DYNMODEL [\&.\&.\&.] UBX\-CFG\-VALGET: version 1 layer 0 reserved 0,0 layers (ram) item CFG\-NAVSPG\-DYNMODEL/0x20110021 val 6 .fi .if n \{\ .RE .\} .PP Notice that the current DYNMODEL stayed at 6 (AIR1)\&. The "\-x" only affects the saved setting, not the current setting\&. To change the current setting you must set it with "\-z"\&. .PP Getting all the Configuration Items in a group one by one could be very tedious\&. VAL\-GET allows you to wild card the item number and dump all the items in a group\&. To get all the CFG\-TP items in ram, the currently active ones, you can do this: .sp .if n \{\ .RS 4 .\} .nf $ ubxtool \-g CFG\-TP,0 [\&.\&.\&.] UBX\-CFG\-VALGET: version 1 layer 0 position 0 layers (ram) item CFG\-TP\-TP1_ENA/0x10050007 val 1 item CFG\-TP\-SYNC_GNSS_TP1/0x10050008 val 1 item CFG\-TP\-USE_LOCKED_TP1/0x10050009 val 1 [\&.\&.\&.] .fi .if n \{\ .RE .\} .PP The truly masochistic can dump all the Configuration Items by wildcarding the group\&. Dumping all 1,000+ of them, 64 at a time, could still be tedious\&. The \-g parameter optionally allows you to specify the starting position to get from, as well as the ending position\&. To get all the known, and unknown, items supported by the receiver that are currently in ram: .sp .if n \{\ .RS 4 .\} .nf $ ubxtool \-g CFG,0,0,1200 | fgrep "item CFG\-" item CFG\-1\-1/0x10010001 val 0 item CFG\-1\-1/0x10010101 val 0 item CFG\-4\-1/0x10040001 val 1 item CFG\-4\-2/0x10040002 val 0 item CFG\-4\-3/0x10040003 val 0 item CFG\-4\-4/0x10040004 val 0 item CFG\-4\-9/0x10040009 val 0 item CFG\-TP\-TP1_ENA/0x10050007 val 1 item CFG\-TP\-SYNC_GNSS_TP1/0x10050008 val 1 [\&.\&.\&.] .fi .if n \{\ .RE .\} .PP Changing \fICFG,0,0,1200\fR to \fICFG,7,0,1200\fR would instead dump all the configuration defaults, from the Default layer (7)\&. .SH "ENVIRONMENT" .PP Options can be placed in the UBXOPTS environment variable\&. UBXOPTS is processed before the CLI options\&. .SH "SEE ALSO" .PP ubxtool is written to conform to the official u\-blox documentation for the u\-blox binary protocol\&. \m[blue]\fB\%https://www.u-blox.com/en/product-resources\fR\m[] .PP \fBcgps\fR(1), \fBgpscat\fR(1), \fBgpsctl\fR(1), \fBgpsfake\fR(1), \fBxgps\fR(1), \fBgpsd\fR(8), .SH "AUTHOR" .PP Gary E\&. Miller