FIXES:
- Update nmeahandler to cater for mixed float/null NMEA GGA alt/sep data - Fixes #244.
ENHANCEMENTS:
- Minor internal updates to NTRIP SPARTN handling - no longer requires a 'dummy' key for unencrypted Point Perfect Flex SPARTN NTRIP services. To decode SPARTN messages in the console, set
"spartndecode_b": 1in your json configuration file.
FIXES:
- Fix custom map import spurious validation error.
ENHANCEMENTS:
- Add preset description entry field to Configuration Command Recorder import facility.
- Make TTY Presets dialog fully resizeable.
- Update NMEA config panel to allow preset commands to be edited or entered manually before sending.
- Update NMEA config panel to recognise correct PAIR responses for some Quectel set and poll commands (e.g. a PAIR864 Set baud rate command corresponds to a PAIR865 poll response).
FIXES:
- Fix
CFG-VALSET ACK-NAKerror when configuring ZED-X20P as base station. - Fix
AttributeError: ... has no attribute frm_socketservererror in Server Config panel when configuring certain devices for SVIN.
ENHANCEMENTS:
- Improve Base Station receiver configuration handling in the NTRIP Caster/Socket Server dialog.
- Add connected device descriptor to status bar (e.g. "u-blox ZED-F9P", "Unicore UM981S", "Septentrio mosaic-X5" or "Quectel LG290AG03"). FYI This is based on a poll of hardware information messages (one for each enabled protocol) sent approximately 3 seconds after the connection is started (you may see 'unknown protocol' warnings in response to some of these messages; these can be ignored). Failing this, a generic descriptor is displayed on receipt of a message protocol unique to a particular manufacturer (e.g. "u-blox" on receipt of a UBX message, "Unicore" on receipt of a UNI message, etc.). Note that some (mainly older) devices may not return a meaningful descriptor, in which case "N/A" will be displayed. Note also that some receivers will not output hardware information or other status messages at low baud rates (< 38,400)
- Minor updates to serial port configuration panel (additional timeout values).
- Mininum pynmeagps version updated to v1.1.1.
- Add support for Unicore UNI binary data output messages via
pyunigps>=0.1.3andpygnssutils>=1.1.22.
- Add support for Unicore Secondary Antenna and Attitude (IMU) NMEA sentences e.g. UM98n "GGAH", "HPD" (requires pynmeagps>=1.1.0).
- Minor cosmetic UI enhancements to improve rendering on some Linux window managers (e.g. xfce).
Waiting for XXX dataalerts added to user-selectable widgets to clarify which type of GNSS data each widget is waiting for. Widgets are not 'initialised' (underlying grids & labels drawn) until this data arrives. As in previous versions, widgets which depend on protocol-specific data (e.g. UBX) will display aReceiver does not appear to support XXX dataalert if requisite data isn't received after 10 navigation solutions.
- Updates to main application window geometry (size and position) handling. Current window geometry is now saved to json configuration file as
screengeom_s(e.g."1373x798+71+44"), and will be restored on restart. Default startup geometry is centered at 75% of screen resolution.
FIXES:
- Fix Load Configuration error #232
AttributeError: 'tuple' object has no attribute 'upper'.
ENHANCEMENTS:
- Add user-selectable Signals widget, displaying individual GNSS PRN / Signal ID levels and (where applicable) correction sources (receiver must support UBX NAV-SIG messages). Provides greater granularity than the existing Levels widget for UBX devices. Signal IDs are shown in RINEX format e.g. "L1_C/A", "E5_aQ", etc.
- Add user-defined preset import facility to Configuration Load/Save/Record panel (accessed via Menu..Options..Configuration Command Recorder). This allows user to record a sequence of UBX, NMEA or TTY commands as they are sent to the receiver and to import this sequence as a user-defined preset in the PyGPSClient json configuration file. This obviates the need to edit the configuration file manually. Remember to re-save the configuration file to persist the changes.
- Add Undock/Dock Settings panel facility, via Menu..View..Undock/Dock Settings. Settings panel can now be undocked from the main application window and displayed as a separate Toplevel dialog. If (and only if) non-transient (
transient_dialog_b: 0), the settings panel can be minimized independently of the main window. - NTRIP Caster / Socket Server Configuration is now a separate Toplevel dialog panel, accessed through Server Config button on Settings panel or via Menu..Options..Server Configuration. Number of connected clients is now displayed in topmost banner panel.
- Show "C/No = 0 dbHz" option ("unused satellites") is now accessible through double-right-click on LevelsView and SignalsView widgets; option removed from main Settings panel.
- Minor cosmetic updates to various panels to improve navigation on smaller / lower resolution screens.
FIXES:
- Fix PUBX003 file input parsing error #229
ENHANCEMENTS:
- 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.
FIXES:
- Fix KeyError in UBX Legacy Dynamic Config Panel #227
ENHANCEMENTS:
- Make maximum individual data log file size (in bytes) manually configurable via
logsize_nsetting in json configuration file. Default is 10 MB. - 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).
- Internal enhancements to thread handling to improve dialog response at high transaction rates.
FIXES:
- Fix issue with datalogging #224.
FIXES:
- Replace missing manifest file.
FIXES:
- Fix typo in initial chart configuration settings, which could cause a
TypeErroron startup if no json config file exists.
ENHANCEMENTS:
- Add 'File Delay' setting to control delay between input file reads - effectively a 'throttle' for file input. Default (previously fixed) is 20 milliseconds.
- Improved exception handling in several panels.
- Internal streamlining and rationalisation of compass and graph canvas draw routines to improve GUI look and consistency.
- Add Control-K "kill switch" key binding to immediately disconnect and terminate all running threads.
ENHANCEMENTS:
-
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.
-
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-VALSETcommands supplied all take effect in the volatile RAM memory layer - to persist these configurations, select 'Save Configuration to BBR' (or other non-volatile memory). -
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 variablePYGNSSUTILS_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
-
Update list of 'recognised' GNSS receiver serial port designators to include
IOUSBHostDevice(Sparkfun ZED-X20P breakout) andUSB Dual_Serial(Sparkfun Flex Breakout).
FIXES:
- Fix "SQLError Database not open" issue on initialisation.
- Fix issue where TTY Console would not refresh immediately if Echo was enabled.
- Fix issue where ValueError (unknown protocol) from GNSSReader would cause streaming to terminate (requires
pygnssutils>=1.1.20). - Fix issue with some ZED-X20P configuration commands not taking effect with firmware HPG 2.02.
- Fixed issue which prevented some warning messages being shown during initialisation.
ENHANCEMENTS:
- 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 this functionality has been disabled by default in PyGPSClient in this release, and will be removed altogether in a subsequent release. It can be re-enabled by manually editing the
lband_enabled_bconfiguration setting. - Add provisional support for Quectel QGC binary message protocol (requires pyqgc>=0.1.2). Currently only Quectel LGSERIES / LG580P / LG680P RAW and LU600 IMU QGC message types are implemented, but this will be enhanced in future releases (contributions welcome).
- Add additional IMU message types to IMU widget drop-down.
- Enhance performance and look and feel of banner skyview and graphview widgets.
- Drop active support for Python 3.9, add 3.14 (3.9 EOL as at 31 October 2025).
FIXES:
- "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.
ENHANCEMENTS:
- Add support for Quectel LCSERIES base station configuration in NTRIP Caster mode.
- Enhance support for Quectel PAIR commands in NMEA configuration panel.
- Minor refinements to UI on lower resolution screens.
FIXES:
- Fix GPX add trackpoint exception handling - Fixes #213
- Send NTRIP (RTCM) and SPARTN data via socket connection as well as serial connection - Addresses #214.
FIXES:
- Fix Chart update issue #210
- Fix Exit button not invoking on_exit() clean up routines (causing any in-progress GPX track recording to be unterminated).
- Fix
IndexErrorwhen loading GPX tracks with no<time></time>elements - a synthetic timestamp sequence wil be used instead. - Fix incorrect type formatting for some NMEA commands in NMEA Dynamic Configuration panel.
ENHANCEMENTS:
-
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 tablepygpsclientis 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.NB: This optional facility is subject to the following Python environmental criteria:
- The Python environment must support the loading of sqlite3 extensions i.e. it must have been compiled with the
--enable-loadable-sqlite-extensionsoption. 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(orLD_LIBRARY_PATHon 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
PATHorLD_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-extensionsflag set and thelibspatialitepackage installed e.g.brew install python-tk@3.13 libspatialiteOn 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.
- The Python environment must support the loading of sqlite3 extensions i.e. it must have been compiled with the
-
BSD 3-Clause license attribution clarified in all modules.
-
Enhance elevation profile and metadata rendering in GPX track viewer. Add support for route and waypoint elements in addition to track.
-
Enhance NMEA Dynamic Configuration dialog to support additional NMEA command types, including Quectel proprietary $PAIR (Quectel LCSERIES/LC79H), Garmin $PGRM, Locosys %PINV (limited) and u-Blox $PUBX (requires pynmeagps>=1.0.53).
-
Add support
-
Various minor improvements to file exception handling.
ENHANCEMENTS:
- Internal streamlining and rationalisation of map handling across all dialogs and widgets which display maps (Mapview widget, GPX Track Viewer dialog, Import Custom Map dialog).
- Location-centered zooming is now available for both offline and online maps (previously only online maps could be zoomed via MapQuest API). For offline maps, the minimum and maximum viable zoom levels will depend on the resolution and extents of the imported geo-referenced image(s).
- For both online and offline maps, each zoom level (1-20) corresponds to a pre-calculated lat/lon bounding box. If you see black borders around an offline map, this signifies that the geo-referenced image does not extend to the current zoom level bounds - try increasing the zoom level until the map fills the canvas.
- A new boolean configuration setting
mapzoom_disabled_bgoverns the location-centered zoom behaviour for offline maps. To enable zoomable custom maps, set this to0(the default). To revert to the previous map-centered static handling, set this to1. - NB: the CanvasMap class can only display one offline image at a time - it cannot 'tile' multiple images to form a single larger image on the canvas. The largest single image the map viewer can handle is around 150 million pixels (roughly 430 MB), though one would need an extremely high resolution screen (8K) to take advantage of images of such resolution.
- 'Map Type', 'Zoom' and 'Show Track' options moved from settings panel to mapview widget, allowing these to be altered even if the settings panel is hidden.
- A new boolean configuration setting
transient_dialog_b(default1) governs whether Toplevel dialogs are 'transient' (i.e. always on top of main application dialog) or not. A setting of0allows pop-up dialogs to be minimised independently of the main application window, but be mindful that some dialogs may end up hidden behind others e.g. "Open file/folder" dialogs. If a file open button appears unresponsive, check that the "Open file/folder" panel isn't already open but obscured. Applies to all Toplevel dialogs (UBX Configuration, NMEA Configuration, NTRIP Client, SPARTN Client, About, GPX Viewer, Import Custom Map, TTY Presets).
FIXES:
- Fix GPX Custom map loading error.
FIXES:
- Clarify interpretation of SPARTN decryption basedate integer values in *.json configuration file;
-1signifies 'use current datetime' (basedate=None);0signifies 'use gnssTimeTag from incoming SPARTN data stream' (basedate=pyspartn.TIMEBASE); any other integer value represents an explicit gnssTimeTag value. - Fix minor bugs in GPX Viewer custom map handling.
ENHANCEMENTS:
- Make all Toplevel dialogs scrollable and resizeable, depending on effective screen resolution. Applies to: UBX Config, NMEA Config, NTRIP Client, SPARTN Client, Display GPX Track, Import Custom Map, TTY Commands. This allows the dialogs to be usable on low resolution screens( 600 <= width <= 1024 pixels).
- Make SPARTN L-Band configuration panel optional - disabled by default (ublox PointPerfect SPARTN L-Band service was discontinued in May 2025, though the panel can still be used for other generic L-Band modem configuration purposes). Panel can be re-enabled by setting lband_enabled_b to 1.
- Make
cryptographylibrary dependency optional (it is only required to decrypt encrypted MQTT SPARTN payloads). If thecryptographylibrary is not installed, the "Decode SPARTN in console" option will be greyed out in the SPARTN MQTT Client dialog. - Allow datalogging and track recording to be enabled or disabled while connected (previously only available while disconnected).
- Update minimum pyubx2, pysbf2 and pygnssutils versions to take onboard latest fixes and enhancements.
FIXES:
- Fix issue with type formatting in banner_frame.py #202 - thanks to @davidtlascelles for contribution.
- Fix issue which would cause console to flicker between fixed and dynamic fonts when filtering data.
- Fix issue with reset widget layout menu option not updating stored configuration.
ENHANCEMENTS:
- Add support for Septentrio Mosaic X5 Base Station configuration in NTRIP Caster mode (supplementing the existing u-blox ZED-F9P/X20P and Quectel LGSERIES options). Note that the Mosaic X5 is configured via ASCII TTY commands - to monitor the responses, set the console protocol to "TTY" (remember to set it back to "RTCM" to monitor the RTCM3 output). Note also that the input (ASCII command) UART port may be different to the output (RTCM3) port - ensure you select the appropriate port(s) when configuring the receiver and monitoring the RTCM3 output.
- Add base station location update - automatically updates NTRIP CASTER Survey-in base station location from RTCM 1005/6 message.
- Chart Plot widget streamlined to reduce memory footprint and simplify CSV cut-and-paste (double-right-click) function.
- Minor enhancements to ubx2preset() and nmea2preset() helper functions; added \examples\convert_ubx_preset.py example.
- Dependency versions updated to incorporate latest fixes and enhancements.
FIXES:
- Fixes #193
ENHANCEMENTS:
- Add support for Septentrio SBF binary GNSS protocol (via the underlying
pysbf2library). If SBF protocol is selected, the console can now display parsed SBF data e.g. from Septentrio Mosaic X5.- NB: At present, either UBX or SBF protocols can be selected, but not both at the same time.
- NB: At present, with the exception of the SBF PVTGeodetic message, SBF data is not used to update the various user-selectable PyGPSClient widgets. This functionality may be enhanced in future releases.
- NB: Serial connection must be disconnected before switching between SBF, UBX or TTY protocols.
- Enhancements to TTY Command mode - will now work with a wider variety of TTY-configured devices, including Septentrio Mosaic X5 Receiver and Feyman IM19 IMU.
- See /examples/ttypresets_examples.py for examples of ASCII TTY commands for a variety of GNSS and related devices.
- NB: For Septentrio devices, send an 'Initialise Command Mode' string (
"SSSSSSSSSS\r\n") before sending further commands.
- Delay checkbox added to TTY Preset Commands dialog - if checked, inserts small delay between individual TTY commands.
FIXES:
- Fix incorrect default value for "lbandclientunqword_s" - Fixes #189
- Fix issue where datalog path was not being updated if datalogging was enabled at runtime.
- Fix issue where settings frame was not updated after reloading configuration file at runtime.
ENHANCEMENTS:
- Add receiver type option to NTRIP Caster mode - can now utilise either u-blox ZED-F9* or Quectel LGSERIES as Base Station receiver. NOTE THAT due to quirks in the LGSERIES firmware, setting Base Station mode with RTCM MSM 7 messages requires two successive restarts - you may see
WARNING - connection errorin the console during those restarts. - Add new IMU Monitor widget, capable of displaying IMU orientation (roll, pitch, yaw) and status from a variety of NMEA or UBX IMU data sources (e.g. ESF-ALG, HNR-ATT, NAV-ATT, NAV-PVAT, GPFMI).
- Add TTY Command Dialog, allowing user to enter/select ASCII TTY commands to the connected serial device. Access via menu bar Options...TTY Commands.
- RTCM3 messages types 1002 (GPS L1 observables) & 1010 (GLONASS L1 observables) added to NTRIP Caster configuration.
- Make GUI update interval configurable via configuration setting "guiupdateinterval_f" - default is 0.5 seconds. NB: PyGPSClient may struggle on slower platforms (e.g. Raspberry Pi) if the GUI update interval is less than 0.2 seconds, though much lower intervals (<= 0.1 secs) can be accommodated on high-spec platforms.
FIXES:
- Fixes some typos in MQTT configuration settings (mqtt rather than mgtt) NB: recommend saving a new json configuration file for this version.
ENHANCEMENTS:
- Refactor configuration settings - new
Configurationclass inconfiguration.py. - Streamline command line argument handling.
- Add 'Decode SPARTN in console' checkbox to SPARTN config dialog.
- Enhancements to Dynamic Configuration Panel to allow POLL arguments to be entered for those poll commands that require them.
- Enhancements to Preset Command Configuration Panel to allow user to specify CONFIRM option.
- Improved error handling in Preset and Dynamic Configuration panels.
- Minor improvements to color choices to improve contrast in Dark Mode.
- Add new NMEA Configuration panel, complementing and (partly) mirroring the existing UBX Configuration panel. The NMEA configuration panel supports GNSS receivers which can be configured via proprietary NMEA sentences. Currently the only supported receiver is the Quectel LGSERIES (or other command-compatible Quectel receivers). See README for details. User-defined preset NMEA commands may be added via the
nmeapresets_lsection of the PyGPSClient *.json configuration file. - Two new helper functions added
ubx2preset()andnmea2preset(), to assist users in convertingUBXMessageorNMEAMessageobjects into strings which can be copied-and-pasted into the relevant sections of the *.json configuration file (ubxpresets_landnmeapresets_l). See README for details.
- Fix issue with GUI update facility not working for virtual environments.
- Fix issue with displaying final content of file in console after EOF condition.
- Fix logpath setting in config file - Fixes #171
- Add support for pyubxutils.
- Minor updates to vscode task configurations.
- Add new user-selectable and configurable "Chart" widget:
- The Chart widget broadly emulates a multi-channel "oscilloscope", allowing the user to plot designated numeric data attribute values over time. By default, the number of channels is set to 4, but this can be manually edited by the user via the json configuration file setting
chartsettings_d["numchn_n"]. - Any numeric attribute from any incoming NMEA, UBX, RTCM or SPARTN message can be plotted.
- For each channel, user must specify the parsed data attribute name e.g. "hAcc" or "numSV".
- User can optionally specify a message identity e.g. "GNGGA" or "NAV-PVT", in which case only the attribute from that message identity will be plotted.
- Nested group attributes must include the full group index e.g. "cno_04". Alternatively, one of three wildcard characters '*', '+' or '-' can be appended, representing the average, minimum or maximum of the nested group values e.g. "cno*" = (cno_01 + cno_02 + ... + cno_0n) / n ; "cno+" = max(cno_01, cno_02, ..., cno_0n).
- X (time) and Y (value) axes are fully configurable.
- Double-right-click will save the current chart data to the clipboard in CSV format.
- The maximum number of datapoints per channel is configurable, though NB the practical maximum will be dependent on available platform memory and performance. 100,000 datapoints per channel is roughly equivalent to 3 MB in-memory data.
- Chart settings will be saved to the json configuration file when "Save Configuration" is invoked.
- Principally intended to provide a real-time view of incoming data trends over relatively short periods (minutes or hours). Analyses of much long time-series data (days or weeks) can probably be done more efficiently by saving a binary log of the incoming data and processing the data offline through a standard Python graphing tool like
matplotlib.
- The Chart widget broadly emulates a multi-channel "oscilloscope", allowing the user to plot designated numeric data attribute values over time. By default, the number of channels is set to 4, but this can be manually edited by the user via the json configuration file setting
- Add Check (for updates) on startup option to About dialog (NB: check requires internet connectivity)
FIXES:
- Fix NAV-SVINFO TypeError in ubx_hnadler.
ENHANCEMENTS:
- Enhancements to spectrum widget:
- Add snapshot facilty. Right-click anywhere in spectrum plot to capture current spectrum data, which will then be superimposed on the live spectrum data in a different color. Double-right-click to clear the snapshot. Intention is to help compare RF reception at different times and/or with different antenna configurations.
- Add pgaoffset option. If selected, adds receiver PGA (programmable gain amplifier) gain to spectrum db axis.
- vertical (db) axis range is now fixed - fixes previous vertical axis 'jumping'.
- Enhance console color tagging.
- Add baseline (where available) to banner dgps display.
- Selected receiver serial port now included in saved json configuration file (NB: obviously won't work if the saved device is no longer available on the same port).
- Minor interval enhancments to SPARTM data stream handling to reflect pyspartn>=1.05
ENHANCEMENTS:
- Further enhancements to scatterplot widget; add autorange, update interval, right-click to set fixed ref position, standard deviation in addition to average lat/lon, improved font scaling
- Add Height Above Ellipsoid (HAE) to banner. 'sep' = HAE - hMSL.
- Add double-click to copy contents of console to clipboard.
ENHANCEMENTS:
- Enhance scatterplot widget dynamic/fixed display options.
ENHANCEMENTS:
- Enhance scatterplot widget to extend zoom range to 0.01m and add optional fixed reference position. Delivers #160 and #161.
- Minor improvements to datalogging and track recording.
FIXES:
- Fix NMEA GSV SV range handling - was omitting certain SVIDs.
CHANGES:
- Update minimum pgnssutils version to 1.1.4 - includes fix for semuconsulting/pygnssutils#93.
- Drop active support for Python 3.8 - now End of Life as at October 2024.
- Add active support for Python 3.13 - now General Release as at October 2024.
ENHANCEMENTS:
- Add guided custom offline map import facility to Menu..Options..Import Custom Map. If the Python
rasteriolibrary is installed, the map bounding box can be automatically extracted from any georeferenced image (e.g. GeoTIFF - the default custom map image format). If the image is not georeferenced, or ifrasteriois not installed, the bounding box must be entered manually. Invoke 'File..Save Configuration' to save the imported custom map settings to disk. NB: therasteriolibrary is not a mandatatory dependency for PyGPSClient and is not automatically installed with PyGPSClient. - Add preset commands for SEC message types.
CHANGES:
- Add support for chunked transfer-encoded NTRIP datastreams (requires
pygnssutils>=1.1.0). - Add sponsorship link to About dialog.
- Add "Enable UBX, Suppress NMEA' preset in UBX Configuration Dialog (enables UBX NAV-PVT, NAV-SAT and NAV-DOP and disables all NMEA messages).
FIXES:
- Fix issue with mountpoint selection sometimes not showing information in NTRIP configuration dialog.
- Fix issue with live coordinates not being presented properly in FIXED NTRIP caster dialog.
FIXES:
- Fixes typo in ubx_handler which affects NAV2-STATUS messages #142
CHANGES:
- Minor improvements to settings frame appearance.
- Add support for logging in underlying
pygnssutilsutilities (gnssntripclient,gnssmqttclient,gnssserver) - App
get_coordinates()method now returns additional live gnss status information as dict.
CHANGES:
- Add modular logging facility. Logging configuration is defined globally in
__main__.py, with global log level and destination set via the CLI--verbosityand--logtofilearguments. Subsidiary modules can useself.logger = logging.setLogger(__name__)and individual module log levels can be overridden using e.g.self.logger.setLevel(DEBUG).
FIXES:
- Fix PUBX03 NMEA handling for Sky View - Fixes #138
- Make PUBX03 SVID numbering consistent with GSV
CHANGES:
- Improved logging of data stream errors to console.
- Internal performance streamlining - no functional changes.
FIXES:
- Fix handling of encrypted SPARTN payloads from MQTT or NTRIP sources.
ENHANCEMENTS:
- Updated functionality in pygnssutils and pyspartn libraries (see respective libraries for details).
- Update application icon.
ENHANCEMENTS:
- Add default port checkboxes to UBX Preset config panel (these govern which port(s) any message rate commands apply to). The selection can be saved as configuration parameter
defaultport_s.
FIXES:
- Update ubxsetrate helper method to use CFG-VALSET command for newer (UBX protocol >= 23.01) devices, and the CFG-MSG command for older devices. This fixes an error (Discussion #125) where the spectrum, system monitor and rover plot widgets would not display data for M10 and F10 UBX devices.
ENHANCEMENTS:
- Add support for SSL (port 443) connections in NTRIP client (requires pygnssutils>=1.0.21).
- Add support for PointPerfect NTRIP SPARTN service.
- Add RF Band data from MON-RF to UBX info panel.
- Minor enhancements to custom offline map handling.
FIXES:
- Fix stream handler KeyError Fixes #120.
- Fix socket stream KeyError Fixes #119.
- Fix map_frame pylint warnings.
ENHANCEMENTS:
- Enhance custom offline map facility to allow multiple maps to be defined in config file. If Map Type of 'custom' is selected, PyGPSClient will automatically display custom map corresponding to current location or, if there is none, the default Mercator world map. Maps do not need to be contiguous. See README and example json configuration file for details.
ENHANCEMENTS:
- Add basic custom offline map facility to map view widget. See README for details.
- Add support for SETPOLL msgmode (requires
pyubx2>=1.2.38). This mode will automatically determine appropriate input mode (SET or POLL) for command or query UBX messages (NB: it will still be necessary to specify either output GET or input SETPOLL mode in the serial configuration panel when reading UBX data logs). - Add support for experimental UBXSimulator (basic UBX GNSS serial device simulator) from
pygnssutils. To invoke, setuserport_ssetting to "ubxsimulator" and configure required NMEA/UBX data stream in local "ubxsimulator.json" file - see Sphinx documentation and example json file for further details.
FIXES:
- Send empty datagram to UDP socket connections = thanks to @Williangalvani for contribution.
CHANGES:
- Update Rover widget for new pyubx2>=1.2.37 RELPOSNED payload definition.
FIXES:
- Fix parsing of command line arguments (NB: command line arguments and/or environment variables will now take temporary precedence over saved config file settings)
- Fix 'unhashable type' error when first displaying mountpoint data in NTRIP client panel
ENHANCEMENTS:
- Add tkinter value to About dialog for reference.
- Update Scatterplot widget to use planar approximation rather than haversine great circle formula at separations <= 50m
FIXES:
- Fix relPosLength calculation in rover_frame.py
- Fix typo in Scatterplot widget labels.
ENHANCEMENTS:
- Cater for older (pre NMEA 2.3) NMEA RMC message payloads - missing
posModeattribute. - Minor improvements in skyview widget rendering to improve clarity
FIXES:
- Fix IP6 invalid args issue #98
- Fix GPX Track View facility handling of timestamps with microsecond elements.
FIXES:
- Fix vdop typo in nmea_handler #94
ENHANCEMENTS:
- Add serial or socket stream inactivity timeout setting on serial config panel.
- Add public IP address to socket server/NTRIP caster config panel for ease of reference.
- Add support for legacy NMEA "BD" (Beidou) talker IDs in satellite and graphview widgets.
ENHANCEMENTS:
- SPARTN MQTT configuration facilities enhanced to accommodate L-band as well as IP topics, including
/pp/frequencies/Lb. As before, the utility will automatically upload the appropriate IP or L-band decryption keys and validity dates to the receiver (e.g. ZED-F9P) on receipt of an RXM-SPARTNKEY message (i.e./pp/ubx/0236/ipor/pp/ubx/0236/Lbtopic) from MQTT. - Note that a standard PointPerfect L-Band subscription does NOT provide access to the
/pp/ip/*(SPARTN data) topics, the assumption being that the necessary correction data will arrive via RXM-PMP messages from the L-band receiver (e.g. NEO-D9S). Uncheck the IP topic checkbox before connecting to an L-band MQTT source. - Add support for MQTT SPARTN "jp" region.
- Other minor improvements in usability.
- Changes require
pygnssutils>=1.0.15.
ENHANCEMENTS:
- New Rover widget which plots the relative 2D position, track and status information for the roving receiver antenna in a fixed or moving base / rover RTK configuration. Double-click to clear existing plot. (GNSS rover receiver must be capable of outputting UBX NAV-RELPOSNED messages.)
FIXES:
- Fix issue where some preset commands were not being recorded in the UBX recorder facility.
ENHANCEMENTS:
-
Configuration *.json file save procedure enhanced to save and restore all user-configurable settings parameters, including those for NTRIP and SPARTN Clients. NB: changes require
pygnssutils>=1.0.13. Order of precedence for config settings is:- *.json config file (all user-configurable settings)
- CLI keyword argument (where available)
- Environment Variable (where used)
NB: Configuration file element names have been changed to facilitate type validation (e.g. "sockclientport" is now "sockclientport_n" to signify it takes an integer value). Some older names will no longer be recognised. It is recommended to save a new copy of the default configuration as
pygpsclient.json. -
Add scrollbars to settings frame to allow better navigation on low-res displays.
-
Add EBNO & FEC Bits values to SPARTN L-Band configuration panel to help monitor signal quality.
-
Minor enhancements to banner position formatting.
-
Add IPv6 flowinfo & scopeid fields to NTRIP Client configuration panel.
-
Minor improvements to documentation and code comments.
FIXES:
- Fix AttributeError if opening with older json configuration file.
ENHANCEMENTS:
- Add NTRIP caster credentials as command line arguments.
- Add version update facility to About dialog.
- Add Survey-in countdown display to NTRIP caster panel.
- Add ECEF position format to banner.
- Add display support for NAVIC GNSS constellation in graph and skyviews (already fully supported in pyubx2).
- Add display support for NMEA UBX,03 proprietary message.
CHANGES:
- Internal streamlining of stream_handler and settings_frame.
ENHANCEMENTS:
- Enhance NTRIP Caster facility to include ability to automatically configure a ZED-F9P (or similar) receiver to operate in Base Station mode (either Survey-In or Fixed).
- Enhance Socket Server facility to add host (bind) address, which is then stored in config file (can be derived from environment variable
PYGPSCLIENT_BINDADDRESS). - Enhance socket reader IPv6 support.
ENHANCEMENTS:
- Enhance webmap widget to display either world (static), map (web), or satellite (web) basemap.
- Enhance stream handler to allow outbound writes to socket as well as USB/UART streams (requires pyubx2 >= 1.2.28). Allows users to configure or poll a remote receiver over TCP, provided the receiver's TCP client at the other end supports this.
- Update dependency minimum versions for pygnssutils and pyspartn.
FIXES:
- Fix right-click zoom function on mapview to work with Windows.
- Connection error with IPv6 socket connections.
ENHANCEMENTS:
- Enhancement to *.txt config file upload in UBX Configuration panel to expand support for u-blox devices other than F9* series.
- Enhancement to SPARTN configuration panel to allow user to amend receiver DGNSS Timeout value (can be useful when using L-Band SPARTN sources).
- Add IPv6 support for TCP/UDP connections.
- Add Zoom in/out icons to webmap widget and remove slider from main settings panel.
FIXES:
- Fix issue with PIL.ANTIALIAS keyword no longer being supported; stopped static map being loaded.
- Remove redundant config file readers - all saved config should now be placed in *.json configuration file.
- Remove Python 3.7 support (now end of life)
ENHANCEMENTS:
- Add System Monitor widget which displays device system status in bar chart format (cpu, memory and I/O utilisation, temperature, boot state, etc.), for those u-blox devices that support MON-SYS and MON-COMMS message types. To access, select Menu..View..Show System Monitor.
-
Add IPv6 support to NTRIP configuration panel (requires pygnssutils >= 1.0.8).
-
Add double-click actions to widgets;
- double-click graph widget to toggle legend
- double-click spectrum widget to toggle legend and L-Band markers
- double-click map widget to refresh web map immediately
- double-click scatterplot widget to reset plot
CHANGES:
- Update min pygnssutils version to 1.0.9
ENHANCEMENTS:
- UBX Configuration Load/Save/Record facility will now accept u-center *.txt configuration files (for Generation 9+ devices only) as well as binary *.ubx files. Thanks for @wdwalker in #66 for suggestion. Compatible configuration files for ZED-F9P devices can be found, for example, on the ArduSimple web site. FYI: Generation 9+ u-center *.txt configuration files contain hexadecimal representations of MON-VER and CFG_VALGET UBX messages, e.g.:
The CFG-VALGET messages are converted into CFG-VALSET commands for uploading to the receiver.
MON-VER - 0A 04 DC 00 45 ... CFG-VALGET - 06 8B 44 01 ... CFG-VALGET - 06 8B 44 01 ... - New module
widgets.pycontaining a configuration data dictionary for all user-selectable widgets. Intention is to make it easier to add and configure new widgets.
FIXES:
- Fix error when updating NTRIP Client dialog status (e.g. with 'unauthorized' errors)
CHANGES:
- Bandit security analysis added to VS Code and GHA workflows.
- Update min pygnssutils version to 1.0.7
- Internal updates to VSCode and GHA workflows.
FIXES:
- Fixes #63 ValueError if pygpsclient started with no default config file
CHANGES:
- Improved legibility in 'Light' and 'Dark' O/S modes by removing hard-coded Entry widget background colors. Fixes #60. (NB: the PyGPSClient application itself retains its 'dark' main widget GUI styling and there are no current plans to introduce user-selectable color themes.)
- Minimum pygnssutils version updated to 1.0.6.
- Minor fixes to configuration load status messages.
ENHANCEMENTS:
- Add facility to save and reload PyGPSClient application configuration file in json format. Covers:
- frm_settings dialog values (protocols, console format, degrees format, units, etc.)
- widget configuration (which widgets are visible or hidden)
- user-defined GNSS and SPARTN serial ports
- API keys
- console color tagging values
- user-defined UBX command presets
- Will look for default config file
$HOME/pygpsclient.jsonon startup - a sample file is provided. - Add ability to specify a custom config file via command line argument
-C,--config. - Application config file obviates need for discrete
colortagsandmqapikeyfiles. These will be deprecated in a subsequent version. - Enhance spectrum view with optional additional GNSS frequency band markers.
- Minor improvements to spectrum widget to show GLONASS & Galileo frequency band markers in addition to GPS.
- Minor improvements to automated widget positioning and resizing.
ENHANCEMENTS:
- Various minor tweaks to improve widget legibility, contrast and positioning at various scales.
- Correctly cater for up to 3 rows of optional widgets.
- Add color helper functions rgb2str, str2rgb, col2contrast.
- Address minor pylint advisories.
- Added 'Update Toolchain' task to VS Code workflow.
ENHANCEMENTS:
- New Scatter Plot widget added, showing variability in position reporting over a period of time. Access via View..Show/Hide Scatter Plot. Thanks to @nmichaels-qualinx for contribution.
CHANGES:
- Project migrated to pyproject.toml build mechanism and standard project structure (/src). The setuptools build backend has been retained.
- Internal build and test workflow streamlined.
FIXES:
- Fix glitch which caused banner hAcc/vAcc values to be garbled if using imperial units.
ENHANCEMENTS:
- Facility to store L-Band correction receiver (D9S) configuration to persistent storage (BBR, Flash, EEPROM) added to SPARTN Configuration Panel.
FIXES:
- Fix to GNSS SPARTN key config upload. Fixes #44
ENHANCEMENTS TO SPARTN CLIENT:
- SPARTN dialog no longer needs to be kept open while IP or L-Band client is running.
- Use
pygnssutils.GNSSMQTTClientclass inpygnssutils>=1.0.4rather than embeddedMQTTHandlerclass. MQTT client also now available as a command line utilitygnssmqttclient- see https://github.com/semuconsulting/pygnssutils#gnssmqttclient for details. - Enhance and streamline SPARTN client functionality.
- Minor improvements to SPARTN client error handling.
- Add ability to load SPARTN config from JSON file.
OTHER ENHANCEMENTS:
- Auto-enable MON-SPAN message if Spectrum View widget is opened.
- Various comment and docstring improvements.
FIXES:
- Cater for updates in pynmeagps to fix typo in UBX00 message - PUBX00 message provideds TDOP rather than PDOP.
ENHANCEMENTS:
- Add SPARTN Configuration utility, accessed via Menu..Options..SPARTN Configuration Dialog and button in Settings panel, offering:
- IP (MQTT) SPARTN correction source configuration.
- L-Band (D9*) SPARTN correction receiver configuration.
- GNSS Receiver (F9*) configuration.
- Supports both IP and L-Band SPARTN RTK correction sources to achieve centimetre-level accuracy.
- NB: reception and decryption of SPARTN correction data may require a paid subscription to a SPARTN location service e.g. u-blox PointPerfect. Check terms and conditions before subscribing (this project has no affiliation whatsoever to such services).
See README for details.
ENHANCEMENTS:
- New GPX Track Viewer facility added, accessed via Menu..Options..GPX Track Viewer. Displays track on dynamic web page alongside elevation and speed profiles (where available) and key metadata. Dialog is fully resizeable. Click folder icon to load a GPX file. Click redraw icon to redraw track and profile at any time.
ENHANCEMENTS:
- New
CFG Configuration Load/Save/Recordfacility added to UBX Configuration panel. This allows users to 'record' any configuration commands (UBX CFG messages) sent to a device to an internal memory array, and subsequently save this array in a binary file. Saved files can be reloaded and the messages replayed to any compatible device. This provides a means to easily reproduce a given sequence of configuration commands, or copy a saved configuration between compatible devices. - Msg Mode listbox added to serial configuration dialog. Defaults to 'GET' (periodic or poll response message types) but can be set to 'SET' or 'POLL' to read serial or file streams containing command or poll message types.
- Internal code streamlining for widget selection and arrangement. New reset layout option added.
ENHANCEMENTS:
- New spectrum analysis widget added. Displays spectrum data from MON-SPAN messages. To turn widget on or off, select Menu...View..Show/Hide Spectrum.
FIXES:
- Fix attribute typo which affected processing of HNR-PVT message types.
CHANGES:
- Minimum pygnssutils version updated to v1.0.0.
- shields.io build status badge URL updated.
- Image links in README.md updated to absolute links (so images show on PyPi).
No other functional changes.
ENHANCEMENTS:
- Python 3.11 support added to setup.py. No other functional changes.
ENHANCEMENTS:
- Add provision to pass user-defined serial port designator via command line keyword argument port or environment variable PYGPSCLIENT_USERPORT.
e.g.
pygpsclient port=/dev/tty12345or
export PYGPSCLIENT_USERPORT="/dev/tty12345"
pygpsclientAny user-defined port will appear in the serial port listbox as the first preselected item.
ENHANCEMENTS:
- GGA position source radio button added to NTRIP Client dialog - allows user to select from live receiver or fixed reference (previously PyGPSClient would automatically use receiver position if connected or fixed reference if not).
ENHANCEMENTS:
- New CFG-* Other Configuration command panel added to UBX Configuration panel. Provides structured inputs for a range of legacy CFG commands. NB: For Generation 9+ devices, legacy CFG commands are deprecated in favour of the CFG-VALGET/SET/DEL Configuration Interface commands in the adjacent panel.
- When a legacy CFG command is selected from the CFG-* listbox, a POLL request is sent to the device to retrieve the current settings; these are then used to populate a series of dynamically generated Entry widgets. The user can amend the values as required and send the updated set of values as a SET message to the device. After sending, the current values will be polled again to confirm the update has taken place. NB: this mechanism is dependent on receiving timely POLL responses. Note caveats in README re. optimising POLL response performance.
- For the time being, there are a few constraints with regard to updating certain CFG types, but these will hopefully be addressed in a future update as and when time permits. The
pyubx2library which underpinsPyGPSClientfully supports ALL CFG-* commands. - The new panel can be enabled or disabled using the
ENABLE_CFG_LEGACYboolean inglobals.py.
ENHANCEMENTS:
- "Parsed + Tabular Hex" option added to data logger.
- "Check for Updates" function enhanced in About dialog box - works better on Linux.
- Min 'pygnssutils' version updated to 0.3.1 - fixes issues with some NTRIP 2 caster handling.
CHANGES:
- Internal refactoring to use common pygnssutils utility classes, resulting in signficant de-duplication of code. No functional changes.
ENHANCEMENTS:
- New BETA Socket / NTRIP Server feature. Capable of operating in two modes - either (a) as an open, unauthenticated TCP socket server, or (b) as an authenticated NTRIP server.
- In open socket server mode, the output socket stream can be accessed by any TCP socket client capable of parsing raw GNSS data, including another instance of PyGPSClient or
gnssdump(the CLI utility installed withpyubx2) running on another machine (assuming the traffic is permitted through any firewalls). - In NTRIP server mode, the socket stream can be accessed by any authenticated NTRIP client. The sourcetable contains a single entry corresponding to the PyGPSClient host. The server authentication credentials are set via two environment variables
NTRIPCASTER_USERandNTRIPCASTER_PASSWORD. - In either mode, the maximum number of clients is arbitrarily limited to 5. A label on the settings panel indicates the number of connected clients - this turns red when the maximum has been reached.
- The socket host address is
0.0.0.0(i.e. binds to all available IP addresses on the host machine). The socket port defaults to50010but is configurable via the settings panel (2101is the convention for NTRIP servers but is not mandated). - The default configuration for the socket server is set in
globals.pyasSOCKSERVER_HOST,SOCKSERVER_PORTandSOCKSERVER_MAX_CLIENTS.
ENHANCEMENTS:
- Enhancement to NTRIP client - will now automatically identity and select the closest mountpoint in the sourcetable (among those mountpoints which provide location information, and assuming current location is known approximately). Selection can be overridden.
- hacc/vacc display on banner increased to 3dp (limit of reliability). NB: in order to see hacc/vacc readings, you will need to be receiving messages which provide this data e.g. NMEA PUBX-00 or UBX NAV-PVT, NAV-POSLLH. It cannot be reliably inferred from hdop/vdop.
- Minor internal refactoring to improve performance and resilience of NTRIP client.
FIXES:
- Fix old reference to
enqueue()method in serial handler.
CHANGES:
- Internal refactoring of
serial_handler.pyandsocket_handler.pyinto singlestream_handler.py. - Minimum versions of
pyubx2andpynmeagpsupdated to 1.2.9 and 1.0.11 respectively.
FIXES:
- Preset message rate commands now set rates on ALL ports including UART2 (UART2 was previously omitted).
ENHANCEMENTS:
- Console color tagging is now user-configurable. The fixed color tags that were in
globals.pyare instead loaded from a file named 'colortags' in the user's home directory (see example in project root directory). A special color tag of 'HALT' allows the user to terminate streaming when a specified string match is found - this could for example be a particular message identity or a particular attribute value. - Add optional manual GGA settings (lat, lon, alt. sep) to NTRIP configuration dialog. If GGA sentence transmission is enabled, GGA sentence can either be constructed from live GNSS readings (if a receiver is connected) or from the four manual settings. If a GNSS receiver is not connected, the manual GGA settings must be used to send a GGA sentence.
- Internal refactoring to use consistent message queuing technique for all incoming data streams (eliminates code duplication & offers moderate performance improvement).
FIXES:
- Enhanced error handling in serial and socket handlers - Fixes #22
ENHANCEMENTS:
- New BETA feature supports reading from TCP or UDP socket in addition to USB/UART and Binary File stream. At present, only open (i.e. unauthenticated, unencrypted) sockets are supported, and the connection is input only (i.e. you can't send UBX config polls or updates via the socket), but this may be enhanced in future versions.
- Datalogging enhanced to record incoming NTRIP data stream.
- Minor enhancements to NTRIP client exception handling.
CHANGES:
- Minimum versions of
pyubx2andpyrtcmupdated to 1.2.7 and 0.2.5 respectively.
ENHANCEMENTS:
- Various performance enhancements via internal refactoring, including updating the GUI widgets on a minimum interval basis (rather than on receipt of each NMEA or UBX message), streamlining and centralising GNSS status updates, and eliminating redundant tkinter
update()andupdate_idletasks()operations. Note, however, that some tkinter performance issues remain on MacOS Monterey. - DGPS status added to information banner. NB this indicates the successful reception of DGPS correction data (e.g. RTCM3 or SBAS) based on information from NMEA (GGA, GNS) or UBX (NAV-PVT, NAV-STATUS, RXM-RTCM) messages. It does not necessarily indicate that a DGPS correction has been applied. Note that a) NMEA and UBX messages do not always give consistent indications of DGPS receipt status, and b) DGPS status cannot be reliably inferred from other NMEA message types (e.g. RMC, VTG) earlier than NMEA 4.10.
- UBX Configuration dialog can now be opened regardless of whether a device is connected (but commands will only take effect when connected!). The dialog is also now resizeable. (These enhancements afford a workaround for current MacOS Monterey performance issues.)
- GPX Track recording now enabled for all NMEA and UBX message types which contain relevant position data, and trackpoints now include dgps data where available.
ENHANCEMENTS:
- Add Beta NTRIP Client facility. Connects to specified NTRIP server (caster) and feeds received RTCM3 messages through to connected RTCM3-compatible GNSS receiver. Tested with a variety of public and private NTRIP casters and u-blox GNSS receivers but additional testing and feedback welcome.
ENHANCEMENTS:
- Min version of
pyrtcmupdated to 0.2.4 (fixes a few RTCM parsing issues). pyrtcmversion added to About dialog.
ENHANCEMENTS:
- Added provision for RTCM3 message decoding via
pyrtcmlibrary. NBpyrtcmis still in Alpha and provides basic decoding of RTCM3 messages to their constituent data fields. To revert to the 'stub' RTCM3 decoding as used in v1.1.6, set theUSE_PYRTCMconstant inglobals.pytoFalse. - Min
pyubx2version updated to v1.2.6. - Banner will now display high precision lat/lon where available.
ENHANCEMENTS:
- Added provision for RTCM3 messages following enhancements in
pyubx2v1.2.5. NBpygpsclientdoes not currently decode RTCM3 data - it simply indicates the presence of an RTCM3 message (with message type) in the input stream. - Min
pyubx2version updated to v1.2.5.
FIXES:
- Fix issue #9 where app becomes unresponsive with a null data stream.
ENHANCEMENTS:
- Added tabular hex format to console display and datalogging format options.
- Internal refactoring of serial handler to use
pyubx2.UBXReader.read()function. - Min pynmeagps version updated to 1.0.7
- Min pyubx2 version updated to 1.2.4
- Python 3.6 dropped from list of supported versions (if should still run fine, but 3.6 is now end of life)
- Python 3.10 added to list of supported versions BUT note there still appear to be some teething performance issues with the version of tkinter embedded in Python 3.10 on MacOS Monterey. See installation notes for futher details.
FIXES:
- Fix issue where first few seconds of datalogging or gpx tracking would fail on serial connections
ENHANCEMENTS:
- Additional configdb key categories added to CFG-VALGET/SET/DEL panel (CFG-HW-RF*, CFG-SPARTN*).
- Minimum pyubx2 version updated to >=1.2.3.
- Version checker added to Help panel.
ENHANCEMENTS:
- UBX handler scaling factors removed as pyubx2 >=1.2.0 now applies these internally.
- Minimum pyubx2 version updated to >=1.2.0.
ENHANCEMENTS:
- Minor enhancements to UBX config configuration database dialog to aid category selection.
- Minimum pyubx2 and pynmeagps versions updated to 1.1.6 and 1.0.6 respectively.
ENHANCEMENTS:
- Updated to handle changes in pyubx2 v1.1.0 - parsing of individvual bits in bitfield (type 'X') message attributes. For example, the NAV-PVT attribute valid (X1) is now parsed as four individual bit flags: validDate (U1), validTime (U1), fullyResolved (U1) and validMag (U1).
FIXES:
- Fix hidden confirmation box issue on UBX config dialog.
- Various other minor fixes to dialog handling and positioning
ENHANCEMENTS:
- Console and datalogging enhanced to display either parsed, binary or hexadecimal formats.
- Minimum pyubx2 version updated to 1.0.16.
- Minimum pynmeagps version updated to 1.0.4.
ENHANCEMENTS:
- Additional CFG-VAL categories added for NEO-D9S, ZED-F9K, ZED-F9P & ZED-F9R Receivers.
- Minimum pyubx2 version updated to 1.0.14.
FIXES:
- Updated to use pynmeagps v 1.0.3.
FIXES:
- Fixed distribution packaging glitch in 1.0.6 - CFG-BDS category should now appear in UBX CFG-VALSET dialog.
CHANGES:
- Entry point added to setup.py to allow app installed via pip to be invoked via simple command
pygpsclient. - Minimum pynmeagps version updated to v1.0.1.
- SUpport for BDS messages added to UBX CFG-VALSET config dialog.
- Minor build script and documentation updates.
CHANGES:
- Helper methods moved from globals.py to new module helpers.py
- Minimum pynmeagps version updated to v1.0.0
FIXES:
- Display position fix from HNR-PVT message.
- Fix error on cancelling/quitting input filepath dialog on Linux.
FIXES:
- Fix 'flashing map' issue with mixed NMEA / UBX streams and no satellite fix. NB: 'flashing' (alternating between map and 'no fix' warning) may still occur if you have mixed streams and one outputs a valid position while the other doesn't, which can happen (e.g. position solutions are often reported in UBX messages slightly before they appear in NMEA messages).
- Fix error on cancelling/quitting filepath dialog on Linux.
- Fix highlighting of pre-selected serial port.
- Other minor UI fixes.
ENHANCEMENTS:
- Add facility to write data log in raw, parsed or both formats.
- Add ability to refresh list of connected serial devices at run time. An existing connection must be terminated before connecting to a different device.
- Allow datalogging from file input as well as serial port input.
INTERNAL CHANGES:
- Generic serial port dialog moved to pygpsclient package; common package removed.
FIX:
- Fix failure to update vacc and hacc in banner from NMEA PUBX00 message
ENHANCEMENTS:
- NMEA handler updated to use new pynmeagps library (>=0.1.7) rather than pynmea2. This lightweight library obviates the need to perform NMEA lat/lon and other format conversions and makes the parsed NMEA representation more consistent with UBX.
Version and status updated to v1.0.0 Production/Stable
ENHANCEMENTS:
- Timeout setting added to common Serial port control dialog.
- Serial port baudrate configuration settings range extended to 921600.
