|UNIVERSITY OF BERGEN|
Department of Earth Science
Allé gt. 41, N-5007 Bergen, Norway
|| DRAFT - for comments
|| 2 June, 2020
AIRGUN SOLENOID FIRING PULSE SPECIFICATIONS
Bolt airgun solenoid
Sercel Mini G-Source airgun solenoid
Δ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: http://www.geo.uib.no/eworkshop/GreenICE/#Instrumentation
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.
def __init__(self, serial_port):
self.Name = 'Mini-GUNCO'
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)"
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,
def send_navdata_on_COM_port(self, data):
Wiring harness between PC-serial_port / Gunco / Geode
Mini-Gunco wiring. Wiring harness and part of mini-Gunco internal wiring shown. (mini-gunco-wiring-24Oct2011.xls)
List of changes, 2010
The Mini-GUNCO was modified for 12 / 24 Vdc operation in May 2010.
Modifications 2010, click to see images.
List of changes, 2011
- RX-to-TX jumper in RS-232C connector, so that data sent (intended for Geode consumption) is also received by this loop-back, so we can detect presence of GUNCO on a specifig COM-port.
NOTE: The Mini-GUNCO software depends on receiving regular GNSS/GPS data as UDP broadcast telegrams in a specific format (JSON), sent from another program running either on the same machine, or a different machine on the network. This emitter software is documented here: - GNSS/GPS data distribution software. Two different GNSS receivers have been tested:
- "Navilock NL-8004U USB 2.0 Multi GNSS Receiver u-blox 8 4.5 m", P/N: 62531 ---- This is the primary GNSS receiver. There should be at least one spare receiver of this type.
- HOLUX M-215+ --- emergency backup
Fig. 1. Start of program. Click to enlarge.
| Fig. 1. Start of program.
- First, ensure there is at least 500 MByte free space on harddisk (C: partition) before proceeding. If not, a warning is provided, before program exits.
- Then the 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
- Then 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).
- Next, 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>.
Fig. 2. Click to enlarge.
| Fig. 2.
- 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.
- Terminate profile and program by pressing <ENTER>.
OBSOLETE - KEPT FOR REFERENCE
Command line options
Debug (Verbose) mode
Raw data mode
The "raw data mode" is for debugging GPS serial input, and processing of these data.
GPS telegrams used in the program is extracted from the GPS data stream and dumped to screen. In addition, the telegram package forwarded for further processing is displayed, and also processing of each element of the package. By "telegram package" we mean all telegrams associated with a given second.
The system does not trigger the GUNCO in this mode.
System in raw data mode.