diff --git a/COSI-Measure/External_Control_Scripts/Instructions1.png b/COSI-Measure/External_Control_Scripts/Instructions1.png
new file mode 100644
index 0000000000000000000000000000000000000000..655a6d39370c41f4a812d4a16f47e0678a230b91
Binary files /dev/null and b/COSI-Measure/External_Control_Scripts/Instructions1.png differ
diff --git a/COSI-Measure/External_Control_Scripts/Instructions2.png b/COSI-Measure/External_Control_Scripts/Instructions2.png
new file mode 100644
index 0000000000000000000000000000000000000000..67b6232a9344f1be1660a43ffaee253b649fe8ea
Binary files /dev/null and b/COSI-Measure/External_Control_Scripts/Instructions2.png differ
diff --git a/COSI-Measure/External_Control_Scripts/instructions.md b/COSI-Measure/External_Control_Scripts/Readme.md
similarity index 65%
rename from COSI-Measure/External_Control_Scripts/instructions.md
rename to COSI-Measure/External_Control_Scripts/Readme.md
index e47a47e8c0a938394f49293ab2cecd338ee14449..eb6a478d8ee1d02a4083c3a4a20db6a264ec6817 100644
--- a/COSI-Measure/External_Control_Scripts/instructions.md
+++ b/COSI-Measure/External_Control_Scripts/Readme.md
@@ -1,6 +1,6 @@
 # Software instructions
 
-This folder has two python scripts for automated mapping using COSI Measure. The first **cosi_gui_testbed.py** uses the original Beagle Bone Black hardware and software from Han et al. [1]. The other one **server_GUI** works under the server computer that prepares and sends the coordinates (e.g. the console with the m4i cards). An ethernet cable is needed between host (COSI Measure) and server (m4i computer).
+This folder has two python scripts for automated mapping using COSI Measure. The first **cosi_gui_testbed.py** uses the original Beagle Bone Black hardware and software from Han et al. [1]. The other one, **server_GUI.py**, works under the server computer that prepares and sends the coordinates (e.g. the console with the m4i cards). An ethernet cable is needed between host (COSI Measure) and server (m4i computer).
 
 The **cosi_gui_testbed.py** script has an individual homing option for each axis and each direction. If wanted, the buttons (x+, x- ,y+ ,y- ,z+ ,z-) can be used seperately. This has the advantage that the order of homing can be chosen, which is sometimes required if an object is within the homing area of COSI Measure to avoid collision with the probe.
 
@@ -12,12 +12,24 @@ The MOV command is for the movement to absolute coordinates. The command structu
 MOVXXXxxYYYyyZZZzz or MOVXXXYYYZZZ. 
 The first one is for submillimeter precision is 2, first 3 digits are the coordinates in mm for xyz. The second one is in millimeter. Please pad with zeros. i.e. 58.23mm is 05823 or 058 for the host part. When the robot finishes its operation (i.e. moving to desired coordinate), it acknowledges the movement and sends back a “MOVOK” command to a host.
 
-“CLOSECONN” terminates the connection. This reactivates the Cosi_GUI application on COSI Measure. If the connection is terminated unexpectedly, it can be killed using another terminal. Otherwise, the application must be restarted. (Please see the screenshots for how to kill an open TCP/IP process without restarting the whole Cosi_GUI application).
+“CLOSECONN” terminates the connection. This reactivates the Cosi_GUI application on COSI Measure. If the connection is terminated unexpectedly, it can be killed using another terminal. Otherwise, the application must be restarted, which would require new calibration of the COSI Measure axes. To prevent this, please open another root terminal. Then please type:
+
+```console
+netstat -tulnap  
+```
+Then, find the PID number of python program that has the IP number “192.168.101.253”. E.g., it is 2571/python : [Instructions1.png](./COSI-Measure/External_Control_Scripts/Instructions1.png). Type
+```console
+gdb -p PORTNUMBER #(e.g., gdb -p 2571)
+#This will attach to the process and open GDB server. Type:
+call close() 
+quit
+```
+If you see ($1=0). Then, it should be successfull. [Instructions2.png](./COSI-Measure/External_Control_Scripts/Instructions2.png)
 
 “OK” command can be sent for a connection check. COSI Measure will respond with an “ok” message if the connection is established. 
 
-Server_GUI implements the mapping. Currently cartesian mapping is supported by the GUI, which follows a snake like path. For each position, it transmits a composite pulse and calculates a worst-case vector [2]. Next, a circularly polarized, orthogonal projection and worst case transmit pulses are sent and the corresponding files are saved into a Measurements1 folder. For each position the files are saved into a folder according to the measurement number. The means of each measurement are also displayed in the GUI. Currently, creating different measurement folders was not implemented. Therefore, please check if there is an empty “Measurements1” folder in the directory.
-An arbitrary path file can also be used with the GUI. For this, a path file using the same structure from Han et al. [1] should be prepared and named as ‘PathFile.txt’. And the default coordinate values from the GUI must be kept the same. 
+**Server_GUI.py** implements the mapping. Currently cartesian mapping is supported by the GUI, which follows a snake like path. For each position, it transmits a composite pulse and calculates a worst-case vector [2]. Next, a circularly polarized, *orthogonal projection* and *worst case* transmit pulses are sent and the corresponding files are saved into a **Measurements1** folder. For each position the files are saved into a folder according to the measurement number. The means of each measurement are also displayed in the GUI. Currently, creating different measurement folders was not implemented. Therefore, please check if there is an empty **Measurements1** folder in the directory.
+An arbitrary path file can also be used with the GUI. For this, a path file using the same structure from Han et al. [1] should be prepared and named as **PathFile.txt**. And the default coordinate values from the GUI must be kept the same. 
 
 Please note that there is no limitation about the numbers that you can enter to the GUI. Therefore, make sure that the coordinates are within the boundaries that COSI measure can approach. A coordinate that is outside of the physical coordinates may damage components. The physical dimensions of the measurement probe and device under test should also be considered. It is highly encouraged to determine the customized spatial boundaries of the mapping area before any operation with COSI Measure.
 
diff --git a/COSI-Measure/External_Control_Scripts/cosi_gui_testbed.py b/COSI-Measure/External_Control_Scripts/cosi_gui_testbed.py
index 6b1540eba0558dda65585bb386c9fa7d6bafb9a9..c956c8cb6cbcf06d75bee093ef043dcab26b9529 100644
--- a/COSI-Measure/External_Control_Scripts/cosi_gui_testbed.py
+++ b/COSI-Measure/External_Control_Scripts/cosi_gui_testbed.py
@@ -340,6 +340,7 @@ class Main(QtGui.QMainWindow):
          #Close the socket: call close($FD)
          #Close the debugger: quit Source: https://www.scm.keele.ac.uk/staff/stan/2016/05/16/closing-sockets-without-killing-processes/
          #Unfortunately the debian is limited. Some functions may not be found but the idea should be implementable. 
+         #You can find another example with screenshots in the project's folder 
     def dConnectDongle(self): 
 	self.remoteSocket = socket(AF_INET, SOCK_STREAM)
 	self.remoteSocket.setsockopt(SOL_SOCKET,SO_REUSEADDR,1)
@@ -431,10 +432,10 @@ class Main(QtGui.QMainWindow):
             coordinates = str("x450y450z450")
             self.move_to(coordinates)
             self.wait_for_completion()
-            valueX = self.read_gaussmeter()
-            valueX = 'a'
-            cursor = self.outputText.textCursor() 
-            cursor.insertText(valueX)
+            #valueX = self.read_gaussmeter()
+            #valueX = 'a'
+            #cursor = self.outputText.textCursor() 
+            #cursor.insertText(valueX)
         wid=QtCore.QString.number(self.console.winId())
         self.process = QtCore.QProcess(self)
         args = [
diff --git a/Console/Receiver/Spectrum Instrumentation m4i.4451/m4iset_extrig_rms.c b/Console/Receiver/Spectrum Instrumentation m4i.4451/m4iset_extrig_rms.c
index 93559b0c097f028b61fb0c99027ee7f8b9e93bb0..d90973792914842394a49347753edb2a18187ddd 100644
--- a/Console/Receiver/Spectrum Instrumentation m4i.4451/m4iset_extrig_rms.c	
+++ b/Console/Receiver/Spectrum Instrumentation m4i.4451/m4iset_extrig_rms.c	
@@ -5,11 +5,19 @@
 
 #include <stdio.h>
 
-
+/**
+ * Set m4i receiver card
+ *
+ * @param *pvData    16-bit data pointer for the received data
+ * @param *lMemsize  32-bit memory length for the received data
+ * @param *posttr    32-bit post trigger pointer to adjust the time window of the ADC. Please see manufacturer’s documentation for more about post trigger. 
+ * @Return void
+*/
 void m4iset_(int16 *pvData, int32 *lMemsize, int32 *posttr)
     {
-    drv_handle hDrv;
-    char szErrorText[ERRORTEXTLEN];
+    drv_handle hDrv;                    // Receiver device 
+    char szErrorText[ERRORTEXTLEN];    //  Error buffer
+    //Card specific parameters
     int32 lCardType;
     int32 allchan;
     int32 ausgabe;
diff --git a/Console/Receiver/Spectrum Instrumentation m4i.4451/readme.md b/Console/Receiver/Spectrum Instrumentation m4i.4451/readme.md
index c9fc4048600394bc920cf20b9b91114b02e403e8..a6bae83176658e41045c89df3331c4a4b5cfc312 100644
--- a/Console/Receiver/Spectrum Instrumentation m4i.4451/readme.md	
+++ b/Console/Receiver/Spectrum Instrumentation m4i.4451/readme.md	
@@ -7,12 +7,30 @@ The compilation of the codes can be done using the first line of each Fortran fi
 It is also possible to use other software platforms for the digitizer cards such as MATLAB and Python. The function names to control the cards are the same throughout different environments. Hence, mitigation to other software platforms should be relatively straightforward. For more information, please see the documentation and examples from the manufacturer’s website [1]. In addition, please follow the manufacturer’s website to install corresponding libraries because they differ by the OS. 
 
 ## ADC
+
 The file **m4iset_extrig_rms.c** contains the functions for the ADC card setup and receiver operation. The routine uses 3 arguments:  
-- _*pvData_ 16-bit data pointer for the received data
-- _*lMemsize_ 32-bit memory length for the received data
-- _*posttr_ 32-bit post trigger pointer to adjust the time window of the ADC. Please see manufacturer’s documentation for more information about post trigger. 
+```c
+/**
+ * Set m4i receiver card
+ *
+ * @param *pvData    16-bit data pointer for the received data
+ * @param *lMemsize  32-bit memory length for the received data
+ * @param *posttr    32-bit post trigger pointer to adjust the time window of the ADC. Please see manufacturer’s documentation for more about post trigger. 
+ * @Return void
+*/
+void m4iset_(int16 *pvData, int32 *lMemsize, int32 *posttr)
+    {
+    drv_handle hDrv;                    // Receiver device 
+    char szErrorText[ERRORTEXTLEN];    //  Error buffer
+    //Card specific parameters
+    ...
+    ...
+    ...
+    }
+```
 
 The other two scripts **rec_m4i_fifo_tdfilter.f** and **rec_m4i_tdfilter_rms.f** implement the c routine. They need to be compiled with a Fortran complier. The first line in these files can be taken as an example i.e. copy and paste it into the OS terminal using the working folder. 
 
 ## References
+
 [1] M4i.4451-x8 | Spectrum Instrumentation https://spectrum-instrumentation.com/de/m4i4451-x8
diff --git a/Measurement-Devices/Keithley/readme.md b/Measurement-Devices/Keithley/readme.md
index 9e59f55304356b51148cc411fdd6d4e93a929f7a..0bc5d645803cce83a6797d88114688043cefde9a 100644
--- a/Measurement-Devices/Keithley/readme.md
+++ b/Measurement-Devices/Keithley/readme.md
@@ -2,12 +2,28 @@
 
 This folder contains two Python scripts that has been used for thermistor measurements with the Keithley2000 digital multimeter. 
 
-The script **Keithley_Interface_25Hz.py** reads resistance value from the multimeter and saves the to a text file using the system timestamps. The calculated temperature value is calculated and saved as well. Note that this temperature calculation is thermistor specific. Please revisit thermistor parameters for a different product.
+The script **Keithley_Interface_25Hz.py** reads resistance value from the multimeter and saves the to a text file using the system timestamps. The calculated temperature value is calculated and saved as well. Note the following temperature calculation is thermistor (i.e. *beta* value) specific. Please revisit thermistor parameters for a different product.
 
-You can run the script via a terminal or with ide. The measurement parameters of the multimeter were adjusted manually. Therefore, the device must be taken to the resistance measurement manually. The filter and averaging in the device were disabled for faster operations. The LCD is turned off by the script. You can enable it later.
+```python
+def rThermistor(rt):
+    temperature = 1/((1/T0) + ((1/beta) * (math.log(rt/R0))))-(273.15); #Calculate temperature in Celsius using on Stainhart - Hart Equation [1]  
+    return temperature
 
-The serial connection is adjusted to 19200 baudrate. The multimeter should also be adjusted to the same baudrate. In addition, the serial connection port is not automatically adjusted. You should determine the USB port manually and change it in script.
+[1] Steinhart JS, Hart SR. Calibration curves for thermistors. Deep Sea Res Oceanogr Abstr. 1968;15(4):497-503. doi:10.1016/0011-7471(68)90057-0
+```
 
-The timing settings are about the limits of the Keithley2000 in this NPLC settings. The device may give errors, beeps, and sends some incorrect data. Not all of them are handled. You can decrease the reading rate by changing the ‘rate’ parameter. About 13-15Hz is usually ok, when LCD is open and NPLC is in default mode.
+You can run the script via a terminal or with ide. The measurement parameters of the multimeter were adjusted manually. Therefore, the device must be taken to the resistance measurement manually. The filter and averaging in the device were disabled for faster operations. The LCD is turned off by the script: 
+```python 
+serialDev.write("display:enable 0"+'\r\n') 
+```  
+You can enable the LCD. However, the timing settings are about the limits of the Keithley2000 in this NPLC settings. The device may give errors, beeps, and sends some incorrect data. Not all of them are handled. You can decrease the reading rate by changing the *rate* parameter. About 13-15Hz is usually ok, when LCD is open and NPLC is in default mode.
+
+The serial connection is adjusted to 19200 baudrate. The multimeter should also be adjusted to the same baudrate. In addition, the serial connection port is not automatically adjusted. You should determine the USB port manually and change it in script:
+
+```python
+serialDev = serial.Serial(port = '/dev/ttyUSB0',baudrate=19200,parity=serial.PARITY_NONE,stopbits=serial.STOPBITS_ONE,bytesize=serial.EIGHTBITS)
+```
+
+Please note that the RS-232 interface is [Null modem](https://en.wikipedia.org/wiki/Null_modem "see in Wikipedia").  
 
 The other script **Plot_Keithley_v3.py** plots the data for every 3 seconds. The matplotlib backend is adjusted to Tkagg for Linux compatibility. It should also work in Windows. Other backends like Qt can be realized as well.