Developer Guide for mobile APP Connecting and Configuring RTK Facet via Bluetooth

Hi everyone,

I’m currently building a mobile app to connect with the RTK Facet and configure it via Bluetooth, similar to how SW Maps interacts with it.

I have a few questions:

  1. Is there a developer guide or any resources for connecting to the RTK Facet over Bluetooth?

  2. From my understanding, SW Maps can configure NTRIP over Bluetooth. Can other settings also be configured this way?

  3. If full configuration access via Bluetooth is possible, does it require firmware changes to expose and manage all the settings separately?

  4. Is React Native being used in SW Maps? That is why it works flawlessly on both Android and iOS devices.

Any guidance, documentation links, or examples would be greatly appreciated.

Thanks!

Are you sure it’s not just interacting with the ZED-F9P? In which case perhaps the u-blox Interface Manual will suffice. Perhaps use a terminal and observe/interact, and look at the Facet firmware to see what it’s doing or if merely forward content back-n-forth to the ZED UART.

For NTRIP the phone just has push out RTCM3 packets, It might take NMEA GLL or GGA to advise NTRIP Server of location, and alive.

Perhaps you could also tap the UART and observed indirectly what SW Maps is doing. Too better understand what is involved.

Hi @JIGOD ,

Sorry, there is no developer guide for the RTK Firmware.

The RTK Firmware uses Bluetooth to:

  • Send NMEA from the GNSS to the phone App
  • Receive RTCM from the phone App and push it to the GNSS

It’s not possible to configure RTK Firmware via Bluetooth. You would need to enhance the firmware to make that possible.

You would need to ask the SW Maps developers if they use React Native.

Best wishes,
Paul

SW Maps does not “interact” with the F9P or the Facet, in a “2-way” sense (more details below). SW Maps mainly ingests NMEA sentences that the F9P/Facet produces.

However, SW Maps does have a built-in NTRIP Client as you mentioned, but that NTRIP Client can’t change any settings on the Facet. It simply listens for a GGA Sentence (required every 30 seconds or less) to send to the NTRIP Caster (Base Station). Then any RTCM messages from the selected mountpoint are pushed back to the Facet from the internet/Caster via the Client. The F9P ingests the RTCM for RTK positioning. Neither end can make any changes to itself based on the other end, as SW Maps isn’t hardware specific.

Your proposed Mobile App could make some changes to the Facet’s configuration:

  1. One way is to apply changes to the “Settings” txt file saved on the Facet and cleanly reboot.
  2. Another way would be to reproduce the available changes that you can manually perform in the Facet’s FW with a Serial over Bluetooth connection (likely the best method). Your Mobile app would create the connection and make the changes just like a Human would with a terminal. Note: there are a few settings that are not available in this scenario.
  3. Or as @clive1 mentions, you can send specific commands to the F9P, after the Facet has finished loading it’s saved settings. I’m not sure if you will experience any conflicts with the Facet’s FW.

There might be other methods in addition to these 3 :wink:

Hi @JIGOD ,

Sorry. I should clarify:

As @rftop points out, you can access the firmware menus over Bluetooth. Your App would need to send the “+++” escape sequence to open the menu. Once you exit Echo mode, the firmware will start sending NMEA again.

But, I think what you’re asking is whether there is a dedicated command interface to change the firmware settings? This is something we’ve added in the newer RTK Everywhere Firmware, but it is not present in RTK Firmware.

I hope this helps,
Paul

1 Like

hi @PaulZC ,
I am not asking for any commands.
I’m simply asking that in SW maps, when connecting to a Sparkfun RTK via Bluetooth, there is an option to select the model ‘Sparkfun RTK’, but it appears to work the same as any device type selected during connection.
So I’d like to know if there is any communication between SW maps and RTK facet that displays real-time data from Facet into SW Maps to collect points, and what information is specifically communicated to NTRIP profile settings via SW maps over Bluetooth. Is there specialized communication? What I do to implement SW map-like functions in my app.
As previously stated, i understood that there is no specific command to display device status such as battery percentage or change any Ublox Gnss settings.

Hi @JIGOD ,

I am sorry. I don’t fully understand your question.

The Facet sends NMEA data to SW Maps over Bluetooth. SW Maps parses that data, extracts latitudes and longitude, and uses that to display the Facet’s position. It extracts other data to display the “Satellites In View / Satellites in Solution”, horizontal and vertical position accuracy etc..

“it appears to work the same as any device type selected during connection”. Yes. That is mostly true. But, on Android, SW Maps can communicate with the Septentrio mosaic-X5 GNSS directly via USB (OTG). It can send commands to enable NMEA messages on the X5 USB virtual COM ports. (By default, the two virtual COM ports are silent.) But, for Facet, there is no such specialized communication. No commands are sent.

SW Maps can be configured by the user to connect to an NTRIP Caster. It receives RTCM data from the Caster and sends it to the Facet over Bluetooth. The ESP32 processor pushes the RTCM to the GNSS to allow it to achieve RTK Fixed solutions. But again there is no specialized communication. Only the transfer of RTCM data. To the best of my knowledge, the NTRIP profile settings are not transferred between the Facet and SW Maps.

I hope this answers your question,
Paul

1 Like

Thank you @PaulZC for answering my question clearly and providing a supportive response. It clarifies most of my doubts.