diff --git a/mcpha.py b/mcpha.py
index 9535b20a5f241063030933da1defe8dbcd1483ec..a9b7b3757144465d8d2dc13b67c8b32395ef3a14 100755
--- a/mcpha.py
+++ b/mcpha.py
@@ -4,8 +4,14 @@
     Client script for displaying the output of the MCPHA application 
     running on a RedPitaya FPGA board
 
-    Modified version of mcphy.py by Pavel Demin  
+    Modified and extended version of mcphy.py by Pavel Demin  
 
+    Command line args:
+
+       -h, --help  show this help message and exit
+       -c CONNECT_IP, --connect_ip CONNECT_IP  connect IP address of RedPitaya
+       -t TRIGGER_LEVEL, --trigger_level TRIGGER_LEVEL trigger level in ADC counts
+       -i INTERVAL, --interval INTERVAL interval for readout (in ms)
 """
 
 # differences w.r.t. original version marked with " # !gq"
@@ -57,11 +63,10 @@ class MCPHA(QMainWindow, Ui_MCPHA):
 
     def __init__(self):
         super(MCPHA, self).__init__()
+        # !gq additions
+        self.get_physical_units()
+        # !gq end
         self.setupUi(self)
-    # !gq get command line arguments
-        self.parse_args()
-        self.get_physical_units()      
-    # !gq end    
         # initialize variables
         self.idle = True
         self.waiting = [False for i in range(3)]
@@ -81,8 +86,6 @@ class MCPHA(QMainWindow, Ui_MCPHA):
         self.tabWidget.addTab(self.osc, "Oscilloscope")
         self.tabWidget.addTab(self.gen, "Pulse generator")
         # configure controls
-        # !gq color orange if not yet connected 
-        self.addrValue.setStyleSheet("color: darkorange")
         self.connectButton.clicked.connect(self.start)
         self.syncCheck.toggled.connect(self.set_sync)
         self.neg1Check.toggled.connect(partial(self.set_negator, 0))
@@ -95,10 +98,6 @@ class MCPHA(QMainWindow, Ui_MCPHA):
             self.rateValue.setItemData(i, Qt.AlignRight, Qt.TextAlignmentRole)
         self.rateValue.setCurrentIndex(1)
         self.rateValue.currentIndexChanged.connect(self.set_rate)
-        # address validator
-        # !gq 
-        self.addrValue.setText(self.ip_address)
-        # !gq end
         rx = QRegExp("^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|rp-[0-9A-Fa-f]{6}\.local$")
         self.addrValue.setValidator(QRegExpValidator(rx, self.addrValue))
         # create TCP socket
@@ -115,21 +114,35 @@ class MCPHA(QMainWindow, Ui_MCPHA):
         self.readTimer = QTimer(self)
         self.readTimer.timeout.connect(self.read_timeout)
 
-        # !gq set defaults and units
+        # get command line arguments
+        # !gq additions
+        self.parse_args()
+        # set argument options
         self.osc.levelValue.setValue(self.trigger_level)
+        # automatically connect
+        if self.ip_address is not None:
+            self.addrValue.setText(self.ip_address)
+            self.start()
+        else:    
+            self.addrValue.setStyleSheet("color: darkorange")
         # !gq end
+
         
     # !gq get command line arguments
     def parse_args(self):
         parser =argparse.ArgumentParser(description=__doc__)
-        parser.add_argument('-i', '--ip_address', type=str, default="192.168.0.103",
-            help='IP address of RedPitaya')
+        parser.add_argument('-c', '--connect_ip', type=str,
+            help='connect IP address of RedPitaya')
         parser.add_argument('-t', '--trigger_level', type=int, default=500,
             help='trigger level in ADC counts')
+        parser.add_argument('-i', '--interval', type=int, default=500,
+            help='interval for readout (in ms)')
+
         args = parser.parse_args()
         self.trigger_level = args.trigger_level
-        self.ip_address = args.ip_address
-
+        self.ip_address = args.connect_ip
+        self.readInterval = args.interval
+        
     def get_physical_units(self):
         """get physical units corresponding to ADC units and channel numbers
         """
@@ -141,7 +154,8 @@ class MCPHA(QMainWindow, Ui_MCPHA):
         
     def start(self):
         self.socket.connectToHost(self.addrValue.text(), 1001)
-        self.startTimer.start(5000)
+     # gq! self.startTimer.start(5000)
+        self.startTimer.start(1000)
         self.connectButton.setText("Disconnect")
         self.connectButton.clicked.disconnect()
         self.connectButton.clicked.connect(self.stop)
@@ -176,7 +190,8 @@ class MCPHA(QMainWindow, Ui_MCPHA):
 
     def connected(self):
         self.startTimer.stop()
-        self.readTimer.start(500)
+    # ! gq self.readTimer.start(500)
+        self.readTimer.start(self.readInterval)
     # !gq color green if connected 
         self.addrValue.setStyleSheet("color: green")
         self.log.print("IO started")
@@ -203,19 +218,21 @@ class MCPHA(QMainWindow, Ui_MCPHA):
             return True
 
     def read_timeout(self):
+        """data transfer from RP,  triggered by QTimer readTimer
+        """
         # send reset commands
         if self.reset & 1:
-            self.command(0, 0, 0)
+            self.command(0, 0, 0)  # hst 1
         if self.reset & 2:
-            self.command(0, 1, 0)
+            self.command(0, 1, 0)  # hst 2
         if self.reset & 4:
-            self.command(1, 0, 0)
+            self.command(1, 0, 0)  # reset timer 1
         if self.reset & 8:
-            self.command(1, 1, 0)
+            self.command(1, 1, 0)  # reset timer 2
         if self.reset & 16:
-            self.command(2, 0, 0)
+            self.command(2, 0, 0)  # reset osc
         if self.reset & 32:
-            self.command(19, 0, 0)
+            self.command(19, 0, 0) # start osc
         self.reset = 0
         # read
         self.command(11, 0, 0)