Release history Android - go to homepage
Release history Android logo

Release history Android

TPSDK Android release notes

Below is a list of all major TPSDK for Android. Releases come typically in pairs - for Java and Xamarin - to keep build numbers synchronized. Features are also valid for both flavors - Java and Xamarin - as they are based on the same core. So only the external interface changes between the mentioned flavors (more or less).


v2023.1.26602.35 targeting Android API 13; CatalystFacde 2.1.0.26; NDK R23

Major feature update

  • Introduction of packages for Microsoft MAUI and .NET6. For details on how to install them please check out the [related chapter](\ref Guides_NuGet). To avoid NuGet issues please add the local NuGet package sources first.
  • New receiver support
  • TGL 3.8.33; CSD 105
  • Secure NTRIP support
  • Overall stability and performance improvements

Worth knowing and breaking changes

  • With the move to TGL 3.8.X and CSD 105 the default RTX reference datum is ITRF2020 (2015); before it was based on ITRF2014 (2010). While this should not affect positions much its potentially important for application which implement geodetic datums as strings within their UI layer.

  • The new [device based licensing](\ref GuideDeviceBasedLicensing) requires an additional, application specific contract and is only available for some receivers. Please reach out to the TPSDK team for further details.



v2022.0.27.25086 targeting Android API 12; CatalystFacde 1.0.0.83; NDK R23

Maintenance release

Major feature update

  • Fixes RTX SV position issues with TDC650
  • Contains correct ABI version for the mock GNSS driver (libTrimble.Ssi.Driver.Mock.GNSS.so); previous version lacked the 32bit ABI resulting in crashes on Java on 32bit devices
  • Optimizes binary output (filesize of native so files reduced)


v2022.0.16.24707 targeting Android API 12; CatalystFacde 1.0.0.73; NDK R23

Please double check the breaking changes section due to Android 12 update.

Major feature update

  • Migration to new coordinate transformation component (called GeodeticX or CoreX and related components like TDDTransformationLibJNIDroid) which improves local displacement models. Please check the worth knowing section on details.

  • Rework/ repackaging of Facade source code; CatalystFacade is now called CatalystFacadeX due do a unification of all supported platforms. Hence

    • All *.aar files have been moved into a single SSI/libs folder and are referenced from there
    • All *.so files have been moved into a single jniLibs folder and are referenced from there
    • The Trimble.JContracts-release was removed
    • New *.aar and *.so files have been added in order to support the new time dependent datum transformation
      • JTDDTransformation-release.aar
      • libCsdManagement.so (ABI specific)
      • libGeodeticX.so (ABI specific)
      • libTDDTransformationLibJNIDroid.so (ABI specific)
      • libTDDTransformationLibCSDroid.so (ABI specific) Examples on how to use the new package stucture can be found in the corresponding guides
      • for [Visual Studio and C#](\ref GuideVisualStudioXamarin)
      • for [Android Studio and Java/ Kotlin](\ref GuideAndroidStudio)
  • Android SDK update

Facade updates and changes

  • A new/ updated time dependent datum transformer (called CoreX) is introduced to SSI and accessible via the known IDatumTransformationTimeDependent interface. This is an optional parameter within the list of SurveySettings; it can be added to StartSurvey to enable time dependent transformations. Note that the updated interface requires an additional reference to TDDTransformationDroid.dll and a set of additional native so files.

  • The facade zip/ solution is refactored to make distribution simpler. This means a certain level of file-location refactoring but should simplify updates long term.

  • New public functions to enable, disable and delete the TPSDK drivers - useful for support cases

Worth knowing and breaking changes

  • Improvements have been made to the time-dependent coordinate transformation feature, which is e.g. used to transform Trimble RTX® positions between the desired local system and the global reference frame. These improvements ensure that users obtain optimal accuracy in coordinate transformations and the best possible coordinates in the selected coordinate system.

Note: Software packages mixing positions based on the old and new implementation will see a shift in positions. Those shifts are due to improved accuracy and depend heavily on the geographical location or more precisely active tectonic zones.

  • TMM has a backwards compatibility layer which allows to use the new transformation library with an old version of the SDK. So its perfectly fine to use TMM v3.0 or higher with TPSDK 2021 or lower. But TPSDK 2021 has only a subset of the transformations as available compared to TPSDK 2022 - hence a user must select the previously selected frame.

  • Developers who implemented time-dependent coordinate transformation directly via SSI and the corresponding IDatumTransformationTimeDependent class may need some mapping from their currently used frame/ epoch to the new system. The interface of IDatumTransformationTimeDependent has slightly changed and the new library supports a different set of systems. Please refer to the [mapping section in the transformation guide](\ref Guides_GeodeticDatumSDK) for details.

  • Due to the integration of the new transformation library a handful of Android binary interface (ABI) specific files must be added in their corresponding folders. The additional files are

    • libCsdManagement.so
    • libGeodeticX.so
    • libTDDTransformationLibJNIDroid.so
    • libTDDTransformationLibCSDroid.so
  • Due to the integration of the new transformation library a new module must be added to projects

    • JTDDTransformation-release.aar
  • Enhanced TMM Status intent/ custom url schema to provide more granular details on subscriptions

  • TPSDK targets Android 12/ API 31 in version 2022.X.

  • Android 12 requires additional manifest permissions for Bluetooth resulting in the following list (note the new permissions for BLUETOOTH_CONNECT and (optional) BLUETOOTH_SCAN):

	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
	<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
	<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
	<uses-permission android:name="android.permission.BLUETOOTH" />
	<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
    <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
	<uses-permission android:name="android.permission.INTERNET" />
	<uses-permission android:name="android.permission.READ_PHONE_STATE" />
  • Minimal Android version for TPSDK is API level 23 aka Android 6.


v2021.0.115.24222 targeting Android API 11; NDK R22

This release is a small maintenance release; its focus is on adding new hardware plus internal refactoring.

Please double check the breaking changes section due to Android 12 update.

Major feature update

  • %Trimble TDC650 support
  • %Trimble R750 support
  • New authentication method for none-subscription based receivers without the need of the TID login (guest login via TMM)

Facade updates and changes

Worth knowing and breaking changes

Bug fixes

  • Fix issue with developer licenses on Xamarin - debug builds supporting unknown application IDs was broken
  • Fix issue with GLNOASS where GLONASS was reported as not supported if the receiver is a L1-only receiver.
  • Fix issue with zip output of Xamarin



v2021.0.96.22908 targeting Android API 11; NDK R22

This release adds %Trimble DA2 support and updates various internal components.

Please double check the breaking changes section due to Android 11 update.

Major feature update

  • %Trimble DA2 support, works as any Bluetooth receiver and uses RSeries driver (e.g. Trimble.Ssi.Driver.CarpoBased.Driver.RSeries.Android)

  • Internal component update(s) and code clean-up

  • Unified platform update

Facade updates and changes

  • The facade will in case of a TCH survey now also handle the case when a better correction source is available. In the past the facade handled the case when a correction signal was lost - e.g. when a VRS connection is dropped due to no internet. Now the facade will automatically move back to VRS-RTK if available (or RTX-IP depending on the subscription). To handle this the TCH survey must get restarted; this is implemented via a function call in the facade startTrimbleCorrectionHubSurvey:

    restartCorrectionHub = new Runnable() { ... }
    
  • Added power events to show how to use the ISsiPower interface

  • Switched from jCenter to mavenCentral

Worth knowing and breaking changes

  • TPSDK targets Android 11/ API 30 in version 2021.X.

  • Android 11 drops backwards comparability flags related to calling other Android packages. For that reason review the applications manifest and compare it with the samples. In case of issues you may lack the following queries:

      <queries>
      	<package android:name="com.trimble.bluebottle" />
      	<package android:name="com.trimble.trimblemobilemanager" />
      </queries>
    
  • TPSDK disables NMEA outputs during the connection process. This is default behavior. To avoid issues with other software packages this behavior has/ can be changed:

    • TMM does not disable NMEA output anymore
    • TPSDK can be configured to ignore running NMEA outputs, see the [guide on this topic](\ref Guides_NmeaOutput)

Bug fixes

  • Android Facade: fixed SBAS satellite count in facade UI (not related to the interface)
  • Android Facade: fixed casting exception in off-the-shelf licensing


v2020.3.11.21372 targeting Android API 10; NDK R21

This release focuses on R12i support including the corresponding calibrations.

Major feature update

  • %Trimble R12i support

  • Receiver calibrations via interface or [TMM intents](\ref GuideTmmIntentCalibration)

  • Internal component update

Facade updates and changes

Worth knowing and breaking changes

  • TPSDK targets Android 10 in version 2020.3. Therefore there is by default no device serial number available - which was part of the license payload in the past. To ensure best application compatibility it is recommended to

    • Use SDK 2020.0 if your application targets Android 9
    • Use SDK 2020.3 or higher if your application targets Android 10 If there is a mix of Android SDK version it his highly recommended to keep the android.permission.READ_PHONE_STATE in place. In case you use 2020.3 the READ_PHONE_STATE may be dropped.
  • Due to the Android 10 security policy TPSDK log files can’t be collected within the TMM user data folder anymore but must be stored in the application data folder. Hence the DriverManager must be made aware of this location. For support reasons its recommended that application expose this to users - via some sort of debug or support dialog. So a user or tester should be able to turn on logging to trouble shoot issues. Details can be found in the facade constructor.

    DriverManager.DriverLogFilePath = driverLogFilePath;
    
  • TMM v2.8 is build with Android 11.



v2020.3.06.16422 targeting Android API 10; NDK R21

This release focuses on Android 10 support without breaking backwards comparability.

Major feature update

  • Unified platform update

  • Off-the-shelf licensing (no TID login for raw receiver output). Note that using off-the-shelf nulls all transformation objects as we can’t connect to web services required for certain actions here.

  • Web socket support for Android

  • Guardsquare Dexguard component update allowing to use Gradle plugin 4.X.

  • Two additional mock location/ web socket outputs (subscription type and satellite type)

Facade updates and changes

  • Example on how to use off-the-shelf licensing via the ReturnCode `LoadSubscription() function. Note the missing user (userTid is null)

  • Check methods bool IsDatumTransformationSupported() and bool IsVerticalAdjustmentSupported() for off-the-shelf licensing; because there is no TID we can’t download information on those topics. Hence any sort of transformation is NOT supported in case of off-the-shelf licensing.

Worth knowing and breaking changes

  • TPSDK targets Android 10 in version 2020.2. Therefore there is by default no device serial number available - which was part of the license payload in the past. To ensure best application compatibility it is recommended to

    • Use SDK 2020.0 if your application targets Android 9
    • Use SDK 2020.2 or higher if your application targets Android 10 If there is a mix of Android SDK version it his highly recommended to keep the android.permission.READ_PHONE_STATE in place. In case you use 2020.2 the READ_PHONE_STATE may be dropped.
  • TMM v2.7 is build with Android 11. Due to this several file location changes had to be made. The following list shows both legacy and new locations of various important files:

      var android10Location = DependencyService.Get<IOsSpecific>().StorageLocation;
    
      var correctionHubLegacyLocation = global::Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + "/Trimble/CorrectionHub";
      var correctionSettingsNewLocation = Path.Combine(android10Location, "Trimble/CorrectionHub");
    
      var licenseLegacyLocation = global::Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + "/Trimble/EMS";
      var licenseNewLocation = Path.Combine(android10Location, "Trimble/EMS");
    
      var geoLegacyLocation = global::Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + "/Geodata";
      var geoNewLocation = Path.Combine(android10Location, "GeoData");
    


v2020.2.14.20939 targeting Android API 10; NDK R21

This release focuses on Android 10 support without breaking backwards comparability.

Major feature update

  • Full Android 10 comparability

  • Unified GNSS receiver support (RSeries is used for both %Trimble and Spectra receivers)

  • %Trimble R12i and full IMU support (on the SSI layer)

Facade updates and changes

  • The Facade turns IMU guided measurements off per default (CatalystFacade Portable, line 248).

      SetInertialNavigationMode(InertialNavigationMode.Off);
    

This is because a receiver drop may result in exceptions (IMU bias) not handled by the application. Therefore a developer must turn IMU guided measurements on and ideally also implement the required action items in case of [IMU bias issues](\ref Trimble.Ssi.Interfaces.Gnss.Positioning.RTKErrorStatus) (reboot, restart, IMU bias calibration etc.).

  • The facade implements new observations like ObservationType.ReferenceSource or ObservationType.GpsTime and shows how to get to UTC time

  • The facade shows how to install option codes as used in receiver subscriptions etc via InstallSubscriptions(string optionCode)

Worth knowing and breaking changes

  • TPSDK targets Android 10 in version 2020.2. Therefore there is by default no device serial number available - which was part of the license payload in the past. To ensure best application compatibility it is recommended to

    • Use SDK 2020.0 if your application targets Android 9
    • Use SDK 2020.2 if your application targets Android 10 If there is a mix of Android SDK version it his highly recommended to keep the android.permission.READ_PHONE_STATE in place. In case you use 2020.2 the READ_PHONE_STATE may be dropped.
  • TMM v2.6 is build with Android 10. Due to this several file location changes had to be made. The following list shows both legacy and new locations of various important files:

      var android10Location = DependencyService.Get<IOsSpecific>().StorageLocation;
    
      var correctionHubLegacyLocation = global::Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + "/Trimble/CorrectionHub";
      var correctionSettingsNewLocation = Path.Combine(android10Location, "Trimble/CorrectionHub");
    
      var licenseLegacyLocation = global::Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + "/Trimble/EMS";
      var licenseNewLocation = Path.Combine(android10Location, "Trimble/EMS");
    
      var geoLegacyLocation = global::Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + "/Geodata";
      var geoNewLocation = Path.Combine(android10Location, "GeoData");
    

Known issues

  • As of the date of the release the Guardsquare Dexguard component odes not support Gradle 4.x plugin in Android Studio. Therefore Gradle plugin 3.6.x must be used. The SDK itself is based on Gradle 8.7.03 as of the date of this release.

\image html DexGuardGradleVersion.png \image latex DexGuardGradleVersion.png



v2020.0.82.19504 targeting Android API 9; NDK R21

This release focuses on adding generic geoid handling plus a deeper TMM integration.

Geoids are downloaded via TMM and are based on the %Trimble Coordinate System Manager. TMM acts in this case as middle ware - so an application wanting to use geoid or msl heights should use the corresponding TMM intent (com.trimble.tmm.CORRECTIONSOURCESETTINGS) to configure all required parameters. More details can be found in the corresponding [section](\ref GuideTmmIntent).

Note that as of TMM v2.3 there is no option to side load unknown geoid files.

Major feature update

  • Generic geoid handling on all layers (TMM, Facade, SSI)

  • Improved Android Intents

Worth knowing and breaking changes

  • For applications using Android SDK 29 (Android 10) as compile SDK it is necessary to add requestLegacyExternalStorage to the application manifest of the facade if the facade is used.

      <application android:requestLegacyExternalStorage="true"> </application>
    
  • Facade shows now custom correction source intent; this intent was previously documented but not used in the facade sample.

  • Facade now handles NTRIP source table download directly; this is helpful when users have rare NTRIP caster software that behaves slightly different to most casters (like needing username/ password before returning the source table). This method is preferred compared to the handling within the IRtkSurvey interface.

  • TPSDK SSI eliminated ObservationType.HDSolutiontype mapping as it was redundant to SolutionType.HDRTK. This might got parsed in the OnNewPositioningObservations callback. The SolutionType.HDRTK still exists.

  • The position type GNSSObservationType.GroundCoordinate can be used for handling e.g. tilted measurements. This type can also be found in the facade.

      	if (obs.hasObservation(GNSSObservationType.GroundCoordinate)) 
      	{
      		h = obs.getObservation(GNSSObservationType.GroundCoordinate).getCoordinates().getHeight();  //new ground type position, contains automatic height reduction if antenna height is provided
      	}
      	else if (obs.hasObservation(GNSSObservationType.Coordinate)) 
      	{
      		h = obs.getObservation(GNSSObservationType.Coordinate).getCoordinates().getHeight();	//traditional height
      	}
    

​ Alternatively the [undulation](\ref trimble::jssi::interfaces::gnss::positioning::IGeoidUndulationObservation) can directly get parsed out (containing both the deviation and geoid model name as string):

		if (obs.hasObservation(GNSSObservationType.GeoidUndulation)) {
			double N = obs.getObservation(GNSSObservationType.GeoidUndulation).getDeviation();
			if( !Double.isNaN(height) && !Double.isNaN(N))
			{
				elevation = height + N;
			}
		}

​ In summary a GroundCoordinate contains all reductions known by the SDK. This may be just offset between APC and bottom plate or an applied tilted measurement.

  • In order to get GroundCoordinates the antenna height needs to be set before starting a survey. Therefore the antenna height has been removed from e.g. the data logging interfaces and centralized:

      	ISsiAntenna antennaInterface = Sensor.GetInterface<ISsiAntenna>();
    
      	IEnumerable<AntennaType> antennas = antennaInterface.ListSupportedAntennaTypes().ToList();
      	if (antennas.Contains(AntennaType.External))
      	{
      		IAntennaExternal antenna = (IAntennaExternal)antennaInterface.GetAntenna(AntennaType.External);
      		if (antenna != null)
      		{
      			antenna.ID = "666";
      			antenna.HeightConfiguration = new AntennaHeightConfiguration("2", MeasurementMethod.MeasurementMethod0); //Measure method 0 -> bottom plate and 2m pole
      		}
      	}
      	else
      	{
      		IAntennaInternal antenna = (IAntennaInternal)antennaInterface.GetAntenna(AntennaType.Internal);
      		if (antenna != null)
      		{
      			int antennaID = antenna.ID;
      			antenna.HeightConfiguration = antenna.HeightConfiguration = new AntennaHeightConfiguration("1.8", MeasurementMethod.AntennaPhaseCenter); //APC and 1.8m pole
    
      		}
      	}
      	antennaInterface.SetAntenna(antenna);
      	}
    
  • TMM v2.3 adds next to the geoid handling new Location Extra information to Androids Location API (mslHeight, undulation and diffID).

Known issues

  • Datum auto detection is not working for new Canadian systems as the currently available polygons are not good enough. Autodetect will provide generic Canadian datum based on NAD83-CSRS (2002).

\n


v2019.0.52.18770 targeting Android API 9; NDK 14b

This release adds R12 support and introduces also new observation types beneficial for the R12 receiver platform.
The release also addresses an issue with some phones which was introduced due to software obfuscation. In few cases it was possible that the device serial number read by TMM was not identical to the serial read via the SDK. Although both software’s use the same library there haven been obfuscation differences - which manifest themselves in different serial numbers. This issue is not deterministic but has happened. The fix is introducing a new (native) licensing component. This component requires new references inside solutions using the SDK - so please double check all native references while updating the SDK/ the facade (lib libTrimble.Licensing.CSWrapped.so needs to be added). For Java and Android Studio its sufficient to simply copy all so files into the corresponding directories (arm64-v8a, armeabi-v7a etc.), for Xamarin the so needs also to get referenced/ added in the Visual Studio Solution itself.

Major feature update

  • %Trimble R12 receiver platform support
  • Using native LSI lib libTrimble.Licensing.CSWrapped.so (breaking change; although the interfaces haven’t change new native libs must be added to the solution)
  • Antenna height handling via new GNSSObservationType.GroundCoordinate observation type
  • SBAS support (was implicitly turned on before), can now be disabled via EnableSBASTracking within the Facade
  • Cleaned up Catalyst diagnostics log

Worth knowing and breaking changes

  • Facade shows now custom correction source intent; this intent was previously documented but not used in the facade sample.

  • Facade now handles NTRIP source table download directly; this is helpful when users have rare NTRIP caster software that behaves slightly different to most casters (like needing username/ password before returning the source table)

  • TPSDK SSI elimin1ated ObservationType.HDSolutiontype mapping as it was redundant to SolutionType.HDRTK. This might got parsed in the OnNewPositioningObservations callback. The SolutionType.HDRTK still exists.

  • A new position type GNSSObservationType.GroundCoordinate is introduced to improve handling of e.g. tilted measurements. This type can also be found in the facade.

      	if (obs.hasObservation(GNSSObservationType.GroundCoordinate)) 
      	{
      		h = obs.getObservation(GNSSObservationType.GroundCoordinate).getCoordinates().getHeight();  //new ground type position, contains automatic height reduction if antenna height is provided
      	}
      	else if (obs.hasObservation(GNSSObservationType.Coordinate)) 
      	{
      		h = obs.getObservation(GNSSObservationType.Coordinate).getCoordinates().getHeight();	//traditional height
      	}
    
  • In order to get GroundCoordinates the antenna height needs to be set before starting a survey. Therefore the antenna height has been removed from e.g. the data logging interfaces and centralized:

      	ISsiAntenna antennaInterface = Sensor.GetInterface<ISsiAntenna>();
    
      	IEnumerable<AntennaType> antennas = antennaInterface.ListSupportedAntennaTypes().ToList();
      	if (antennas.Contains(AntennaType.External))
      	{
      		IAntennaExternal antenna = (IAntennaExternal)antennaInterface.GetAntenna(AntennaType.External);
      		if (antenna != null)
      		{
      			antenna.ID = "666";
      			antenna.HeightConfiguration = new AntennaHeightConfiguration("2", MeasurementMethod.MeasurementMethod0); //Measure method 0 -> bottom plate and 2m pole
      		}
      	}
      	else
      	{
      		IAntennaInternal antenna = (IAntennaInternal)antennaInterface.GetAntenna(AntennaType.Internal);
      		if (antenna != null)
      		{
      			int antennaID = antenna.ID;
      			antenna.HeightConfiguration = antenna.HeightConfiguration = new AntennaHeightConfiguration("1.8", MeasurementMethod.AntennaPhaseCenter); //APC and 1.8m pole
    
      		}
      	}
      	antennaInterface.SetAntenna(antenna);
      	}
    
  • The SBAS configuration within SSI is moved from ISsiStartRtkSurvey to ISsiSatellites. Basically SBAS is now treated as a satellite constellation like GPS or GLONASS, before it was treated as real time correction source.

      	ISsiSatellites _satellitesInterface = Sensor.GetInterface<ISsiSatellites>();
      	IEnumerable<SatelliteMaskParameterType> parameterTypes = _satellitesInterface.ListSupportedSatelliteMaskParameterTypes().ToList();
      	var list = new List<ISatelliteMaskParameter>();
    
      	if (parameterTypes.Contains(SatelliteMaskParameterType.TrackSBAS))
      	{
      		_trackSBASParameter = (ISatelliteMaskParameterTrackSBAS) _satellitesInterface.CreateSatelliteMaskParameter(SatelliteMaskParameterType.TrackSBAS);
      		_trackSBASParameter.TrackSBAS = true;
      		list.Add(_trackSBASParameter);
      	}
    
      	var mask = new SatelliteMask(list);
      	_satellitesInterface.SetSatelliteMask(mask);
    

Known issues

  • Datum auto detection is not working for new Canadian systems as the currently available polygons are not good enough. Autodetect will provide generic Canadian datum based on NAD83-CSRS (2002).

\n


v2018.0.285.18351 targeting Android API 8

This release is mainly a Facade update. There have been no changes to the SDK itself (minor internal improvements). Otherwise this release adds on-demand support to the facade.

Major feature update

  • Facade on-demand support: The facade contains now a button to launch the TMM on-demand intent page. This can be used as an example of how to integrate on-demand into an application.

Worth knowing

  • Facade shows now custom correction source intent; this intent was previously only documented but not used in the facade sample.
  • Facade now handles NTRIP source table download directly; this is helpful when users have rare NTRIP caster software that behaves slightly different to most casters (like needing username/ password before returning the source table)

Known issues

  • Datum auto detection is not working for new Canadian systems as the currently available polygons are not good enough. Autodetect will provide generic Canadian datum based on NAD83-CSRS (2002).

\n


v2018.0.269.17798

Major feature update

  • Trimble TDC150 support
  • Trimble EM100 module support
  • Android 9 build process updates

Worth knowing

  • See previous comments

Known issues

  • Datum auto detection is not working for new Canadian systems as the currently available polygons are not good enough. Autodetect will provide generic Canadian datum based on NAD83-CSRS (2002).

Breaking changes

  • SBAS setup has been moved out of the RTK interface and is now a like any other SV system (GPS, GLONASS etc)
  • Android project requires new/ additional permission (READ_PHONE_STATE) if targeting API 28 (Android 9) as the subscription needs the device serial which is now protected

\n


v2018.0.238.16603

Minor feature update

  • Improvements for high frequency data output
  • Added Canadian datums (NAD83-CSRS (1997), NAD83-CSRS (2002), NAD83-CSRS (2010)

Worth knowing

  • See previous comments

Known issues

  • Datum auto detection is not working for new Canadian systems as the currently available polygons are not good enough. Autodetect will provide generic Canadian datum based on NAD83-CSRS (2002).

Breaking changes

  • none

\n


v2018.0.233.16459

Major new features

  • Added GLONASS tracking capabilities in combination with %Trimble Catalyst Service v1.1.2069 or later
  • Added traditional receiver support (requires application subscription update - so a permanent licensed will be assigned to the product GUID as created during application registration)
    • %Trimble RSeries
    • SpectraPrecision SP Series

Worth knowing

  • This is a drop-in release - so while the interface (TPSDK to application) has not changed compared to the previous version the %Trimble Catalyst Service requires different handling due to the addition of GLONASS which gets set during service initialization. An application making use of GLONASS should migrate to the new SDK. Although the application will see GLONASS even without an update it might lead to slightly different behavior when compared to application targeting the latest SDK.
  • GLONASS support adds a small bit of additional CPU consumption (minimal hardware specs don’t change) and adds a 5-10% additional battery drain based on device type.
  • TPSDK for Catalyst targets Android 8.1 (target build version number).
  • TPSDK for Catalyst minimal Android version is 5.0 (minimal version number).
  • %Trimble Correction Hub is a survey type only valid for %Trimble Catalyst. Traditional receivers like %Trimble R2 or %SP60 do not support %Trimble Correction Hub but require either a NTRIP correction source or e.g. a valid %Trimble RTX subscription.

Known issues

  • Switching between GLONASS and RTX SV tracking requires a reconnect to the service (power cycle of the service). While the facade handles this during e.g. a RTK link down event the application must do so if the applications wants to move back from RTX SV to RTK with GLONASS. A power cycle of the service will introduce a short position outage - so there won’t be any incoming positions while switching from GLONASS to RTX or vice versa. %Trimble is working on improving this.

Breaking changes

  • none

\n


v3.0.210.15759

Major new features

  • First TPSDK for Catalyst with Facade support.
  • Catalyst soft-gnss receiver support.
  • Facade and %Trimble Correction Hub support.

Worth knowing

  • TPSDK for Catalyst targets Android 7.0 (target build version number).
  • TPSDK for Catalyst minimal Android version is 5.0 (minimal version number).

Known issues

  • none

Breaking changes

  • none

Additional information

Its worth mentioning that the version numbers have a schema change from the first release to any following release. Due to internal trunk changes a migration from version numbers like v3.X as major build number got replaced by a year indicator major number.