Monday, 3 January 2022

ZED-F9P RTK Receiver Test Measurements

The results of numerous tests carried out using ArduSimple RTK2B-V3 boards are presented
 Giovanni Carrera, 03/01/2022


Introduction

Since the Ublox ZED-F9P GNSS RTK module came out, there are many boards on the market that use it. I have had the opportunity to test the ArduSimple RTK2B-V3 board for a long time with results that I will now describe.

I have performed numerous tests, static and dynamic, to verify the operation and also the connection and the development of firmware of the systems that I have made with 32-bit microcontrollers. I used the ArduSimple RTK2B-V3 board with G4 module for receiving RCM3 messages from a reference station with NTRIP and I also connected the Base-Rover stations directly to see the highest possible accuracy.

The results, as we will see later, were very good even if the operating sites available don’t have the maximum visibility of the sky and the distance to the reference station was quite high.

 

The Ublox ZED-F9P module

The ZED-F9P module can receive and track multiple GNSS  constellations: GPS, GLONASS, Galileo and BeiDou plus SBAS and QZSS satellites as shown in the following table.

GPS

GLONASS

Galileo

BeiDou

L1C/A (1575.42 MHz)

L1OF (1602 MHz + k*562.5

kHz, k = –7,..., 5, 6)

E1-B/C (1575.42 MHz)

B1I (1561.098 MHz)

L2C (1227.60 MHz)

L2OF (1246 MHz + k*437.5

kHz, k = –7,..., 5, 6)

E5b (1207.140 MHz)

B2I (1207.140 MHz)

All satellites in view can be processed to provide an RTK navigation solution when used with correction data. It has a USB interface, two UART ports and also I2C and SPI interfaces.

The ZED-F9P position accuracy in RTK mode, is at the centimeter level, as confirmed by the numerous tests I have done.

 

The RTK2B-V3 board

ArduSimple RTK2B is a very compact and versatile board. In addition to the ZED-F9P module, it also mounts an Xbee-type connector complete with a USB/TTL adapter and a second USB port for its programming.

ArduSimple manufacturer supplies a series of modules to be mounted on this interface for radio communication such as Bluetooth, G4, WiFi, Lora, etc.

Figure 1 shows the board, whose dimensions are similar to that of Arduino Uno/Zero, to which it is perfectly compatible.

Figure 1

The I/O signals are 1.8V, 3.3V and 5V compatible, adjusted automatically on IOREF voltage.

This board can be powered directly from the Arduino headers or via a micro USB connector and is protected against double power source (header and USB). The power consumption, without Xbee modules, is about 200 mW. The board is equipped with a high power, low noise LDO (Low Drop Out) regulator. With only 390 mV dropout it is possible to power the board with a single  Li-ion cell.

Numerous on-board LEDs indicate to the user the operating status of the system.

The board has a connector compatible with ArduPilot systems for high accuracy position control applications.

 

RTK tests with NTRIP

The first tests were carried out with the correction sent by a reference station of the Ligurian Regional GNSS Network via NTRIP, using first the PC with U-Blox U-Center software, then a G4 module on the ArduSimple Xbee slot. The connection via PC to the internet allowed to better test the NTRIP configuration.

NTRIP (Networked Transport of RTCM via Internet Protocol) is a protocol developed by the Federal Agency for Cartography and Geodesy of Germany (BKG) in late 2004 that allows for the streaming of DGPS or RTK correction data via the Internet. With a personal computer or mobile phone supporting TCP/IP, NTRIP is the best way to send RTCM messages to the rover RTK receiver without having to use an expensive local radio, which to comply with radio communication laws, they are low power and therefore short range.

 

The 4G LTE module

The G4 module used is a Telit model LE910 V2. Whose bands, for Europe, the Middle East and Asia, are:

·         4G Bands (MHz): B1(2100), B3(1800), B7(2600), B8(900), B20(800)

·         3G Bands (MHz): B2(2100), B8(900)

·         2G Bands (MHz): B3(1800),B8(900)

This module is mounted by ArduSimple on an Xbee compatible board whose appearance is shown in figure 2.

Figure 2

This module requires high power (HP) and must be mounted on RTK2-V3 type boards.

For its configuration I followed the instructions of the hookup-guide [6] to which I refer the reader.

The functional scheme is shown in figure 3.

Figure 3


I have chosen NEAR3 as the Mount Point.

To achieve a high resolution, High Precision Mode must be configured. In this way latitude and longitude therefore have seven digits after the decimal point and the altitude has three digits after the decimal point.

Connect the Rover to the PC and start the U-Center program, from the 'Configure' menu set 'NMEA protocol' and click on 'High Precision Mode' and then save the configuration.

I have assembled all the components of the Rover in a box, as shown in figure 4.

Figure 4


In this case I used an ATmega328P based OpenLog system to save the corrected NMEA sentences from the RTK receiver to SD. In some tests I used a much more performing system (uChipTFT24), purposely designed by me, based on the SAMD21 MCU with 2.4 inch TFT touch screen with inbuilt SD card slot, as shown in figure 5.

Figure 5

I have also developed software on this system that also calculates the UTM (Universal Transverse Mercator) coordinates, shown on the display along with other information, such as the fix quality index.

 

Fixed point measurement (NTRIP) #1

The measurements saved on a SD card, have been processed in Matlab on a PC.

Here are the outputs of my programs:

 

File name        = LOG00013.mat

Values averaged on 551 epochs, from point = 1, to point = 551

Initial GPS time = 32779 and final = 33329

CEP R95          =    0.010 m

Figure 6

The CEP95 is a very valid index of horizontal accuracy: it is the radius of the circle that contains 95% of the measurements.

Plotted measurements refer to a time interval where HDOP was minimal, as seen in figure 6. However, the fix quality index was equal to 4 (fixed ambiguity solution) for the whole recording, confirming its good quality.

Although the reference station is 16 km away and there is no complete visibility of the sky, the results are excellent.

 

Fixed point measurement (NTRIP) #2

This measurement was made on top of a mountain, therefore in a site without obstacles, unlike the other measurements which were always made in mountain locations, but with some obstacles. Also here I was closer to the reference station GENU (about 6 km).

 

File name       = 01092109.mat

Values averaged on 280 epochs, from point = 174, to point = 453

Initial GPS time = 32973 and final = 33252

average latitude  = 44.458543193°

average longitude =  9.067446390°

Elevation       = 755.25 m

CEP R95         =    0.006 m

Figure 7

I have included this test to show how important it is to have coordinates with many significant digits. In this case my system saved the coordinates with 8 decimal digits which brought a resolution to 0.8 mm on the West-East axis and from 3.3 to 4.4 mm on the South-North axis. Later I modified the program to save the coordinates with 9 decimal places and things have improved a lot.

Despite its relative low resolution, the results were good, with a CEP95 measuring just 6mm.

 

Rectilinear motion at constant speed

I also wanted to make a dynamic measurement: to have a precise spatial reference, I made the rover antenna move along a straight rail with constant speed.

To do this test I made a special device. An aluminum profile creates a rail on which a wooden shoe slides pulled by a rope and a pulley moved by an electric gear-motor. The figure 8 shows the gear-motor and the tow pulley on which I made a double turn of the cable.

Figure 8

Here are the outputs of my Matlab program:

File name         = 30082107.mat

Values averaged on 29 epochs, from point = 309, to point = 337

Initial GPS time  = 26030 and final = 26058

Path traveled     =    1.678 m

Mean speed        =   0.0599 m/s

Figure 9

The red line, in figure 9, was drawn between the average of the start and end points measurements.

 

Fixed point measurement (direct link)

This test of the receivers excludes the transmission system of the correction data transmitted by the base, replacing it with a simple wire, as shown in the figure 10.

I mounted the two boards and the serial data logger in a single case, as shown in fig. 11.

I configured the two units with the base and rover configuration files.

 

Figure 10

Of course this is the system that should give the maximum accuracy precisely because the two antennas are a few meters apart and there are no radio link disturbances.

The Rover must be configured for NMEA output at 115200 baud.

It is necessary to configure the Tx1 output of the Rover for the NMEA protocol in High Precision Mode (coordinates with 7 decimal digits). The data logger used for this test was an OpenLog type system.
Figure 11

The following table shows the configuration of the switches on the two boards.

switch configuration

ArduSimple V3 Base

ArduSimple V3 Rover

Swirch#1

XbeeTo GPS UART1

XbeeTo GPS UART1

Swirch#2

IOREF& 5V ARE INPUTS

IOREF=3V3, 5V = OUTPUT

 

 

ArduSimple Base-Rover wiring

Base

Rover

Tx1

Rx1

Rx1 not connected

Tx1 to logger

5V (input)

5V (out)

Gnd

Gnd

IOREF (input)

IOREF (3V3 out)

USB not connected

USB connected

Arduino rails are used for wirings.

USB is connected to Rover for powering and PC monitoring of  the system.

Here are the outputs of my Matlab program:

GNSS measurements

File name       = LOG00014.mat

Values averaged on 578 epochs, from point = 1, to point = 578

Initial GPS time = 42023 and final = 42600

CEP R95         =    0.007 m

Figure 12

References

1.       “ZED-F9P u-blox F9 high precision GNSS module data sheet”, UBX-17051259- R08, www.u-blox.com, 04-Jun-2020.

2.       “ZED-F9P u-blox F9 high precision GNSS module Integration manual”, UBX-18010802 - R08, www.u-blox.com, 02-Jun-2020.

3.       https://www.kickstarter.com/projects/simplertk2b/simplertk2b-the-first-multiband-rtk-shield-based-o

4.       https://www.ardusimple.com/simplertk2b-v3-hookup-guide/

5.       https://www.ardusimple.com/product/simplertk2b-f9p-v3/

6.       https://www.ardusimple.com/4g-ntrip-client-hookup-guide/

7.       https://www.ardusimple.com/configuration-files/

8.       “Logger GPS con UCHIP”, Giovanni Carrera, ‘Elettronica In’ magazine, n. 257, september 2021




















Wednesday, 10 January 2018

Low cost GNSS RTK systems

By Giovanni Carrera, 12/01/2018

Introduction

Usually satellite navigation receivers are called GPS, but those that receive also other constellations of satellites, like the Russian GLONASS, the Chinese BeiDou, the European GALILEO are called GNSS (Global Navigation Satellite System).
The RTK (Real Time Kinematic) technique is used to obtain instantaneous and very precise position measurements with GNSS satellite systems. It uses measurements on the phase of the carriers transmitted by the satellites and only particular satellite receivers are able to perform carrier phase tracking. The accuracy of these receivers is centimeter and even millimeter, depending on the quality of the receiver and its antenna. These receivers, essentially created for topographic use, are able to receive two or three carriers and cost several thousand euros, but some companies, such as the Swiss U-Blox, since some years have been producing low-cost receivers capable of performing phase measurements. The problem was given by the processing software, still very expensive. The Japanese engineer Tomoji Takasu gave a big contribution making its RTKlib programs open source. In the meantime, electronic technologies have produced increasingly powerful microcontrollers, allowing RTK processing to be performed directly in the receiver itself, reaching an accuracy of a few centimeters without the use of a PC.
In addition to traditional applications such as GIS (Geographic Information System), these RTK receivers are particularly suitable for controlling UGV (Unmanned Ground Vehicle) or UAV (Unmanned Aerial Vehicle) aircraft such as agricultural tractors and drones.
And it is precisely to these systems that this treatment is addressed, given the vastness and complexity of the topics, I will not argue in detail on the operating principle of GNSS systems of which I propose a bibliography.

Satellite systems

The first prototype of GPS satellite was put into orbit in February 1978 and since 1995 the system has reached full operational capability (FOC) for civil and military applications.
Other systems have been added to US GPS, such as the Russian GLONASS, the Chinese BeiDou and the European GALILEO. Satellite systems have also been developed to increase the accuracy of a stand-alone receiver. These systems use geostationary satellites and a network of ground stations to perform long-term differential corrections. The results are lower than the DGPS because the system operates on a larger area, but the user has the enormous advantage of improving the accuracy and reliability of the measurements without using sophisticated and expensive equipment.
Modern satellite receivers are able to receive satellites of different constellations and also receive SBAS satellites such as the American WAAS (Wide Area Augmentation System) and the European EGNOS (European Geostationary Navigation Overlay Service). The frequency of the carriers of the various systems are different and the antenna must also be suitable for receiving the various frequencies. The antenna, for precision measurements, must be of good quality and greatly affect the measurements. To avoid it being disturbed by multi beam reflections, it is good to fix it on a metal plate at least 10 cm in diameter and grounded.

 The differential receiver in code and phase

For special applications, differential GNSS (DGNSS) is used. It uses two receivers: a receiver in a fixed station or base and one in a mobile or rover station. The rover receiver will be different from a normal receiver as it will have to perform data correction based on the information coming from the base station.
The base station transmits differential corrections in raw or RTCM format to the rover. These stations must be close enough (<10 km) to get the best accuracy, for longer distances the accuracy decreases because the receivers see a different geometry of the satellites.
The base station transmits raw / RTCM data via radio link made with WiFi, Bluetooth or a radio modem, depending on the distances to be covered. If the area is covered by cellular networks, data can be transmitted via GSM or GPRS or via the internet.


The common satellite receivers measure the satellite-antenna distance by working on the code (code range). The bits of the PRN code (Pseudo-Random Noise) are generated with a frequency of 1.023 MHz, which corresponds to a wavelength l = 293.1 m, which is the spatial length of each bit. The correlation measurement of the codes generated by the satellite and the receiver takes place within 1% of l, which leads to an accuracy of about 3-5 m, considering also the other errors of the system. A DGPS system with coded receivers has better accuracy but that hardly drops below one meter. The PRN code repeats periodically every millisecond, so the distance measurement will have an ambiguity equal to that period, i.e. about 300 km. Since this ambiguity is very large, it is easy to eliminate it because one can presume to know the distance with an approximation of at least 100 km.

For very precise positioning, receivers that work also on the carrier phase tracking are needed. Phase measurements are much more accurate because they use the carrier waves and its fractions, the wavelengths are about 19 cm for the L1 and 24 cm for the L2. Taking into account that it is possible to measure displacements of the order of the degree, the accuracy becomes of the order of the millimeter, not taking into account other disturbances.
In this case, the distance measurement is calculated by determining the number of carrier cycles between the satellite and the receiver antenna, then multiplying this number by the wavelength.
Calculating the number of whole cycles is a complicated process called "ambiguity resolution". It requires at least 6-7 satellites with good geometry and the solution of ambiguity requires a few tens of seconds.
The rover determines its position using algorithms that incorporate the resolution of the ambiguity and the differential correction. The accuracy of the position of the rover depends, among other things, on its distance from the base station, called the "baseline", the accuracy of the differential corrections and the quality of the satellite observations of the base station. In order to have a good absolute precision, necessary for topographic uses, it is necessary to know the position of the base station, otherwise one works with relative positioning.

 
RTK measurements and post-processing

If we are interested in precise position measurements in real time, we need a RTK system. The rover receiver must be equipped with an additional powerful processor to be able to calculate the phase ambiguity solution. In addition, the rover must receive the correction data in real time. These systems are more complex and require a radio system with sufficient capability to cover the area in which it is to operate. RTK receivers have a higher cost than phase-controlled receivers precisely because more computing power is required. With the latter it is not necessary to have a PC except to view the results of RTK solutions or save the measurements. But if we use an external computer, we can use cheaper receivers.
If we do not want to know the correct position in real time, we can work in post-processing. In this case the system does not require the transmission of correction data. The base station and the rover must be equipped with a small computer with a data-logger function and a monitoring system. Alternatively, a small serial data logger can be used. In a second time the two files are processed, acquired by the stations in the same period of time, and the precise positions of the rover can be calculated. Post-processing usually leads to more accurate measurements as more computing power is available.

Differences between raw and RTCM data

As mentioned, the rover to process the correct position in real time must receive the measurements in phase for correction from the base station. Usually there are two types of messages, both in binary:
·        data in raw format;
·        data in RTCM format.
The first is proprietary, i.e. it is developed by the receiver module manufacturer. This means that modules of the same family must be used for the two stations. The raw format is the most complete and therefore leads to greater accuracy. As a disadvantage it has a larger amount of data to transmit and could cause problems on the communication system due to the higher bandwidth required.
The RTCM (Radio Technical Commission for Maritime Services) format is of the standard type, the latest versions are 3.x and have better data compression and message integrity than versions 2. You can also use different receivers or even data coming from a regional network station, the important thing is to check if the versions are the same. As a disadvantage it has a lower accuracy.
There is also a third format, the RINEX (Receiver Independent Exchange Format). It too is standard, the latest versions are 3.x. It is in ascii format, therefore not very compact. Only the most expensive receivers also have this output format. It is widely used by post-processing programs such as RTKPost by RTKLib. In this case, you need to acquire raw data on files and then convert them to RINEX with RTKconv. The base-rover transmission system is no longer necessary, but the stations must be equipped with data-loggers. Of course with this system, which is what I've been using up to now, we do not have the data in real time but we can reach a higher accuracy than RTK receivers.

 
Use of fixed station networks

In some regions there are highly accurate GNSS networks, which make measurements available in real time. One of these systems is NTRIP (Networked Transport of RTCM via Internet Protocol), this protocol is implemented in RTKlib. For Europe, see http://www.euref-ip.net. In Italy there are a number of stations but not all of them use this protocol.
In this case, just the rover receiver is connected to a smartphone or tablet with a sim card and the RTKlib app. The accuracy is much lower than the two stations and depends on the distance of the reference station used for the correction. This system works only if the mobile has field and if there are NTRIP stations nearby.

 GNSS receivers for RTK systems

Today there are several receivers on the market at relatively low costs. The cheaper ones make only phase measurements and transmit them to a PC or tablet with the RTKlib program of the Japanese Tomoji Takasu installed, open source, which has become widespread because it is free and also very valid. One of these programs, RTKpost, can process data in raw or Rinex format in post-processing. One thing to ascertain, before purchasing the GNSS receiver in phase, is to verify that it is in the list of receivers compatible with RTKlib.


Here are some GNSS phase, low-cost and RTKlib compatible receivers:
Just a few Ublox modules are capable to operate on the phase, the latest models are the NEO M8T and NEO M8P, the first provides only raw data while the second is of the RTK type and costs about three times. These modules are also used by many companies to realize RTK systems.

Particularly interesting is the NavSpark NS-RAW card, which contains a SkyTraq Venus822A chip with raw outputs and also a LEON3 Sparc-V8 32-bit microcontroller with an IEEE-754 64bit Floating Point Unit clocked at 100MHz. The software is developed through the IDE of Arduino with the addition of the "Arduino NavSpark Boards by SkyTraq" program inserted through the "Card Manager". This powerful processor has a Flash Memory of 1024KB and 212KB of RAM. The power supply is via the USB port with a low-dropout regulator (LDO) that supplies the 3.3V to the card. The satellite antenna connects with a U.FL connector.

Here are some low-cost boards of GNSS RTK receivers:

These are just examples that I have selected, especially considering the price. There are also other receivers, such as the Piksi RTK system, created by the American Swift Navigation, which has significantly higher costs, now has a new dual-frequency Multi GNSSe version, which costs around $ 600 per receiver.

M8P receivers do not need computers because they are able to process RTK. The M8P-2 model can operate as a base and as a rover, the M8P-0 only as a rover.
The Swiss company Ublox also sells the C94-M8P evaluation kit which, at a cost of about $ 650, includes the two boards, based on the M8P module, complete with GNSS antennas and 433 MHz radio modem.

Also very interesting is the REACH RTK kit which, at a price of € 614, offers a pair of RTK receivers complete with antennas. They communicate with each other via WiFi, so for short distances they do not require the use of radio modems. The accuracy in static measurements, declared by Emlid, is remarkable: 5mm + 1ppm horizontally and twice vertically, and little more in kinematic measurements.

The RTK system tested

The NavSpark card I chose fits the SkyTraq S2525F8-GL-RTK module, which is an RTK receiver based on the Venus8 chip set, with a high quality price ratio that provides a centimeter position. The cheaper version provides an RTK measurement per second. For convenience, I used for the prototype the evaluation board NavSpark S2525F8-GL-RTK EVB that mounts two TTL / USB adapters, based on the CP2102 chip, for connection to the PC during setup and configuration. Of course you need to load the Windows driver. This chip it's also compatible with some android apps.
As default, the NMEA output of the rover has a baud rate of 115200 b / s, while the base broadcasts in SkyTraq Raw Data format with a baud rate of 57600 b / s.
The following figure shows the board, which is about 90x90 mm in size and the antenna used in my tests.
I used a low-cost multi-band GPS / GALILEO, BEIDOU, GLONASS antenna. It is an active antenna with a gain of 25-27 dB powered by 3.3 V, 10 mA (supplied by the receiver).
Its dimensions are 49x46x16 mm, the connector is SMA and the coaxial cable RG174 is 3 m long.
To avoid it being disturbed by multi beam reflections, it is good to fix it on a metal plate at least 10 cm in diameter and grounded. The components of each receiver are as follows:
description
manufacturer
Evaluation board for S2525F8-GL-RTK
NavSpark
TRI-BAND ACTIVE ANTENNA (SMA)
NavSpark


Radio-modems and limits imposed by current regulations

Many nations have very restrictive rules on radio communication systems that limit the frequency bands and transmitter power.
With these limits it is possible to transmit a low bandwidth signal, limited to a few kHz and with sight ranges of a few kilometers. The rules on the 2.4 GHz band are less restrictive, where it is possible to use up to 100 mW without any authorization for LAN networks on a private area.
That's why I chose a 2.4 GHz XBee Pro S1 system from Digi International, configured as follows:
description
manufacturer
code
RF TXRX MODULE 802.15.4 RP-SMA
Digi International
XBP24-ASI-001
ANTENNA 2.4GHZ DIPOLE 1/4WAVE
Digi International
A24-HASM-450
BOARD XBEE EXPLORER REGULATED
SparkFun Electronics
WRL-11373
The first item is a serial data transceiver up to 250 kpbs and with 18 dBm (63 mW) of maximum output power and a receiver sensitivity of -100 dBm. It is powered at 3.3 V and has an inverted SMA antenna connector (RP-SMA). To complete each device you need an omnidirectional stylus antenna with RP-SMA female and 90 ° foldable adapter and an adapter with a 5V to 3.3V LDO power supply. The following figures show the look of the various elements of each of the two devices that make up the radio link.

For the Xbee module of the base station I have set the power High (3), that is an output power at level 3, equal to 16 dBm (40 mW) and not Highest (4). With this power you can reach a range of about 400 meters without obstacles.
Soon I will write a post where I will describe in detail the settings of these modules.

The configuration programs of the RTK receivers

These programs must be downloaded:
GNSS_Viewer.zip from http://navspark.mybigcommerce.com
This program is used to configure the receivers and to display RTK measurements from the rover.
There is another GNSS_Viewer-NmeaPlayer.zip program that does not configure the receiver but displays RTK measurements and also those previously saved in NMEA format.
The pdf manuals of these programs are also available. An essential document for configuring the circuit boards is: Getting_Started_with_S2525F8-BD-RTK-EVB.pdf.
The NMEA format is standard, but latitude and longitude have  7 decimal digits compared to 4 of a normal receiver that could not give the sub-centimeter resolution that would have measurements on the carrier phase.

Static and dynamic tests with a very short base line

In the preliminary tests, I used a very short base line: I connected the port 1 (Tx1 on J8) of the base with the port 2 (Rx2 on J3) of the rover and also the grounds of the two boards, as shown in the following figure.
The two receivers were powered by two USB cables connected to a single PC.
The system quickly went into RTK solution. The fixed point recording gave very good results, probably due to the good geometry and a certain number of satellites. The RTK solution reached on the whole test is of the FIX type (Q = 4), therefore very good, as shown in the following figure.
The results are also confirmed by the CEP95 (circle radius containing 95% of the measurements) which is only 12 mm. The cloud of points is more crushed on the x because my house prevented to see some satellites (low) to the north.
For the NMEA parse and for the data elaborations I wrote several programs in Matlab. To convert the latitude and longitude into UTM coordinates I used the wgs2utm.m function of Alexandre Schimel.
For a first kinematic test I made a rail with an aluminum profile on which ran the rover antenna fixed to a wooden sled, forced to follow the rail by two side skids. The sled was dragged with a rope, trying to make the speed quite regular.
The following figure shows the straight path from south to north. The line was drawn between the two average points calculated with the fixed point measurements. The most southerly point was not reached during the test for mechanical cause.
The points are not equidistant because the rope was pulled manually. The results of the tests are very good, even taking into account that the site was not optimal as satellite visibility.
Obviously I also did measurements on longer distances, which will be described in my other posts.

Bibliography and reference sites


1) “An introduction to GNSS”, https://www.novatel.com/an-introduction-to-gnss/

2) “Trimble GPS Tutorial”, www.trimble.com/gps_tutorial

3) “Global Positioning System Overview", Peter H. Dana, www.colorado.edu/geography/gcraft/notes/gps.

4) “The Global Positioning System”, www.gps.gov/systems/gps/

5) “NEO-M8P u-blox M8 High Precision GNSS Modules Data Sheet”, UBX-15016656, R06, 16-May-2017.

6) “C94-M8P u-blox RTK Application Board Package User Guide”, UBX-15031066, R07, 07-Jul-2017.

7) “Presentazione del Servizio GNSS e principi di funzionamento”, Domenico Sguerso, DICAT, Università degli Studi di Genova.

8) “Getting Started with S2525F8‐BD‐RTK EVB or S2525F8‐GL‐RTK EVB”, NavSpark

9) “HM-TRLR-S Series 100mW LoRa Transceiver”, HOPE MICROELECTRONICS CO.

10) “Limitations of the RTCM raw measurement format”, Rtklibexplorer , posted on January 30, 2017.

11) “RINEX, The Receiver Independent Exchange Format, Version 3.00”, Werner Gurtner Astronomical Institute University of Bern, Lou Estey UNAVCO Boulder, Co.November 28, 2007.

12) “ELENCO DELLE INTERFACCE PER GLI APPARATI RADIOELETTRICI dal n. 1 al n. 66”, http://www.gazzettaufficiale.it.

13) “Fixed point measurements for post-processing programs testing “, Prof. Giovanni Carrera, 20/02/2013

14) http://www.rtklib.com

15) http://docs.emlid.com

16) https://www.egnos-portal.eu

17) https://emlid.com/shop/reach-rtk-kit/