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
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:
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.
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?
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.
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?
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.
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