TMM Websockets

Consuming position data from the TMM websockets.

TMM Websocket API 2025.10.x documentation

Use the TMM websocket to receive detailed position information in your application when the TMM app is controlling a Trimble GNSS receiver.

Table of Contents

Servers

localhost Server

  • URL: localhost
  • Protocol: ws

The TMM websocket is served on 127.0.0.1 or localhost on the Android or iOS device.

Operations

PUB localhost:v2SocketPort Operation

The version 2 websocket sends extended position information. This websocket is only available for registered applications.

Message PositionInfoV2Message

The positionInfo version 2 message contains extended position information.

Payload
NameTypeDescriptionValueConstraintsNotes
(root)object---additional properties are allowed
latitudenumber | nullLatitude in decimal degrees (or null if unavailable) North positive, south negative-format (double)-
longitudenumber | nullLongitude in decimal degrees (or null if unavailable) East positive, west negative-format (double)-
altitudenumber | nullAltitude in meters (or null if unavailable)-format (double)-
speednumber | nullSpeed in meters per second (or null if unavailable)-format (double)-
bearingnumber | nullBearing in decimal degrees (or null if unavailable) Measured clockwise from north for North Azimuth projections, or clockwise from south for South Azimuth projections.-format (double)-
geoidModelstring | nullGeoid model used for height calculations (or null if unavailable)---
hrmsnumber | nullHorizontal Root Mean Square in meters (or null if unavailable)-format (double)-
vrmsnumber | nullVertical Root Mean Square in meters (or null if unavailable)-format (double)-
satellitesintegerNumber of satellites observed---
totalSatInUseintegerNumber of satellites that are used for the position solution---
totalSatInViewintegerNumber of satellites in view, identical to satellites---
pdopnumber | nullPosition Dilution of Precision (or null if unavailable)-format (double)-
hdopnumber | nullHorizontal Dilution of Precision (or null if unavailable)-format (double)-
vdopnumber | nullVertical Dilution of Precision (or null if unavailable)-format (double)-
diffAgenumber | nullMessage age of any RTK message in seconds (or null if unavailable)-format (double)-
diffStatusinteger | nullPosition solution status: 1=Autonomous, 2=DGPS, 4=Fixed, 5=Float | null=unavailable---
diffIDstringID of the RTK base station -1 if unknown, otherwise 4-digit ID---
receiverModelstringReceiver model type---
mockProviderstringMock provider name “Trimble Mobile Manager”---
appVersionstringTMM build version semantic versioning Major.Minor.Patch (0.0.0)---
batteryinteger | nullBattery percentage if the receiver has an internal battery (or null if unavailable)---
mslHeightnumber | nullHeight above mean sea level in meters (or null if unavailable) Includes geoid undulation if geoid is available-format (float)-
undulationnumber | nullHeight difference between ellipsoid and geoid (or null if unavailable)-format (float)-
utcTimeStampstring | nullUTC time formatted as ISO string (or null if unavailable)---
gpsTimeStampstring | nullGPS time formatted as ISO string (or null if unavailable)---
satelliteViewarray<object> | nullList of satellites in view (or null if unavailable)---
satelliteView.IdintegerID of the satellite---
satelliteView.ElvintegerElevation angles of the satellite above the horizon in degrees.---
satelliteView.AzmintegerAzimuth angle of the satellite in degrees.---
satelliteView.SnrintegerSignal-to-noise ratio (SNR) for the satellite.---
satelliteView.UsebooleanSatellite is is use true/false---
satelliteView.TypeintegerType of GNSS system of the satellite.---
subscriptionTypeintegerThe type of the currently used subscription 0 == Catalyst Free; 1 == Catalyst 60; 2 == Catalyst 30; 3 == Catalayst 10; 4 == Catalyst 1; 5 == Catalyst On Demand; 100 == GNSS receiver---
sourceReferenceFrameNamestring | nullName of the source reference frame used for the GNSS (or null if unavailable)---
sourceReferenceFrameEpochnumber | nullEpoch of the realization of the source reference frame (or null if unavailable). It’s the date at which the coordinates of the reference frame are exactly as given.-format (double)-
targetReferenceFrameEpochnumber | nullSpecific point in time that is used as a reference for the geodetic datum (or null if unavailable).-format (double)-
targetReferenceFrameNamestring | nullName of the target reference frame used for the GNSS (or null if unavailable).---
imuAlignmentStatusintegerCurrent IMU alignment status 0: NotAvailable, IMU is not available 1: Unaligned, IMU is not aligned, start moving the receiver to align 2: Coarse, IMU is partially aligned, keep moving the receiver to complete alignment 3: Fine, IMU is fully aligned and ready for TIP measurement---
isTIPbooleanTrue if this is a Trimble TIP position---
pitchnumber | nullPitch of the receiver body in degrees (or null if unavailable)-format (double)-
rollnumber | nullRoll of the receiver body in degrees (or null if unavailable)-format (double)-
yawnumber | nullYaw of the receiver body in degrees (or null if unavailable)-format (double)-
tiltAnglenumber | nullCombined tilt angle of the pole (or null if unavailable)-format (double)-
tiltPrecisionnumber | nullPrecision of the combined tilt angle in degrees (or null if unavailable)-format (double)-
pitchPrecisionnumber | nullPrecision of the pitch in degrees (or null if unavailable)-format (double)-
rollPrecisionnumber | nullPrecision of the roll in degrees (or null if unavailable)-format (double)-
yawPrecisionnumber | nullPrecision of the yaw in degrees (or null if unavailable)-format (double)-
igsAntennastring | nullIGS antenna name (or null if unavailable)---
antennaHeightnumber | nullAntenna height in meters (or null if unavailable). Measured from the ground to the Antenna Reference Point (usually Bottom of antenna mount)-format (double)-

Examples of payload (generated)

{
"latitude": 0.1,
"longitude": 0.1,
"altitude": 0.1,
"speed": 0.1,
"bearing": 0.1,
"geoidModel": "string",
"hrms": 0.1,
"vrms": 0.1,
"satellites": 0,
"totalSatInUse": 0,
"totalSatInView": 0,
"pdop": 0.1,
"hdop": 0.1,
"vdop": 0.1,
"diffAge": 0.1,
"diffStatus": 0,
"diffID": "string",
"receiverModel": "string",
"mockProvider": "string",
"appVersion": "string",
"battery": 0,
"mslHeight": 0.1,
"undulation": 0.1,
"utcTimeStamp": "string",
"gpsTimeStamp": "string",
"satelliteView": [
{
"Id": 0,
"Elv": 0,
"Azm": 0,
"Snr": 0,
"Use": true,
"Type": 0
}
],
"subscriptionType": 0,
"sourceReferenceFrameName": "string",
"sourceReferenceFrameEpoch": 0.1,
"targetReferenceFrameEpoch": 0.1,
"targetReferenceFrameName": "string",
"imuAlignmentStatus": 0,
"isTIP": true,
"pitch": 0.1,
"roll": 0.1,
"yaw": 0.1,
"tiltAngle": 0.1,
"tiltPrecision": 0.1,
"pitchPrecision": 0.1,
"rollPrecision": 0.1,
"yawPrecision": 0.1,
"igsAntenna": "string",
"antennaHeight": 0.1
}

PUB localhost:v1SocketPort Operation

The version 1 websocket sends v1 position information. This websocket is available to any application on the device.

Message PositionInfoMessage

The positionInfo message contains v1 position information.

Payload
NameTypeDescriptionValueConstraintsNotes
(root)object---additional properties are allowed
latitudenumberLatitude in decimal degrees North positive, south negative-format (double)-
longitudenumberLongitude in decimal degrees East positive, west negative-format (double)-
altitudenumberAltitude in meters-format (double)-
speednumberSpeed in meters per second-format (float)-
bearingnumberBearing in decimal degrees Measured clockwise from north for North Azimuth projections, or clockwise from south for South Azimuth projections.-format (float)-
accuracynumberAccuracy in meters-format (float)-
verticalAccuracyMetersnumberVertical accuracy in meters-format (float)-
satellitesintegerNumber of satellites observed---
totalSatInViewintegerNumber of satellites in view, identical to satellites---
pdopnumberPosition Dilution of Precision-format (float)-
hdopnumberHorizontal Dilution of Precision-format (float)-
vdopnumberVertical Dilution of Precision-format (float)-
diffAgenumberMessage age of any RTK message in seconds-format (float)-
diffStatusintegerPosition solution status: 1=Autonomous, 2=DGPS, 4=Fixed, 5=Float---
diffIDstringID of the RTK base station -1 if unknown, otherwise 4-digit ID---
vrmsnumberVertical Root Mean Square in meters-format (float)-
hrmsnumberHorizontal Root Mean Square in meters-format (float)-
receiverModelstringReceiver model type---
mockProviderstringMock provider name “Trimble Mobile Manager”---
appVersionstringTMM build version semantic versioning Major.Minor.Patch (0.0.0)---
batteryintegerBattery percentage if the receiver has an internal battery---
geoidModelstringGeoid model used for height calculations---
mslHeightnumberHeight above mean sea level in meters Includes geoid undulation if geoid is available-format (float)-
undulationnumberHeight difference between ellipsoid and geoid-format (float)-
utcTimenumberUTC time as a float-format (float)-
gpsTimeStampstringGPS time formatted as ISO string---
utcTimeStampstringUTC time formatted as ISO string---
satelliteViewarray<object>List of satellites in view---
satelliteView.IdintegerID of the satellite---
satelliteView.ElvintegerElevation angles of the satellite above the horizon in degrees.---
satelliteView.AzmintegerAzimuth angle of the satellite in degrees.---
satelliteView.SnrintegerSignal-to-noise ratio (SNR) for the satellite.---
satelliteView.UsebooleanSatellite is is use true/false---
satelliteView.TypeintegerType of GNSS system of the satellite.---
subscriptionTypeintegerThe type of the currently used subscription 0 == Catalyst Free; 1 == Catalyst 60; 2 == Catalyst 30; 3 == Catalayst 10; 4 == Catalyst 1; 5 == Catalyst On Demand; 100 == GNSS receiver---

Examples of payload (generated)

{
"latitude": 0.1,
"longitude": 0.1,
"altitude": 0.1,
"speed": 0.1,
"bearing": 0.1,
"accuracy": 0.1,
"verticalAccuracyMeters": 0.1,
"satellites": 0,
"totalSatInView": 0,
"pdop": 0.1,
"hdop": 0.1,
"vdop": 0.1,
"diffAge": 0.1,
"diffStatus": 0,
"diffID": "string",
"vrms": 0.1,
"hrms": 0.1,
"receiverModel": "string",
"mockProvider": "string",
"appVersion": "string",
"battery": 0,
"geoidModel": "string",
"mslHeight": 0.1,
"undulation": 0.1,
"utcTime": 0.1,
"gpsTimeStamp": "string",
"utcTimeStamp": "string",
"satelliteView": [
{
"Id": 0,
"Elv": 0,
"Azm": 0,
"Snr": 0,
"Use": true,
"Type": 0
}
],
"subscriptionType": 0
}