QField needs you! NTRIP support incoming and in need of testing

Greetings community,

The next version of QField will feature in-app NTRIP support, one of the most requested functionality we have on our to-do list :partying_face:

We’d like for the community to give development builds a try with as many RTK devices as possible, and as many NTRIP providers as possible.

If you are a community member that can help out on that front, please go install development APKs here (QField NTRIP implementation by nirvn · Pull Request #7435 · opengisch/QField · GitHub), do some testing, and report successes and failures in this thread. The more details on the GNSS device and NTRIP provider, the better.

This is one of those “ask not what QField can do for you – ask what you can do for QField” moment :wink: thanks in advance for the help.

Looking good and working well here. I’ll test more when I am further from home

Mobile device is Fairphone 6 running e/OS

GNSS – ArduSimple simpleRTK2Blite, ublox F9P

NTRIP – rtk2go.com corrections from my own base station

@fruit-github , fantastic, thanks for the feedback!

WOW!
We will give it a try! Thanks a million!

Hi, really really nice to hear, that QField now has an build in NTRIP-client.
I tested the prerelease 4.0.2 of QField for QGIS - Unstable from the Google Playstore.
I could connect to my Ardusimple simpleRTK2B (via BLE) and use RTK correction data from the Luxemburgish stream.spslux.lu service without any issues!
So it works fine on Android and I hope that this feature will be also part of the next release for iOS, since this was the main problem in the past, since QField could only be connected trough TCP/UDP until now.
Great work.

@geom , yes, I can confirm BLE will make its way into iOS with QField 4.2.0. Getting Bluetooth connectivity on iOS was pretty much the principal motivation for BLE :slight_smile:

Hi everyone,

I’m trying to connect an Emlid Reach RX2 to QField 4.2 on iPadOS using the new **Bluetooth BT + BLE (NMEA)**connection option.

The RX2 appears to expose two Bluetooth entries on iOS:

  1. One entry with the iOS info icon. I renamed this one to “Antenna”. This seems to be the antenna/configuration connection used by Emlid Flow.

  2. A second entry without the iOS info icon. I renamed this one to “Stream”. This entry only appears after connecting to the RX2 with Emlid Flow first. This also seems to be required for iOS/Core Location to receive the accurate RX2 position.

QField does list the renamed “Stream” device, so it looks like QField can see the correct Bluetooth entry. However, when I try to connect to it, QField fails with:

Positioning device error: BluetoothLowEnergyReceiver: required Target service not found on device

What I observed:

  • If I use the iOS internal location provider in QField, I only get the accurate position when the RX2 “Stream” Bluetooth entry is connected in iOS.

  • However, QField still reports around 5 m accuracy when using the internal/iOS location provider, even though Emlid Flow reports RTK FIX.

  • Because of that, I cannot reliably use QField’s “enforce accuracy” feature.

  • When trying to connect directly via Bluetooth BT + BLE (NMEA), QField sees “Stream” but fails with the error above.

  • The RX2 seems to use a special iOS Bluetooth/MFi/External Accessory stream for NMEA, not necessarily a BLE GATT NMEA service.

My question is:

Does QField 4.2 on iOS support only BLE GNSS receivers exposing a specific BLE NMEA service, or should it also work with Emlid Reach RX/RX2 devices using the iOS Bluetooth/MFi NMEA stream?

If the Emlid RX2 is currently not supported directly, is there anything I can test or provide to help debug this?

Thanks a lot!

We got to test the NTRIP client with the Happy Mini Q and it works great!

That said, getting the most out of it still requires the companion app. Things like pole height for IMU need custom commands sent to the antenna, and I totally get why that’s not something QField would want to bake in, since those commands would differ per manufacturer.

Using QField’s built-in NTRIP client with the external app just for config doesn’t work either, since there’s only one Bluetooth channel to go around.

So my proposal would be a plugin mechanism for sending custom commands to the connected antenna and reading responses. That would allow for antenna-specific companion plugins and make the whole workflow a lot smoother, eliminating the need to leave QField for antenna setup and would even allow things like a battery status indicator right in the QField UI.

Anyone who got Emlid Reach RX2 to work now with QField? (iOS/iPhone 17 Pro)

Hi everyone,

I’m testing the new Bluetooth BLE + NTRIP support on iOS with an ArduSimple RTK Smart Antenna.

I noticed something I can’t quite explain and was wondering if anyone has seen the same behaviour.

My setup is:

  • iPhone (iOS)
  • Latest QField
  • ArduSimple RTK Smart Antenna (Bluetooth BLE)
  • Built-in NTRIP client in QField

When I connect the receiver in QField, I get a valid GNSS position and the NTRIP connection appears to be working, but the receiver never reaches RTK Fixed.

However, if I then open SW Maps and connect to the same receiver, it switches to RTK Fixed within a few seconds. As soon as that happens, QField also immediately reports RTK Fixed.

I’ve repeated this several times with exactly the same result.

Has anyone seen something similar with iOS? Is there perhaps a setting I’m overlooking, or any logging I could enable to help troubleshoot this?

Thanks!

I’m getting the same thing on an RS2+ - has anyone figured this out?

Hey,

I have the same setup, Ardusimple smart rtk antenna and iOS. I seem to be having the same issues, not being able to keep rtk fix? However if I run on android, all is well.

Corrections coming from my own base, only 500m away.

Hello,

I have the same problem here on Android.
Last Qfield version, Smart Antenna from Ardusimple, Android up-to-date.
Qfield report a fixed RTK solution when the RTK corrections are sent to the antenna with radio or Ntrip with SW maps.
QField can get the sourcetable (so no error of URL at least). I manage the Ntripcaster myself : BKG Ntripcaster and the error reported in the log is :
" Kicking unknown 181 [ip.xx.xx.xx] [No NTRIP client], connected for 2 seconds, user xxx, path /XXX

Using ArduSimple RTK and a free EUREF correction service:

with SWMaps app, it works fine.

with QField, when I activate NTRIP nothing happens. It does not connect.

Caster: euref-ip.net

Port: 2101

@QuickPanda89 , thanks, I’ll give this NTRIP caster a try.

@QuickPanda89 , thanks for sharing this specific caster. That server was sensitive to the way the NTRIP client header details are ordered. This PR fixes the connection for me: Fix NTRIP client compatibility with casters sensitive to request header ordering by nirvn · Pull Request #7997 · opengisch/QField · GitHub

Could you try the APK in there and report back? Thanks.

Yes, now it connects fine. Thank you.