How to connect base (zed-f9p) and Rover(zed-f9p) to send RTCM correction data? ( with arduino )

What I have?

  • two ‘SparkFun GPS-RTK2’ , ‘two arduino UNO’, ‘antenna’, ‘HC11’.

SparkFun GPS-RTK2 : https://www.sparkfun.com/products/15136 … 134194uart

HC-11 : 433MHz Wireless RF Transceiver Module with Spring Antenna is a new version of multi-channel embedded wireless transmission module. With HC-11, Base send data to rover with wireless UART communication.

https://www.elecrow.com/download/HC-11.pdf

What I want to do?

  • to make base (SparkFun GPS-RTK2 with arduino) and rover( SparkFun GPS-RTK2 with arduino).

  • to print relative coordinate of moving rover to base on arduino serial monitor using DGPS skills ( real-time)

(only use base and rover, don’t use NTRIP.)

  • wireless connect between base and rover to use HC-11 (uart communication)

What I did?

  • read ‘GPS-RTK2 Hookup Guide’ and use samples on ‘SPARKFUN U-BLOX ARDUINO LIBRARY’ (they are ‘ZED-F9P example 3 - StartRTCMBase’ and ‘ZED-F9P example 5 - RelativePositioningInformation’).

  • connect two SparkFun GPS-RTK2 to two antennas.

  • using u-center, check two SparkFun GPS-RTK2 don’t have problems.

  • connect first SparkFun GPS-RTK2 to arduino with I2C communicaton. (base) ( communication check completed)

  • connect second SparkFun GPS-RTK2 to arduino with I2C communicaton. (rover) ( communication check completed)

  • connect rover arduino to base arduino with wireless uart communication using HC-11. ( communication check completed)

  • modify sample ‘ZED-F9P example 3 - StartRTCMBase’.

baud rate 115200 → 9600

  • #include <SoftwareSerial.h>

  • SoftwareSerial S2(2,3); // 2:RX 3:TX

  • S2.write(incoming);

  • I added these codes to send RTCM correction data to rover from base.

  • modify sample ‘ZED-F9P example 3 - StartRTCMBase’.

baud rate 115200 → 9600

GPS-RTK2 Hookup Guide : https://learn.sparkfun.com/tutorials/gp … 1586134194

SPARKFUN U-BLOX ARDUINO LIBRARY : https://github.com/sparkfun/SparkFun_Ub … no_Library

What is the problem?

  • arduino serial monitor of rover only print value 0.0000.

for example,

relPosN: 0.0000

relPosE: 0.0000

relPosD: 0.0000

  • In the article ‘GPS-RTK2 Hookup Guide’, says

'What about configuring the rover? Ublox designed the ZED-F9P to automatically go into RTK mode once RTCM data is detected on any of the ports. Simply push the RTCM bytes from your back channel into one of the ports (UART, SPI, I2C) on the rover’s ZED-F9P and the location accuracy will go from meters to centimeters. ’

  • and in the sparkfun_ulblox_arduino_library void SFE_UBLOX_GPS::processRTCM(uint8_t incoming) function says,

//Radio.sendReliable((String)incoming); //An example of passing this byte to a radio

//_debugSerial->write(incoming); //An example of passing this byte out the serial port

referring to that words in ‘GPS-RTK2 Hookup Guide’ and ‘library code’, I think I use incorrect code when passing the RTCM correction data to rover.

I added codes in base,

  • #include <SoftwareSerial.h> (added before setup)

  • SoftwareSerial S2(2,3); // 2:RX 3:TX (added before setup)

  • S2.write(incoming); (added in the void SFE_UBLOX_GPS::processRTCM)

or

  • String strVal = String(incoming); (added in the function processRTCM)

  • char ch[32] = {0}; (added in the function processRTCM)

  • strVal.toCharArray(ch, strVal.length()); (added in the function processRTCM)

  • S2.write(ch); (added in the function processRTCM)

please tell me, what is problems?

i also added in the scripts of base and rover

S2.begin(9600);

S2.flush();

to use wireless uart communication.