Wireless GNSS RTK Rover and Base Set

by nokpe in Circuits > Gadgets

180 Views, 4 Favorites, 0 Comments

Wireless GNSS RTK Rover and Base Set

title_pic.png
overal.png
block_diagram.png
GNSS RTK
  1. The accuracy of location data provided by various GNSS (also referred to as GPS) navigators can be estimated to within 2 meters under ideal conditions. This applies to devices such as mobile phones. Different methods exist to enhance accuracy. One of the most precise methods is the use of GNSS RTK base sets, which can achieve real-time accuracy at the centimeter level.


  1. There are numerous descriptions of RTK technology available online. For instance, Ardusimple offers a presentation on YouTube: What is GNSS/RTK technology and how does it work?


  1. Commercial and industrial GNSS RTK base sets typically cost several thousand dollars.


  1. This instructable offers a cost-effective, concept-proven solution. The bill of materials is approximately 600 dollars. It achieves horizontal and vertical location accuracy of up to 1 centimeter. The implementation is portable, with all communications conducted wirelessly. Refer to the block diagrams above for more details.


  1. The sets are powered by power banks, automatically boot up, and initiate wireless communication seamlessly.


  1. The core of the Rover station is the Raspberry Pi Zero 2 W. Users can develop their own applications for the setup or simply forward the location data via a Bluetooth link to a mobile phone. For instance, they can use an exceptionally powerful free app called SW Maps, which is available on both the Android and Apple app stores.


  1. In the current implementation, the Raspberry Pi automatically begins forwarding location data. The only requirement is to pair and connect the Bluetooth link on the mobile phone.

Supplies

zed-f9t.png
xbee.png
Tallysman_TW1889_ant.png
mech.png
raspberry.png

Key Off-the-Shelf Materials:

  1. 2 x ZED-F9P module | u-blox GNSS RTK module
  2. 2 x Tallysman TW1889 GNSS antenna
  3. 2 x XB8X-DMUS-001 Digi sub-Giga transmitter
  4. 2 x ANT-868-CW-HWR-SMA TE Connectivity. 868MHz whip tilt SMA male
  5. 2 x W9003M: Pulse coax cable U.FL to SMA 3"
  6. 1 x Raspberry Pi Zero2 W mini computer
  7. 2 x power banks: USB 5V, Have to support low current consumption application
  8. other components: Plenty of soldered components. Listed in the BOM_v1.txt (attached in Step 1)

Key Customized Materials:

  1. 2 x main PCB
  2. 2 x PCB Ground plane for GNSS antenna
  3. 2 x power supply cable: GHS 2pin to USB type A
  4. 2 x XBEE signal&power cable: GHS 4pin to 2.54'' pin header 4pin
  5. 1 x Raspberry signal&power cable: GHS 8pin to 1.27'' pin header 8pin
  6. 1 x u-blox debug cable: GHS 4pin to USB type A
  7. 1 x XBEE 3V3 debug cable cable: e.g. TTL-232RG-VSW3V3-WE
  8. 2 x mech 3D printed parts: mech assembly parts and screws


Software tools and Mobile App:

  1. u-center GNSS evaluation software for Windows
  2. XCTU configuration platform tool for XBEE
  3. Raspberry Pi OS Operating system for Raspberry Pi Zero2 W
  4. SW Maps mobile mapping app

Schematic

schema_v1.png

The main boards used in the Base and Rover stations are identical. The bill of materials for the board is detailed in BOM_v1.txt.

The peripheral block interfaces (5) are organized on the left side of the schematic:

  1. Power Supply Connector:
  2. Located in the top-left corner
  3. a 5V power bank is connected here using a customized USB-GHS cable
  4. Raspberry Pi Connector:
  5. The Raspberry Pi mini computer connects via its pin header to the Raspberry connector in the Rover station
  6. The Base station does not require a Raspberry Pi and is therefore left disconnected.
  7. U-blox Connector:
  8. Used for pre-configuring the GNSS module.
  9. XBEE Connector:
  10. The wireless communication link module connects to the XBEE connector
  11. By default, the transmitter model is XBEE 863 (EU), but XBEE 900 (US) is also supported without additional effort.
  12. Other types of radio modules can be used if they support AT protocol serial communication.
  13. Antenna Connector:
  14. Positioned at the bottom, this connector is for an active antenna
  15. The antenna is not restricted to the listed model; any suitable antenna can be used

The accelerometer, located on the Rover side, is used to correct inaccuracies caused by tripod tilting. However, the accelerometer feature has not yet been implemented in the software.

The GNSS receiver is powered by a rechargeable coin battery (BT1), which preserves GNSS calendar data when the system is not powered by a power bank.

U3, U4, and U5 serve as EMC protection components.

The PCB design has not been published, so you will need to create your own design to best suit your requirements.

Downloads

Raspberry Pi Zero2 W Configuration

raspi_1.png
raspi_2.png
raspi_3.jpg

Before assembling the Raspberry Pi Zero 2 W mini computer into the Rover, it must first be pre-configured.

Complete the following steps for Raspberry:

  1. Prepare Raspberry Pi OS using Raspberry Pi imager Raspberry Pi OS – Raspberry Pi
  2. Rename 'Hostname', Auto login as pi, boot 'To CLI', 'Do not wait' Network at Boot (see the pic)
  3. Enable Serial Port (see the pic)
  4. Turn On Bluetooth in Desktop
  5. Download the attached Python script and copy it to /home/pi/
  6. Open Terminal
  7. Type sudo cd .config/autostart
  8. Type sudo nano myautostart.desktop (see the pic)
  9. Add a new line Exec=python3 /home/pi/to_swmaps.py, save and close
  10. Install Python lib python3 -m pip install pybluez
  11. sudo apt-get install libbluetooth3
  12. sudo apt-get install bluez-tools
  13. sudo apt-get install python3-rpi.gpio
  14. sudo nano /root/bluetooth.cfg
  15. Add a new line * 1234 save and close
  16. sudo nano /etc/bluetooth/main.conf
  17. Remove hashtag from the line DiscoverableTimeout=0
  18. sudo nano /etc/rc.local add lines:
  19. sudo bluetoothctl <<EOF
  20. power on
  21. discoverable on
  22. pairable on
  23. agent NoInputNoOutput
  24. default-agent
  25. EOF
  26. sudo hciconfig hci0 sspmode 0
  27. sudo bt-agent -c NoInputNoOutput -p /root/bluetooth.cfg & save and close
  28. sudo nano /etc/systemd/system/dbus-org.bluez.service add lines
  29. ExecStart=/usr/lib/bluetooth/bluetoothhd -C
  30. Post=/usr/bin/sdptool add SP save, close and reboot

Downloads

GNSS RTK Module Pre-Configurations

The ZED-F9P GNSS Datasheet can be found here:: ZED-F9P-05B_Datasheet

To begin, install the GNSS Evaluation Software for Windows, u-center, on your PC.

Before the GNSS modules can be utilized, they must be pre-configured. Note that the pre-configurations for the Base and Rover GNSS modules are different. All necessary configurations have been provided in the attached files, and it is sufficient to load them directly from these files.

1) Pre-configure the GNSS module of Base station:

Power on the main board of the Base station by connecting it to a power bank. Attach the U-blox debug cable to the U-blox connector (refer to Step 5 for details about the debug cable).

Launch the u-center tool and proceed with the following steps:


The Base station transmits the following RTCM MSM4 messages to the Rover station: 1005, 1074, 1084, 1094, 1124, and 1230. If additional messages need to be sent, the XBEE settings must be adjusted to increase both data bandwidth and data rate.


2) Pre-configure the GNSS module of Rover station:

Power on the main board of the Base station by connecting it to a power bank. Attach the U-blox debug cable to the U-blox connector (refer to Step 5 for details about the debug cable).

Launch the u-center tool and proceed with the following steps:

XBEE Module Configuration

The XBee® SX 868 RF Module User Guide contains the datasheet for the XBEE transmitter. XBee® SX 868 RF Module User Guide.

To get started, install the Configuration Platform Tool, XCTU, on your PC.

Before assembling the transmitters into the sets, they must be pre-configured. The pre-configurations are the same for both the Base and Rover stations.

Take the first XBEE module and connect it to your PC using a USB-UART debug cable. Various USB-UART cables are available on the market; you may use your preferred model, but ensure that the output voltage of the cable is 3.3V. Connect the following signals to the XBEE module: GND, 3V3, RX, and TX. For more details about the USB-UART debug cable, refer to Step 5.

Launch the XCTU tool and proceed with the following steps:


Open Radio Configuration list by clicking the Radio Module.


Make the following changes and ensure to save (write) them to the Radio Module.


Now that the first Radio module has been pre-configured, repeat the same procedure for the second Radio module. Once configured, no further re-configuration of the radios will be necessary.

Mechanics

The main parts are:


1) Main board

  1. The board size 30 x 65 mm
  2. Four layers PCB stack-up
  3. All components in one side
  4. The main PCB design is not published. You have to do your own design.

2) Main power cable: GHS 2pin to USB type A

  1. Reworked from a standard USB type A cable


3) Raspberry signal & power cable: GHS 8pin to pin header 8pin


4) u-blox debug cable: GHS 4pin to USB type A


5) XBEE signal & power cable: GHS 4pin to pin header 4pin


6) XBEE 3V3 debug cable: e.g. TTL-232RG-VSW3V3-WE

7) PCB Ground plane for GNSS antennas

  1. The minimum required size of the ground plane is 70 mm in diameter.
  2. The distance between the antenna and the ground plane is 10mm.


8) Mech 3D printed parts: mech assembly parts and screws

  1. All electronic components have been assembled inside the top hat.


9) Power bank

  1. Use standard 5V power banks. Since the current consumption of the Base station is less than 50mA, choose a power bank that supports low-power consumption applications.

SW Maps Configuration

SW_Maps_1.png
SW_Maps_2.png
SW_Maps_3.png

Finally, once all the parts have been configured, assembled, and powered on, follow these steps to configure your mobile phone:

  1. Install SW Maps mobile mapping app on your mobile phone
  2. Refer to the User Manual using the provided web link
  3. Enable Bluetooth in your mobile phone's settings
  4. Pair your mobile's Bluetooth with the Rover
  5. Open SW maps app
  6. Tap the Main Drawer in the top-left corner
  7. Select External GNSS Connection and establish a Bluetooth connection to the Rover
  8. Switch to the Skyplot view
  9. Enjoy centimeter-level location accuracy!


SW Maps Licensing:

The next announcement copied from the SW Maps home page March 4th, 2025:

SW Maps is a completely FREE app, and contains no ads! You can use it for all your commercial or non-commercial applications with no restrictions.

Please refer to our Privacy Policy and Terms of Use for more details.

If you would like to develop customized applications based on SW Maps for your organization, please contact us.

Use Case

If you have ideas on where this Wireless GNSS RTK Rover and Base Set could be useful, please share them in the comments.

The attached video provides a brief demonstration to prove that the set works.

Downloads

Troubleshooting

It takes time to achieve RTK fix state.

Before the Base station is powered on, select its location carefully: clear view of the sky, minimize neighborhood interference, stable surface, high ground, avoid reflective surface.

Once the location is selected, power on the Base station and do not relocate it anymore.

When the Rover has been powered on, it takes approximately two minutes to boot up Raspberry Pi completely. After that, it is possible to pair the Rover with a mobile phone.

Monitor the Rover e.g. from SW Maps App. The states of a u-blox GPS receiver as it progresses to achieve an RTK fix typically include the following: No Fix, 2D Fix, 3D Fix (=Fix Single), DGPS, RTK Float, RTK Fix.

3D Fix or Fix single can be achieved pretty fast and without the RTCM messages from the Base station. The last three steps may takes several minutes, depending on locations and how long time ago it has been used last time.


Debugging with the U-blox Debug Cable

  1. If DGPS or higher states are not achieved, it is possible that the Rover is not receiving correction data from the Base Station.
  2. Connect the U-blox debug cable to the U-blox connector on the Rover's main board.
  3. Launch the u-center tool and establish a communication link via the appropriate COM port (COMx).
  4. Open the Messages View in u-center and navigate to the list of messages:
  5. Go to UBX → RXM (Receiver Manager) → RTCM (RTCM Input Status).
  6. Right-click the top of the RTCM line and enable Input Status Reporting.
  7. Once enabled, you will see a list of Message Types displayed on the right-hand side. Refer to the example image below.
  8. If no messages appear, it likely indicates that the radio link between the Base Station and Rover is not functioning.

The most critical message type is 1005, but additional messages (greater than 2) should also be listed.


Debugging with the XBEE debug cable

  1. Disassemble the XBEE transmitter module from the Rover and power it via the XBEE debug cable.
  2. Launch the XCTU tool and establish a communication link with the module.
  3. Navigate to the Terminal window and open the serial interface.
  4. Once connected, you should see XCTU's text console displaying messages received from the Base Station. Note that the messages are not ASCII-coded. This is acceptable, but ensure that the both Base and Rover XBEE modules are configured identically.

Debugging Base Station Communication Issues

  1. If no traffic is visible on the Rover's XBEE module, the issue is likely on the Base Station side.
  2. Verify that the XBEE module of the Base Station is connected correctly.
  3. Ensure that the Base Station GNSS receiver has been pre-configured as instructed in Step 3: Pre-configure the GNSS Module of the Base Station.