Simple Portable RTK Base Station

A Simple DIY Portable RTK Base Station

I have been learning about RTK GPS and recently wrote a page for the wiki on how to setup and use a Fixed Baseline RTK reference base station to
send RTCM corrections to a vehicle’s GPS (see: RTK GPS Correction (Fixed Baseline) — Plane documentation). But exposing my laptop to Austin’s 100F temperatures (since the RTK GPS is attached to the PC to send Base corrections thru Mission Planner to the vehicle via telemetry) did not seem a good setup, especially since I usually do not use a PC for GCS anyway, but rather rely on OpenTX and/or QGC on my phone.

So I wanted a small, self contained RTK base station. This is the result:

It sends the RTK corrections via Sik radio link directly the to vehicle’s RTK GPS, rather than thru Mission Planner and is very portable. With one exception, it allows one to setup an RTK Fixed Baseline station and have it update the vehicle’s GPS with RTCM corrections without having to use a PC running Mission Planner at the field.

The exception is that, without modification, the portable base cannot “survey” itself in at a new location automatically, which is required for it to send valid RTCM corrections to the Rover or Vehicle. So, if the base station location changes, you must attach it to a PC and use the Ublox U-Center application to have the survey-in process restarted. Its still an improvement by not having to have the PC out in the sun adjacent to the base RTK GPS unit. However, if one removes the backup batteries on the base unit GPS such that it “cold” starts every power up, the Base GPS can start a new survey-in automatically. I am also exploring the possible use of the F9P GPS module’s RESET_N to get the same cold start effect, which would allow and GPS OEM to cheaply add the ability to build a unit that works with warm/hot starts as is now the case, but also allow forcing a “cold” start if desired, as in this application. Will update as this gets tested.

System Configuration

(the system below uses the QioTek F9P GPS/Compass modules)


if you are not familiar with UBLOX U-Center app, watch some tutorials on the web. U-Center has many views and features, but for this exercise, you only need to:

  • Attach a USB cable to the unit
  • Start U-Center and on the Receiver tab, select the Connection for the USB COM port that appears, baudrate is unimportant.
  • Under View tab, select the Configuration view to set the parameters below for the Base and Rover(Vehicle) units.

Base:

Attach USB to the unit, start the UBLOX U-Center app, connect, and in the U-Center configuration view, set:

  • PRT: UART1, 57600 baud, RCTM3 out, UBX in…press send button in lower left
  • TMODE3: Survey-in, 60seconds, 2 meters…press send
  • MSG: RTCM3.3 - 1005, UART1 in/out, 1sec…press send
    RTCM3.3 - 1074, UART1 in/out, 1sec…press send
    RTCM3.3 - 1084, UART1 in/out, 1sec…press send
    RTCM3.3 - 1094, UART1 in/out, 1sec…press send
    RTCM3.3 - 1124, UART1 in/out, 1sec…press send
    RTCM3.3 - 1230, UART1 in/out, 5sec…press send
  • CFG: Save current configuration to FLASH…press send

for the Rover unit, attach USB and use U-Center to set:

  • PRT: UART2, 57600Kbaud, RCTM3 in, UBX out…press send
  • CFG: Save current configuration to FLASH…press send

set GPS_TYPE=1 in ArduPilot…do not set GPS to any moving base types or configuration will be changed and not work

when you power the base unit, it will take it 30 seconds for the unit to acquire lock and start the survey process…for the above survey params (60s of <2m radius survey points), it will take 5-10 minutes to finish the survey assuming clear sky view. During the survey process the Rover unit will flash its RTCM led and assuming the Rover unit has good satellite acquisition, it will move its FIX status from the normal 3D or 3D/DGNSS to “RTKfloat”. Once the survey at the BASE completes, it will move to full precision and report as “RTKfixed” status, if a GCS is monitoring.

without modifying the base GPS to remove its backup batteries, you will either have to let the unit drain its battery backup (a few days to sometimes a week), or use U-Center to configure the TMODE3 to change slightlly one of the params (add a second, for example) and press send to re-start the survey. You can disconnect it from power and then position it later to its location, and repower, and the survey will continue and ultimately complete.

9 Likes

@hwurzburg good setup!

I’d like to do something similar but maybe a bit trickier. The RFD radios can be networked. I’d like your setup but with an RFD900X, a GCS laptop elsewhere with an RFD900X and the Rover with RFD900X. I wonder if I can get the correction signals in there with the telemetry data at the same time? Maybe at the GPS Base use a Pi to output the GPS corrections as MavLink messages?
Any thoughts guys? @ktrussell @Yuri_Rage @ChrisWighton
Yuri, I await your LUA solution……:grin:

Ta, Ben

2 Likes

Another solution would be to have small board with 4G (or old phone) and just connect some NTRIP provider (or a fixed RTK GNSS at home) to send the corrections

1 Like

Sorry, Ben, I missed this one. I think we talked elsewhere about this, but for the benefit of the forum, here’s my video on the subject:

You could skip the Pi and just use the radios to transmit RTCM3 directly to UART2 of an F9P receiver as well, but I’m pretty sure that’s covered above and not the solution you’re after.

2 Likes

Hi, Im currently researching a similar project to yours here. Thanks for the great information!
My use will be on a fishing bait boat and im interested to know about the automatic cold start survey in. As my fixed base will be placed in a new position each time I go fishing, will the fixed base automatically survey in on a cold start each time the base is powered up without the need for connecting to a pc and internet each time?

wouldn’t it be easier to feed ntrip from a cors?

Not so easy in the Uk and am unsure as to costs involved. Id rather not have to pay for a service

There are free cors pretty much everywhere, i would be very very surprised if not present in UK (i am sure there are plenty). You can just inject corrections from ground station (Mission planner) and get them from a free cors trough your cellular phone. Everything pretty much free except for your phone wich i think you already have in your pocket.

Maybe take a look here: http://rtk2go.com

Thanks your your info MshUav. I’ll look into your suggestions.

yes it will if configured as above

1 Like

Than you for your clarification :+1:t2:

@hwurzburg,

This Sparkfun Base Station/Rover tutorial shows you how to setup a Base Station using a ZED-F9P and a ESP-32 Thing Plus so as not to require a PC running U-Center to start Survey-in.

However, if you setup and save the Base Station ZED-F9P in the Survey-in mode configuration, every time you power up the Base Station it will go into the Survey-in mode and when finished will begin to send RTCM3 messages over UART2 per this Sparkfun tutorial.

Regards,
TCIII

the ESP-32 takes the place of the PC…the F9P itself cannot be configured to restart surveys on power up unless the configuration storage battery is removed…

Can you elaborate on any methodology you have used or planning to use for automatic restart of survey-in process?

I removed the GPS’s backup battery

Hello, I am currently setting up an RTK base and rover. The base was able to receive at least some GNSS signals through Ucenter, but there were issues with the rover. I connected the H-RTK F9P Rover Lite directly to the GPS Port on the Pixhawk 4 and then to the PC. However, I couldn’t receive any GNSS signal in Ucenter, although it worked in Mission Planner. I have also reset the FC multiple times and reinstalled the software via MP.

Thank you for your support.

Warm regards,
Spy

Hi spy, im a bit confused. If it worked in mission planner, suggests your all good.
Im not familiar with your hardware, but usually these problems generically (for me at least) are

  1. Wiring - Neg, 5v , Transmit, Receive. TX → RX and RX–> TX
  2. Baud rate - same on both sides, i recommend the 480k baud option - it solves other problems
  3. F9P config - not sending the right sentences.

plug the tx, rx wires into an arduino console or UART of some kind and have a look at the data - is it readable, NMEA is which may give you a clue as to whats happening…