In this example, BeiDou should be available on both the RTK base station and the mobile station. However, you can see that BeiDou was not used in this positioning calculation. Reach uses RTKLIB internally, so BeiDou should be available in this example. I didn’t know why satellites other than GPS were not available.
RTCM3 messages in Base mode tab of Reach display are as follows:
|1002||GPS L1 code, phase, ambiguity, and CNR|
|1006||Station coordinates and antenna height|
|1010||GLONASS L1 code, phase, ambiguity, and CNR|
CNR: carrier-to-noise power ratio
MSM7: full pseudoranges, phase ranges, phase range rate and CNR (high resolution)
As for GPS and GLONASS, the traditional RTK Observation was sent. On the other hand, for Galileo, SBAS, QZSS, and BeiDou, observation data was transmitted with MSM7. Compared to RTK Observation, MSM7 could transmit more information such as multi-frequency observation results and Doppler frequency. MSM7 is also defined for GPS and GLONASS (message numbers are 1077 and 1087, respectively).
Reach positioning chip u-blox NEO-M8T binary data contains this information. Therefore, instead of RTCM message numbers 1002 and 1010, send 1077 and 1087 respectively. Although it is possible to modify the software so that Reach alone can send RTCM 3 messages 1077 and 1087, we decided to read the NEO-M8T information from another microcomputer here.
Reference: RTCM3 Message Type
Reach can be accessed by shell using ssh. So I logged into Reach’s shell and examined it. The internal NEO-M8T serial port was connected to port number 2000 by netcat, and it was found that this port was accessible from the outside. This can be a security hole such as a third party changing the positioning mode, so this method may not be available in future Reach software updates.
After compiling RTKLIB from the source code into another microcomputer (Raspberry Pi), taking out NEO-M8T binary observation data inside Reach by the program
str2str on that microcomputer and formating it to RTCM 3 format, and then tranmit them to NTRIP Caster. By creating and executing the following shell file on the microcomputer, all the satellites observed by Reach could be available. The reason that satellites other than GPS were not targeted for positioning in the external RTKLIB was due to the message type used. All satellites are also used for positioning in another Reach.
#!/bin/bash if [ -e ./str2str ]; then ./str2str \ -in tcpcli://[ReachのIPアドレス]:2000#ubx \ -out ntrips://:[NTRIP Casterのパスワード]@[IPアドレス]/[マウントポイント]#rtcm3 \ -msg "1005,1019(5),1020(5),1045(5),1046(5),1044(5),1077,1087,1097,1107,1117" \ -p 34.44010565 132.41478259 233.057 fi
Replace the Reach IP address, NTRIP Caster IP address, password, mount point, and antenna coordinates with your environment. In this shell file, the antenna coordinates, GPS, GLONASS, Galileo, QZSS, and BeiDou are set to send MSM7. The ephemeris is set to transmit only once every 5 seconds so that the receiver can find the satellites quickly.