RTK Surveyor: no output on Bluetooth serial or data UART

I recently purchased a RTK Surveyor (base model with no display). While first testing the device, I was unable to see any GPS output (NMEA or otherwise) on the data UART or on the Bluetooth serial device. I am only able to connect to the device over USB on the CONFIG ESP32 port and over WiFi.

I have tried Bluetooth serial from my Android phone with a Bluetooth Serial Terminal, where I could pair my phone to the device, but the serial connection is immediately terminated.

I have tried Bluetooth from a Windows PC, where I could pair to the device and I see 2 COM ports, but neither of them output any data.

I have tried connecting the data UART to a telemetry radio, but do not see any output. Using the USB connection to the RTK Surveyor, I changed the data UART baud rate to 57600, which is expected from the Sik telemetry radio. I have also used a scope to probe all of the data UART pins, and found the lines to be either idle high (I’m assuming TX) or what appears to be floating (I’m assuming RX).

While connected to the device over USB serial, when not in the configuration menu I see periodic (~1Hz) status messages similar to this:

Rover Accuracy (m): 1.6410
Batt (99%): Voltage: 4.18V Charging: 2.29%/hr Green
Rover Accuracy (m): 1.4624
Rover Accuracy (m): 1.4672
Batt (99%): Voltage: 4.18V Discharging: -2.08%/hr Green

In the system menu, I also see

Menu: System
GNSS: Online - ZED-F9P firmware: HPG 1.13
SIV: 24, HPA (m): 1.493, Lat: 47.########, Lon: -122.########, Altitude (m): ###.#

The location is correct, so I know the GPS is working.

In the GNSS messages section, the following NMEA messages are enabled (the defaults):

Menu: Message NMEA
1) Message UBX_NMEA_DTM: 0
2) Message UBX_NMEA_GBS: 0
3) Message UBX_NMEA_GGA: 1
4) Message UBX_NMEA_GLL: 0
5) Message UBX_NMEA_GNS: 0
6) Message UBX_NMEA_GRS: 0
7) Message UBX_NMEA_GSA: 1
8) Message UBX_NMEA_GST: 1
9) Message UBX_NMEA_GSV: 4
10) Message UBX_NMEA_RMC: 1
11) Message UBX_NMEA_VLW: 0
12) Message UBX_NMEA_VTG: 0
13) Message UBX_NMEA_ZDA: 0
x) Exit

For completeness, here’s the baud rate config:

Menu: Ports
1) Set serial baud rate for Radio Port: 57600 bps
2) Set serial baud rate for Data Port: 57600 bps

Using the USB connection, I was able to upgrade the firmware to v3.0, but the above behavior still holds true. I also tried v2.6, but went back to v3.0.

SparkFun RTK Surveyor v3.0-Jan 19 2023

I am at a loss for how I can get any data from the communication ports on this device. What am I doing wrong?

If you’re following this hookup guide and not getting the desired result, I think it must be checked by Sparkfun team:

https://learn.sparkfun.com/tutorials/sp … d-features

I can see that there is a lipo battery inside the device. Please check if it is being fully charged.

Have a look at this post: viewtopic.php?f=116&t=58087&hilit=surve … ch#p235100

The Surveyor has three switches inside that can be knocked out of place in interesting situations.

You can still get NMEA data over the u-blox USB connection but you would need to enabled USB output. This is usually the default state, so I’m surprised you’re not seeing NMEA. Do you have the driver installed: https://learn.sparkfun.com/tutorials/ge … ll-drivers

I can see that there is a lipo battery inside the device. Please check if it is being fully charged.

Yes, the USB console messages indicate that the battery is being charged. Additionally, when I received the device the battery was flat and would not power on without being plugged in, but after having it plugged in to USB for a while it will power on without external power.

The Surveyor has two switches inside that can be knocked out of place in interesting situations.

I played around with various settings of the switches to no effect. Under no conditions am I able to establish a serial connection to Bluetooth serial from Android (the Bluetooth device will bind, but my serial terminal app immediately closes with “Connection failed: read failed, socket might closed or timeout, read ret: -1”) or from Windows (Putty will connect to either of the two COM ports, but there’s no data).

I have also used a scope to probe all of the data UART pins, and found the lines to be either idle high (I’m assuming TX) or what appears to be floating (I’m assuming RX).

Upon further inspection (after zooming way out on the scope), the line which I thought was floating is actually pulsing high for 100ms at a frequency of 1Hz. This is unlike any serial protocol that I’m familiar with. It’s as if this is tied to the PPS line. Is this normal?

You can still get NMEA data over the u-blox USB connection

I haven’t gone down this route yet, but I’m familiar with connecting u-blox u-center with my other GPS-RTK2 device. I was hoping to use the RTK Surveyor as a portable base station using a telemetry radio, so I’m mostly focused on trying to get the ESP32’s UARTs working.

I played around with various settings of the switches to no effect.

To be very clear, you are checking the internal switches, yes? We are not talking about the large external rocker switches.

“Connection failed: read failed, socket might closed or timeout, read ret: -1”)

This is very odd. I recommend doing a factory reset (https://docs.sparkfun.com/SparkFun_RTK_ … tory-reset) to be sure. Do you have BT set to SPP (default) or BLE?

I have also used a scope to probe all of the data UART pins, and found the lines to be either idle high (I’m assuming TX) or what appears to be floating (I’m assuming RX). Upon further inspection (after zooming way out on the scope), the line which I thought was floating is actually pulsing high for 100ms at a frequency of 1Hz. This is unlike any serial protocol that I’m familiar with. It’s as if this is tied to the PPS line. Is this normal?

That sounds very much like the PPS signal.

Did you inspect the switch on the back side of the PCB?

To be very clear, you are checking the internal switches, yes? We are not talking about the large external rocker switches.

Yes, the internal switches. Each time I flipped one of the switches, I powered off the device, flipped the switch, then powered on the device.

I recommend doing a factory reset

Done - no change. I think I had done this yesterday before my first post, but forgot to mention it.

Do you have BT set to SPP (default) or BLE?

Default - standard BT, not BLE.

That sounds very much like the PPS signal.

I poked at this a bit more… It doesn’t just sound like the PPS signal - it is the PPS signal. A multimeter confirms there is electrical continuity between the TX1 line of the data UART (the EXTERNAL_SERIAL1_TXO net) and the PPS resistor (the ZED_PPS_STAT net going into R11 on the [schematic).

Unless I’m missing something major from the schematic, it appears as if I have a defective unit.](https://cdn.sparkfun.com/assets/learn_tutorials/1/4/6/3/SparkFun_GPS_RTK_Surveyor-v13.pdf)

Aha! I spoke too soon. I had overlooked your note about the switch on the back side of the PCB, and that was set to connect PPS/RST to the TX/RX lines of the data port. After flipping that switch I am now getting the expected output on the data port!

However, I’m still unable to establish a serial connection over Bluetooth. I’ll keep poking around…

And now Bluetooth serial is working from both Windows and Android. Everything is now working as I expect.

I’m honestly not sure what was wrong… This may have just been a misunderstanding of the internal switches, and knowing to look for that internal switch on the back of the PCB. I don’t see any mention of that switch on the hookup guide https://learn.sparkfun.com/tutorials/sp … d-features

Anyways, thanks for the help!

Glad to hear you got it working! And sorry for the hassle! The switches are being phased out as they pose more of a problem than a feature. If you do a lot of field work, feel free to add a piece of tape or other to make sure they don’t move unexpectedly.