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.
- Trimble Mobile Manager RESTful API
- Trimble Precision SDK
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 & facade
The Trimble Precision SDK™ (TPSDK) delivers comprehensive programmatic access to all receiver functions through an 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. Trimble additionally provides a facade wrapper layer that focuses on survey-centric workflows rather than instrument capabilities. The goal is to speed up integration by making use of the facade.
Options
Before deciding on an integration strategy, developers should evaluate the available integration methods:
- TMM API (with optional RESTful endpoints)
- TPSDK Facade (available for Windows, iOS and Android)
- TPSDK (direct integration on Android, iOS 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 than 1Hz | no, just 1Hz snapshot positions | yes |
| Reports undulation values | yes | yes |
| Reports tilted measurements | yes | yes |
Mock Locations
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 WebSocket-capable client, ensuring technology-agnostic integration—unlike platform-specific implementations such as Java, Objective-C, or 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.
The facade is available in platform-specific forms (for example, source-level integrations and packaged components depending on platform) and integrates into your project architecture. The recommended integration pattern is to include the facade in 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.