Recent Changes - Search:

Past operations & data

Scientific equipment

Communications / Navigation / Tracking


Ship contact info

VHF Radio Call Sign:
Iridium phone cockpit:
00 - 88 1677 72 7018
Iridium spare 1:
00 - 88 1621 41 8079
Iridium spare 2:
00 - 88 1621 44 3804
Emergency Beacon:
ID: ADE90 05931 C34D
Handheld Emergency Beacon:
ID: LC 4652
Hovercraft registered in Delaware, US:
DL 1519 AB


edit SideBar

Last update: June 26, 2020, at 08:55 PM
Version: pmwiki-2.2.126



Department of Earth Science
 Allé gt. 41, N-5007 Bergen, Norway 
0.1 DRAFT - 29 June, 2020 OM OM -


It's essitial to have an internet connection for solving any configuration problems (related to everything onbord):


Click to enlarge.

Seismic source instrumentation diagram, version dated 28 June, 2020. Click to enlarge. Also PDF version.


GNSS/GPS data distribution over network [ #1 ]


Click to enlarge.

Fig. 1: Starting GNSS/GPS data collection and distribution program. Click to enlarge.

Fig. 1:

First, a warning: While scanning for GNSS/GPS COM-port, the COM-port attached to Mini-GUNCO will be activated - thus firing airguns, if they are left in Enabled state - which should never happen!

Then listening for NMEA GNSS/GPS telegrams on available COM ports, also determining baud rate.

Next, analyzing the stream of NMEA telegrams that arrives, in order to determine the last telegram in each "batch" (a batch of different NMEA telegrams arrives at each time instance, in our case each second). This is necessary in order to only extract and forward information tied to a specific second, and not mix data that belongs to different time instances. True, it would not be a catastrophe if such mixing occurred since our application is geophysical data collection where location does not change that fast - it's more a matter of principle. And since different models of GNSS/GPS-receivers seem to vary with regard to start- and end NMEA telegrams for block delineation, auto-detecting this property makes software adjustments that was done before, a thing of the past.

Click to enlarge.

Fig. 2: Completing start-up procedure and starting normal acquisition and distribution. Click to enlarge.

Fig. 2: Completing start-up procedure and starting normal acquisition and distribution.

Last telegram in batch found - in this case, $GNZDA.

Creating objects and threads.

When attempting to send broadcast UDP telegram on network interface, it was seen that external network interface was not activated, so reverting to only internal network. Should external network interface become active, the program will automatically start using it (providing notification).

At regular intervals, these parameters printed:

  • Time.
  • Fix (OK or not).
  • Latitude and Longitude.
  • Number of GPS satellites | Number of GLONASS satllites, used in fix.
  • HDOP = Horizontal Dilution of Precision - the smaller, the better (normally less then 1.0).
  • Standard deviation, Latitude error. Using $GNGST -- GNSS Pseudo Range Error Statistics telegram (see GNSS receiver documentation below).
  • Standard deviation, Longitude error. Using $GNGST -- GNSS Pseudo Range Error Statistics telegram (see GNSS receiver documentation below).
Click to enlarge.

Fig. 3: Two TCP socket clients collecting data from the program. Click to enlarge.

Fig. 3: Two TCP socket clients collecting data from the program. Client socket connection / disconnection notified in blue letters.
Click to enlarge.

Fig. 4. The two clients have been terminated. Click to enlarge.

Fig. 4. The two clients have been terminated.

GUNCO firing control [ #2 ]


Click to enlarge.

Fig. 1. Start of program. Click to enlarge.

Fig. 1.

Start of program. A warning - if you have left airguns in Enabled state -- which should never happen!

Section [A]:
Ensure there is at least 500 MByte free space on harddisk (C: partition) before proceeding. If not, a warning is provided, before program exits.

Section [B]:
Three required parameters are set. Previous choices are kept and appear as defaults - just press <ENTER> to accept. If new values are entered, they will become the new defaults. This makes is very easy to start new lines that all have identical configuration.

  • Alternately shooting two airguns -- "Flip-flop mode" -- or not
  • Shooting mode, either distance or time
  • Shot interval, either meters or seconds

Section [C]:
Searching for Ashtech DG16 time stamping unit. If found, initialize it.

Click to enlarge.

Fig. 2. Click to enlarge.

Fig. 2.

Section [D]:
* Searching for UDP broadcast telegrams on network interface, as JSON formatted packages. Source of these UDP telegrams can be on the same machine, or on another machine on the network. If not detected within time-out period, program exits with a warning. You must then verify that UDP emitter is operational (using the test UDP package display program to inspect raw data).

Section [E]:
Searching for COM port that is connected to Mini-GUNCO. The Gunco unit has a loopback on RS232-port RX-and TX-pins, so that serial messages sent to Gunco will be returned on the same COM-port --- in that way, the presence of a Gunco unit can be detected. If Gunco not found, program exits with a warning.

The user can then review all line parameters.

Terminate line and program by pressing <ENTER>.

Click to enlarge.

Fig. 3. Click to enlarge.

Fig. 3.

After accepting profile parameters the line is started. The log file is created, with name automatically generated by using date and time stamp. The first shotpoint occurs immediately, and its associated data are shown in green text.

For each shotpoint, these parameters are shown (also written to logfile):

  • SP = Shotpoint number.
  • Kp = Kilometer post. Distance [km] since first shotpoint of this line.
  • dDelta = Distance sine last shotpoint.
  • Fix: OK, or not.
  • N = Number of satellites in fix (GPS and GLONASS combined).
  • HDOP = Horizontal Dilution of Precision. The lower, the better. Normally less then 1.0.
  • Gun# = Airgun number 1 or 2.
  • TS_fix_QC = Time stamp fix QC.
    • For each timestamp, the Ashtech DG16 is asked to provide information on which sat. system used in fix - two characters: First=GPS, Second=GLONASS; A=used, N=not_used. NOTE: The DG16 ONLY has GPS!
    • Number of satellites used in fix.
    • HDOP
    • TDOP = Time Dilution of Precision.

Every 10 seconds, the following parameters are printed:

  • Current Time, Latitude and Longitude.
  • dDelta = Distance since last shot point.
  • tDelta = Time since last shot point.
  • Fix: If GNSS/GPS receiver has fix or not.
  • NSats = Number of Satellites used in GNSS/GPS fix. Includes both GNS and GLONASS.
  • HDOP = Horizontal Dilution of Precision: The less, the better (should be less then 1.0).

The red warnings are generated when GEODE program is terminated (and GEODE hardware is put to sleep), thus removing external network interface. The GNSS/GPS data distributor software automatically detects this, and starts using the internal network interface after a short while.

Click to enlarge.

Fig. x. Click to enlarge.

Fig. x.

GEODE software / configuration [ #3 ]


Click to enlarge.

Fig. 1. Click to enlarge.

Notice in the log file window how the serial string that Mini-GUNCO software emits at each shot, is merged with GEODE information. The serial string starts with "$PUIBNAV":
  • "$P"=Proprietary, in contrast to "official" NMEA telegrams that starts with "$G"
  • "UIB" = University of Bergen
  • "NAV" = Navigation data
Click to enlarge.

Fig. 2. Click to enlarge.

Setup of Serial port input. It is assumed that Mini-GUNCO software nav telegram is routed to laptop's built-in serial port, which appears as Keep('COM1').


Navilock NL-8004U USB 2.0 GNSS Receiver

NMEA Telegrams from Navilock model NL-8004U (P/N: 62531)

Chipset is u-blox UBX-M8030. References:

Data sample from Navilock NL-8004U:

1st record, only at the beginning (when opening COM-port):

$GNTXT,01,01,02,u-blox AG -*4E
$GNTXT,01,01,02,HW UBX-M8030 00080000*60
$GNTXT,01,01,02,ROM CORE 3.01 (107888)*2B
$GNTXT,01,01,02,FWVER=SPG 3.01*46

Subsequent records:



RMC -- Recommended Minimum Data
  status:  V = Data invalid, A = Data valid
  spd: Speed over ground [knots]
  cog: Course over ground [degrees]
  mv: Magnetic variation value. Only supported in ADR 4.10 and later
  mvEW: Magnetic variation E/W indicator. Only in ADR 4.10 and later
  posMode: Mode Indicator
               N = No fix
               E = Estimated/Dead reckoning fix
               A = Autonomous GNSS fix
               D = Differential GNSS fix
               F = RTK float
               R = RTK fixed
  navStatus: Navigational status indicator
               V = Equipment is not providing navigational status information,
                   fixed field, only available in NMEA 4.10 and later
GNS -- GNSS fix data


  posMode: Positioning mode, see position fix flags description.
               1st character for GPS, 2nd character for GLONASS,
               3rd character for Galileo, 4th character for BeiDou
  alt: Altitude above mean sea level
  sep: Geoid separation: difference between ellipsoid and mean sea level
  diffAge: Age of diff corrections [seconds], null when DGPS is not used
  diffStation: ID of station providing diff corrections, null when DGPS is not used
  navStatus: Navigational status indicator
                V (Equipment is not providing navigational status information,
                   fixed field, only available in NMEA 4.10 and later)
GGA -- Global positioning system fix data


The NMEA specification indicates that the GGA message is GPS specific. However, when the receiver is configured for multi-GNSS, the GGA message contents will be generated from the multi-GNSS solution. For multi-GNSS use, it is recommended that the NMEA-GNS message is used instead.

  quality: Quality indicator for position fix, see position fix flags description [1]
              0 = No fix
              1 = Autonomous GNSS fix
              2 = Differential GNSS fix
              4 = RTK fixed
              5 = RTK float
              6 = Estimated/Dead reckoning fix
GSA -- GNSS DOP and Active Satellites


  • If less than 12 SVs are used for navigation, the remaining fields are left empty. If more than 12 SVs are used for navigation, only the IDs of the first 12 are output.
  • The SV numbers (fields 'svid') are in the range of 1 to 32 for GPS satellites, and 33 to 64 for SBAS satellites (33 = SBAS PRN 120, 34 = SBAS PRN 121, and so on).
  • In a multi-GNSS system this message will be output multiple times, once for each GNSS.
  opMode: Operation mode:
            M = Manually set to operate in 2D or 3D mode
            A = Automatically switching between 2D or 3D mode
  navMode: Navigation mode, see position fix flags description [1]
           Possible values for navMode:
              1 = No fix
              2 = 2D fix
              3 = 3D fix
  svid: Space Vehicle ID - Start of repeated block (12 times)
  PDOP: Position dilution of precision
  HDOP: Horizontal dilution of precision
  VDOP: Vertical dilution of precision
  systemId: NMEA defined GNSS System ID, see Signal Identifiers table [2]
            Only available in NMEA 4.10 and later
GST -- GNSS Pseudo Range Error Statistics


This message reports statistical information on the quality of the position solution.

  rangeRms: RMS value of the standard deviation of the ranges [meter]
  stdMajor: Standard deviation of semi-major axis (only in ADR 4.10 and later)
  stdMinor: Standard deviation of semi-minor axis (only in ADR 4.10 and later)
  orient: Orientation of semi-major axis (only in ADR 4.10 and later)
  stdLat: Standard deviation of latitude error [meter]
  stdLong: Standard deviation of longitude error [meter]
  stdAlt: Standard deviation of altitude error [meter]
ZDA -- Time and Date


  ltzh: Local time zone hours: 00 (fixed field)
  ltzn: Local time zone minutes: 00 (fixed field)

[1] Position fix flags description
[2] Signal Identifiers table


Solenoid firing pulse specifications

Bolt airgun solenoid

Sercel Mini G-Source airgun solenoid

GUNCO overview

Mini-Gunco front panel. Click to see larger image. Δ
Mini-GUNCO front panel. Click to see larger image.

The Mini-GUNCO can be controlled through a computer serial port. COM port DTR & RTS lines are used to fire the airguns, according to this table:

   DTR -> GUN1 -> fire from 0 to 1 state
   RTS -> GUN2 -> ---"---

There is a wiring harness connection three units: PC, Mini-Gunco and GEODE. The aim is to fire airguns and trigger the seismic data collecting unit (GEODE) at the same time.

A loopback between RS-232 RX and TX inside the Mini-Gunco permits auto-detection of GUNCO presence on a specific COM port.

Refer to more detailed description here:

Trigger interface via RS232 port, using DTR (Airgun #1) and RTS (Airgun #2) signals

Hardware (within the Mini-GUNCO)

Software - Python example, using PySerial library

This is the GUNCO class of the program that controls firing of the Mini-GUNCO. Despite the two control signals being set (DTR and RTS, set to level=0) immediately after a GUNCO object is instanciated, voltage pulses are emitted on the DTR and RTS pins, causing the airguns to fire, if the airguns are left enabled by the master switches on the front. SO ENSURE THESE SWITCHES ARE IN THE "OFF" POSITION (=DOWN) BEFORE STARTING THE Mini-GUNCO PROGRAM.

class c_gunco:

	def __init__(self, serial_port):
		self.Name 				= 'Mini-GUNCO'
		if serial_port:
			self.Serial_port		= serial_port
			self.Serial_port = "COM4"
		self.Gun_number			= 1			# 1 = Leftmost  2 = Rightmost slot position in Mini-Gunco
		self.SerialPort_handle	= 0
		#--- open serial port
			self.SerialPort_handle = serial.Serial(port=self.Serial_port, baudrate=9600, timeout=2)
			print "GUNCO object created, serial port =", self.Serial_port
			set_text_attr(FOREGROUND_RED | default_bg | FOREGROUND_INTENSITY)
			print "Could not open GUNCO serial port: %s" % self.Serial_port
			print "Check: Control Panel -> System -> Hardware -> Device Manager -> Ports (COM & LPT)"
			print "Quit"

	def fire(self, position, gun_number):
		if gun_number == 1:
		elif gun_number == 2:
			print "Invalid gun number (max = 2):  %d"     %   gun_number

		#print "   Gun number %d fired" % (gun_number)

		#print "   %s:%s:%s UTC: GUNCO fired" %  ( 	position.Hours,
		#										position.Minutes,
		#										position.Seconds)

	def close(self):

	def send_navdata_on_COM_port(self, data):


  • Remote Trigger Module 3, or RTM3, made by Seismic Source Company
  • Ethernet: The RTM3 has a fixed IP and not a DHCP server. If the RTM has a serial number of 171 the IP address will be, The computer should be set to This link shows a video on setting up the computer IP address:
  • FTP server: The unit has an FTP server through which data can be downloaded.
  • Data can be exported through WLAN interface.
  • Display: The "1" is the GPS indicator value from the NMEA string, $GPGGA, that is being received by the RTM3 and sent by the GPS receiver. The "P" means that the RTM3 is receiving the PPS from the GPS receiver. The "T:OK" means the RTM3 is time synchronized with the GPS receiver’s NMEA messages and PPS.

Data access RTM3, via WLAN

Click to enlarge.

Click to enlarge.

Configuration of RTM3

Click to enlarge.

Click to enlarge.


We have been using:

Splicing of hydrophone cable

Hydrophones are normally ordered unterminated. In order to splice the hydrophone cable to a suitable underwater pigtail cable (which is delivered with one connector; the other side is open) an inline cable splicing kit must be used:

Norwegian suppliers:

Interface between hydrophone AQ-18 / 6 ch streamer and GEODE recording system

Click to see large version:

Interface between Teledyne AQ-18 Hydrophone  / 6 channel mini-streamer and Geode Recording system (click to see large version)
Interface between Teledyne AQ-18 Hydrophone / 6 channel mini-streamer and Geode Recording system - click to see large version.
Recommended AQ-18 decoupling and wiring.

Recommended AQ-18 decoupling and wiring.

The recommended decoupling is done in the interface box shown below. The interface is also furnished with a DC/DC-converter in order to provide a clean 12 Vdc power source for the hydrophone.

Teledyne hydrophone AQ-18 interface box - click to enlarge.
Teledyne hydrophone AQ-18 interface box (click to enlarge).


USB-to-serial adapters

  • 1-port serial
  • Manufacturer: ST Labs


GNSS receiver HOLUX M-215+

Update 12 Feb, 2020:
Unfortunately, the manufacturer Holux decided to vanish without a trace. Distributor Amazon reports: "Currently unavailable. We don't know when or if this item will be back in stock." Customers who have earlier acquired Holux product are upset as this affects warranty issues, among other things - here is an example:

HOLUX M-215+

This unit appears as a COM-device. Since there are many new types of NMEA telegrams - and we are not sure if all telegram types output GNSS-quality data, we should split the GPS data stream and direct one for logging to disk, and the other to Chirp Sonar program. In that way we can post-process all raw navigation data - not only the (possible) sub-set that Chirp Sonar program deals with. (Many uncertain factors here !!)

Basic Specifications

  • MTK MT3333 GPS/ GLONASS chipset ---- Comparison with other chipsets (PDF)
  • MT3333 is now (2020) managed and sold by AIROHA, a MediaTek subsidiary.
  • 66 parallel searching, 22 tracking channels
  • Receiver: L1, 1575.42 MHz
  • C/A code: 1.023 MHz
  • Update rate: 1Hz.
  • Antenna type: Built in patch antenna
  • Minimum Signal tracked: -165dBm
  • Dimension: 64.5 x 42 X 17.8 mm.
  • Weight: < 84g.
  • Waterproof: IPX7 ("X7" where second digit is seven; it means: Immersion, up to 1 m depth -- Ingress of water in harmful quantity shall not be possible when the enclosure is immersed in water under defined conditions of pressure and time (up to 1 m of submersion).
  • Operation temperature: -10 C to + 60 C
  • Store temperature: -20 C to + 70 C.
  • Operation humidity: 5% to 95% no condensing
  • Non DGPS (Differential GPS):
    • Position: 3.0 M CEP excluding SA
    • (Refer to MTK chip specification): Velocity: 0.1 M / sec.

NMEA protocol output V.3.01

  • Protocol and interface Baud rate: 4800 bps
  • Data bit: 8
  • Parity: N
  • Stop bit: 1

Output NMEA telegrams

Description of NMEA telegrams: MT3333 Platform NMEA Message Specification For GPS+GLONASS_V1.00 (PDF) ---- also local copy

Message ID Meaning Rate
GPGGA Global Positioning System Fixed Data, example:


ID, UTC, Lat, N/S, Lon, E/W, Pos fix indicator, Nsats, HDOP, MSL alt, units, geoid sep, units, age of diff corr, diff ref station id
   Pos fix indicator: 0 = Fix not available or invalid
                      1 = GPS SPS mode, fix valid
                      2 = Diff GPS, SPS mode, fix valid
                      3-5 not supported
                      6 = Dead reckoning mode, fix valid
GPRMC ~ GNRMC Recommended Minimum Specific GNSS Data


ID, UTC, status, lat, N/S, lon, E/W, speed o/ground [kt], course o/ground [deg], date, mag variation, E/W, mode
   status: A = data valid
           V = invalid
   mode:   A = autonomous
           D = DGPS
GPVTG Course Over Ground and Ground Speed 1time/1sec
GNGSA GNSS DOP and Active Satellites


ID, mode_1, mode_2, SV#_used_ch1, ...,SV#_used_ch12, PDOP, HDOP, VDOP
   mode_1: M = manual; set to operate in 2D or 3D mode
           A = automatic switch between 2D/3D
   mode_2: 1 = fix not available
           2 = 2D (<4SVs used)
           3 = 3D (>3SVs used)
GPGSA GNSS DOP and Active Satellites 2time/5sec
GPGSV / GLGSV GNSS Satellites in View



ID, no_of_msg, msg_no, sats_in_view, SV#, elevation, azimuth, S/N_ratio, {repeat 3 sets, each 4 parameters}

Sample data set

NOTE: $GPVTG is the last telegram of each "batch", which is separated by empty lines her.

In red: GGA telegram reports 14 SVs used in solution. GSA shows further details: Of these 14 satellites, 8 are GPS, while 6 are GLONASS.













Edit - History - Print - Recent Changes - Search
Page last modified on July 01, 2020, at 05:42 PM
Department of Earth Science
University of Bergen