V1.6: no more master/slave terminology draft default tip
authorA.M. Thurnherr <athurnherr@yahoo.com>
Fri, 03 Jul 2020 10:25:08 -0400
changeset 12 5e67754f6457
parent 11 c39e37d59638
V1.6: no more master/slave terminology
CRUISE_SETUP.expect
DOWNLOOKER.cmd
DOWNLOOKER_pre_Firmware_16.3.cmd
HISTORY
MASTER.cmd
MASTER_pre_Firmware_16.3.cmd
README
SLAVE.cmd
SLAVE_pre_Firmware_16.3.cmd
UPLOOKER.cmd
UPLOOKER_pre_Firmware_16.3.cmd
abort1
abort2
bbabble
checkfiles1
checkfiles2
dir2
endladcp1
endladcp2
erasemem2
ladcp1
ladcp2
ladcp_send_cmd
libRDI.expect
reset2
--- a/CRUISE_SETUP.expect	Thu Nov 21 14:01:21 2013 +0000
+++ b/CRUISE_SETUP.expect	Fri Jul 03 10:25:08 2020 -0400
@@ -1,9 +1,9 @@
 #======================================================================
 #                    C R U I S E _ S E T U P . E X P E C T 
 #                    doc: Wed Mar 10 21:14:18 2004
-#                    dlm: Fri Dec 10 15:42:51 2010
+#                    dlm: Fri Jul  3 10:21:32 2020
 #                    (c) 2004 A.M. Thurnherr
-#                    uE-Info: 184 25 NIL 0 0 72 2 2 8 NIL ofnI
+#                    uE-Info: 39 32 NIL 0 0 72 2 2 8 NIL ofnI
 #======================================================================
 
 #--------
@@ -29,13 +29,14 @@
 # Dec 10, 2010: - updated comments
 #		- made mkProfile default file-checking program
 #		- made backup dir structure consistent with raw dir structure
+# Jul  3, 2020: - expunged master/slave terminology
 
 #-----------
 # TWEAKABLES
 #-----------
 
 # At the beginning of each cast, the clock of the acquisition computer should
-# synchronized with the master clock used for timestamping the GPS information.
+# synchronized with the primary clock used for timestamping the GPS information.
 # The best way to accomplish this is to run a NTP daemon (e.g. ntpd) polling
 # an NTP server on the ship.
 # If running ntpd is inconvenient or not possible, the follwing variable can
@@ -55,44 +56,45 @@
 set tty0 {/dev/ttyS0};
 set tty1 {/dev/ttyS1};
 
-# In case of 2 ADCP heads, babble needs to know which is the master and
-# which is the slave. This is accomplished by setting the following variables
+# In case of 2 ADCP heads, babble needs to know which is of the instruments
+# sends the sync pulses and which instrument receives them. 
+# This is accomplished by setting the following variables
 # to the corresponding instrument serial numbers (PS0 output). By convention,
-# the downlooker is the master. If only a single head is connected, both
+# the downlooker sends the sync pulses. If only a single head is connected, both
 # variables are ignored.
 
-set master_sn 7877;
-set slave_sn  1412;
+set DL_sn 7877;
+set UL_sn  1412;
 
 # Before deployment, every ADCP head has to be programmed by sending it
 # a corresponding command file, defined by the following variables. If only
-# a single head is connected, the slave_* variable is ignored.
+# a single head is connected, the UL_* variable is ignored.
 
-set master_cmd_file {MASTER.cmd};
-set slave_cmd_file  {SLAVE.cmd};
+set DL_cmd_file 	{DOWNLOOKER.cmd};	
+set UL_cmd_file  	{UPLOOKER.cmd};
 
 # For convenience, it is best to use the station number to name the ADCP data
-# files, and to indicate whether the data file comes from the master or
-# slave. The following variables variables define the printf(3) format
+# files, and to indicate whether the data file comes from the DL or
+# UL. The following variables variables define the printf(3) format
 # that is used to create the files names from the station number. If only
-# a single head is connected, the slave_* variable is ignored.
+# a single head is connected, the UL_* variable is ignored.
 
-set master_deployment_name_fmt	{%03dDL};
-set slave_deployment_name_fmt	{%03dUL};
+set DL_deployment_name_fmt	{%03dDL};
+set UL_deployment_name_fmt	{%03dUL};
 
 # Older RDI instruments (e.g. the BB150) do not allow the data-file name
 # to be defined in the instrument, in which case the files have to be
 # renamed after downloading. The following variables define the shell
-# globbing patterns for the master and slave. For example, the UH BB150
+# globbing patterns for the DL and UL. For example, the UH BB150
 # used during CLIVAR P02 generated files with extension .612; the coresponding
 # globbing pattern is {*.612}. If only a single head is connected, the
-# slave_* variable is ignored.
+# UL_* variable is ignored.
 # NB: For dual-headed LADCP systems it is important that the globs do not
-#     match both master and slave data files. {*.000} therefore will not
+#     match both DL and UL data files. {*.000} therefore will not
 #     work for dual-head Workhorse systems.
 
-set master_download_glob 	{};
-set slave_download_glob		{};
+set DL_download_glob 	{};
+set UL_download_glob		{};
 
 # For consistency it is nicest if low station numbers contain leading
 # zeroes. The following variable defines the corresponding printf(3) format.
@@ -161,11 +163,11 @@
 
 #----------------------------------------------------------------------
 
-# The following two routines backup the master and slave files from the
+# The following two routines backup the DL and UL files from the
 # raw directory. 
 
-proc backup_master_data {stn} {
-	global stn_format master_deployment_name_fmt master_cmd_file backup_dir;
+proc backup_DL_data {stn} {
+	global stn_format DL_deployment_name_fmt DL_cmd_file backup_dir;
 	if {[string length $backup_dir] == 0} {return}
 
 	if {![file isdirectory $backup_dir]} {
@@ -175,13 +177,13 @@
 	set stnstr [format $stn_format $stn];
 	set cast_dir [format %s/%s $backup_dir $stnstr];
 	if {![file isdirectory $cast_dir]} {exec mkdir $cast_dir};
-	exec sh -c "cp [format $master_deployment_name_fmt $stn]* $cast_dir";
-	exec sh -c "cp $master_cmd_file* $cast_dir";
+	exec sh -c "cp [format $DL_deployment_name_fmt $stn]* $cast_dir";
+	exec sh -c "cp $DL_cmd_file* $cast_dir";
 	exec sh -c "cp *log $cast_dir";
 }
 	
-proc backup_slave_data {stn} {				# copy data to network
-	global stn_format slave_deployment_name_fmt slave_cmd_file backup_dir;
+proc backup_UL_data {stn} {				# copy data to network
+	global stn_format UL_deployment_name_fmt UL_cmd_file backup_dir;
 	if {[string length $backup_dir] == 0} {return}
 
 	if {![file isdirectory $backup_dir]} {
@@ -191,49 +193,49 @@
 	set stnstr [format $stn_format $stn];
 	set cast_dir [format %s/%s $backup_dir $stnstr];
 	if {![file isdirectory $cast_dir]} {exec mkdir $cast_dir};
-	exec sh -c "cp [format $slave_deployment_name_fmt $stn]* $cast_dir";
-	exec sh -c "cp $slave_cmd_file* $cast_dir";
+	exec sh -c "cp [format $UL_deployment_name_fmt $stn]* $cast_dir";
+	exec sh -c "cp $UL_cmd_file* $cast_dir";
 	exec sh -c "cp *log $cast_dir";
 }
 
 #----------------------------------------------------------------------
 
-# See comments on master_download_glob and slave_download_glob above.
+# See comments on DL_download_glob and UL_download_glob above.
 
-proc rename_master_download_file {target} {		# rename after download 
-	global master_download_glob;
+proc rename_DL_download_file {target} {		# rename after download 
+	global DL_download_glob;
 	
-	if {[string length $master_download_glob] == 0} {return}
-	set files [glob -nocomplain $master_download_glob];
+	if {[string length $DL_download_glob] == 0} {return}
+	set files [glob -nocomplain $DL_download_glob];
 	set nfiles [llength $files];
 	if {$nfiles == 0} {
 		if {![file exists $target]} {
-			error {can't find downloaded master file};
+			error {can't find downloaded DL file};
 		}
 		return;
         }
         if {$nfiles > 1} {
-	        send_user {WARNING: Multiple files downloaded from master --- rename, backup, check manually!};
+	        send_user {WARNING: Multiple files downloaded from DL --- rename, backup, check manually!};
 	}
 	if {![string equal [lindex $files end] $target]} {
 		exec mv [lindex $files end] $target;
 	}
 }
 
-proc rename_slave_download_file {target} {		# rename after download
-	global slave_download_glob;
+proc rename_UL_download_file {target} {		# rename after download
+	global UL_download_glob;
 	
-	if {[string length $slave_download_glob] == 0} {return}
-	set files [glob -nocomplain $slave_download_glob];
+	if {[string length $UL_download_glob] == 0} {return}
+	set files [glob -nocomplain $UL_download_glob];
 	set nfiles [llength $files];
 	if {$nfiles == 0} {
 		if {![file exists $target]} {
-			error {can't find downloaded slave file};
+			error {can't find downloaded UL file};
 		}
 		return;
         }
         if {$nfiles > 1} {
-	        send_user {WARNING: Multiple files downloaded from slave --- rename, backup, check manually!};
+	        send_user {WARNING: Multiple files downloaded from UL --- rename, backup, check manually!};
 	}
 	if {![string equal [lindex $files end] $target]} {
 		exec mv [lindex $files end] $target;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DOWNLOOKER.cmd	Fri Jul 03 10:25:08 2020 -0400
@@ -0,0 +1,68 @@
+;======================================================================
+;                    D O W N L O O K E R . C M D 
+;                    doc: Tue Jun 15 11:46:07 2004
+;                    dlm: Fri Jul  3 10:05:14 2020
+;                    (c) 2004 A.M. Thurnherr
+;                    uE-Info: 39 42 NIL 0 0 72 2 2 8 NIL ofnI
+;======================================================================
+
+; This is the default downlooker command file
+
+; NOTES:
+;   - this version requires firmware 16.30 or higher
+;   - should contain only commands that change factory defaults
+;   - assumes that WM15 (LADCP) mode is installed
+;   - collect data in beam coordinates
+;   - staggered single-ping ensembles every 1.3s/1.5s
+;   - narrow bandwidth
+;   - 25x 8m cells
+
+; HISTORY:
+;   Jan  7, 2011: - created for Firmware 16.30 or higher from old version
+;		  - increased pinging rate
+
+WM15			; water mode 15 (LADCP)
+
+TC2			; ensembles per burst
+LP1			; pings per ensemble
+TB 00:00:02.80		; time per burst
+TE 00:00:01.30		; time per ensemble
+TP 00:00.00		; time between pings
+
+LN25			; number of depth cells
+LS0800			; bin size [cm]
+LF0			; blank after transmit [cm]
+
+LW1			; narrow bandwidth LADCP mode
+LV400			; ambiguity velocity [cm/s]
+
+SM1			; send sync pulses
+SA011			; send pulse before each ensemble
+SB0			; disable hardware-break detection on Channel B (ICN118)
+SW5500			; wait .5500 s after sending sync pulse
+SI0			; # of ensembles to wait before sending sync pulse
+
+EZ0011101		; Sensor source:
+			;	- manual speed of sound (EC)
+			;	- manual depth of transducer (ED = 0 [dm])
+			;	- measured heading (EH)
+			;	- measured pitch (EP)
+			;	- measured roll (ER)
+			;	- manual salinity (ES = 35 [psu])
+			;	- measured temperature (ET)
+
+EX00100			; coordinate transformation:
+			;	- radial beam coordinates (2 bits)
+			;	- use pitch/roll (not used for beam coords?)
+			;	- no 3-beam solutions
+			;	- no bin mapping
+
+CF11101			; Flow control:
+			;	- automatic ensemble cycling (next ens when ready)
+			;	- automatic ping cycling (ping when ready)
+			;	- binary data output
+			;	- disable serial output
+			;	- enable data recorder
+
+CK			; keep params as user defaults (across power failures)
+CS			; start pinging
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DOWNLOOKER_pre_Firmware_16.3.cmd	Fri Jul 03 10:25:08 2020 -0400
@@ -0,0 +1,73 @@
+;======================================================================
+;                    D O W N L O O K E R _ P R E _ F I R M W A R E _ 1 6 . 3 . C M D 
+;                    doc: Tue Jun 15 11:46:07 2004
+;                    dlm: Fri Jul  3 10:22:00 2020
+;                    (c) 2004 A.M. Thurnherr
+;                    uE-Info: 9 59 NIL 0 0 72 2 2 8 NIL ofnI
+;======================================================================
+
+; This is the downlooker command file for firmware pre 16.3
+
+; NOTES:
+;   - contains only commands that change factory defaults
+;   - assumes that LADCP mode is installed
+;   - collect data in beam coordinates
+;   - staggered single-ping ensembles every 1.5s/2.0s
+;   - narrow bandwidth
+;   - 25 8m cells --- reduce after determining the regional instrument
+
+; HISTORY:
+; Feb  1, 2006:
+;	- released for CLIVAR P16N
+; Oct 30, 2006:
+;	- adapted for LADDER 1
+; Nov 19, 2008:
+;	- removed CR1 for acquire V1.3
+; Oct 14, 2009:
+;	- added explicit setting of narrow band mode
+; Jul  3, 2020:
+;	- expunged master/slave terminology
+
+TC2			; ensembles per burst
+LP1			; pings per ensemble
+TB 00:00:03.50		; time per burst
+TE 00:00:01.50		; time per ensemble
+TP 00:00.00		; time between pings
+
+LN25			; number of depth cells
+LS0800			; bin size [cm]
+LF0			; blank after transmit [cm]
+
+WB1			; narrow bandwidth mode 1 (not sure if required)
+LW1			; narrow bandwidth LADCP mode
+LV250			; ambiguity velocity [cm/s]
+
+SM1			; send sync pulse
+SA011			; send pulse before each ensemble
+SW5500			; wait .5500 s after sending sync pulse
+SI0			; # of ensembles to wait before sending sync pulse
+
+EZ0011101		; Sensor source:
+			;	- manual speed of sound (EC)
+			;	- manual depth of transducer (ED = 0 [dm])
+			;	- measured heading (EH)
+			;	- measured pitch (EP)
+			;	- measured roll (ER)
+			;	- manual salinity (ES = 35 [psu])
+			;	- measured temperature (ET)
+
+EX00100			; coordinate transformation:
+			;	- radial beam coordinates (2 bits)
+			;	- use pitch/roll (not used for beam coords?)
+			;	- no 3-beam solutions
+			;	- no bin mapping
+
+CF11101			; Flow control:
+			;	- automatic ensemble cycling (next ens when ready)
+			;	- automatic ping cycling (ping when ready)
+			;	- binary data output
+			;	- disable serial output
+			;	- enable data recorder
+
+CK			; keep params as user defaults (across power failures)
+CS			; start pinging
--- a/HISTORY	Thu Nov 21 14:01:21 2013 +0000
+++ b/HISTORY	Fri Jul 03 10:25:08 2020 -0400
@@ -1,9 +1,9 @@
 #======================================================================
 #                    H I S T O R Y 
 #                    doc: Thu Aug 26 00:32:14 2010
-#                    dlm: Thu Nov 21 14:01:02 2013
+#                    dlm: Fri Jul  3 10:22:39 2020
 #                    (c) 2010 A.M. Thurnherr
-#                    uE-Info: 34 50 NIL 0 0 72 3 2 8 NIL ofnI
+#                    uE-Info: 31 57 NIL 0 0 72 3 2 8 NIL ofnI
 #======================================================================
 
 =V1.4beta=
@@ -28,7 +28,11 @@
 	      - improved doc of [CRUISE_SETUP.expect]
 	      - made mkProfile default file-checking program
 
-Dec 29, 2010: - modified libRDI.expect to always wake slave first, as this
+Dec 29, 2010: - modified libRDI.expect to always wake UL first, as this
 		was required to make acquire work reliably on DIMES UK2
 
 Nov  9, 2013: - added dir listing to endladcp{1,2}
+
+=V1.6=
+
+Jul  3, 2020: - expunged master/slave terminology
--- a/MASTER.cmd	Thu Nov 21 14:01:21 2013 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-;======================================================================
-;                    M A S T E R . C M D 
-;                    doc: Tue Jun 15 11:46:07 2004
-;                    dlm: Fri Jan  7 23:25:34 2011
-;                    (c) 2004 A.M. Thurnherr
-;                    uE-Info: 22 1 NIL 0 0 72 2 2 8 NIL ofnI
-;======================================================================
-
-; This is the default master/downlooker command file
-
-; NOTES:
-;   - this version requires firmware 16.30 or higher
-;   - should contain only commands that change factory defaults
-;   - assumes that WM15 (LADCP) mode is installed
-;   - collect data in beam coordinates
-;   - staggered single-ping ensembles every 1.3s/1.5s
-;   - narrow bandwidth
-;   - 25x 8m cells
-
-; HISTORY:
-;   Jan  7, 2011: - created for Firmware 16.30 or higher from old version
-;		  - increased pinging rate
-
-WM15			; water mode 15 (LADCP)
-
-TC2			; ensembles per burst
-LP1			; pings per ensemble
-TB 00:00:02.80		; time per burst
-TE 00:00:01.30		; time per ensemble
-TP 00:00.00		; time between pings
-
-LN25			; number of depth cells
-LS0800			; bin size [cm]
-LF0			; blank after transmit [cm]
-
-LW1			; narrow bandwidth LADCP mode
-LV400			; ambiguity velocity [cm/s]
-
-SM1			; master
-SA011			; send pulse before each ensemble
-SB0			; disable hardware-break detection on Channel B (ICN118)
-SW5500			; wait .5500 s after sending sync pulse
-SI0			; # of ensembles to wait before sending sync pulse
-
-EZ0011101		; Sensor source:
-			;	- manual speed of sound (EC)
-			;	- manual depth of transducer (ED = 0 [dm])
-			;	- measured heading (EH)
-			;	- measured pitch (EP)
-			;	- measured roll (ER)
-			;	- manual salinity (ES = 35 [psu])
-			;	- measured temperature (ET)
-
-EX00100			; coordinate transformation:
-			;	- radial beam coordinates (2 bits)
-			;	- use pitch/roll (not used for beam coords?)
-			;	- no 3-beam solutions
-			;	- no bin mapping
-
-CF11101			; Flow control:
-			;	- automatic ensemble cycling (next ens when ready)
-			;	- automatic ping cycling (ping when ready)
-			;	- binary data output
-			;	- disable serial output
-			;	- enable data recorder
-
-CK			; keep params as user defaults (across power failures)
-CS			; start pinging
--- a/MASTER_pre_Firmware_16.3.cmd	Thu Nov 21 14:01:21 2013 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-;======================================================================
-;                    M A S T E R . C M D 
-;                    doc: Tue Jun 15 11:46:07 2004
-;                    dlm: Wed Oct 14 11:27:44 2009
-;                    (c) 2004 A.M. Thurnherr
-;                    uE-Info: 41 0 NIL 0 0 72 2 2 8 NIL ofnI
-;======================================================================
-
-; This is the default master/downlooker command file
-
-; NOTES:
-;   - contains only commands that change factory defaults
-;   - assumes that LADCP mode is installed
-;   - collect data in beam coordinates
-;   - staggered single-ping ensembles every 1.5s/2.0s
-;   - narrow bandwidth
-;   - 25 8m cells --- reduce after determining the regional instrument
-
-; HISTORY:
-; Feb  1, 2006:
-;	- released for CLIVAR P16N
-; Oct 30, 2006:
-;	- adapted for LADDER 1
-; Nov 19, 2008:
-;	- removed CR1 for acquire V1.3
-; Oct 14, 2009:
-;	- added explicit setting of narrow band mode
-
-TC2			; ensembles per burst
-LP1			; pings per ensemble
-TB 00:00:03.50		; time per burst
-TE 00:00:01.50		; time per ensemble
-TP 00:00.00		; time between pings
-
-LN25			; number of depth cells
-LS0800			; bin size [cm]
-LF0			; blank after transmit [cm]
-
-WB1			; narrow bandwidth mode 1 (not sure if required)
-LW1			; narrow bandwidth LADCP mode
-LV250			; ambiguity velocity [cm/s]
-
-SM1			; master
-SA011			; send pulse before each ensemble
-SW5500			; wait .5500 s after sending sync pulse
-SI0			; # of ensembles to wait before sending sync pulse
-
-EZ0011101		; Sensor source:
-			;	- manual speed of sound (EC)
-			;	- manual depth of transducer (ED = 0 [dm])
-			;	- measured heading (EH)
-			;	- measured pitch (EP)
-			;	- measured roll (ER)
-			;	- manual salinity (ES = 35 [psu])
-			;	- measured temperature (ET)
-
-EX00100			; coordinate transformation:
-			;	- radial beam coordinates (2 bits)
-			;	- use pitch/roll (not used for beam coords?)
-			;	- no 3-beam solutions
-			;	- no bin mapping
-
-CF11101			; Flow control:
-			;	- automatic ensemble cycling (next ens when ready)
-			;	- automatic ping cycling (ping when ready)
-			;	- binary data output
-			;	- disable serial output
-			;	- enable data recorder
-
-CK			; keep params as user defaults (across power failures)
-CS			; start pinging
--- a/README	Thu Nov 21 14:01:21 2013 +0000
+++ b/README	Fri Jul 03 10:25:08 2020 -0400
@@ -1,9 +1,9 @@
 #======================================================================
 #                    R E A D M E 
 #                    doc: Sat Mar 20 23:10:10 2004
-#                    dlm: Mon Oct 18 12:55:18 2010
+#                    dlm: Fri Jul  3 10:06:32 2020
 #                    (c) 2004 A.M. Thurnherr
-#                    uE-Info: 63 8 NIL 0 0 72 3 2 8 NIL ofnI
+#                    uE-Info: 107 0 NIL 0 0 72 3 2 8 NIL ofnI
 #======================================================================
 
 =Introduction=
@@ -101,8 +101,8 @@
 =Colors=
 
 - for dual-headed systems, color is determined by the serial numbers
-  listed in [CRUISE_SETUP.expect]: red for the master and blue for the
-  slave;
+  listed in [CRUISE_SETUP.expect]: red for the downlooker and blue for the
+  uplooker;
 
 - this can be different to the colors if [bbabble] is used directly,
   because [bbabble] does not know anything about the instruments;
--- a/SLAVE.cmd	Thu Nov 21 14:01:21 2013 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-;======================================================================
-;                    S L A V E . C M D 
-;                    doc: Tue Jun 15 11:46:07 2004
-;                    dlm: Fri Jan  7 23:25:28 2011
-;                    (c) 2004 A.M. Thurnherr
-;                    uE-Info: 22 1 NIL 0 0 72 2 2 8 NIL ofnI
-;======================================================================
-
-; This is the default slave/uplooker command file
-
-; NOTES:
-;   - this version requires firmware 16.30 or higher
-;   - contains only commands that change factory defaults
-;   - assumes that WM15 (LADCP) mode is installed
-;   - collect data in beam coordinates
-;   - single-ping ensembles; timing determined by [MASTER.cmd]
-;   - narrow bandwidth
-;   - 25x 8m cells
-
-; HISTORY:
-;   Jan  7, 2011: - created for Firmware 16.30 or higher from old version
-;		  - increased pinging rate
-
-WM15			; water mode 15 (LADCP)
-
-LP1			; pings per ensemble
-TP 00:00.00		; time between pings
-TE 00:00:00.00		; time per ensemble
-
-LN25			; number of depth cells
-LS0800			; bin size [cm]
-LF0			; blank after transmit [cm]
-
-WB1			; narrow bandwidth mode 1 (not sure if required)
-LW1			; narrow bandwidth LADCP mode
-LV400			; ambiguity velocity [cm/s]
-
-SM2			; slave
-SA011			; wait for pulse before ensemble
-SB0			; disable hardware-break detection on Channel B (ICN118)
-
-EZ0011101		; Sensor source:
-			;	- manual speed of sound (EC)
-			;	- manual depth of transducer (ED = 0 [dm])
-			;	- measured heading (EH)
-			;	- measured pitch (EP)
-			;	- measured roll (ER)
-			;	- manual salinity (ES = 35 [psu])
-			;	- measured temperature (ET)
-
-EX00100			; coordinate transformation:
-			;	- radial beam coordinates (2 bits)
-			;	- use pitch/roll (not used for beam coords?)
-			;	- no 3-beam solutions
-			;	- no bin mapping
-
-CF11101			; Flow control:
-			;	- automatic ensemble cycling (next ens when ready)
-			;	- automatic ping cycling (ping when ready)
-			;	- binary data output
-			;	- disable serial output
-			;	- enable data recorder
-
-CK			; keep params as user defaults (across power failures)
-CS			; start pinging
--- a/SLAVE_pre_Firmware_16.3.cmd	Thu Nov 21 14:01:21 2013 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-;======================================================================
-;                    S L A V E . C M D 
-;                    doc: Tue Jun 15 11:46:07 2004
-;                    dlm: Wed Oct 14 11:28:19 2009
-;                    (c) 2004 A.M. Thurnherr
-;                    uE-Info: 5 44 NIL 0 0 72 2 2 8 NIL ofnI
-;======================================================================
-
-; This is the default slave/uplooker command file
-
-; NOTES:
-;   - contains only commands that change factory defaults
-;   - assumes that LADCP mode is installed
-;   - collect data in beam coordinates
-;   - single-ping ensembles; timing determined by [MASTER.cmd]
-;   - narrow bandwidth
-;   - 25 8m cells --- reduce after determining the regional instrument
-;     range
-
-; HISTORY:
-; Feb  1, 2006:
-;	- released for CLIVAR P16N
-; Oct 30, 2006:
-;	- cleaned up for LADDER 1
-; Nov 19, 2008:
-;	- removed CR1 for acquire V1.3
-; Oct 14, 2009:
-;	- added explicit setting of narrow band mode
-
-LP1			; pings per ensemble
-TP 00:00.00		; time between pings
-TE 00:00:00.00		; time per ensemble
-
-LN25			; number of depth cells
-LS0800			; bin size [cm]
-LF0			; blank after transmit [cm]
-
-WB1			; narrow bandwidth mode 1 (not sure if required)
-LW1			; narrow bandwidth LADCP mode
-LV250			; ambiguity velocity [cm/s]
-
-SM2			; slave
-SA011			; wait for pulse before ensemble
-
-EZ0011101		; Sensor source:
-			;	- manual speed of sound (EC)
-			;	- manual depth of transducer (ED = 0 [dm])
-			;	- measured heading (EH)
-			;	- measured pitch (EP)
-			;	- measured roll (ER)
-			;	- manual salinity (ES = 35 [psu])
-			;	- measured temperature (ET)
-
-EX00100			; coordinate transformation:
-			;	- radial beam coordinates (2 bits)
-			;	- use pitch/roll (not used for beam coords?)
-			;	- no 3-beam solutions
-			;	- no bin mapping
-
-CF11101			; Flow control:
-			;	- automatic ensemble cycling (next ens when ready)
-			;	- automatic ping cycling (ping when ready)
-			;	- binary data output
-			;	- disable serial output
-			;	- enable data recorder
-
-CK			; keep params as user defaults (across power failures)
-CS			; start pinging
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/UPLOOKER.cmd	Fri Jul 03 10:25:08 2020 -0400
@@ -0,0 +1,66 @@
+;======================================================================
+;                    U P L O O K E R . C M D 
+;                    doc: Tue Jun 15 11:46:07 2004
+;                    dlm: Fri Jul  3 10:07:26 2020
+;                    (c) 2004 A.M. Thurnherr
+;                    uE-Info: 9 22 NIL 0 0 72 2 2 8 NIL ofnI
+;======================================================================
+
+; This is the default uplooker command file
+
+; NOTES:
+;   - this version requires firmware 16.30 or higher
+;   - contains only commands that change factory defaults
+;   - assumes that WM15 (LADCP) mode is installed
+;   - collect data in beam coordinates
+;   - single-ping ensembles; timing determined by [DOWNLOOKER.cmd]
+;   - narrow bandwidth
+;   - 25x 8m cells
+
+; HISTORY:
+;   Jan  7, 2011: - created for Firmware 16.30 or higher from old version
+;		  - increased pinging rate
+;   Jul  3, 2020: - expunged master/slave terminology
+
+WM15			; water mode 15 (LADCP)
+
+LP1			; pings per ensemble
+TP 00:00.00		; time between pings
+TE 00:00:00.00		; time per ensemble
+
+LN25			; number of depth cells
+LS0800			; bin size [cm]
+LF0			; blank after transmit [cm]
+
+WB1			; narrow bandwidth mode 1 (not sure if required)
+LW1			; narrow bandwidth LADCP mode
+LV400			; ambiguity velocity [cm/s]
+
+SM2			; receive sync pulses
+SA011			; wait for pulse before ensemble
+SB0			; disable hardware-break detection on Channel B (ICN118)
+
+EZ0011101		; Sensor source:
+			;	- manual speed of sound (EC)
+			;	- manual depth of transducer (ED = 0 [dm])
+			;	- measured heading (EH)
+			;	- measured pitch (EP)
+			;	- measured roll (ER)
+			;	- manual salinity (ES = 35 [psu])
+			;	- measured temperature (ET)
+
+EX00100			; coordinate transformation:
+			;	- radial beam coordinates (2 bits)
+			;	- use pitch/roll (not used for beam coords?)
+			;	- no 3-beam solutions
+			;	- no bin mapping
+
+CF11101			; Flow control:
+			;	- automatic ensemble cycling (next ens when ready)
+			;	- automatic ping cycling (ping when ready)
+			;	- binary data output
+			;	- disable serial output
+			;	- enable data recorder
+
+CK			; keep params as user defaults (across power failures)
+CS			; start pinging
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/UPLOOKER_pre_Firmware_16.3.cmd	Fri Jul 03 10:25:08 2020 -0400
@@ -0,0 +1,70 @@
+;======================================================================
+;                    U P L O O K E R _ P R E _ F I R M W A R E _ 1 6 . 3 . C M D 
+;                    doc: Tue Jun 15 11:46:07 2004
+;                    dlm: Fri Jul  3 10:08:36 2020
+;                    (c) 2004 A.M. Thurnherr
+;                    uE-Info: 30 43 NIL 0 0 72 2 2 8 NIL ofnI
+;======================================================================
+
+; This is the uplooker command file for firmware pre 16.3
+
+; NOTES:
+;   - contains only commands that change factory defaults
+;   - assumes that LADCP mode is installed
+;   - collect data in beam coordinates
+;   - single-ping ensembles; timing determined by [DOWNLOOKER.cmd]
+;   - narrow bandwidth
+;   - 25 8m cells --- reduce after determining the regional instrument
+;     range
+
+; HISTORY:
+; Feb  1, 2006:
+;	- released for CLIVAR P16N
+; Oct 30, 2006:
+;	- cleaned up for LADDER 1
+; Nov 19, 2008:
+;	- removed CR1 for acquire V1.3
+; Oct 14, 2009:
+;	- added explicit setting of narrow band mode
+; Jul  3, 2020:
+;	- expunged master/slave terminology
+
+LP1			; pings per ensemble
+TP 00:00.00		; time between pings
+TE 00:00:00.00		; time per ensemble
+
+LN25			; number of depth cells
+LS0800			; bin size [cm]
+LF0			; blank after transmit [cm]
+
+WB1			; narrow bandwidth mode 1 (not sure if required)
+LW1			; narrow bandwidth LADCP mode
+LV250			; ambiguity velocity [cm/s]
+
+SM2			; receive sync pulses
+SA011			; wait for pulse before ensemble
+
+EZ0011101		; Sensor source:
+			;	- manual speed of sound (EC)
+			;	- manual depth of transducer (ED = 0 [dm])
+			;	- measured heading (EH)
+			;	- measured pitch (EP)
+			;	- measured roll (ER)
+			;	- manual salinity (ES = 35 [psu])
+			;	- measured temperature (ET)
+
+EX00100			; coordinate transformation:
+			;	- radial beam coordinates (2 bits)
+			;	- use pitch/roll (not used for beam coords?)
+			;	- no 3-beam solutions
+			;	- no bin mapping
+
+CF11101			; Flow control:
+			;	- automatic ensemble cycling (next ens when ready)
+			;	- automatic ping cycling (ping when ready)
+			;	- binary data output
+			;	- disable serial output
+			;	- enable data recorder
+
+CK			; keep params as user defaults (across power failures)
+CS			; start pinging
--- a/abort1	Thu Nov 21 14:01:21 2013 +0000
+++ b/abort1	Fri Jul 03 10:25:08 2020 -0400
@@ -2,9 +2,9 @@
 #======================================================================
 #                    A B O R T 1 
 #                    doc: Wed Mar 10 22:23:52 2004
-#                    dlm: Thu Aug 26 00:20:26 2010
+#                    dlm: Fri Jul  3 10:09:29 2020
 #                    (c) 2004 A.M. Thurnherr
-#                    uE-Info: 15 48 NIL 0 0 72 2 2 8 NIL ofnI
+#                    uE-Info: 1 0 NIL 0 0 72 2 2 8 NIL ofnI
 #======================================================================
 
 # HISTORY:
@@ -13,6 +13,7 @@
 #  Nov 19, 2008: - added version
 #  Aug 25, 2010: - DEFAULTS.expect -> CRUISE_SETUP.expect
 #		 - libBB.expect -> libRDI.expect
+#  Jul  3, 2020: - expunged master/slave terminology
 
 #----------------------------------------------------------------------
 # Setup
@@ -42,8 +43,8 @@
 
 send_user "\nGetting station number...";
 set deployment_name [get_deployment_name];
-if {[scan $deployment_name $master_deployment_name_fmt stn] != 1} {
-	send_error "$deployment_name $master_deployment_name_fmt";
+if {[scan $deployment_name $DL_deployment_name_fmt stn] != 1} {
+	send_error "$deployment_name $DL_deployment_name_fmt";
 	error "Can't get station number";
 }
 set stnstr [format $stn_format $stn];
--- a/abort2	Thu Nov 21 14:01:21 2013 +0000
+++ b/abort2	Fri Jul 03 10:25:08 2020 -0400
@@ -2,9 +2,9 @@
 #======================================================================
 #                    A B O R T 2 
 #                    doc: Wed Mar 10 22:23:52 2004
-#                    dlm: Thu Aug 26 00:25:52 2010
+#                    dlm: Fri Jul  3 10:11:27 2020
 #                    (c) 2004 A.M. Thurnherr
-#                    uE-Info: 22 39 NIL 0 0 72 2 2 8 NIL ofnI
+#                    uE-Info: 57 20 NIL 0 0 72 2 2 8 NIL ofnI
 #======================================================================
 
 # HISTORY:
@@ -12,6 +12,7 @@
 #  Nov 19, 2008: - added version
 #  Aug 25, 2010: - DEFAULTS.expect -> CRUISE_SETUP.expect
 #		 - libBB.expect -> libRDI.expect
+#  Jul  3, 2020: - expunged master/slave terminology
 
 #----------------------------------------------------------------------
 # Setup
@@ -40,26 +41,26 @@
 reset_two_instruments;
 
 send_user "\nGetting station number...";
-select_master 0;
-set master_deployment_name [get_deployment_name];
-if {[scan $master_deployment_name $master_deployment_name_fmt master_stn] != 1} {
-	send_error "$master_deployment_name $master_deployment_name_fmt";
-	error "Can't get station number of master";
+select_DL 0;
+set DL_deployment_name [get_deployment_name];
+if {[scan $DL_deployment_name $DL_deployment_name_fmt DL_stn] != 1} {
+	send_error "$DL_deployment_name $DL_deployment_name_fmt";
+	error "Can't get station number of DL";
 }
-select_slave; set slave_deployment_name [get_deployment_name];
-set slave_deployment_name [get_deployment_name];
-if {[scan $slave_deployment_name $slave_deployment_name_fmt slave_stn] != 1} {
-	error "Can't get station number of slave";
+select_UL; set UL_deployment_name [get_deployment_name];
+set UL_deployment_name [get_deployment_name];
+if {[scan $UL_deployment_name $UL_deployment_name_fmt UL_stn] != 1} {
+	error "Can't get station number of UL";
 }
-if {$master_stn != $slave_stn} {
-	select_master; put_to_sleep; select_slave; put_to_sleep;
-	error "Master/slave stations disagree";
+if {$DL_stn != $UL_stn} {
+	select_DL; put_to_sleep; select_UL; put_to_sleep;
+	error "DL/UL stations disagree";
 }
-set stn [format $stn_format $master_stn];
+set stn [format $stn_format $DL_stn];
 send_user "\[$stn\]";
 
 send_user "\nPutting instruments to sleep..."
-select_master; put_to_sleep; select_slave; put_to_sleep;
+select_DL; put_to_sleep; select_UL; put_to_sleep;
 
 set cast_dir [format %s/%s $raw_dir $stn];
 if {![file isdirectory $cast_dir]} {
--- a/bbabble	Thu Nov 21 14:01:21 2013 +0000
+++ b/bbabble	Fri Jul 03 10:25:08 2020 -0400
@@ -2,12 +2,12 @@
 #======================================================================
 #                    B B A B B L E 
 #                    doc: Thu Mar 11 01:00:51 2004
-#                    dlm: Wed Dec  1 14:31:14 2010
+#                    dlm: Fri Jul  3 10:12:51 2020
 #                    (c) 2004 A.M. Thurnherr
-#                    uE-Info: 49 73 NIL 0 0 72 10 2 8 NIL ofnI
+#                    uE-Info: 58 0 NIL 0 0 72 10 2 8 NIL ofnI
 #======================================================================
 
-# Broad Band Babble --- talk to 1--2 RDI ADCPs
+# Broad Band Babble --- talk to 1--2 RDI ADCPs or other serial instruments
 
 # HISTORY:
 #  Mar  5, 2004: - written first, one-page-long proof-of-concept version
@@ -47,6 +47,14 @@
 #  Aug 26, 2010: - added -y)modem receive
 #  Oct 18, 2010: - added -u option to default ymodem receive call
 #  Dec  1, 2010: - BUG: -y with empty-string option argument did not work
+#  Jun 18, 2018: - explicitly implemented code to disable download on -y ""
+#		 - BUG: one debug message had -s wrong way round
+#		 - added state-change test required when Arduino closes USB connection
+#		 - BUG: non-existing ttys had stupid error messages
+#		 - made -s default and added -a to show async output, which is for debugging only
+#		 - changed default to use -m unless 2 devices are chosen
+#		 - begin implementing non-R)DI mode (currently, upload only)
+#  Jul  3, 2020: - expunged master/slave terminology
 
 #----------------------------------------------------------------------
 # USAGE
@@ -54,33 +62,25 @@
 
 use Getopt::Std;
 
-$USAGE = "Usage: $0 [-m)onochrome] [-s)uppress async output] " .
-		   "[-y)modem receive <cmd>] " .
+$USAGE = "Usage: $0 [-m)onochrome] [-s)uppress async output(default)] [produce -a)sync ouput]" .
+		   "[-y)modem receive <cmd[\"\" for none]>] [non-R)DI mode]" .
 		    "<tty0_device> [tty1_device]\n";
 
-die($USAGE) unless (getopts("msy:"));
+die($USAGE) unless (getopts("amRsy:"));
+$opt_s = 1 unless ($opt_a);
+$opt_m = 1 unless (@ARGV > 1);
+
+#============================== USER MANUAL ==============================
 
 # bbabble is started with 1 or 2 arguments, which are tty special files.
 # On LINUX, /dev/ttyS0 is com1: /dev/ttyS1 is com2: /dev/ttyUSB0 is the
 # first USB tty port, /dev/ttyUSB1 is the 2nd, &c. If two ttys are
 # specified bbabble can talk to two instruments in parallel. Communication
 # with The first (second) port is shown in red (blue). For consistency
-# with the color scheme used by the LDEO expect scripts, the master
-# (downlooker) should be connected to the first tty given on the command
-# line.
-
-# On some (especially BSD-based) systems there are separate tty
-# device files for dialin and dialout operations. Only the latter work
-# with bbabble. They traditionally have names matching /dev/cu* (e.g.
-# /dev/cuad0 for the first serial # port in FreeBSD).
-
-# In order to have read/write access to the device files, the user
-# that is to run bbabble should be added to the group that owns
-# the tty device files (e.g. dialer on FreeBSD).
-
-# The -m option suppresses color ouput and -s suppresses the asynchronous
-# messages generated by bbabble and printed in curly braces. Both
-# options should be used if bbabble is run within expect(1).
+# with the color scheme used by the LDEO expect scripts, the instrument
+# sending the sync pulses (downlooker) should be connected to the first
+# tty given on the command line. When only one port is specified, the
+# -m)onochrome option is assumed.
 
 # Upon startup, bbabble prints a help message showing the current
 # "foreground" instrument as well as a list of legal keyboard commands.
@@ -115,6 +115,17 @@
 # instrument. The command file may contain any valid RDI command, empty
 # lines, as well as comments beginning with a semicolon (;).
 
+#====================== USAGE NOTES ==============================
+
+# On some (especially BSD-based) systems there are separate tty
+# device files for dialin and dialout operations. Only the latter work
+# with bbabble. They traditionally have names matching /dev/cu* (e.g.
+# /dev/cuad0 for the first serial # port in FreeBSD).
+
+# In order to have read/write access to the device files, the user
+# that is to run bbabble should be added to the group that owns
+# the tty device files (e.g. dialer on FreeBSD).
+
 # Upon startup, bbabble expects to communicate with the ADCPs at 9600bps
 # (baud). If the user sends a BREAK (^C) and garbage is produced the
 # instrument's default baud rate is probably set to a different value.
@@ -247,15 +258,17 @@
 # If -y is not given, bbabble trys to find one of the standard ymodem
 # executables. Using -y allows options to be set.
 
-if (length($opt_y) > 0) {
-	$receive_ymodem = $opt_y;
+if (defined($opt_y)) {
+  if (length($opt_y) > 0) {
+    $receive_ymodem = $opt_y;
+  }
 } else {
-	chomp($receive_ymodem = `which lrb 2>/dev/null`);
-	chomp($receive_ymodem = `which	rb 2>/dev/null`)
-		if ($receive_ymodem eq '');
-	die("$0: cannot find rb or lrb\n")
-		if ($receive_ymodem eq '');
-	$receive_ymodem .= ' -u';		# keep upper-case filenames
+  chomp($receive_ymodem = `which lrb 2>/dev/null`);
+  chomp($receive_ymodem = `which  rb 2>/dev/null`)
+    if ($receive_ymodem eq '');
+  die("$0: cannot find rb or lrb\n")
+    if ($receive_ymodem eq '');
+  $receive_ymodem .= ' -u';		  # keep upper-case filenames
 }
 
 # When uploading command files, each command is sent after a prompt
@@ -330,10 +343,12 @@
 }
 
 my(@sfd);					# TTYs
+-c $TTY0 || die("$TTY0: no such file or directory\n");
 open(TTY0,'+>',$TTY0) || die("$TTY0: $!\n");
 $sfd[0] = fileno(TTY0);
 if (defined($TTY1)) {
   select(undef,undef,undef,$naptime);		# KEYSPAN 49W requires this
+  -c $TTY1 || die("$TTY1: no such file or directory\n");
   open(TTY1,'+>',$TTY1) || die("$TTY1: $!\n");
   $sfd[1] = fileno(TTY1);
 }
@@ -386,7 +401,7 @@
  			      | POSIX::CS8());
   $t->setcc(POSIX::VMIN,1); $t->setcc(POSIX::VTIME,0);
   set_speed($t,$id,$DEFAULT_SPEED[$id]);
-  if ($opt_s) {
+  unless ($opt_s) {
     print($COLOR[$id]) unless ($opt_m);
     print("{TTY $id READY}");
   }
@@ -402,7 +417,9 @@
              	   $rcv_state[$id] == $BUFFER);
       vec($rin,$sfd[$id],1) = 1;
     }
-    
+    last unless ($rcv_state[$id] == $ECHO ||		# needed when Arduino USB interface is closed at other end
+                 $rcv_state[$id] == $BUFFER);
+
     #------------------------------
     # DOWNLOAD DATA FROM INSTRUMENT
     #------------------------------
@@ -807,7 +824,9 @@
     if ($rcv_state[$cid]&$DOWNLOAD){
       print(STDERR "$COLOR[$cid]\{DOWNLOAD IN PROGRESS --- ^C TO ABORT}\n");
     } else {
-      $tmp = $rcv_state[$cid]&~$ECHO; $rcv_state[$cid] = $tmp|$BUFFER;
+      unless ($opt_R) {
+        $tmp = $rcv_state[$cid]&~$ECHO; $rcv_state[$cid] = $tmp|$BUFFER;
+      }
       print($RESET);
       cookedmode();
       do {
@@ -815,8 +834,10 @@
 	if ($_ eq '') {				# no file name given
 	  print("{upload canceled}\n");
 	  rawmode();
-      	  $tmp = $rcv_state[$cid]&~$BUFFER; $rcv_state[$cid] = $tmp|$FLUSH;
-      	  wait_for_bit_cleared($cid,$FLUSH);
+	  unless ($opt_R) {
+       	    $tmp = $rcv_state[$cid]&~$BUFFER; $rcv_state[$cid] = $tmp|$FLUSH;
+      	    wait_for_bit_cleared($cid,$FLUSH);
+      	  }
       	  next KEYSTROKE;
 	}
 	unless (open(CF,$_)) {
@@ -825,28 +846,33 @@
         } 
       } while (0);
       rawmode();
-      $tmp = $rcv_state[$cid]&~$BUFFER; $rcv_state[$cid] = $tmp|$FLUSH;
-      wait_for_bit_cleared($cid,$FLUSH);
 
-      my($cmd) = next_cmd(CF);			# read ahead (last cmd may ...
-      my($next_cmd);				# ... not generate prompt)
-      while (defined($next_cmd = next_cmd(CF))) {
-      	$rcv_state[$cid] = $UPLOAD;
-      	if ($cmd eq '<BREAK>') {
-      	  send_BREAK($cid);
-      	} else {
-	  POSIX::write($sfd[$cid],"$cmd\r",length($cmd)+1);
+      if ($opt_R) {				# non-RDI mode: dump entire file contents raw
+      	my($buf,$nread);
+      	while (($nread = read(CF,$buf,1)) > 0) {	# nice small chunks
+      	  POSIX::write($sfd[$cid],$buf,$nread);
+      	}
+      } else {					# RDI mode: parse command file and send command by command
+        $tmp = $rcv_state[$cid]&~$BUFFER; $rcv_state[$cid] = $tmp|$FLUSH;
+        wait_for_bit_cleared($cid,$FLUSH);
+	my($cmd) = next_cmd(CF);		  # read ahead (last cmd may ...
+	my($next_cmd);				  # ... not generate prompt)
+	while (defined($next_cmd = next_cmd(CF))) {
+	  $rcv_state[$cid] = $UPLOAD;
+	  if ($cmd eq '<BREAK>') {
+	    send_BREAK($cid);
+	  } else {
+	    POSIX::write($sfd[$cid],"$cmd\r",length($cmd)+1);
+	  }
+	  $cmd = $next_cmd;
+	  wait_for_bit_set($cid,$ECHO); # NOT SURE!!!
+	  $tmp = $rcv_state[$cid]&~$ECHO; $rcv_state[$cid] = $tmp|$BUFFER;
+	  print("\n${RESET}{upload finished}\n");
+          $tmp = $rcv_state[$cid]&~$BUFFER; $rcv_state[$cid] = $tmp|$FLUSH;
+	  wait_for_bit_cleared($cid,$FLUSH);
 	}
-      	$cmd = $next_cmd;
-        wait_for_bit_set($cid,$ECHO); # NOT SURE!!!
       }
       close(CF);
-      POSIX::write($sfd[$cid],"$cmd\r",length($cmd)+1); # last cmd
-
-      $tmp = $rcv_state[$cid]&~$ECHO; $rcv_state[$cid] = $tmp|$BUFFER;
-      print("\n${RESET}{upload finished}\n");
-      $tmp = $rcv_state[$cid]&~$BUFFER; $rcv_state[$cid] = $tmp|$FLUSH;
-      wait_for_bit_cleared($cid,$FLUSH);
     }
   }
 
@@ -855,15 +881,19 @@
   #--------------------------
 
   elsif ($char == 24) {
-    if ($rcv_state[$cid]&$DOWNLOAD){
-      print(STDERR "$COLOR[$cid]\{DOWNLOAD IN PROGRESS --- ^C TO ABORT}\n");
+    if (defined($receive_ymodem)) {
+      if ($rcv_state[$cid]&$DOWNLOAD){
+	print(STDERR "$COLOR[$cid]\{DOWNLOAD IN PROGRESS --- ^C TO ABORT}\n");
+      } else {
+	$rcv_state[$cid] = $SET_DOWNLOAD_SPEED;
+	wait_for_bit_set($cid,$ECHO);
+	$rcv_state[$cid] = $DOWNLOAD;		  # start waiting for instr. ready
+	POSIX::write($sfd[$cid],"$START_DOWNLOAD_RDI_COMMAND\r",
+				length($START_DOWNLOAD_RDI_COMMAND)+1);
+	wait_for_bit_set($cid,$ECHO);
+      }
     } else {
-      $rcv_state[$cid] = $SET_DOWNLOAD_SPEED;
-      wait_for_bit_set($cid,$ECHO);
-      $rcv_state[$cid] = $DOWNLOAD;		# start waiting for instr. ready
-      POSIX::write($sfd[$cid],"$START_DOWNLOAD_RDI_COMMAND\r",
-			      length($START_DOWNLOAD_RDI_COMMAND)+1);
-      wait_for_bit_set($cid,$ECHO);
+    	print(STDERR "$COLOR[$cid]\{NO YMODEM RECEIVER PROGRAM SPECIFIED}\n");
     }
   }
 
--- a/checkfiles1	Thu Nov 21 14:01:21 2013 +0000
+++ b/checkfiles1	Fri Jul 03 10:25:08 2020 -0400
@@ -2,9 +2,9 @@
 #======================================================================
 #                    C H E C K F I L E S 1 
 #                    doc: Wed Mar 10 22:23:52 2004
-#                    dlm: Thu Aug 26 00:26:00 2010
+#                    dlm: Fri Jul  3 10:13:20 2020
 #                    (c) 2004 A.M. Thurnherr
-#                    uE-Info: 26 39 NIL 0 0 72 2 2 8 NIL ofnI
+#                    uE-Info: 19 36 NIL 0 0 72 2 2 8 NIL ofnI
 #======================================================================
 
 # HISTORY:
@@ -16,6 +16,7 @@
 #  Nov 19, 2008: - added version
 #  Aug 25, 2010: - DEFAULTS.expect -> CRUISE_SETUP.expect
 #		 - libBB.expect -> libRDI.expect
+#  Jul  3, 2020: - expunged master/slave terminology
 
 #----------------------------------------------------------------------
 # Setup
@@ -45,8 +46,8 @@
 
 send_user "\nGetting station number...";
 set deployment_name [get_deployment_name];
-if {[scan $deployment_name $master_deployment_name_fmt stn] != 1} {
-	send_error "$deployment_name $master_deployment_name_fmt";
+if {[scan $deployment_name $DL_deployment_name_fmt stn] != 1} {
+	send_error "$deployment_name $DL_deployment_name_fmt";
 	error "Can't get station number";
 }
 set stnstr [format $stn_format $stn];
@@ -70,10 +71,10 @@
 
 send_user "\nChecking data file...\n";
 set_color 0;
-check_data [format %s000.000 [format $master_deployment_name_fmt $stn]];
+check_data [format %s000.000 [format $DL_deployment_name_fmt $stn]];
 set_color;
 
 send_user "Backing up data file...";
-backup_master_data $stn;
+backup_DL_data $stn;
 
 send_user "\nDone\n"
--- a/checkfiles2	Thu Nov 21 14:01:21 2013 +0000
+++ b/checkfiles2	Fri Jul 03 10:25:08 2020 -0400
@@ -2,9 +2,9 @@
 #======================================================================
 #                    C H E C K F I L E S 2 
 #                    doc: Wed Mar 10 22:23:52 2004
-#                    dlm: Thu Aug 26 00:26:06 2010
+#                    dlm: Fri Jul  3 10:14:00 2020
 #                    (c) 2004 A.M. Thurnherr
-#                    uE-Info: 27 39 NIL 0 0 72 2 2 8 NIL ofnI
+#                    uE-Info: 90 18 NIL 0 0 72 2 2 8 NIL ofnI
 #======================================================================
 
 # HISTORY:
@@ -17,6 +17,7 @@
 #  Nov 19, 2008: - added version
 #  Aug 25, 2010: - DEFAULTS.expect -> CRUISE_SETUP.expect
 #		 - libBB.expect -> libRDI.expect
+#  Jul  3, 2020: - expunged master/slave terminology
 
 #----------------------------------------------------------------------
 # Setup
@@ -45,27 +46,27 @@
 reset_two_instruments;
 
 send_user "\nGetting station number...";
-select_master 0;
-set master_deployment_name [get_deployment_name];
-if {[scan $master_deployment_name $master_deployment_name_fmt master_stn] != 1} {
-	send_error "$master_deployment_name $master_deployment_name_fmt";
-	error "Can't get station number of master";
+select_DL 0;
+set DL_deployment_name [get_deployment_name];
+if {[scan $DL_deployment_name $DL_deployment_name_fmt DL_stn] != 1} {
+	send_error "$DL_deployment_name $DL_deployment_name_fmt";
+	error "Can't get station number of DL";
 }
-select_slave; set slave_deployment_name [get_deployment_name];
-set slave_deployment_name [get_deployment_name];
-if {[scan $slave_deployment_name $slave_deployment_name_fmt slave_stn] != 1} {
-	error "Can't get station number of slave";
+select_UL; set UL_deployment_name [get_deployment_name];
+set UL_deployment_name [get_deployment_name];
+if {[scan $UL_deployment_name $UL_deployment_name_fmt UL_stn] != 1} {
+	error "Can't get station number of UL";
 }
-if {$master_stn != $slave_stn} {
-	select_master; put_to_sleep; select_slave; put_to_sleep;
-	error "Master/slave stations disagree";
+if {$DL_stn != $UL_stn} {
+	select_DL; put_to_sleep; select_UL; put_to_sleep;
+	error "DL/UL stations disagree";
 }
-set stn [format $stn_format $master_stn];
+set stn [format $stn_format $DL_stn];
 send_user "\[$stn\]";
 
 set cast_dir [format %s/%s $raw_dir $stn];
 if {![file isdirectory $cast_dir]} {
-	select_master; put_to_sleep; select_slave; put_to_sleep;
+	select_DL; put_to_sleep; select_UL; put_to_sleep;
 	error "cast directory $cast_dir does not exist!";
 }
 
@@ -80,13 +81,13 @@
 start_logging [format %s_%s.log $tmp $stn];
 
 send_user "\nChecking data files...\n";
-set_color 0; check_data [format %s000.000 [format $master_deployment_name_fmt $master_stn]];
-set_color 1; check_data [format %s000.000 [format $slave_deployment_name_fmt $slave_stn]];
+set_color 0; check_data [format %s000.000 [format $DL_deployment_name_fmt $DL_stn]];
+set_color 1; check_data [format %s000.000 [format $UL_deployment_name_fmt $UL_stn]];
 set_color;
 
 send_user "Backing up data files...";
-backup_master_data $master_stn;
-backup_slave_data $slave_stn;
+backup_DL_data $DL_stn;
+backup_UL_data $UL_stn;
 
 send_user "\nDone\n"
 
--- a/dir2	Thu Nov 21 14:01:21 2013 +0000
+++ b/dir2	Fri Jul 03 10:25:08 2020 -0400
@@ -2,9 +2,9 @@
 #======================================================================
 #                    D I R 2 
 #                    doc: Mon Mar  8 02:57:35 2004
-#                    dlm: Wed Dec  1 01:28:07 2010
+#                    dlm: Fri Jul  3 10:14:53 2020
 #                    (c) 2004 A.M. Thurnherr
-#                    uE-Info: 16 10 NIL 0 0 72 2 2 8 NIL ofnI
+#                    uE-Info: 36 34 NIL 0 0 72 2 2 8 NIL ofnI
 #======================================================================
 
 # HISTORY:
@@ -12,6 +12,7 @@
 #  Nov 19, 2008: - added version
 #  Aug 25, 2010: - DEFAULTS.expect -> CRUISE_SETUP.expect
 #        	 - libBB.expect -> libRDI.expect
+#  Jul  3, 2020: - expunged master/UL terminology
 
 log_user 0;
 
@@ -28,10 +29,10 @@
 wait_for_startup;
 reset_two_instruments;
 
-select_master 0; send_user "\n"; list_dir;
-select_slave; send_user "\n"; list_dir;
+select_DL 0; send_user "\n"; list_dir;
+select_UL; send_user "\n"; list_dir;
 
 send_user "\nPutting instruments to sleep..."
-select_master; put_to_sleep; select_slave; put_to_sleep;
+select_DL; put_to_sleep; select_UL; put_to_sleep;
 
 send_user "\nDone\n"
--- a/endladcp1	Thu Nov 21 14:01:21 2013 +0000
+++ b/endladcp1	Fri Jul 03 10:25:08 2020 -0400
@@ -1,10 +1,10 @@
 #!/usr/bin/expect -f
 #======================================================================
-#                    / U S E R S / L A D C P / B I N / L A D C P _ A C Q U I R E / E N D L A D C P 1 
+#                    E N D L A D C P 1 
 #                    doc: Wed Mar 10 22:23:52 2004
-#                    dlm: Sun Nov 10 04:15:47 2013
+#                    dlm: Fri Jul  3 10:15:18 2020
 #                    (c) 2004 A.M. Thurnherr
-#                    uE-Info: 58 0 NIL 0 0 72 2 2 8 NIL ofnI
+#                    uE-Info: 123 9 NIL 0 0 72 2 2 8 NIL ofnI
 #======================================================================
 
 # HISTORY:
@@ -20,6 +20,7 @@
 #  Aug 26, 2010: - added support for ymodem_download_cmd
 #  Dec  1, 2010: - BUG: ymodem_receive_cmd instead of ymodem_download_cmd
 #  Nov 10, 2013: - added dir listing before downlaod
+#  Jul  3, 2020: - expunged master/slave terminology
 
 #----------------------------------------------------------------------
 # Setup
@@ -61,8 +62,8 @@
 
 send_user "\nGetting station number...";
 set deployment_name [get_deployment_name];
-if {[scan $deployment_name $master_deployment_name_fmt stn] != 1} {
-	send_error "$deployment_name $master_deployment_name_fmt";
+if {[scan $deployment_name $DL_deployment_name_fmt stn] != 1} {
+	send_error "$deployment_name $DL_deployment_name_fmt";
 	error "Can't get station number";
 }
 set stnstr [format $stn_format $stn];
@@ -115,10 +116,10 @@
 	
 send_user "\nChecking data file...\n";
 set_color 0;
-check_data [format %s000.000 [format $master_deployment_name_fmt $stn]];
+check_data [format %s000.000 [format $DL_deployment_name_fmt $stn]];
 set_color;
 
 send_user "Backing up data file...";
-backup_master_data $stn;
+backup_DL_data $stn;
 
 send_user "\nDone\n"
--- a/endladcp2	Thu Nov 21 14:01:21 2013 +0000
+++ b/endladcp2	Fri Jul 03 10:25:08 2020 -0400
@@ -1,10 +1,10 @@
 #!/usr/bin/expect -f
 #======================================================================
-#                    / U S E R S / L A D C P / B I N / L A D C P _ A C Q U I R E / E N D L A D C P 2 
+#                    E N D L A D C P 2 
 #                    doc: Wed Mar 10 22:23:52 2004
-#                    dlm: Sun Nov 10 04:14:09 2013
+#                    dlm: Fri Jul  3 10:22:21 2020
 #                    (c) 2004 A.M. Thurnherr
-#                    uE-Info: 25 58 NIL 0 0 72 2 2 8 NIL ofnI
+#                    uE-Info: 19 70 NIL 0 0 72 2 2 8 NIL ofnI
 #======================================================================
 
 # HISTORY:
@@ -16,13 +16,14 @@
 #  Feb 14, 2006: - BUG: log files were written to bin dir
 #  Oct  4, 2006: - adapted to older expect version
 #  Oct 28, 2006: - allowed for lrb downcasing filenames
-#  Nov  6, 2006: - BUG: error when master download finished much before slave
+#  Nov  6, 2006: - BUG: error when DL download finished much before UL
 #  Nov 19, 2008: - added version
 #  Aug 25, 2010: - DEFAULTS.expect -> CRUISE_SETUP.expect
 #		 - libBB.expect -> libRDI.expect
 #  Aug 26, 2010: - added support for ymodem_download_cmd
 #  Dec  1, 2010: - BUG: ymodem_receive_cmd instead of ymodem_download_cmd
 #  Nov 10, 2013: - added directory listing before download
+#  Jul  3, 2020: - expunged master/slave terminology
 
 #----------------------------------------------------------------------
 # Setup
@@ -56,35 +57,35 @@
 wait_for_startup;
 reset_two_instruments;
 
-select_master 0; send_user "\n"; list_dir;
-select_slave; send_user "\n"; list_dir;
+select_DL 0; send_user "\n"; list_dir;
+select_UL; send_user "\n"; list_dir;
 
 #----------------------------------------------------------------------
 # Get Station Number & Carry Out Sanity Check
 #----------------------------------------------------------------------
 
 send_user "\nGetting station number...";
-select_master;
-set master_deployment_name [get_deployment_name];
-if {[scan $master_deployment_name $master_deployment_name_fmt master_stn] != 1} {
-	send_error "$master_deployment_name $master_deployment_name_fmt";
-	error "Can't get station number of master";
+select_DL;
+set DL_deployment_name [get_deployment_name];
+if {[scan $DL_deployment_name $DL_deployment_name_fmt DL_stn] != 1} {
+	send_error "$DL_deployment_name $DL_deployment_name_fmt";
+	error "Can't get station number of DL";
 }
-select_slave; set slave_deployment_name [get_deployment_name];
-set slave_deployment_name [get_deployment_name];
-if {[scan $slave_deployment_name $slave_deployment_name_fmt slave_stn] != 1} {
-	error "Can't get station number of slave";
+select_UL; set UL_deployment_name [get_deployment_name];
+set UL_deployment_name [get_deployment_name];
+if {[scan $UL_deployment_name $UL_deployment_name_fmt UL_stn] != 1} {
+	error "Can't get station number of UL";
 }
-if {$master_stn != $slave_stn} {
-	select_master; put_to_sleep; select_slave; put_to_sleep;
-	error "Master/slave stations disagree";
+if {$DL_stn != $UL_stn} {
+	select_DL; put_to_sleep; select_UL; put_to_sleep;
+	error "DL/UL stations disagree";
 }
-set stn [format $stn_format $master_stn];
+set stn [format $stn_format $DL_stn];
 send_user "\[$stn\]";
 
 set cast_dir [format %s/%s $raw_dir $stn];
 if {![file isdirectory $cast_dir]} {
-	select_master; put_to_sleep; select_slave; put_to_sleep;
+	select_DL; put_to_sleep; select_UL; put_to_sleep;
 	error "cast directory $cast_dir does not exist!";
 }
 regsub {^[^/]} [exec which bbabble] "[exec pwd]/&" bbabble;
@@ -95,7 +96,7 @@
 
 cd $cast_dir;
 if {[llength [glob -nocomplain {*.[0-9][0-9][0-9]}]] > 0} {
-	select_master; put_to_sleep; select_slave; put_to_sleep;
+	select_DL; put_to_sleep; select_UL; put_to_sleep;
 	error "cast directory [pwd] contains RDI data files!";
 }
 
@@ -106,45 +107,45 @@
 #----------------------------------------------------------------------
 
 regsub {.*/} $argv0 {} basename;
-start_logging [format %s_%03d.log $basename $master_stn];
+start_logging [format %s_%03d.log $basename $DL_stn];
 
 spawn $bbabble -msy $ymodem_receive_cmd $tty0 $tty1;
 wait_for_startup;
 
 send_user "\nSaving hardware configurations...";
-select_master; save_hardware_config [format %s000.LOG $master_deployment_name];
-resume_logging [format %s_%03d.log $basename $master_stn];
-select_slave; save_hardware_config [format %s000.LOG $slave_deployment_name];
-resume_logging [format %s_%03d.log $basename $master_stn];
+select_DL; save_hardware_config [format %s000.LOG $DL_deployment_name];
+resume_logging [format %s_%03d.log $basename $DL_stn];
+select_UL; save_hardware_config [format %s000.LOG $UL_deployment_name];
+resume_logging [format %s_%03d.log $basename $DL_stn];
 
 send_user "\nStarting parallel downloads...";
-select_master; start_download;
-select_slave; start_download;
+select_DL; start_download;
+select_UL; start_download;
 
-# NB: slave is assumed to download faster => finish it first, coz otherwise
+# NB: UL is assumed to download faster => finish it first, coz otherwise
 #     it may auto-sleep and cause problems later on
 
 send_user "\n";
-set_color 1; log_user 1; wait_for_download_finish $master_stn $download_timeout;
+set_color 1; log_user 1; wait_for_download_finish $DL_stn $download_timeout;
 log_user 0; set_color;
-send_user "\nPutting slave to sleep..."; put_to_sleep; send_user "\n";
+send_user "\nPutting UL to sleep..."; put_to_sleep; send_user "\n";
 
 toggle_instrument;
-set_color 0; log_user 1; wait_for_download_finish $master_stn $download_timeout;
+set_color 0; log_user 1; wait_for_download_finish $DL_stn $download_timeout;
 log_user 0; set_color;
-send_user "\nPutting master to sleep..."; ensure_sleep; send_user "\n";
+send_user "\nPutting DL to sleep..."; ensure_sleep; send_user "\n";
 	
 #----------------------------------------------------------------------
 # Check and Backup Data
 #----------------------------------------------------------------------
 
 send_user "\nChecking data files...\n";
-set_color 0; check_data [format %s000.000 [format $master_deployment_name_fmt $master_stn]];
-set_color 1; check_data [format %s000.000 [format $slave_deployment_name_fmt $slave_stn]];
+set_color 0; check_data [format %s000.000 [format $DL_deployment_name_fmt $DL_stn]];
+set_color 1; check_data [format %s000.000 [format $UL_deployment_name_fmt $UL_stn]];
 set_color;
 
 send_user "Backing up data files...";
-backup_master_data $master_stn;
-backup_slave_data $master_stn;
+backup_DL_data $DL_stn;
+backup_UL_data $DL_stn;
 
 send_user "\nDone\n"
--- a/erasemem2	Thu Nov 21 14:01:21 2013 +0000
+++ b/erasemem2	Fri Jul 03 10:25:08 2020 -0400
@@ -2,9 +2,9 @@
 #======================================================================
 #                    E R A S E M E M 2 
 #                    doc: Mon Mar  8 02:57:35 2004
-#                    dlm: Thu Aug 26 00:28:51 2010
+#                    dlm: Fri Jul  3 10:16:02 2020
 #                    (c) 2004 A.M. Thurnherr
-#                    uE-Info: 18 39 NIL 0 0 72 2 2 8 NIL ofnI
+#                    uE-Info: 61 9 NIL 0 0 72 2 2 8 NIL ofnI
 #======================================================================
 
 # HISTORY:
@@ -12,6 +12,7 @@
 #  Nov 19, 2008: - added version
 #  Aug 25, 2010: - DEFAULTS.expect -> CRUISE_SETUP.expect
 #		 - libBB.expect -> libRDI.expect
+#  Jul  3, 2020: - expunged master/slave terminology
 
 log_user 0;
 
@@ -28,9 +29,9 @@
 reset_two_instruments;
 
 set must_erase 0;
-select_master 0;
+select_DL 0;
 if {[memory_empty]} {
-	select_slave;
+	select_UL;
 	if {[memory_empty]} {
 		send_user "\nMemory is empty --- nothing to erase.\n";
 	} else {
@@ -40,7 +41,7 @@
 } else {
 	send_user "\n"; list_dir;
 	set must_erase 1;
-	select_slave;
+	select_UL;
 	if {![memory_empty]} {
 		send_user "\n"; list_dir;
 		set must_erase 1;
@@ -50,13 +51,13 @@
 if {$must_erase == 1} {
 	if {[affirm "\nERASE FILES? (Y/n) --- timeout erases! " 10 1]} {
 		send_user "Erasing memory...";
-		select_master; erase_memory;
-		select_slave; erase_memory;
+		select_DL; erase_memory;
+		select_UL; erase_memory;
 		send_user "\n";
 	}
 }
 
 send_user "Putting instruments to sleep..."
-select_master; put_to_sleep; select_slave; put_to_sleep;
+select_DL; put_to_sleep; select_UL; put_to_sleep;
 
 send_user "\nDone\n"
--- a/ladcp1	Thu Nov 21 14:01:21 2013 +0000
+++ b/ladcp1	Fri Jul 03 10:25:08 2020 -0400
@@ -2,9 +2,9 @@
 #======================================================================
 #                    L A D C P 1 
 #                    doc: Wed Mar 10 22:23:52 2004
-#                    dlm: Fri Dec 10 14:32:12 2010
+#                    dlm: Fri Jul  3 10:16:21 2020
 #                    (c) 2004 A.M. Thurnherr
-#                    uE-Info: 20 59 NIL 0 0 72 2 2 8 NIL ofnI
+#                    uE-Info: 21 40 NIL 0 0 72 2 2 8 NIL ofnI
 #======================================================================
 
 # HISTORY:
@@ -18,6 +18,7 @@
 #  Aug 25, 2010: - DEFAULTS.expect -> CRUISE_SETUP.expect
 #		 - libBB.expect -> libRDI.expect
 #  Dec 10, 2010: - allow restarting a cast with same number
+#  Jul  3, 2020: - expunged master/slave terminology
 
 #----------------------------------------------------------------------
 # Setup
@@ -95,12 +96,12 @@
 }
 
 exec mkdir $cast_dir;
-exec cp $master_cmd_file $cast_dir;
+exec cp $DL_cmd_file $cast_dir;
 exec echo $stn > .last_stn;
 cd $cast_dir;
 
-if {![file isfile $master_cmd_file]} {
-	error "Failed to copy $master_cmd_file to [pwd]";
+if {![file isfile $DL_cmd_file]} {
+	error "Failed to copy $DL_cmd_file to [pwd]";
 }
 
 
@@ -115,9 +116,9 @@
 set_instrument_clock;
 
 send_user "\nSetting deployment name...";
-set_deployment_name [format $master_deployment_name_fmt $stn];
+set_deployment_name [format $DL_deployment_name_fmt $stn];
 
 send_user "\nUploading command file";
-upload_file $master_cmd_file [format %s_log $master_cmd_file] "[format $master_deployment_name_fmt $stn].hwconfig";
+upload_file $DL_cmd_file [format %s_log $DL_cmd_file] "[format $DL_deployment_name_fmt $stn].hwconfig";
 
 send_user "\nDone\n";
--- a/ladcp2	Thu Nov 21 14:01:21 2013 +0000
+++ b/ladcp2	Fri Jul 03 10:25:08 2020 -0400
@@ -2,9 +2,9 @@
 #======================================================================
 #                    L A D C P 2 
 #                    doc: Wed Mar 10 22:23:52 2004
-#                    dlm: Fri Dec 10 14:28:20 2010
+#                    dlm: Fri Jul  3 10:16:46 2020
 #                    (c) 2004 A.M. Thurnherr
-#                    uE-Info: 70 34 NIL 0 0 72 2 2 8 NIL ofnI
+#                    uE-Info: 137 66 NIL 0 0 72 2 2 8 NIL ofnI
 #======================================================================
 
 # HISTORY:
@@ -22,6 +22,7 @@
 #  Aug 25, 2010: - DEFAULTS.expect -> CRUISE_SETUP.expect
 #		 - libBB.expect -> libRDI.expect
 #  Dec 10, 2010: - allow restarting a cast with same number
+#  Jul  3, 2020: - expunged master/slave terminology
 
 #----------------------------------------------------------------------
 # Setup
@@ -90,8 +91,8 @@
 if {![memory_empty]} {
 	if {![affirm "\nWARNING: Memory is not empty; continue anyway? (y/N) " 10]} {
 		send_user "Putting instruments to sleep...";
-		select_master 0; put_to_sleep;
-		select_slave; put_to_sleep;
+		select_DL 0; put_to_sleep;
+		select_UL; put_to_sleep;
 		send_user "\nDone\n";
 		exit;
 	}
@@ -100,40 +101,40 @@
 }
 
 exec mkdir $cast_dir;
-exec cp $master_cmd_file $cast_dir;
-exec cp $slave_cmd_file $cast_dir;
+exec cp $DL_cmd_file $cast_dir;
+exec cp $UL_cmd_file $cast_dir;
 exec echo $stn > .last_stn;
 cd $cast_dir;
 
-if {![file isfile $master_cmd_file]} {
-	error "Failed to copy $master_cmd_file to [pwd]";
+if {![file isfile $DL_cmd_file]} {
+	error "Failed to copy $DL_cmd_file to [pwd]";
 }
-if {![file isfile $slave_cmd_file]} {
-	error "Failed to copy $slave_cmd_file to [pwd]";
+if {![file isfile $UL_cmd_file]} {
+	error "Failed to copy $UL_cmd_file to [pwd]";
 }
 
 regsub {.*/} $argv0 {} basename;
 start_logging [format %s_%s.log $basename $stnstr];
 
 send_user "Resetting instruments to factory defaults...";
-select_master 0; load_factory_defaults;
-select_slave; load_factory_defaults;
+select_DL 0; load_factory_defaults;
+select_UL; load_factory_defaults;
 
 send_user "\nSetting instrument clocks...";
 set_computer_time;
-select_master 0; set_instrument_clock;
-select_slave; set_instrument_clock;
+select_DL 0; set_instrument_clock;
+select_UL; set_instrument_clock;
 
 send_user "\nSetting deployment names...";
-select_master; set_deployment_name [format $master_deployment_name_fmt $stn];
-select_slave; set_deployment_name [format $slave_deployment_name_fmt $stn];
+select_DL; set_deployment_name [format $DL_deployment_name_fmt $stn];
+select_UL; set_deployment_name [format $UL_deployment_name_fmt $stn];
 
 send_user "\nUploading command files";
-select_slave 0;
-upload_file $slave_cmd_file [format %s_log $slave_cmd_file] "[format $slave_deployment_name_fmt $stn].hwconfig";
+select_UL 0;
+upload_file $UL_cmd_file [format %s_log $UL_cmd_file] "[format $UL_deployment_name_fmt $stn].hwconfig";
 resume_logging [format %s_%s.log $basename $stnstr];
-select_master;
-upload_file $master_cmd_file [format %s_log $master_cmd_file] "[format $master_deployment_name_fmt $stn].hwconfig";
+select_DL;
+upload_file $DL_cmd_file [format %s_log $DL_cmd_file] "[format $DL_deployment_name_fmt $stn].hwconfig";
 
 send_user "\nDone\n";
 
--- a/ladcp_send_cmd	Thu Nov 21 14:01:21 2013 +0000
+++ b/ladcp_send_cmd	Fri Jul 03 10:25:08 2020 -0400
@@ -2,9 +2,9 @@
 #======================================================================
 #                    L A D C P _ S E N D _ C M D 
 #                    doc: Wed Mar 10 22:23:52 2004
-#                    dlm: Thu Aug 26 00:27:20 2010
+#                    dlm: Fri Jul  3 10:17:16 2020
 #                    (c) 2004 A.M. Thurnherr
-#                    uE-Info: 25 39 NIL 0 0 72 2 2 8 NIL ofnI
+#                    uE-Info: 104 0 NIL 0 0 72 2 2 8 NIL ofnI
 #======================================================================
 
 # HISTORY:
@@ -15,6 +15,7 @@
 #  Nov 19, 2008: - added version
 #  Aug 25, 2010: - DEFAULTS.expect -> CRUISE_SETUP.expect
 #		 - libBB.expect -> libRDI.expect
+#  Jul  3, 2020: - expunged master/slave terminology
 
 #----------------------------------------------------------------------
 # Setup
@@ -100,7 +101,7 @@
 set_instrument_clock;
 
 send_user "\nSetting deployment name...";
-set_deployment_name [format $master_deployment_name_fmt $stn];
+set_deployment_name [format $DL_deployment_name_fmt $stn];
 
 send_user "\nUploading command file";
 upload_file [lindex $argv 1] [format %s_log [lindex $argv 1]] "DEPLOY.hwconfig";
--- a/libRDI.expect	Thu Nov 21 14:01:21 2013 +0000
+++ b/libRDI.expect	Fri Jul 03 10:25:08 2020 -0400
@@ -2,9 +2,9 @@
 #======================================================================
 #                    L I B R D I . E X P E C T 
 #                    doc: Mon Mar  8 02:57:35 2004
-#                    dlm: Wed Dec 29 16:00:39 2010
+#                    dlm: Fri Jul  3 10:23:56 2020
 #                    (c) 2004 A.M. Thurnherr
-#                    uE-Info: 255 0 NIL 0 0 72 2 2 8 NIL ofnI
+#                    uE-Info: 48 40 NIL 0 0 72 2 2 8 NIL ofnI
 #======================================================================
 
 # HISTORY:
@@ -43,7 +43,9 @@
 # Dec  1, 2010: - replaced ! by * in upload_file
 # Dec  9, 2010: - increased timeout to 10s in load_factory_defaults
 # Dec 10, 2010: - changed version to 1.5
-# Dec 29, 2010: - implemented work-around to always wake up slave first
+# Dec 29, 2010: - implemented work-around to always wake up uplooker first
+# Jul  3, 2020: - expunged master/slave terminology
+#		- changed version to 1.6
 
 # NOTE: after having written this, I am not much of a fan of TCL and and
 #	expect(1) syntax any more...
@@ -67,10 +69,10 @@
 set TOGGLE	\024;	# ^T
 set DNLOAD	\030;	# ^X
 
-set cid -1;						# current instrument (master or slave)
+set cid -1;						# current instrument (DL or UL)
 
 proc print_version {} {
-	send_user "acquire V1.5\n"
+	send_user "acquire V1.6\n"
 }
 
 proc set_color {{cid -1}} {				# set instrument color
@@ -146,8 +148,8 @@
 	if {$cid == 0} {set cid 1} else {set cid 0}
 }
 
-proc select_master {{toggle_first 1}} {			# select master & check S/N
-	global cid master_sn slave_sn;
+proc select_DL {{toggle_first 1}} {			# select DL & check S/N
+	global cid DL_sn UL_sn;
 
 	if {$toggle_first} toggle_instrument;
 	gobble_prompts;
@@ -155,15 +157,15 @@
 	send "PS0\r";
 	expect {
 		timeout {error "Can't determine serial number"}
-		-timeout 8 -re "Instrument S/N:  $master_sn.*>|Xducer Ser #:  $master_sn.*>|PS0...>" {}
-		-timeout 8 -re "Instrument S/N:  $slave_sn.*>" {
+		-timeout 8 -re "Instrument S/N:  $DL_sn.*>|Xducer Ser #:  $DL_sn.*>|PS0...>" {}
+		-timeout 8 -re "Instrument S/N:  $UL_sn.*>" {
 			toggle_instrument;
 			send "PS0\r";
 			expect {
 				timeout {error "Can't determine serial number"}
-				-timeout 8 -re "Instrument S/N:  $master_sn.*>|Xducer Ser #:  $master_sn.*>|PS0...>" {}
-				-timeout 8 -re "Instrument S/N:  $slave_sn.*>" {
-					error "Can't switch to master"
+				-timeout 8 -re "Instrument S/N:  $DL_sn.*>|Xducer Ser #:  $DL_sn.*>|PS0...>" {}
+				-timeout 8 -re "Instrument S/N:  $UL_sn.*>" {
+					error "Can't switch to DL"
 				}
 			}
 		}
@@ -171,24 +173,24 @@
 	set cid 0;
 }
 
-proc select_slave {{toggle_first 1}} {			# select slave & check S/N
-	global cid master_sn slave_sn;
+proc select_UL {{toggle_first 1}} {			# select UL & check S/N
+	global cid DL_sn UL_sn;
 
 	if {$toggle_first} toggle_instrument;
 	gobble_prompts;
 	send "\r"; wait_for_prompt;			# save current value
 	send "PS0\r";
 	expect {
-		timeout {error "Can't determine master/slave"}
-		-timeout 8 -re "Instrument S/N:  $slave_sn.*>" {}
-		-timeout 8 -re "Instrument S/N:  $master_sn.*>|Xducer Ser #:  $master_sn.*>|PS0...>" {
+		timeout {error "Can't determine DL/UL"}
+		-timeout 8 -re "Instrument S/N:  $UL_sn.*>" {}
+		-timeout 8 -re "Instrument S/N:  $DL_sn.*>|Xducer Ser #:  $DL_sn.*>|PS0...>" {
 			toggle_instrument;
 			send "PS0\r";
 			expect {
-				timeout {error "Can't determine master/slave"}
-				-timeout 8 -re "Instrument S/N:  $slave_sn.*>" {}
-				-timeout 8 -re "Instrument S/N:  $master_sn.*>|Xducer Ser #:  $master_sn.*>|PS0...>" {
-					error "Can't switch to slave"
+				timeout {error "Can't determine DL/UL"}
+				-timeout 8 -re "Instrument S/N:  $UL_sn.*>" {}
+				-timeout 8 -re "Instrument S/N:  $DL_sn.*>|Xducer Ser #:  $DL_sn.*>|PS0...>" {
+					error "Can't switch to UL"
 				}
 			}
 		}
@@ -222,23 +224,23 @@
 }
 
 # In 2010 on the DIMES UK2 cruise, it was found that the instruments did
-# not communicate correctly, unless the slave was woken up first. On previous
+# not communicate correctly, unless the UL was woken up first. On previous
 # cruises it had also been found that the order in which the instruments are
 # woken up can matter, although it had not been recorded which of the instruments
 # has to be woken first. An early workaround consisted in having a commented-out
 # toggle_instrument statement at the beginning of reset_two_instruments. In case
 # the communication did not work, that statement could simply be uncommented.
-# Another workaround would be to switch the serial ports the master/slave
+# Another workaround would be to switch the serial ports the DL/UL
 # ADCPs were connected to. Neither workaround is satisfacory, of course. Therefore
 # I decided to modify the routine reset_two_instruments to wake up an instrument,
-# determine whether it is the slave and, if not, send it back to sleep, toggle,
+# determine whether it is the UL and, if not, send it back to sleep, toggle,
 # and wake up the other one. I am hoping that this is solves the problems once
 # and for all. If not, the code between the ### WORKAROUND markers should be
 # removed because it slows down comms with the ADCPs even more. In case of
 # wakeup/comms problems, the serial lines should then be switched.
 
 proc reset_two_instruments {} {			# reset regardless of state
-	global cid master_sn slave_sn;
+	global cid DL_sn UL_sn;
 	set ok 0;
 
 	while {$ok < 2} {
@@ -256,28 +258,28 @@
 	send "PS0\r";
 	expect {
 		timeout {error "Can't determine serial number"}
-		-timeout 8 -re "Instrument S/N:  $master_sn.*>|Xducer Ser #:  $master_sn.*>|PS0...>" {
+		-timeout 8 -re "Instrument S/N:  $DL_sn.*>|Xducer Ser #:  $DL_sn.*>|PS0...>" {
 			put_to_sleep;
 			toggle_instrument;
 			put_to_sleep;
 			reset_two_instruments;
 			toggle_instrument;
 		}
-		-timeout 8 -re "Instrument S/N:  $slave_sn.*>" {
+		-timeout 8 -re "Instrument S/N:  $UL_sn.*>" {
 			toggle_instrument;
                 }
 		send "PS0\r";
 		expect {
 			timeout {error "Can't determine serial number"}
-			-timeout 8 -re "Instrument S/N:  $master_sn.*>|Xducer Ser #:  $master_sn.*>|PS0...>" {}
-			-timeout 8 -re "Instrument S/N:  $slave_sn.*>" {
-				error "Can't switch to master"
+			-timeout 8 -re "Instrument S/N:  $DL_sn.*>|Xducer Ser #:  $DL_sn.*>|PS0...>" {}
+			-timeout 8 -re "Instrument S/N:  $UL_sn.*>" {
+				error "Can't switch to DL"
 			}
 		}
        }
 	set cid 0;
 ### WORKAROUND ELSE
-#	select_master;
+#	select_DL;
 ### WORKAROUND END
 }
 
@@ -344,12 +346,12 @@
 	}
 	expect -timeout 5 ">";
 
-	global cid master_download_filename slave_download_filename;
-	global master_deployment_name_fmt slave_deployment_name_fmt;
+	global cid DL_download_filename UL_download_filename;
+	global DL_deployment_name_fmt UL_deployment_name_fmt;
 	if {$cid == 0} {
-		rename_master_download_file [format $master_deployment_name_fmt $stn]000.000;
+		rename_DL_download_file [format $DL_deployment_name_fmt $stn]000.000;
 	} else {
-		rename_slave_download_file [format $slave_deployment_name_fmt $stn]000.000;
+		rename_UL_download_file [format $UL_deployment_name_fmt $stn]000.000;
         }
 }
 
@@ -545,7 +547,7 @@
 }
 
 proc get_deployment_name {} {				# get deployment name
-	global stn_format master_deployment_name_fmt;
+	global stn_format DL_deployment_name_fmt;
 	gobble_prompts;
 	send "\r"; wait_for_prompt;
 	send "RN?\r"; sleep 1;
@@ -556,7 +558,7 @@
 				error "Can't find .last_stn";
 			}
 			set stn [exec cat .last_stn];
-			set dn [format $master_deployment_name_fmt $stn];
+			set dn [format $DL_deployment_name_fmt $stn];
 			wait_for_prompt;
 			return $dn;			
 		}
--- a/reset2	Thu Nov 21 14:01:21 2013 +0000
+++ b/reset2	Fri Jul 03 10:25:08 2020 -0400
@@ -2,9 +2,9 @@
 #======================================================================
 #                    R E S E T 2 
 #                    doc: Mon Mar  8 02:57:35 2004
-#                    dlm: Thu Aug 26 00:29:29 2010
+#                    dlm: Fri Jul  3 10:19:41 2020
 #                    (c) 2004 A.M. Thurnherr
-#                    uE-Info: 18 39 NIL 0 0 72 2 2 8 NIL ofnI
+#                    uE-Info: 15 0 NIL 0 0 72 2 2 8 NIL ofnI
 #======================================================================
 
 # HISTORY:
@@ -12,6 +12,7 @@
 #  Nov 19, 2008: - added version
 #  Aug 25, 2010: - DEFAULTS.expect -> CRUISE_SETUP.expect
 #		 - libBB.expect -> libRDI.expect
+#  Jul  3, 2020: - expunged master/slave terminology
 
 log_user 0;
 
@@ -26,6 +27,6 @@
 reset_two_instruments;
 
 send_user "\nPutting instruments to sleep..."
-select_master 0; put_to_sleep; select_slave; put_to_sleep;
+select_DL 0; put_to_sleep; select_UL; put_to_sleep;
 
 send_user "\nDone\n"