Skip to content

Releases: semuconsulting/PyGPSClient

v1.5.23

15 Dec 21:00
e5ee626

Choose a tag to compare

What's Changed

FIXES:

  1. Fix PUBX003 & NAV-SVINFO file input parsing error #229

ENHANCEMENTS:

  1. Move Configuration Command Load/Save/Record facility from UBX Configuration Panel to separate dialog, selectable from Options menu. Can now be used to record and replay UBX, NMEA and TTY configuration commands.
  2. Reduce minimum File Delay spinbox setting to 2 ms (was previously 20 ms).

Full Changelog: v1.5.22...v1.5.23

v1.5.22

10 Dec 08:25
f53fe4d

Choose a tag to compare

What's Changed

FIXES:

  1. Fix KeyError in UBX Legacy Dynamic Config Panel #227

ENHANCEMENTS:

  1. Make maximum individual data log file size (in bytes) manually configurable via logsize_n setting in json configuration file. Default is 10 MB.
  2. Tolerate unrecognised configuration settings in json file with warning "Consider re-saving" (previously json file would have been rejected). Unrecognised settings will be logged as INFO messages (--verbosity 2).
  3. Internal enhancements to thread handling to improve dialog response at high transaction rates.

Full Changelog: v1.5.21...v1.5.22

v1.5.21

27 Nov 08:42
9cfb10d

Choose a tag to compare

What's Changed

  1. Fix issue with datalogging
  2. Fix issue with typo in older chartsettings_d configuration settings causing error on startup.

Fixes #224

Full Changelog: v1.5.20...v1.5.21

v1.5.20

21 Nov 15:06
0e545bb

Choose a tag to compare

What's Changed

  1. Restore missing manifest file.

Full Changelog: v1.5.19...v1.5.20

v1.5.19

21 Nov 14:52
71ffce2

Choose a tag to compare

What's Changed

FIXES:

  1. Fix typo in initial chart configuration settings, which could cause a TypeError on startup if no json config file exists.

ENHANCEMENTS:

  1. Add 'File Delay' setting to control delay between input file reads - effectively a 'throttle' for file input. Default (previously fixed) is 20 milliseconds.
  2. Improved exception handling in several panels.
  3. Internal streamlining and rationalisation of compass and graph canvas draw routines to improve GUI look and consistency.
  4. Add Control-K "kill switch" key binding to immediately disconnect and terminate all running threads.

Full Changelog: v1.5.18...v1.5.19

v1.5.18

04 Nov 09:50
d9fca43

Choose a tag to compare

What's Changed

ENHANCEMENTS:

  1. Add TTY Config button to main Settings Panel and remove SPARTN Config button (SPARTN Config can still be accessed via Menu..Options..SPARTN Configuration but is now deprecated). TTY Config uses traditional TTY (ASCII) commands to configure devices such as the Septentrio Mosaic X5.

  2. UBX, NMEA and TTY user-defined preset configuration settings "ubxpresets_l", "nmeapresets_l" and "ttypresets_l" are now pre-populated with an initial set of commands on startup. Once saved to a *.json configuration file, these initial commands can be removed, amended or supplemented in accordance with the user's preferences.

    To reinstate the initial set of user-defined presets at a later date, insert the item "INIT_PRESETS" at the top of the "ubxpresets_l". "nmeapresets_l" or "ttypresets_l" configuration setting.

    In the case of UBX, these initial commands replace the existing 24 'hard-coded' UBX commands (some of which are now out of date). NOTE the initial UBX CFG-VALSET commands supplied all take effect in the volatile RAM memory layer - to persist these configurations, select 'Save Configuration to BBR' (or other non-volatile memory).

  3. Allow self-sign certification for TLS (HTTPS) connections (requires pygnssutils>=1.1.19) - previously these would have been rejected with an SSL error. Self-sign certificate/key location can be set via environment variable PYGNSSUTILS_PEMPATH; default is $HOME/pygnssutils.pem. A self-signed pem file suitable for test and demonstration purposes can be created interactively thus:

    openssl req -x509 -newkey rsa:4096 -keyout pygnssutils.pem -out pygnssutils.pem -sha256 -days 3650 -nodes
  4. Update list of 'recognised' GNSS receiver serial port designators to include IOUSBHostDevice (Sparkfun ZED-X20P breakout) and USB Dual_Serial (Sparkfun Flex Breakout).

FIXES:

  1. Fix "SQLError Database not open" issue on initialisation.
  2. Fix issue where TTY Console would not refresh immediately if Echo was enabled.
  3. Fix issue where ValueError (unknown protocol) from GNSSReader would cause streaming to terminate (requires pygnssutils>=1.1.20).
  4. Fix issue with some ZED-X20P configuration commands not taking effect with firmware HPG 2.02.
  5. Fixed issue which prevented some warning messages being shown during initialisation.

Full Changelog: v1.5.17...v1.5.18

v1.5.17

22 Oct 08:15
9983632

Choose a tag to compare

What's Changed

  1. As of October 2025, u-blox have discontinued their MQTT SPARTN service (having previously discontinued their L-Band SPARTN service earlier in the year) so SPARTN Client functionality is now effectively redundant and has been disabled by default in PyGPSClient in this release. It may be removed altogether in a subsequent release. It can be re-enabled by manually editing the lband_enabled_b configuration setting.
  2. Add provisional support for Quectel QGC binary message protocol (requires pyqgc>=0.1.2). Currently only Quectel LG290P / LG580P / LG680P RAW and LU600 IMU QGC message types are implemented, but this may be enhanced in future releases (contributions welcome).
  3. Utilise pygnssutils.GNSSReader class to allow seamless selection of streamed protocols- supports NMEA, RTCM3, UBX (u-blox), SBF (Septentrio), QGC (Quectel), TTY (ASCII) - UBX and SBF are no longer mutually exclusive.
  4. Streamline IMU widget; add additional NMEA message sources.
  5. Various minor enhancements to GUI performance.
  6. Active support for Python 3.9 dropped, 3.14 added (3.9 EOL as at 31 October 2025).

Full Changelog: v1.5.16...v1.5.17

v1.5.16

04 Oct 14:20
c432ccc

Choose a tag to compare

What's Changed

  1. "Check for Updates" function in Menu..About panel updated to cater for potential critical segmentation errors caused by some Homebrew Python installations when executing shell subprocesses.

    NB: if the user has already installed PyGPSClient==1.5.15, it may be necessary to install the update to 1.5.16 via the command line rather than via the Menu..About..Check for Updates function. Subsequent updates will work as expected.

Fixes # Issue with spurious "Function unavailable under Homebrew" message on About..Update function.

Full Changelog: v1.5.15...v1.5.16

v1.5.15

04 Oct 06:46
1816c1f

Choose a tag to compare

What's Changed

ENHANCEMENTS:

  1. Add support for Quectel LC29H base station configuration in NTRIP Caster mode.
  2. Enhance support for Quectel PAIR commands in NMEA configuration panel.
  3. Minor refinements to UI on lower resolution screens.

FIXES:

  1. Fix GPX add trackpoint exception handling - Fixes #213
  2. Send NTRIP (RTCM) and SPARTN data via socket connection as well as serial connection - Addresses #214.

Full Changelog: v1.5.14...v1.5.15

v1.5.14

18 Sep 16:45
042ab3b

Choose a tag to compare

What's Changed

FIXES:

  1. Fix Chart update issue #210
  2. Fix Exit button not invoking on_exit() clean up routines (causing any in-progress GPX track recording to be unterminated).
  3. Fix IndexError when loading GPX tracks with no <time></time> elements - a synthetic timestamp sequence wil be used instead.

ENHANCEMENTS:

  1. Add facility to write gnss status data to a spatialite (sqlite3 with spatial extension) database, which can be utilised by many standard GNSS visualisation and analysis applications e.g. QGIS, GDAL, GRASS, GeoPandas etc. The facility may be enabled via a new 'Database' checkbox on the Settings panel. The default database path is $HOME/pygpsclient.sqlite. A single table pygpsclient is populated with all the information displayed in PyGPSClient's banner panel, with lat/lon/hmsl available as a POINTZ (3D) geometry. Note that, when first created, the database spatial metadata will take a few seconds to initialise (up to a minute on ARM-based SBC platforms like RPi).

    NB: This optional facility is subject to the following Python environmental pre-requisites:

    • The Python environment must support the loading of sqlite3 extensions i.e. it must have been compiled with the --enable-loadable-sqlite-extensions option. This is true by default for most Windows and Linux platforms but NOT for most MacOS platforms.
    • The mod_spatialite module (.so, .dll or .dylib) must be installed and in PATH (or LD_LIBRARY_PATH on Linux).
    • The 'About' dialog displays a new Spatial version/status - 'No ext' signifies the platform's Python does not support sqlite3 extensions; 'No m_s' signifies Python does support extensions but mod_spatialite is not installed or cannot be found in PATH or LD_LIBRARY_PATH.

    On MacOS platforms, it may be necessary to install (e.g. via Homebrew) a custom version of Python with the --enable-loadable-sqlite-extensions flag set and the libspatialite package installed e.g.

    brew install [email protected] libspatialite

    On Linux platforms which do not support sqlite3 extensions out of the box, it may be possible to compile from source a suitable version of Python and/or libspatialite.

  2. Enhance elevation profile and metadata rendering in GPX track viewer.

  3. Add support for Quectel proprietary $PAIR NMEA commands in NMEA Configuration dialog (Quectel LC29H/LC79H) - requires pynmeagps>=1.0.53.

  4. Various minor improvements to file exception handling.

  5. BSD 3-Clause license attribution clarified in all modules.

Fixes: #210

Full Changelog: v1.5.13...v1.5.14