Options - go to homepage
Options logo

Options

TMM API and TPSDK for Android, iOS and Windows

Overview

Trimble offers partners different ways to integrate Trimble positioning technology - based on the needs of the partner.

TMM API

Trimble® Mobile Manager (TMM) provides two key integration components: a WebSocket server on localhost for streaming precise GNSS positions from connected Trimble GNSS receivers, and an optional RESTful API for TMM operations and configuration that can be performed without showing the user interface. This dual approach enables easy and quick integration into any existing application, allowing partners to fully focus on their application while leveraging TMM’s capabilities.

TPSDK

The Trimble Precision SDK (TPSDK) delivers comprehensive programmatic access to all receiver functions through a SDK integration. This approach provides granular, fine-grained control compared to TMM, enabling advanced receiver configurations and streamlined UX. While this requires additional development effort for connectivity and setup, it empowers partners with complete flexibility to implement specialized workflows and access advanced GNSS receiver capabilities.

Platforms

Both integration strategies are available for all major operating system.

While websockets are supported by all major development languages TPSDK comes with a defined set of output targets:

  • Objective-C for iOS
  • Java for Android
  • C# for Android
  • C# for Windows

While all versions share the same core functionality, platform-specific technologies result in differences in their interfaces.

For example, Bluetooth communication differs significantly between Android and iOS, requiring platform-specific adaptations.

Before starting your implementation, it’s worth considering the integration strategies provided by TMM and TPSDK. Depending on your application’s needs, a WebSocket-based approach may offer a more convenient and effective solution than direct SDK integration.


Options

Before deciding on an integration strategy, developers should evaluate the available integration methods:

  • TMM API (with optional RESTful endpoints)
  • TPSDK Facade (available for iOS and Android)
  • TPSDK (direct integration on Android and Windows)

For applications that only require basic positioning, WebSockets can be a simple and effective solution.

For greater control, consider the RESTful API or Facade layer—a wrapper around the SDK that simplifies implementation by encapsulating common use cases.

For applications needing full control or access to advanced receiver features, you can extend the Facade with additional functionality or integrate the SDK directly.

Each approach has its own advantages and trade-offs, so it’s important to choose the one that best fits your application’s requirements.


Feature Overview

A non-exhaustive comparison is provided below:

Integration TMM API TPSDK
Position access localhost ws and json API
Position meta data Check documentation Check documentation
Complexity low med-high
Access to all features no yes
Allows datum transformation configuration yes, via TMM and RESTful API yes, via the TPSDK API and/or TMM
Allows going static no, just 1Hz snapshot positions yes
Allows output rates faster then 1Hz no, just 1Hz snapshot positions yes
Reports undulation values yes yes
Reports tilted measurements yes yes

 


Mock Locations

WebSocket example

WebSocket example

Note: Mock locations are no longer recommended and have been removed from most parts of the documentation.

Many applications require precise positions but can work with the level of detail provided by Google Mock Locations (i.e., the location object).

You can enable mock locations in Trimble Mobile Manager (TMM) without any development effort—your application will behave as usual, but benefit from higher accuracy positions from Trimble GNSS receivers.

TMM also adds extra meta information to location.extras, accessible via standard Android techniques. Detailed information is available in the TMM developer documentation.

Downside:
With Android mock locations, it has become difficult to distinguish between a ‘Trimble’ position and a fused position from the Android OS. If your application does not parse location.extras, it cannot filter positions, resulting in a mix of sources. Some HTML5/JS frameworks also do not provide access to location.extras, which can further complicate position filtering.



TMM API & websocket

The WebSocket server delivers precise GNSS position data with functionality equivalent to TMM’s mock location output, including location extras, while offering the enhanced convenience of consolidating all information into a unified object structure.

WebSockets provide a powerful cross-platform solution for streaming position data that can be consumed by any HTTP client, ensuring technology-agnostic integration—unlike platform-specific implementations such as Java or Objective-C facades.

Configuration is streamlined and flexible, accessible through either the TMM user interface or, beginning with TMM v2024.X, via the RESTful API provided by TMM. Once configured, the WebSocket stream delivers position data based on the configuration.

For progressive web apps, which often encounter limitations with mock location filtering by provider, the WebSocket server represents an optimal solution—delivering a JSON-based output stream with explicitly defined data sources.



TPSDK and the Facade

Facade

The TPSDK Facade serves as an intelligent abstraction layer, wrapping core TPSDK components to streamline integration workflows. By exposing commonly used functions—such as Bluetooth connectivity management and NTRIP survey initialization—the Facade significantly reduces implementation complexity while serving as a comprehensive reference implementation of TPSDK interfaces.

Distributed as source code for Android and as a component for iOS, the Facade integrates seamlessly into your project architecture. The recommended integration pattern involves incorporating the Facade into your solution, enabling straightforward adoption of new TPSDK releases as they become available.

For specialized requirements, the Facade supports extensibility through derived classes. This architectural approach preserves the ability to incorporate Facade updates effortlessly while maintaining your custom enhancements.

 

TPSDK

TPSDK, together with its core components—the Sensor Software Interface (SSI) and the Licensing Software Interface (LSI)—establishes the architectural foundation for comprehensive SDK functionality.

The SSI delivers extensive access to advanced GNSS receiver capabilities, encompassing everything from internal UHF radio configuration to precision tilted measurements and beyond.

TPSDK employs a sophisticated component-oriented architecture built upon well-defined interfaces. Each capability is encapsulated within a dedicated interface, promoting modular design and flexible functionality composition. For instance, RTK survey initialization leverages the ISsiStartRtkSurvey interface, whose availability and properties are resolved dynamically at runtime, ensuring optimal adaptability across different receiver configurations.

For more information, refer to the TPSDK documentation.