ZERK(1)

πŸ’… ZERK(1) β€” the all purpose GREIS fitting, bestie edition

okay so real talk: this is the manual page for zerk, part of the GPSD Documentation crew. if you've got a Javad GPS that speaks GREIS, you're in the right place. if not… we'll get to that. 🫢


🌸 NAME

zerk β€” All purpose GREIS fitting


✨ OPTIONS (the quick peek) ✨

like, the vibe at a glance:

zerk [OPTIONS] [server[:port[:device]]]
zerk -h
zerk -V

πŸ’– DESCRIPTION

so. zerk is an all purpose GREIS (that's GNSS Receiver External Interface Specification, bestie) fitting. if you do not have a Javad GPS that speaks the GREIS protocol then you can stop reading right now, no hard feelings, go touch grass. 🌱

this tool operates with your Javad GPS at a very low level. to truly understand zerk you must first be familiar with your Javad GPS and the documentation for the GREIS protocol. GREIS Guide: https://www.javad.com/downloads/javadgnss/manuals/GREIS/GREIS_Reference_Guide.pdf πŸ‘‘

zerk can decode common GREIS messages, poll the GPS status, enable and disable GPS features, and send user-generated commands to the GPS. it can read GREIS messages from a file. it can read and write directly through a serial device, or through a running gpsd instance. versatile queen. πŸ’…

zerk does not require root privileges, except maybe to access the serial port in direct mode. it will run fine as root. running under sudo will cause loss of functionality β€” so like, don't do that unless you have to. 😭


πŸŽ€ OPTIONS πŸŽ€

the program accepts the following options:

  • -?, -h β€” makes zerk print a usage message and exit. the classic "help me help you" move.
  • -c COMMAND β€” send a text string to the GPS. takes one parameter, COMMAND, the command string to send to the GPS. the string is sent verbatim, except a newline is appended. (yes, it just yells it at your receiver, exactly as written.)
  • -d OPTION β€” disable an option in the GPS. takes one parameter, OPTION, the option to disable. zerk will exit after the GPS acknowledges the command, unless the -W is given.
    • 4HZ β€” disable basic GREIS messages at 4Hz. the messages are: [RT], [UO], [GT], [PV], [SG], [DP], [SI], [EL], [AZ], [EC], [SS], and [ET]
    • COMPASS β€” disable use of the COMPASS (BeiDou) constellation.
    • CONS β€” disable use of all constellations.
    • DEFMSG β€” disable the default message set (/dev/msg) at 1Hz.
    • GALILEO β€” disable use of the GALILEO constellation.
    • GLONASS β€” disable use of the GLONASS constellation.
    • GPS β€” disable use of the GPS constellation.
    • IPR β€” disable all Integer Pseudo Range messages. these are [rx], [rc], [r1], [r2], [r3], [r5], [rl].
    • IRNSS β€” disable use of the IRNSS constellation.
    • NMEA β€” disable basic NMEA 4.1e messages at 4Hz. the messages are GBS, GGA, GSA, GST, GSV, RMC, VTG, and ZDA.
    • QZSS β€” disable use of the QZSS constellation.
    • SBAS β€” disable use of the SBAS constellation.
    • SNR β€” disable all SNR messages, except [EC]. the messages disabled are: [E1], [E2], [E3], [E5], [El].
  • -e OPTION β€” enable an option in the GPS. takes one parameter, OPTION, the option to enable. zerk will exit after the GPS acknowledges the command, unless the -W is given. -e accepts the same *OPTION*s as -d, except the action is to enable the option. (same list, opposite energy ✨)
  • -f FILE β€” connect to a file or device. takes one parameter, FILE, the file or device to open. files are opened read-only. character devices are opened read/write, unless the -r parameter is given. requires the pyserial module.
  • -O OAF β€” load an Option Authorization File (OAF) into the GPS. takes one parameter, OAF, command file to read. the OAF is just a special case of a '.jpo' (GREIS command file). -O will send any valid .jpo file to the GPS.
  • -p PRESET β€” send a preset command the GPS. takes one parameter, PRESET, the name of the command to send. zerk will exit after the GPS acknowledges the command, unless the -W is given.
    • COLDBOOT β€” coldboot the GPS.
    • CONS β€” poll the enabled constellations.
    • DM β€” disable all periodic GREIS messages.
    • ID β€” poll the receiver ID.
    • IPR β€” poll all Integer Pseudo Range messages. these are [rx], [rc], [r1], [r2], [r3], [r5], [rl].
    • OAF β€” poll all OAF options.
    • RESET β€” reset (reboot) the GPS.
    • SERIAL β€” poll receiver serial number.
    • SNR β€” poll all Signal to Noise Ratio (SNR) messages. [EC], [E1], [E2], [E3], [E5], [El].
    • VENDOR β€” poll GPS vendor.
    • VER β€” poll GPS version.
  • -r β€” read only. do not send anything to the GPS. just vibes, no talking. πŸ™ˆ
  • -R RAW β€” save all raw data from the GPS into the file RAW.
  • -S SPEED β€” configure the GPS serial speed to SPEED bps.
  • -s SPEED β€” set local serial port speed to SPEED bps. default 115,200 bps.
  • -V β€” print zerk version and exit.
  • -v VERBOSITY β€” set verbosity level to VERBOSITY. verbosity can be from 0 (very quiet), to 4 (very noisy). default 2.
  • -W β€” force waiting the entire wait time. no early exit for completion of -d, -e or -p command. patience is a virtue, apparently. 🧘
  • -w WAIT β€” wait for WAIT seconds before exiting. will exit early on command completion of -d, -e or -p command, unless -W is given. default 2.0 second.

πŸ¦‹ ARGUMENTS

by default, clients collect data from the local gpsd daemon running on localhost, using the default GPSD port 2947. the optional argument to any client may override this behavior: [server[:port[:device]]]

for further explanation, and examples, see the ARGUMENTS section in the gps(1) man page. πŸ“–


🌈 ENVIRONMENT

options can be placed in the ZERKOPTS environment variable. ZERKOPTS is processed before the CLI options. so your env var is the opening act, and your flags are the headliner. 🎀


πŸ‘‘ EXAMPLES πŸ‘‘

print current Javad serial port of GPS connected to local running gpsd:

zerk -c "print,/cur/term"

decode raw log file:

zerk -r -f greis-binary.log -v 2

change GPS port speed of device on /dev/ttyAMA0 to 230,400 bps:

zerk -S 230400 -f /dev/ttyAMA0

watch entire GPS reset cycle:

zerk -p RESET -v 2 -w 20 -W

poll SVs Status:

zerk -W -w 2 -v 2 -c "out,,jps/{CS,ES,GS,Is,WS,QS}"

dump gpsd data from remote server:

zerk -v 2 -w 5 server

πŸ’€ RETURN VALUES πŸ’€

  • 0 β€” on success. slay.
  • 1 β€” on failure. 😭

πŸ”₯ SEE ALSO

zerk is written to conform to the official Javad documentation for the GREIS protocol. GREIS Guide: https://www.javad.com/downloads/javadgnss/manuals/GREIS/GREIS_Reference_Guide.pdf

gpsd(8)


πŸ“ RESOURCES

project web site: https://gpsd.io/


πŸŽ€ COPYING

this file is Copyright 2013 by the GPSD project

SPDX-License-Identifier: BSD-2-clause


πŸ’œ AUTHOR

Gary E. Miller


and that's the whole page, bestie. no gatekeeping, every flag accounted for, iykyk. go poll something. 🌟

GPSD, Version 3.27.5 β€” dated 2025-11-04 β€” and that's your ZERK(1) moment, periodt. πŸ’…βœ¨