GPSBabel Changelog

What's new in GPSBabel 1.7.0

Jan 3, 2022
  • New formats:
  • Qstarz BL-1000 TODO: link
  • Removed formats:
  • Mapsource MPS
  • KuDaTa PsiTrex text

New in GPSBabel 1.6.0 (Jan 3, 2022)

  • Added read support to GeoJSON
  • Various work for WebKit and WebEngine as distros move (or not) to supported versions of Qt. Rework the way the JNI handles the callbacks between C++ and Javascript for our map.
  • A fix for Geogrid OVL file reads.
  • Numerous enhancements in the interpolation filter fixing altitudes, sub-second times, and times beyond 1970 and 2106.
  • Change the Geocaching KML writer for Google Earthto remove several dead map types (Yahoo, Terraserver, Microsoft Research, StreetView) and securely request resources from Groundspeak HQ's web servers to better play with the web version of Google Earth that can't mix and match secure elements in the same view.
  • Improve handling in NMEA file reader of short sentences, particularly of GPGSA.
  • Major work in Garmin FIT format to handle V2 of these files, improving handling of UTC offsets, handle enhanced speed and enhanced altitude records, handling a VIRB Ultra 30, and fixing other reported bugs.
  • Improve time handling for new UTC/GPS time shifts, adding a command line flag so you can now override without a rebuild.
  • Make IGC better handle damaged input
  • Fix crashes in PCX
  • , improve handling of 'T' and 'R readers', improve date and time reading, parser improvements.
  • Improvements in itrackU and TPO for rich dates and times, removed use of a fixed length buffer, improved test coverage
  • Add Unicode argument support to Windows so arguments can be correctly ingested. Improve use of strings swapping between local 8-bit and UTF-8,
  • Treat Garmin USB and serial
  • devices mostly as Latin1.
  • Correctly read diff and terr from geocaching loc filesThank you, Rick Richardson
  • Synchronized ICAO country codes with Wikipedia #fixme add Linky-links
  • Improvements in ESRI shape files, finally making this format useful without source edits.
  • Fix Google Earth KML writer
  • in realtime track mode. Also add support for Unicode in path and environment variables.
  • Improve handling of UTF-8 in pathnames, command line and internally
  • Improve Google Earth KML handling of on read
  • Improve IGC writerfor more consistent rounding
  • Improve Garmin GPI reader and writer to fix memory leaks, properly encode category , add support for reading GPI files with dual language strings, add support for Unicode page 65001 a.k.a. UTF-8., fixes to the writer to use correct length of multibyte characters,
  • Fix XXXX as position filter could corrupt data structures. Fix where we underestimated speed time when there were multiple waypoints with the same name.
  • Added support for Garmin Fit for version 2.0 developer fields in the definition messages.
  • Finally remove long-deprecated options of -N, -c, and -l
  • Allow unicsv to use all numeric grid references
  • A near rewrite of the xcsv and unicsv readers and writers is well underway. This replaces a lot of finicky C code with implicit character set declarations and length issues with familiar container-based code.
  • Enhance EXIF reader and writer to handle uncompressed thumbnails, rich time, and rational fraction types for higher fidelity
  • Added KML 2.3 track element to the Google Extension gx: version of the same to the Google Earth KML reader and writer
  • Enhance GPX to handle multiple URLs in GPX, KML, and other similar formats
  • Fix xcsv reader
  • to not ignoe LAT_DIR and LON_DIR. This caused Globalsat DG-500 grief.
  • Enhance Garmin FITreader to handle absent speed or altitude. Observed on Garmin Oregon.
  • Fix track filterto not crash if all the tracks were filtered out by the stop options. UTC time is now used in both stop and pack options. Split option now documents that quantities and units are both required.
  • Teach Garmin FIT handlerto add track segment indicators for start button press events, allowing collections to not appear a a single continuous track.
  • Add version 4 and 5 handling to Lowrance USR
  • Many issues in Ozi w.r.t. legacy sloppiness of codecs in the upstream code. Nearly a rewritten module..
  • Gui:
  • Use more native button handling when not on Windows
  • Major changes in map preview to work wiht WebEngine
  • Upgrade to Google Maps API v3
  • Internal developer notes:
  • Remove Electric Fence and DEBUG_MEM support. Valgrind rocks!
  • Remove several obsolete MSVC proj files. They can be regenerated by qmake.
  • Major improvements in consistency of #include ordering
  • Added an appveyor build for Windows and MacOS. Handles debug/opt, msvc/gcc, 32/64 and such. #fixme more words
  • Hundreds and hundreds (really!) of fixes for warnings, const-correctness, more reliance on existing standardized library and template over home-grown data structures, such as our own linked list types, use more C++14 features that help us, clang-tidy use, and other general code hygeine improvements
  • make_windows_release generalized for MinGW and MSVC
  • Lots of meticulous cleanups preferring QLatin1Strings to bare char*
  • C++14 and Qt >= 5.9 (a LTS version) are now required. We test and ship some platforms with the nextLTS release, 5.12, so that seems a reasonable window.
  • Added Dockerfiles for building
  • Rely on a newer gperf to support C++.
  • Filters are now superclasses of a filter base class. Over time, the formats will move to a similar model.
  • Our linked-list data structure, central to so many of our larger data structures with unbounded length, have all been replaced with a normal STL or Qt container. This eliminates a whole class of bugs if an item is accidentally placed on a queue twice and generally makes the code more accessible to an experienced C++ programmer.
  • Something about CLion, codacy, appveyor, travis, clang-tidy, etc.BB

New in GPSBabel 1.5.4 (Mar 29, 2019)

  • GPX writer no longer truncates at about 5MB.
  • Holux models get a fix for track splits that would result in one point at a track edge being associated with the wrong track.
  • Better handling of GPX 1.1 metadata.
  • Reduce warnings from Galaxy S5 BDGSA sentences.
  • Fixes in EXIF.
  • Compilation fixes for OpenBSD.
  • Source release tarballs now have version in the path.

New in GPSBabel 1.5.3 (Jan 4, 2016)

  • John Rasmussen adds 'prec' option to KML writer.
  • fix bug in xml_parse_time. we failed to carry any result from adding the time offset to the date.
  • Have the gpx reader forward namespace declarations for http://www.w3.org/2001/XMLSchema-instance like all other namespaces. This avoids the problem of the gpx writer potentially using the prefix when it has not been declared.
  • fix bug in gpx reader when processing unrecognized elements. Any existing prefix on attribute names was erroneously dropped.
  • Clean up some remaining traces to googlecode vs. github.
  • Improve doc for csv to point more people to unicsv.
  • Add a check in unicsv to error if both -t and -r are set or if either are used with -w, the default.
  • Add Edge 205 to Horrible Garmin Hack per Ian Dent.
  • Add fields option to unicsv reader. Doc + test.
  • Hack up GPX writer to prepare for GGZ. optionally split output in gpx writer. Keep a list of files we’ve created so that GGZ writer can turn around and read them.
  • Fix error about not ignoring checksums on NMEA GPWPL read.
  • Convert GPWPT to use new parsing scheme.
  • Improve test coverage of NMEA WPT handling.
  • typo fix in recent nmea change. Thanx, ujos!
  • Typo fix in new NMEA work. Thanx, ujos.
  • Merge branch 'master' of https://github.com/gpsbabel/gpsbabel
  • Merge remote-tracking branch 'refs/remotes/origin/master'
  • Checkpoint nmea work.
  • try -fPIC instead of -fPIE as required by gcc 5 with qt reduce relocations.
  • garmin_gpi: fix proximity alerts for large numbers of isolated waypoints Large waypoint lists are organized into blocks of at most WAYPOINTS_PER_BLOCK (128) POIs in generated GPI files for performance reasons.
  • fix error reading lowranceusr4 strings found by test-all gcc undefined behavior sanitizer.
  • minor type fix to styles doc.
  • fix bug with xcsv format and utm zone character input. enhance xcsv format reader to use unknown altitude if the an altitude input conversion has an error.
  • fix memeory leaks in mtk reader.
  • Fix decoding of mtk SID-ELE-AZI-SNR data when not all fields are present.
  • Kludge ioapi.c for Cygwin.
  • include stdio.h in gbser_win.cc
  • Clear buff in csv_writer to that successive lines modifiying buff don't pick up a stale value. From rickrich: gpsbabel -i gpx -f geocache.gpx -o tabsep -F -
  • Giovanni Zilli adds slope handling to subrip format.
  • Greg Troxel makes testo less dependent on being bash.
  • Add a (somewhat lazy) class to handle writing zip files using minizip. More underpinnings for garmin ggz support.
  • quiet debug messages in garmin_fit fix.
  • ignore array data when reading garmin fit fields.
  • Restructure gpx internals to move things from write to init to prepare for ggz.
  • fix some undefined behaviors found by -fsanitize=undefined.
  • Fix test of set_location and configure_logging in skYtraq.
  • fix character set conversion issues with tomtom reader and writer.
  • fix custom garmin icons.
  • Resist malformed Lowrance USR files.
  • Fix theoretical memory leak in tpo. Fix missing va_end in gpsserial (which matters on no modern arch) Fix actual copy/paste bug in ggv_ovl.
  • Allow any POSIX shell in testo.
  • Adapt to Edge 510's mutation of Garmin Fit to deal with sample provided by James Morris.
  • Gleb Smirinoff contributes vertical speed calculation for use with subrip. (There are probably edge cases about tracks with and without valid alt....)
  • Don't document -c and -l as they've been dead for a long time.
  • Include stdlib.h in gpslibusb.cc
  • Move xol to QXMLStreamWriter, event though I'm not at all sure anyone ever actually uses this format...
  • Document DPL900 on skytraq page.
  • Try to improve handling of 230400kbit/sec in Windows serial system.
  • Improve doc for Garmin-specific options in GPX writer.
  • Minor doc improvements on our hodgepodge of C89 and Qt. Whitespace changes, mostly trailing whitespace.
  • Move rot13() to QString.
  • Move global_opts.charset to QString. Tested: clang -fsanitize=address / testo on Mac.
  • Don't include strptime when we aren't using it.
  • Eliminate use of strptime in cst.
  • Move pdbfile to deprecated. Drop uuid.h.
  • reset LC_NUMERIC after Qt steps on it. this had resulted in unicsv output using commas as the decimal separator in some locales.
  • Don't force user to specificy -t in sbp.

New in GPSBabel 1.5.2 (Jan 5, 2015)

  • Added:
  • Add read support for Google's "gx:track" extension to KML.
  • Ralf Horstmann adds Mynav Map Manager and VDO GP7.
  • White B. Coot adds F90G support.
  • Zingo Andersonadds Energympro sport watches.
  • Support altitude in mainnav.
  • Fixes:
  • Many fixes for malformed input.
  • Improve reading KML without altitudes.
  • Improved sub-second handling in unicsv.
  • Better handling of GPX 1.1 metadata.
  • GUI allows waypoint reads for MTK logger. MTK reads no longer write a temp file in the application directory.

New in GPSBabel 1.5.1 (May 19, 2014)

  • Freshly added:
  • Add options to discard filter to discard points based on regular expressions.
  • Experimental support for for faster Garmin serial download speeds.
  • Fixes:
  • Users upgrading from an older version will no longer presented with a character set option in the GUI that doesn't work.
  • TODO: list more.
  • User visible changes:
  • 2014-05-12: Remove the -c handling from the GUI. This should help the problem that Peter Shepheard stumbled into.
  • 2014-05-11: Kolesár András adds faster Garmin serial download speed option.
  • 2014-05-11: Doc fix. CVS left the station long ago.
  • 2014-05-11: Add options to discard filter to toss points based on regular expressions from name, cmt, desc, or icon. This is something I've wanted to add for years. Kolesár András sketched in an implementation, but I went a different route.
  • 2014-05-11: Add missing doc to P.Garcia's arc filter improvements.
  • 2014-05-11: Fix garmin training center input reference file for schema violations likely caused by bugs in Fit2Tcx.
  • 2014-05-11: fix schema violations in garmin training center writer.
  • 2014-05-10: handle Speed and Watts in garmin training center reader when the TPX element declares a default namespace.
  • 2014-04-28: work around bug with gbfseek that results in premature eof indications on uncompressed input on the windows platform.
  • 2014-04-24: Improvements for DG-200 from Jean-Claude Repetto.

New in GPSBabel 1.5.0 (Apr 14, 2014)

  • Added:
  • Mapbar
  • Google Direction API
  • MTK Locus
  • Lowrance USR v4
  • GlobalSat DG-200
  • Humminbird v4
  • Fixes:
  • GUI now lists help button on main screen and options pages.
  • TODO: list more.
  • Infrastructure changes:
  • We changed the implementation language from C89 to C++03. This lets our developers use modern, object-oriented programming and modern libraries.
  • We moved to the open source Qt toolkit. We've successfully used Qt in the GUI for over five years. This lets us focus on GPSBabel itself and not implementing our own OS abstractions from scratch, robust string and time handling, and much more.
  • We replaced time from our old representation that used the number of seconds since 1/1/1970 and had a fractional seconds component bolted onto the side (that was only sometimes used) with a QDateTime which allows us to represent time within millisecond resolution from Jan 2, 4713 BCE to sometimes in the year 11 million. While that sounds crazy (it is!) This lets things like the track filter not mangle data collected by your 10Hz GPS and your placemarks can have dates that, say, buildings were built or cities were founded without worrying about Jan 1, 1970.
  • We replaced all of our XML (GPX, KML, Geo, etc) readers with Qt readers. This reduces the number of data-specific bugs you're likely to encounter. No longer will a waypoint named "]]" (it happens!) crash your data. We're much more robust when reading extended namespaces.
  • We replaced our own XML writers with Qt's XML serializers. This solves a whole class of data-specific issues with specific fields containing data like "

New in GPSBabel 1.4.4 (Sep 4, 2012)

  • Add MotoActiv format.
  • Lowrance USR v4 support.
  • Allow EXIF to represent altitude below MSL.
  • Allow reading known invalid (sigh) data in NMEA, such as that written by Canon XXX.
  • Enhance Garmin Fit support for latest firmware.
  • Skytraq fixes.
  • Added line styling to the National Geographic TPO3 reader.
  • Improved German translation.
  • OS X Mountain Lion fixes.

New in GPSBabel 1.4.3 Beta (Nov 21, 2011)

  • Fix translations for GUI on Windows. German, Italian, Hungarian, Russian, and a few others should now work. If your language is there, please contribute a translation. It's easy and doesn't require you to program.
  • A new writer for geocaches in KML (Google Earth) provide better visualizations of high-density areas.
  • Many KML improvements including validation fixes, aviations units, fixes for min/max alt.
  • Adds iblue757 GPS support.
  • Add support for Holux M-1200E GPS.
  • Add the Minihomer variant of Skytraq.
  • Add FlySight GPS support.
  • Add Garmin FIT support.
  • Add Land Air Sea format for GPS Tracking Key Pro.
  • Many Navicache improvements.
  • Fixes to track filter to not mangle tracks recorded at low speed when segement filter is applied.

New in GPSBabel 1.3.7 Beta 20091003 (Nov 27, 2009)

  • New Formats:
  • XAiOX iTrackU GPS logger and associated binary iTrackU log files.
  • SBN as used by the Locosys GT-31/BGT-31 zh[d.
  • PocketFMS breadcrumbs, PocketFMS waypoints, and PocketFMS flightplan.
  • Wintec WBT-1000 GPS support.
  • Columbus/Visiontac v900 GPS.
  • Naviguide.
  • Sony GPS-CS3KA files to NMEA reader.
  • Holux GPSport 245 (a.k.a. Holux GR-245).
  • Delorme PN-20, Delorme PN-30, Delorme PN-40.
  • Enigma.
  • Skytraq Venus GPS.
  • Ricoh 500SE camera support.
  • New Features:
  • KML writer now sets the extents of the time sliders automatically for Earth 5.0.
  • Improved handling of from Garmin extensions in GPX including ambient temperature, depth, heartrate, and cadence.
  • Reworked Garmin transparency device matching to work with more devices such as Nuvi 500 and Dakota
  • Add 'erase_only' option to dg-100.
  • GDB module now handles Garmin Basecamp files, too.
  • Try to preserve Ozi icon data in waypoints.
  • Major Fixes:
  • Fix memory corruption in gbfile when line sizes were a multiple of internal buffer sizes.
  • Globalsat: flush receive on startup to make BT-335 more reliable.
  • Add Mega event icon, Whereigo cache type to GPX and KML.
  • Tweak Earth 5's realtime KML to include end of time window.
  • Several improvements to Garmin GPI reader.
  • Read and write fix information in delgpl format.

New in GPSBabel 1.3.6 (Nov 5, 2008)

  • New Formats:
  • Add Jelbert GeoTagger format.
  • Add Skyforce support.
  • Add SBP format for LocoSys GPS.
  • Add Memory-Map Navigator Overlay support.
  • New Features:
  • The garmin format will try to detect if the device isn't really a Garmin protocol device but is instead actually a mass storage device that reads and writes GPX and will synthesize filenames on a write and use the device-specific files on read.
  • Workaround for Garmin Venture HC weirdness on Mac and Linux.
  • Several improvements to Navilink.

New in GPSBabel 1.3.6 Beta (Oct 29, 2008)

  • New Formats:
  • Support for Holux M241 GPS and files.
  • Added Iblue747.
  • Added support for Igo8.
  • Added support for VidaOne version 2.
  • Add Navigon Wpt format.
  • Add Medion GoPal.
  • Add Humminbird format.
  • Add Lowrance .usr version 3 support.
  • Add Mapasia tr7.
  • Add Google Navigator.
  • Add Navitel.
  • Add Geogrid Viewer.
  • Add iGO2008 POI support.
  • New Features:
  • Discard feature can now toss points with no or unknown fix.
  • NMEA reader now can read AMOD 3080GL waypoints.
  • Garmin Training Center now does lap splitting, can now read.
  • Added the height filter.
  • AN1->KML conversions now preserve line colors.
  • Doc improvements.
  • Route reversal can reverse tracks, too.
  • Magellan geocache files can now be read.
  • Major Fixes:
  • Entity encoding problem in Google Earth KML writer for Geocaches.
  • Fix NMEA writer bug that caused everthing to be a GISTeq file.
  • Fix writing waypoint names under 6 characters to old serial Garmins.

New in GPSBabel 1.3.5 (May 6, 2008)

  • Google Maps reader updates.
  • Don't reverse longitude and latitude in tomtom_in. (oopsy!)
  • Garmin GDB Category option now works as documented.
  • Timestamps on xcsv formats for date and time are now added together.
  • Realtime KML mode tries to suppress GPS jitter when still.
  • GPX links now handled in tracks and routes.
  • Improve support for Microsoft 2008 versions of Streets and Trips and Autoroute.
  • GlobalSat DG-100 data logger added.
  • Navilink GPS support added. These devices are sold under a variety of names including NaiGPS, BGT-11, NaviGPS-BT, Amaryllo, and GT-11.
  • MTK Data Logger format added to support units like iBlue 747, Qstarz BT-Q1000, Qstarz Q1200, iTrek Z1, Konet BGL-32.
  • Nokia Landmark Exchange (LMX) added.
  • Add Swiss Map 50 xol format.
  • NMEA handler now accepts GISTeq strain.
  • VidaOne added.
  • Preliminary upport added for adding EXIF encoded data for geotagging.
  • Destinator added.
  • Add MagicMaps ik3d.