GPS data (NMEA sentences and PPS sync pulse) over optic fiber

Last update 27 March 2020 - under construction

 

In seismic stations we usually install digitizers taking time from internal GPS receiver through external GPS antenna.
GPS antenna is usially placed some meters away from digitizer, cable could be 3 to 5 meters (usually) but sometimes it can be longer when using low-loss RF cable.
When installing free-field seismic station we have not much problems due to GPS cable length but what about installing seismic station deep into mining compound?

 

Layout of generic seismic installation

 

Sometimes we can place seismic instruments not so far away from tunnel entry (such AGOR seismic station) and we can use a long low-loss RF cable to connect extarnal GPS antenna as just said above, but what about deeper seismic stations such PRED or CLUD?
Do you really mean you can place 600 meters cable?? Obviously not!

Here you have two options:

 

 

GPS signal repeater

There are several models you can find on the market, the ones you can find for this applications are usually expensive (if I correctly remember about 10'000$).

 

 

External GPS input

If you are planning to install seismic stations into mining systems or caves you can plan to buy digitizers with external timing input, here some examples:


In this case there is an external GPS receiver placed outside installation sending timing data (NMEA sentences and PPS sync pulse) through serial line.
NMEA serial data is sent using serial protocol (usually 4800-8-N-1), usually RS-232 protocol (on Q330 you can select to work with RS-232 or RS-485 protocol).
There is an additional line for PPS sync pulse.

 

Timing using external GPS as timing source

 

In this solution you can send data through cable or optic fiber (using specific adapters).
On the market you can find GPS receivers with RS-232, RS-485 or TTL output data.
Q330 models supplied with external GPS connector can work as receivers (receive GPS timing for external device) or as clock source (Q330 can output timing data for a second Q330).

Digitizers usually work with these NMEA strings (some used for timing, some used for satellites report):

- GPGGA (fix status)
- GPGSV (data about visible satellites)
- GPGSA (number of active satellites)
- GPZDA (UTC timing)

 


$GPGGA,,4819.7681,N,00819.3761,E,0,02,,665.9,M,,M,,*72
$GPGSA,A,1,,,,11,,,28,,,,,,,,*14
$GPGSV,3,1,10,01,31,128,,03,33,158,,09,00,029,,11,42,284,45*76
$GPGSV,3,2,10,14,38,092,,19,66,168,,20,12,225,,22,34,054,*79
$GPGSV,3,3,10,28,19,314,38,32,65,069,*7A
$GPZDA,110959.00,27,02,2008,00,00*6E
 

Output example of NMEA sentences used for timing on digitizer Quanterra Q330

 

On first installations we used long copper wires (one for ethernet and one for GPS data) then RS-485 encoder/decoder produced by Sara:

 

External GPS using RS-485 line

 

We used this solution in mining complex among mountains (PRED station, about 600 meters deep) and we had several troubles during summer storms so we moved to optic fiber.

To send serial data (4800 bit/s) we don't need superior performances so we can use cheap optic fiber and cheap optic fiber drivers/receivers we can found from electronic suppliers.

Our first solution was to use 4-core optic fiber (2 cores for ethernet, 1 core for NMEA, 1 core for PPS) so we made GPS receiver with optic fiber driver and relative receiver:

 

First GPS over optic fiber solution (transmitter)

First GPS over optic fiber solution (receiver)

 

 

Encoding GPS signals

We just said we need two GPS signals (NMEA sentences and PPS sync pulse) for digitizer timing, let's take a look:

GPS receiver output signals (TTL level)

 

 

As we can see from image above, NMEA serial output and sync pulse are produced at different times so why not encode them to a single signal?

 

Encoding of NMEA (b) and PPS (a) into single signal (d)

 

To do this we can work at higher bitrate and use additional microcontroller for signal encoding.

 

Block diagram for GPS receiver and optic fiber encoder

 

Block diagram for decoder

 



GPS receiver with GT-310 module and PIC24 microcontroller

GPS decoder with RS-232 interface

 

 

Issues

In this solution we found two issues:

Quanterra Q330, if I correctly remember, works with a Motorola GPS chipset and Q330 needs specific timings for NMEA output after PPS sync rising edge, so we can't buy first GPS chipset we can find.
We started using Navman Jupiter 30 chipset, obsolete when starting designing single wire solution.
So we moved on GT310F GPS receiver: after some months of running without troubles we started having some problems (digitizer internal time was delayed by 1 second from correct time).
We solved with GPS firmware update but it hasn't been so easy due you need to remove chipset shield, remove resistor, and so on....

PPS sync edge output from GPS receiver is processed by microcontroller, so I have some delays among PPS edges (PPS edge from GPS, PPS edge to LED driver, PPS edge from receiver microcontroller).
This creates little jitter of PPS sync edge to digitizer (don't worry, just about 10us).


PPS delays introduced by microcontrollers (not in scale)

 

To solve these issues we select Ublox chipsets (I have never noticed about bugs on these chipsets about our purposes) and new models have same footprint of old ones.
To reduce jitter we use PPS sync signal to drive LED bypassing microcontroller.

 

 

GPS receiver with signal encoder (3th generation)

For new receiver solution we use GPS chipset NEO-6M for following reasons:

Just take care there are fake NEO-6M marked chipsets on the web...

 

GY-NEO6MV2 board

Encoder prototype board

 

 

 

 

- WEBSITE UNDER CONSTRUCTION -

 

 

 

 

 

Decoder (3th generation)

 

Decoder module receives encoded data (bitrate has been increased to 57600 bit/s).
It generates PPS pulse output (length is 200ms) and outputs NMEA messages.
NMEA messages are generated by Ublox binary data, output bitrate is set to 4800 bit/s and number of visible satellites is limited to 8 for compatibility with older receivers.


 

You can choose to mount MAX232 (for RS-232 output) or MAX3043 (for RS-485 output); actually components for RS-485 output are not soldered.
 

 

Decoder layout

 

 


On COM connector you can find RS-232 signals:
- pin 1 = PPS
- pin 2 = NMEA output data
- pin 5 = GROUND


 

 

 

 

 


On J5 connector you can find TTL (3,3 Volt) output.
This solution allows to provide NMEA output for a second device (such Raspberry Pi), if no NTP server available for timing:
- pin 1 = NMEA output (3,3V)
- pin 2 = GND

 

 

 

 

 

Decoder placed in Camdenboss DIN enclosure

 

 

 

BOM:

Part Value Device Package Description
C1 12063C475KAT2A C-EUC1206K 1206 4,7uF - 25V - 10% X7R
C2 GCM155R71C154KE2D C-EUC0402 0402 150nF - 16V - 10% X7R
C3 12063C475KAT2A C-EUC1206K 1206 4,7uF - 25V - 10% X7R
C4 12063C475KAT2A C-EUC1206 1206 4,7uF - 25V - 10% X7R
C5 12063C475KAT2A C-EUC1206 1206 4,7uF - 25V - 10% X7R
C6 885012208030 C-EUC1206 1206 100nF - 16V - 10% X7R
C7 885012208030 C-EUC1206 1206 100nF - 16V - 10% X7R
C8 VJ1206A180JXJPBC C-EUC1206 1206 18pF - 16V
C9 VJ1206A180JXJPBC C-EUC1206 1206 18pF - 16V
C10 EMK316AB7106KL-T C-EUC1206 1206 10uF - 16V - 10% X7R
C11 885012208030 C-EUC1206 1206 100nF - 16V - 10% X7R
C12 885012208030 C-EUC1206 1206 100nF - 16V - 10% X7R
C13 885012208030 C-EUC1206 1206 100nF - 16V - 10% X7R
C14 885012208030 C-EUC1206 1206 100nF - 16V - 10% X7R
C15 885012208030 C-EUC1206 1206 100nF - 16V - 10% X7R
C16 885012208030 C-EUC1206 1206 100nF - 16V - 10% X7R
C17 885012208030 C-EUC1206 1206 100nF - 16V - 10% X7R
C18 885012208030 C-EUC1206 1206 100nF - 16V - 10% X7R
COM 618009231121 F09PCB_2 F09H_2 SUB-D female PCB 9 pin
D1 1.5KE18CA 1.5KER DO41-10CA TVS 18V
D2 PMEG6010 PMEG6010 SOD123 Schottky diode 1A
D3 PMEG6010 PMEG6010 SOD123 Schottky diode 1A
F1 0ZRR0050FF1E TE5 TE5 PPTC FUSE 1A
ICD 281-695-5   281695-5 AMPMODU HE14
J1 487-848 DCJ0202T 487-848 DC POWER JACK
J5 280377-1 AMPMODU_02 280377-1  
L1 RLB0914-151KL RLB0914 RLB0914 150 uH - 0.8A - 10%
LED1 APTL3216SYCK01 LEDCHIPLED_1206 CHIPLED_1206 Yellow LED
LED2 APTD3216LSYCK LEDCHIPLED_1206 CHIPLED_1206 Green LED
Q1 HCU1000-18X XTALPCB HC-49 10MHz xtal
R1 RN731ETTP4931D25 R-EU_R0402 0402 4.93 kOhm - 1%
R2 CRCW04021K00FKEDC R-EU_R0402 0402 1.0 kOhm - 1%
R3 10k R-EU_R1206 1206 10 kOhm - 5%
R4 100R R-EU_R1206 1206 100 Ohm - 5%
R5 100R R-EU_R1206 1206 100 Ohm - 5%
R6 120R R-EU_R1206 1206 120 Ohm - 5% ***
R7 120R R-EU_R1206 1206 120 Ohm - 5% ***
R8 1k R-EU_R1206 1206 1 kOhm - 5%
R9 100R R-EU_R1206 1206 100 Ohm - 5%
R10 390R R-EU_R1206 1206 390 Ohm - 5%
R11 390R R-EU_R1206 1206 390 Ohm - 5%
U$1 CNMB_4/2 CNMB_4/2 CNMB_4/2/A DIN enclosure
U1 LM2841XMK-ADJL LM2840 SOT23-6 DC-DC controller
U2 MCP1700-3302E/TO MCP1700TO TO92 LDO 3.3V
U3 PIC24FJ64GA002 PIC24FJ64 SO28W PIC microcontroller
U4 MAX3232CUE MAX3232CUE TSSOP16 True RS-232 Transceivers 3.0V to 5.5V, Low-Power
U5 MAX3043CUE MAX3043CUE TSSOP16 ±10kV ESD-Protected, Quad 5V RS-485/422 Transmitters
U6 74AC132D 74AC132D SO14 Quad 2-input NAND schmitt trigger
XR1 HFBR-2412TK HFBR-2412TK HFBR-X41X Fiber optic receiver ST

 

Schematics

monofilare_RX_2_0a.pdf

Firmware

monofilare_RX_2_0a.hex

 

Credits: