Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mar-field external gps #473

Merged
merged 4 commits into from
May 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file removed src/field/external_gps/external-gps-connect.jpg
Binary file not shown.
Binary file removed src/field/external_gps/external-gps-connect.xcf
Binary file not shown.
Binary file removed src/field/external_gps/external-gps-connect2.jpg
Binary file not shown.
Binary file removed src/field/external_gps/external-gps-connect2.xcf
Binary file not shown.
Binary file modified src/field/external_gps/external-gps-ios.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/field/external_gps/external-gps-ios.xcf
Binary file not shown.
Binary file removed src/field/external_gps/external-gps-receivers.jpg
Binary file not shown.
Binary file removed src/field/external_gps/external-gps-receivers.xcf
Binary file not shown.
70 changes: 41 additions & 29 deletions src/field/external_gps/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,6 @@

[[toc]]

::: warning
Our mobile app was redesigned. We are in the process of updating this content to reflect these changes.
:::

External GPS receivers can be connected to your mobile device via Bluetooth and used in <MobileAppName /> to achieve higher [GPS accuracy](../gps_accuracy/).

There are several [extra position variables](../../layer/position_variables/) that can be useful to record when doing the survey with external GPS, such as the GPS antenna height, GPS device name as well as metrics like horizontal, vertical or position dilution of precision (HDOP, VDOP, PDOP).
Expand All @@ -19,45 +15,59 @@ Note that external GPS devices usually return orthometric heights (ellipsoid wit
- Make sure that your mobile device offers the functionality to pair with an external GPS device and that it communicates through a standard interface.

:::tip GPS and GNSS terminology
The term GPS, which stands for the Global Positioning System, is used in <MobileAppName /> and in this documentation in a broad sense as a synonym of the global navigation satellite systems (GNSS). We are aware that it is not exactly correct, but GPS is commonly used and understood in this context.
If you have a device that can receive signals from other GNSS (such as BeiDou, Galileo, GLONASS), <MobileAppName /> can use them as well.
The term GPS, which stands for the Global Positioning System, is used in the <MobileAppNameShort /> and in this documentation in a broad sense as a synonym of the global navigation satellite systems (GNSS). We are aware that it is not exactly correct, but GPS is commonly used and understood in this context.
If you have a device that can receive signals from other GNSS (such as BeiDou, Galileo, GLONASS), the <MobileAppNameShort /> can use them as well.
:::

## GPS antenna height
External GPS antenna is often used on a surveying pole. To obtain the correct ground elevation, it is necessary to subtract the height of GPS sensor above the ground from the measured elevation.
External GPS antenna is often used on a surveying pole. To obtain the correct ground elevation, it is necessary to subtract the height of the GPS sensor above the ground from the measured elevation.

The height of the GPS antenna can be set in the [**GPS settings**](../mobile-app-ui/#gps-settings) in the <MobileAppNameShort />.

The height of the GPS antenna can be set in [<MobileAppName /> Settings](../mobile-app-ui/#gps-settings). If GPS antenna height is set to a non-zero value, it is also displayed next to the GPS accuracy.
If GPS antenna height is set to a non-zero value, it is also displayed next to the GPS accuracy.

![GPS antenna height setup](../mobile-app-ui/input-gps-height.jpg "GPS antenna height setup")
![GPS antenna height setup in Mergin Maps mobile app](./mobile-app-gps-antenna-height.jpg "GPS antenna height setup in Mergin Maps mobile app")

:::tip
GPS antenna height can be recorded during the survey by using the [extra position variable](../../layer/position_variables/) `@position_gps_antenna_height` as a [default value](../../layer/settingup_forms_settings/#default-values).
:::

## External GPS on Android
In Android, there are two ways how to use an external GPS device in <MobileAppName />:
In Android, there are two ways how to use an external GPS device in the <MobileAppNameShort /> :
- directly through the app as an external receiver
- connecting GPS receiver to your mobile device using an app that will provide mock location

It is strongly recommended to use the direct connection in <MobileAppName />. It is easier, quicker, provides more data, such as HDOP and fix quality. The app will report which device is used and take care of reconnecting in case of lost connection. Using mock location should be used only when it is not possible to connect the GPS receiver directly via <MobileAppName />.
It is strongly recommended to use the direct connection in the <MobileAppNameShort /> . It is easier, quicker, provides more data, such as HDOP and fix quality. The app will report which device is used and take care of reconnecting in case of lost connection. Using mock location should be used only when it is not possible to connect the GPS receiver directly via the <MobileAppNameShort /> .

### How to connect external GPS receiver in Android via Mergin Maps mobile app (recommended)
1. Connect the GPS receiver to your mobile device via Bluetooth.
2. Open <MobileAppName /> and navigate **Select GPS receiver** in Settings:
![Select GPS receiver](./input-external-gps.jpg "Select GPS receiver")
3. Tap on **Connect new receiver** in GPS receivers panel:
![Connect new GPS receiver](./external-gps-connect.jpg "Connect new GPS receiver")
4. Choose your GPS receiver from the list of Bluetooth devices. You might be asked to pair your device during this process.
![Connect to bluetooth GPS device](./external-gps-connect2.jpg "Connect to bluetooth GPS device")
5. You can now switch between internal and external receivers:
![Available GPS receivers](./external-gps-receivers.jpg "Available GPS receivers")
1. Connect the GPS receiver to your mobile device via Bluetooth

2. Open the <MobileAppNameShort /> and navigate to **Settings**
![Navigate to settings in Mergin Maps mobile app](./mobile-app-settings.jpg "Navigate to settings in Mergin Maps mobile app")

3. Tap on the **Manage GPS receivers** option. Here, you can see the currently used receiver.

Tap on the **Connect new receiver** button.
![Select GPS receiver](./mobile-app-connect-gps-receiver.jpg "Select GPS receiver")

4. Choose your GPS receiver from the list of Bluetooth devices.

You might be asked to pair your device during this process.

![Connect to bluetooth GPS device](./mobile-app-connecting-external-gps.jpg "Connect to bluetooth GPS device")

5. The <MobileAppNameShort /> will now use the external GPS receiver to display and record your position.

In **GPS info**, you will see additional data as reported by the external GPS.

![GPS info from external GPS in Mergin Maps mobile app](./mobile-app-external-gps-info.jpg "GPS info from external GPS in Mergin Maps mobile app")

### How to connect external GPS receiver in Android via mock location
:::warning
Mock location should be only used if you are unable to connect the external GPS directly in <MobileAppName />.
Mock location should be only used if you are unable to connect the external GPS directly in the <MobileAppNameShort /> .
:::

External GPS can be connected and configured in Android to provide mock location using GPS apps (e.g. [Bluetooth GPS](https://play.google.com/store/apps/details?id=de.pilablu.gpsconnector) or apps from specific GPS manufacturers) as a source of GPS signal. <MobileAppName /> and other apps in your device will get the GPS position from the external GPS.
External GPS can be connected and configured in Android to provide mock location using GPS apps (e.g. [Bluetooth GPS](https://play.google.com/store/apps/details?id=de.pilablu.gpsconnector) or apps from specific GPS manufacturers) as a source of GPS signal. the <MobileAppNameShort /> and other apps in your device will get the GPS position from the external GPS.

:::tip
GPS manufacturer's apps often provide a setup for a NTRIP client, through which you are able to receive GPS corrections and achieve centimetre level accuracy.
Expand All @@ -69,20 +79,22 @@ To enable **Allow mock locations** in Android:
- On older Android versions, the developer settings can be made visible under the **Android Settings** > **Applications** > **Development**.
- Once you have the developers option enabled, go to **System** > **Advanced** > **Developer options** > **Select mock location app** and select your GPS app.

The mock location will be used by <MobileAppName /> automatically as if received from the internal receiver.
The mock location will be used by the <MobileAppNameShort /> automatically as if received from the internal receiver.

## External GPS on iOS

Direct connection via <MobileAppName /> is not possible on iOS devices. External GPS can be connected to your iOS device via Bluetooth. Depending on the GPS manufacturer, there may be a custom app, which then provides position to your iOS device. <MobileAppName /> sees this as an internal GPS receiver automatically, without additional configuration.
Direct connection via the <MobileAppNameShort /> is not possible on iOS devices.

External GPS can be connected to your iOS device via Bluetooth. Depending on the GPS manufacturer, there may be a custom app, which then provides position to your iOS device. The <MobileAppNameShort /> sees this as an internal GPS receiver automatically, without additional configuration.

![iOS GPS receiver](./external-gps-ios.jpg "iOS GPS receiver")

## External GPS troubleshooting
If you encounter issues with external GPS in <MobileAppName />, make sure that:
If you encounter issues with external GPS in the <MobileAppNameShort /> , make sure that:
- your Bluetooth is turned on
- GPS is paired with your mobile device
- your GPS receiver is turned on, has battery and is sending data in NMEA format, which is readable by <MobileAppName />
- remove the device in <MobileAppName />, and add it again from <MobileAppName />
- your GPS receiver is turned on, has battery and is sending data in NMEA format, which is readable by the <MobileAppNameShort />
- remove the device in the <MobileAppNameShort />, and add it again from the <MobileAppNameShort />

## List of known supported GPS devices
External GPS functionality depends on the manufacturer and on the specific model of your GPS device. These devices are currently known to work well:
Expand Down Expand Up @@ -120,10 +132,10 @@ External GPS functionality depends on the manufacturer and on the specific model
- <a name="link-2">2</a>: **Emlid Reach RX**, **Emlid Reach RS+**, **Emlid Reach RS2/RS2+**, **Emlid Reach RS3** - directly via Bluetooth connection, has an internal NTRIP client to receive corrections. Possible to set a mock location and connect the receiver via Bluetooth using [GPS Connector](https://play.google.com/store/apps/details?id=de.pilablu.gpsconnector) or WiFi using [Lebefure NTRIP Client](https://play.google.com/store/apps/details?id=com.lefebure.ntripclient). Android only.
- <a name="link-3">3</a>: **Geode GNS3** - through *Geode Connect* app on [Android](https://play.google.com/store/apps/details?id=com.juniper.geode2a&hl=en_NZ&gl=US) or [iOS](https://apps.apple.com/us/app/geode-connect/id1446098695), which also acts as an NTRIP client and sends corrections to the device.
- <a name="link-4">4</a>: **Leica FLX100**, **Leica FLX100 plus**, **Leica Zeno GG04plus** - through *Leica Zeno Connect* app on [Android](https://play.google.com/store/apps/details?id=com.leica.zenoconnect&hl=en&gl=US) which also acts as a NTRIP client and sends the corrections to the device. The app will set a mock location in Android. It is also possible to connect directly via Bluetooth (even multiple phones can be connected at once), but if no phone has Zeno app running, there will be no corrections available.
<a name="link-**">**</a> *Leica Zeno Connect* is also available on [iOS](https://apps.apple.com/us/app/zeno-connect/id1310344749). It is known to support **Leica FLX100 plus** and **Leica Zeno GG04plus**. However, on iOS, the vertical accuracy information is not transferred to <MobileAppName /> through *Leica Zeno Connect*. <MobileAppName /> will not display the correct value of the vertical accuracy.
<a name="link-**">**</a> *Leica Zeno Connect* is also available on [iOS](https://apps.apple.com/us/app/zeno-connect/id1310344749). It is known to support **Leica FLX100 plus** and **Leica Zeno GG04plus**. However, on iOS, the vertical accuracy information is not transferred to <MobileAppName /> through *Leica Zeno Connect*. The <MobileAppNameShort /> will not display the correct value of the vertical accuracy.
- <a name="link-5">5</a>: **Trimble R1**, **Trimble R2**, **Trimble Catalyst** - through [*Trimble Mobile Manager* app](https://play.google.com/store/apps/details?id=com.trimble.trimblemobilemanager) which also acts as a NTRIP client and sends the corrections to the device. The app will set a mock location in Android.
- <a name="link-6">6</a>: **<NoSpellcheck id="proNIVO" /> <NoSpellcheck id="PNR21" />** - through *<NoSpellcheck id="Attenberger" /> Connector* app on [Android](https://play.google.com/store/apps/details?id=eu.apglos.attenbergerapp1&hl=en&gl=US).
- <a name="link-7">7</a>: **<NoSpellcheck id="SingularXYZ" /> <NoSpellcheck id="P1" />** - the device uses a SIM Card that can be configured for NTRIP. It can be connected to <MobileAppName /> via Bluetooth (without using a mock location).
- <a name="link-7">7</a>: **<NoSpellcheck id="SingularXYZ" /> <NoSpellcheck id="P1" />** - the device uses a SIM Card that can be configured for NTRIP. It can be connected to the <MobileAppNameShort /> via Bluetooth (without using a mock location).
- <a name="link-8">8</a>: **Geomax Zenith06, Zenith60** through *Geomax X-PAD* app on Android, using a GNSS Mock licence from Geomax and the *Mock GNSS* option in the app.

**Did you use a GPS that is not in this list?** <GitHubRepo id="MerginMaps/docs/issues/124" desc="Share your experiences with us!" />
Binary file removed src/field/external_gps/input-external-gps.jpg
Binary file not shown.
Binary file removed src/field/external_gps/input-external-gps.xcf
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file not shown.
Binary file added src/field/external_gps/mobile-app-settings.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/field/external_gps/mobile-app-settings.xcf
Binary file not shown.
Binary file removed src/field/mobile-app-ui/input-external-gps.jpg
Binary file not shown.
Binary file removed src/field/mobile-app-ui/input-external-gps.xcf
Binary file not shown.
Binary file removed src/field/mobile-app-ui/input-gps-height.jpg
Binary file not shown.
Binary file removed src/field/mobile-app-ui/input-gps-height.xcf
Binary file not shown.
Loading