Position Averaging for Feature Geometry
Prerequisites:
Basic knowledge of how to use the Soarvo mobile application.
Basic knowledge of how to use the Soarvo web portal.
App Version:
0.0.42+
When this feature is enabled and when the geometry of a point feature is updated to the current users position (or the current users device position is used as nodes for linear or area geometry) an average of the users position is taken over a configurable amount of time. That is then used instead of just the current users position. This feature is enabled on a per feature type basis.
To enable this functionality you should have two numerical attributes in a feature type with the name ‘_POSITION_AVERAGING_TIME_FRAME’ and ‘_POSITION_AVERAGING_MAX_ACC’. _POSITION_AVERAGING_TIME_FRAME controls how the time period that the average occurs over (in seconds). _POSITION_AVERAGING_MAX_ACC controls the minimum horizontal accuracy (in meters) that qualifies a users position to be used in the averaging calculation.
_POSITION_AVERAGING_MAX_ACC is an optional attribute, if it is not present in the feature type then the maximum accuracy for a position to be used in the average calculation is 9999m.
For example if _POSITION_AVERAGING_TIME_FRAME is set to 30 and _POSITION_AVERAGING_MAX_ACC is set to 5 then the averaging occurs over 30 seconds and will only use user positions where the accuracy is 5m or below.

Once the attributes have been added to the required feature type you will need to sync down the updated feature types on the Soarvo mobile application. You can do this either via ‘pull to refresh’ in the feature list for a given location, or via ‘pull to refresh’ in the feature type list which appears when you tap the green ‘add new feature’ floating action button. The below video shows how it functions on the Soarvo mobile application for a point feature – it also demonstrates how the position averaging only happens when the users position is used, it does not affect tapping on the map to manually change the features geometry.
Manhole + Pipe Snapping
Prerequisites:
Basic knowledge of how to use the Soarvo mobile application.
Basic knowledge of how to use the Soarvo web portal and setup feature types.
Knowledge of how to apply codes (previously called default codes in K-Capture) to attributes following the ‘App Codes for Attribute Settings Document’ below.
App Version:
0.0.98+
App Codes for Attribute Settings Document:
https://github.com/KorecGroup/soarvo-mobile-flutter-public-docs/blob/0.0.98/default-codes-doc.md
Manhole + pipe snapping refers to the functionality, previously available in K-Capture, for a linear feature (ie a pipe) to snap its start and end nodes to point features (ie manholes), and pull attribute values from the snapped point features into the linear feature for calculations – and more. When you also change the geometry or update one of the snapped point features, it should recalculate the attributes of the snapped linear feature and update its geometry to the new snapped point feature position.
The feature types for both the linear and point features requires a specific setup to activate this.
Point Feature Type Setup
If you want to activate the functionality which recalculates the snapped linear features geometry and attributes when you create / edit a given feature of this feature type then you need to add an attribute to the point feature type with a name of _recalc_snaps like in the below screenshot. You can hide this attribute from the feature type form via the attribute setting value of !MODIFIER-HIDE.

Linear Feature Type Setup
You can use the !SNAPPEDSTART(AttributeNameHere) and !SNAPPEDEND(AttributeNameHere) to pull out attribute values from the point features which are snapped to the respective start and end of the linear feature. Where ‘AttributeNameHere’ is the name of the attribute from the point feature. For example, if you wanted to pull out the value of the ‘COVER_LEV’ attribute from the manhole point features you would create attributes in the linear pipe feature type as below.


You can then calculate the difference between these values using the !CALC syntax for the attribute settings in an other attribute in the pipe feature type like below. The attribute names ‘DownstreamCoverLevel’ and ‘UpstreamCoverLevel’ are prefixed with a $ character to make them reactive, meaning whenever the ‘DownstreamCoverLevel’ or ‘UpstreamCoverLevel’ attributes are changed then this calculation is reran.

Example Video
With the feature types setup you should be able to follow the video below, in this two point features already exist with a ‘COVER_LEV’ attribute value. The video demonstrates creating a linear feature between them and then changing the position and COVER_LEV of one of the snapped point features.
Bluetooth GPS Receiver as a Position Source
Prerequisites:
Basic knowledge of how to use the Soarvo mobile application.
Read the manual of your given Bluetooth GPS receiver and see if it fits the criteria.
Basic knowledge of how to use the Soarvo web portal.
App Version:
0.0.106+
This functionality is available on ANDROID ONLY.
Soarvo Mobile allows you to connect any GPS receiver that’s supported by Android that outputs NMEA-0183 sentences. You can optionally provide RTCM corrections via NTRIP if the receiver supports it too. While we haven’t tested every receiver, below is a list of recievers we have tested that should work:
- u-blox F9 HPG 1.32
Not all receivers that output NMEA sentences will do so out of the box, you need to configure them. The device’s user manual should have instructions on how to configure it to output NMEA sentences. You will also need to consult the receivers user manual for how to pair the receiver, via Bluetooth, to the Android device.
Once the receiver is paired to the Android device you can follow along to the below video. The video also shows setting up RTCM corrections via NTRIP, this is optional – if the ‘NTRIP URL’ configuration field is empty, no RTCM corrections are used.
If you want to use RTCM corrections via NTRIP, ensure that the format of the ‘NTRIP URL’ configuration field is like ‘{PROTOCOL}://{ADDRESS}:{PORT}. For example, http://155.42.13.120:2101. If your corrections provider does not provide you with a protocol, try http.
RD8000+ Integration
Prerequisites:
Basic knowledge of how to use the Soarvo mobile application.
Basic knowledge of operating and setting up an RD8K unit.
App Version:
0.0.112+
This functionality is available on ANDROID ONLY.
Soarvo Mobile has direct integration with Radio Detection’s RD8K Bluetooth units for cable and pipe based measurements.
Pairing the RD8K Unit to a Android Device
You will need to first follow the manual for whichever RD8K unit you have for pairing to your Android device first. The video below shows how this is done for a RD8200 unit, but should be similar for RD8100 units also.
In summary, the important aspects for pairing the RD8K unit are:
- Ensure the protocol (PROT in the RD8K UI) is ASCII. Where this is done can change depending on the unit version
- If the ‘PHONE’ option is available, ensure it is set to ‘ANRD’
- Ensure the RD8K unit is paired to the android device via Bluetooth. The name of the bluetooth device is different depending on the unit and is separate from the RTK Locator built into some RD8K units. So consult the manual for your unit
Setting up Soarvo Mobile to Receive RD8K Readings
Once the RD8K is paired and setup properly – you then need to configure Soarvo Mobile to receive readings from the unit. The below video shows how you can do this via the ‘External Devices’ section in the GPS management page.
In summary, the important aspects of the above video are:
- The feature type selected in the ‘RD8K Feature Type’ configuration field is the feature type that is used to auto start a feature when you’re in the location features overview page, and are not recording a feature. If no feature type is selected, then a feature type with a name of ‘RD8K’ is attempted to be used.
- Once the RD8K connection is enabled in the app, this connection is auto attempted on each boot up of the app. So you should not have to keep re-enabling it.
Recording RD8K Data in a Feature
You can take and send a measurement from the RD8K unit by clicking the button highlighted by the green circle in the image below. The Bluetooth icon on the RD8K units display panel will begin flashing, if an error does occur this will be displayed on the bottom left of the units display panel with an error code – which can be checked against the manual.

As you can see in the video in the above section, the full data string from the RD8K unit is auto added to the ‘FullData’ attribute. This is useful to see the raw data from the unit. You can get this by adding an attribute with a default code of ‘!RD8K’ to the feature type selected in the ‘RD8K Feature Type’, like in the below screenshot.

To instead just use a single value from the RD8K measurement (such as the depth) data you will need to know its index in the data which is comma separated. Then you can setup an attribute with a default code of ‘!RD8K(n)’ where n is the position of the value within the RD8K data (which is a 1 based index). For instance, if I want to pull out the 13th value from the data then I would setup an attribute like in the below screenshot.

RD8K Positions as Line/Polygon Nodes
If you’re recording a linear or area feature and record a measurement on the RD8K unit then your current position is added as a node to the linear or area feature. If the project contains a ‘RD8KNode’ point feature type then a point feature for each node measurement is also created. You can also use !RD8K default codes within the RD8KNode feature types attributes.
RD8K Bluetooth GPS Receiver as a Position Source
Some RD8K units come with a Bluetooth GPS receiver which can receive RTK corrections. The Bluetooth GPS receiver is usually a separate Bluetooth device from the RD8K locator. You will need to pair this Bluetooth GPS receiver with your android device, the manual for your RD8K unit will contain instructions for this.
After pairing – you should be able to follow the ‘Bluetooth GPS Receiver as a Position Source’ section in this page to then use this as a position source in Soarvo Mobile and send RTK corrections to the receiver (if required).
Please ensure you only use RTCM 3.x enabled mountpoints if your RD8K unit is the RD8200SG unit and want to use RTK corrections.
for the RD8200SG unit, there will be a flashing green light on the unit when the position is of RTK float quality. This changes to a solid green when the position is of RTK fixed quality.