diff --git a/bin/bootstrap_epics b/bin/bootstrap_epics
index 85d5d3f97c334c6aea5e8244544708d03d95625f..8ce7b414fc2754419e6de31899801af2b40bf86d 100755
--- a/bin/bootstrap_epics
+++ b/bin/bootstrap_epics
@@ -67,7 +67,7 @@ set -- "${POSITIONAL[@]}" # restore positional parameters
 #  print_the_help
 #  exit 
 #fi
-
+#
 #if [ -d "${NAME}" ] 
 #then
 #  echo "Directory ${NAME} exists." 
@@ -80,61 +80,66 @@ set -- "${POSITIONAL[@]}" # restore positional parameters
 
 source setup.sh
 
-#lsb_release -d | grep -i "ubuntu" 
-#
-#if [[ "$?" == "0" ]] ; then 
-#  sudo apt-get install -y \
-#    re2c  libreadline-dev libusb-dev \
-#    libusb-java libusb-1.0-0-dev libnet1-dev \
-#    python-pip \
-#    libpcap-dev libx11-dev libxext-dev python-numpy
-#  if [[ "$(uname -m)" == "aarch64" ]] ; then
-#    sudo apt-get install -y python-rpi.gpio python3-rpi.gpio
-#  fi
-#  sudo pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org spidev
-#fi
-#
-#git clone --recursive -b 7.0 https://git.launchpad.net/epics-base base-7.0
-#ln -s base-7.0 base
-#
-#pushd base
-#make 
-#popd
-#
-#wget -qO- https://epics.anl.gov/bcda/synApps/tar/synApps_6_0.tar.gz | tar -zxf - 
-
-#pushd synApps/support
-#ln -s calc-R3-7-1 calc 
-#ln -s asyn-R4-33 asyn 
-#ln -s stream-R2-7-7c stream 
-#sed -i '1d' configure/RELEASE
-#sed -i '1iSUPPORT = /opt/epics/synApps/support' configure/RELEASE
-#sed -i '3d' configure/RELEASE
-#sed -i '3iEPICS_BASE=/opt/epics/base' configure/RELEASE
-#sed -i '17d' configure/RELEASE
-#sed -i '17i#DXP=$(SUPPORT)/dxp-R5-0' configure/RELEASE
-#
-#sed -i '34d' configure/RELEASE
-#sed -i '34i#SSCAN=$(SUPPORT)/sscan-R2-11-1' configure/RELEASE
-#
-#
-#sed -i '46d' configure/RELEASE
-#sed -i '45d' configure/RELEASE
-#sed -i '44d' configure/RELEASE
-#sed -i '43d' configure/RELEASE
-#sed -i '42d' configure/RELEASE
-#sed -i '41d' configure/RELEASE
-#echo '#AREA_DETECTOR=$(SUPPORT)/areaDetector-R3-3-1' >> configure/RELEASE
-#echo '#ADCORE=$(AREA_DETECTOR)/ADCore' >> configure/RELEASE
-#echo '#ADSUPPORT=$(AREA_DETECTOR)/ADSupport' >> configure/RELEASE
-#echo '#ADSIMDETECTOR=$(AREA_DETECTOR)/ADSimDetector' >> configure/RELEASE
-#echo '#SNCSEQ=$(SUPPORT)/seq-2-2-5' >> configure/RELEASE
-#echo '#ALLEN_BRADLEY=$(SUPPORT)/allenBradley-2-3' >> configure/RELEASE
-#
-#make release
-#make 
-#
-#popd
+yes_or_no "build epics base"
+if [[ $?  ]] ; then 
+
+  lsb_release -d | grep -i "ubuntu" 
+
+  if [[ "$?" == "0" ]] ; then 
+    sudo apt-get install -y \
+      re2c  libreadline-dev libusb-dev \
+      libusb-java libusb-1.0-0-dev libnet1-dev \
+      python-pip \
+      libpcap-dev libx11-dev libxext-dev python-numpy
+    if [[ "$(uname -m)" == "aarch64" ]] ; then
+      sudo apt-get install -y python-rpi.gpio python3-rpi.gpio
+    fi
+    sudo pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org spidev
+  fi
+
+  git clone --recursive -b 7.0 https://git.launchpad.net/epics-base base-7.0
+  ln -s base-7.0 base
+
+  pushd base
+  make 
+  popd
+
+  wget -qO- https://epics.anl.gov/bcda/synApps/tar/synApps_6_0.tar.gz | tar -zxf - 
+
+  pushd synApps/support
+  ln -s calc-R3-7-1 calc 
+  ln -s asyn-R4-33 asyn 
+  ln -s stream-R2-7-7c stream 
+  sed -i '1d' configure/RELEASE
+  sed -i '1iSUPPORT = /opt/epics/synApps/support' configure/RELEASE
+  sed -i '3d' configure/RELEASE
+  sed -i '3iEPICS_BASE=/opt/epics/base' configure/RELEASE
+  sed -i '17d' configure/RELEASE
+  sed -i '17i#DXP=$(SUPPORT)/dxp-R5-0' configure/RELEASE
+
+  sed -i '34d' configure/RELEASE
+  sed -i '34i#SSCAN=$(SUPPORT)/sscan-R2-11-1' configure/RELEASE
+
+
+  sed -i '46d' configure/RELEASE
+  sed -i '45d' configure/RELEASE
+  sed -i '44d' configure/RELEASE
+  sed -i '43d' configure/RELEASE
+  sed -i '42d' configure/RELEASE
+  sed -i '41d' configure/RELEASE
+  echo '#AREA_DETECTOR=$(SUPPORT)/areaDetector-R3-3-1' >> configure/RELEASE
+  echo '#ADCORE=$(AREA_DETECTOR)/ADCore' >> configure/RELEASE
+  echo '#ADSUPPORT=$(AREA_DETECTOR)/ADSupport' >> configure/RELEASE
+  echo '#ADSIMDETECTOR=$(AREA_DETECTOR)/ADSimDetector' >> configure/RELEASE
+  echo '#SNCSEQ=$(SUPPORT)/seq-2-2-5' >> configure/RELEASE
+  echo '#ALLEN_BRADLEY=$(SUPPORT)/allenBradley-2-3' >> configure/RELEASE
+
+  make release
+  make 
+
+  popd
+
+fi
 
 yes_or_no "Build extenstions"
 if [[ "$?"  ]] ; then 
diff --git a/dm/test_laser.ui b/dm/test_laser.ui
new file mode 100644
index 0000000000000000000000000000000000000000..66e8362bffd16e47da9a802a9ef9f556c5bab805
--- /dev/null
+++ b/dm/test_laser.ui
@@ -0,0 +1,410 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>800</width>
+    <height>600</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>MainWindow</string>
+  </property>
+  <widget class="QWidget" name="centralwidget">
+   <widget class="QGroupBox" name="groupBox">
+    <property name="geometry">
+     <rect>
+      <x>40</x>
+      <y>140</y>
+      <width>241</width>
+      <height>381</height>
+     </rect>
+    </property>
+    <property name="title">
+     <string>Laser 1</string>
+    </property>
+    <widget class="caThermo" name="cathermo">
+     <property name="geometry">
+      <rect>
+       <x>20</x>
+       <y>40</y>
+       <width>20</width>
+       <height>331</height>
+      </rect>
+     </property>
+     <property name="channel" stdset="0">
+      <string notr="true">raytum:l1:gcur</string>
+     </property>
+    </widget>
+    <widget class="caByte" name="cabyte">
+     <property name="geometry">
+      <rect>
+       <x>50</x>
+       <y>50</y>
+       <width>20</width>
+       <height>311</height>
+      </rect>
+     </property>
+     <property name="channel" stdset="0">
+      <string notr="true">raytum:l1:glstat</string>
+     </property>
+    </widget>
+    <widget class="caTextEntry" name="catextentry">
+     <property name="geometry">
+      <rect>
+       <x>169</x>
+       <y>150</y>
+       <width>51</width>
+       <height>22</height>
+      </rect>
+     </property>
+     <property name="channel" stdset="0">
+      <string notr="true">raytum:l1:scur</string>
+     </property>
+     <property name="precision">
+      <number>1</number>
+     </property>
+     <property name="precisionMode">
+      <enum>caLineEdit::User</enum>
+     </property>
+    </widget>
+    <widget class="caToggleButton" name="catogglebutton">
+     <property name="geometry">
+      <rect>
+       <x>80</x>
+       <y>60</y>
+       <width>100</width>
+       <height>22</height>
+      </rect>
+     </property>
+     <property name="text">
+      <string>on/off</string>
+     </property>
+     <property name="channel" stdset="0">
+      <string notr="true">raytum:l1:switch</string>
+     </property>
+    </widget>
+    <widget class="caLed" name="caled">
+     <property name="geometry">
+      <rect>
+       <x>100</x>
+       <y>30</y>
+       <width>30</width>
+       <height>30</height>
+      </rect>
+     </property>
+     <property name="channel" stdset="0">
+      <string notr="true">raytum:l1:state</string>
+     </property>
+    </widget>
+    <widget class="caLineEdit" name="calineedit">
+     <property name="geometry">
+      <rect>
+       <x>120</x>
+       <y>90</y>
+       <width>51</width>
+       <height>20</height>
+      </rect>
+     </property>
+     <property name="channel" stdset="0">
+      <string notr="true">raytum:l1:glstat</string>
+     </property>
+    </widget>
+    <widget class="caLineEdit" name="calineedit_2">
+     <property name="geometry">
+      <rect>
+       <x>170</x>
+       <y>120</y>
+       <width>51</width>
+       <height>20</height>
+      </rect>
+     </property>
+     <property name="channel" stdset="0">
+      <string notr="true">raytum:l1:gcur</string>
+     </property>
+    </widget>
+    <widget class="QLabel" name="label">
+     <property name="geometry">
+      <rect>
+       <x>80</x>
+       <y>90</y>
+       <width>31</width>
+       <height>16</height>
+      </rect>
+     </property>
+     <property name="text">
+      <string>lstat</string>
+     </property>
+    </widget>
+    <widget class="QLabel" name="label_2">
+     <property name="geometry">
+      <rect>
+       <x>80</x>
+       <y>120</y>
+       <width>81</width>
+       <height>16</height>
+      </rect>
+     </property>
+     <property name="text">
+      <string>diode current</string>
+     </property>
+    </widget>
+    <widget class="QLabel" name="label_3">
+     <property name="geometry">
+      <rect>
+       <x>80</x>
+       <y>150</y>
+       <width>81</width>
+       <height>16</height>
+      </rect>
+     </property>
+     <property name="text">
+      <string>set current</string>
+     </property>
+    </widget>
+    <widget class="caLineEdit" name="calineedit_3">
+     <property name="geometry">
+      <rect>
+       <x>10</x>
+       <y>20</y>
+       <width>71</width>
+       <height>20</height>
+      </rect>
+     </property>
+     <property name="channel" stdset="0">
+      <string notr="true">raytum:l1:gserial</string>
+     </property>
+    </widget>
+    <zorder>cathermo</zorder>
+    <zorder>cabyte</zorder>
+    <zorder>catextentry</zorder>
+    <zorder>catogglebutton</zorder>
+    <zorder>caled</zorder>
+    <zorder>calineedit</zorder>
+    <zorder>calineedit_2</zorder>
+    <zorder>label</zorder>
+    <zorder>label_2</zorder>
+    <zorder>label_3</zorder>
+    <zorder>calineedit_3</zorder>
+    <zorder>canumeric</zorder>
+   </widget>
+   <widget class="caGraphics" name="cagraphics">
+    <property name="geometry">
+     <rect>
+      <x>100</x>
+      <y>10</y>
+      <width>481</width>
+      <height>111</height>
+     </rect>
+    </property>
+   </widget>
+   <widget class="QGroupBox" name="groupBox_2">
+    <property name="geometry">
+     <rect>
+      <x>340</x>
+      <y>140</y>
+      <width>241</width>
+      <height>381</height>
+     </rect>
+    </property>
+    <property name="title">
+     <string>Laser 2</string>
+    </property>
+    <widget class="caThermo" name="cathermo_2">
+     <property name="geometry">
+      <rect>
+       <x>20</x>
+       <y>40</y>
+       <width>20</width>
+       <height>331</height>
+      </rect>
+     </property>
+     <property name="channel" stdset="0">
+      <string notr="true">raytum:l2:gcur</string>
+     </property>
+    </widget>
+    <widget class="caByte" name="cabyte_2">
+     <property name="geometry">
+      <rect>
+       <x>50</x>
+       <y>50</y>
+       <width>20</width>
+       <height>311</height>
+      </rect>
+     </property>
+     <property name="channel" stdset="0">
+      <string notr="true">raytum:l2:glstat</string>
+     </property>
+    </widget>
+    <widget class="caTextEntry" name="catextentry_2">
+     <property name="geometry">
+      <rect>
+       <x>169</x>
+       <y>150</y>
+       <width>51</width>
+       <height>22</height>
+      </rect>
+     </property>
+     <property name="channel" stdset="0">
+      <string notr="true">raytum:l2:scur</string>
+     </property>
+     <property name="precision">
+      <number>1</number>
+     </property>
+     <property name="precisionMode">
+      <enum>caLineEdit::User</enum>
+     </property>
+    </widget>
+    <widget class="caToggleButton" name="catogglebutton_2">
+     <property name="geometry">
+      <rect>
+       <x>80</x>
+       <y>60</y>
+       <width>100</width>
+       <height>22</height>
+      </rect>
+     </property>
+     <property name="text">
+      <string>on/off</string>
+     </property>
+     <property name="channel" stdset="0">
+      <string notr="true">raytum:l2:switch</string>
+     </property>
+    </widget>
+    <widget class="caLed" name="caled_2">
+     <property name="geometry">
+      <rect>
+       <x>100</x>
+       <y>30</y>
+       <width>30</width>
+       <height>30</height>
+      </rect>
+     </property>
+     <property name="channel" stdset="0">
+      <string notr="true">raytum:l2:state</string>
+     </property>
+    </widget>
+    <widget class="caLineEdit" name="calineedit_4">
+     <property name="geometry">
+      <rect>
+       <x>120</x>
+       <y>90</y>
+       <width>51</width>
+       <height>20</height>
+      </rect>
+     </property>
+     <property name="channel" stdset="0">
+      <string notr="true">raytum:l2:glstat</string>
+     </property>
+    </widget>
+    <widget class="caLineEdit" name="calineedit_5">
+     <property name="geometry">
+      <rect>
+       <x>170</x>
+       <y>120</y>
+       <width>51</width>
+       <height>20</height>
+      </rect>
+     </property>
+     <property name="channel" stdset="0">
+      <string notr="true">raytum:l2:gcur</string>
+     </property>
+    </widget>
+    <widget class="QLabel" name="label_4">
+     <property name="geometry">
+      <rect>
+       <x>80</x>
+       <y>90</y>
+       <width>31</width>
+       <height>16</height>
+      </rect>
+     </property>
+     <property name="text">
+      <string>lstat</string>
+     </property>
+    </widget>
+    <widget class="QLabel" name="label_5">
+     <property name="geometry">
+      <rect>
+       <x>80</x>
+       <y>120</y>
+       <width>81</width>
+       <height>16</height>
+      </rect>
+     </property>
+     <property name="text">
+      <string>diode current</string>
+     </property>
+    </widget>
+    <widget class="QLabel" name="label_6">
+     <property name="geometry">
+      <rect>
+       <x>80</x>
+       <y>150</y>
+       <width>81</width>
+       <height>16</height>
+      </rect>
+     </property>
+     <property name="text">
+      <string>set current</string>
+     </property>
+    </widget>
+    <widget class="caLineEdit" name="calineedit_6">
+     <property name="geometry">
+      <rect>
+       <x>10</x>
+       <y>20</y>
+       <width>71</width>
+       <height>20</height>
+      </rect>
+     </property>
+     <property name="channel" stdset="0">
+      <string notr="true">raytum:l2:gserial</string>
+     </property>
+    </widget>
+   </widget>
+  </widget>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>caTextEntry</class>
+   <extends>caLineEdit</extends>
+   <header>caTextEntry</header>
+  </customwidget>
+  <customwidget>
+   <class>caToggleButton</class>
+   <extends>QCheckBox</extends>
+   <header>caToggleButton</header>
+  </customwidget>
+  <customwidget>
+   <class>caGraphics</class>
+   <extends>QWidget</extends>
+   <header>caGraphics</header>
+  </customwidget>
+  <customwidget>
+   <class>caLed</class>
+   <extends>QWidget</extends>
+   <header>caLed</header>
+  </customwidget>
+  <customwidget>
+   <class>caLineEdit</class>
+   <extends>QLineEdit</extends>
+   <header>caLineEdit</header>
+  </customwidget>
+  <customwidget>
+   <class>caThermo</class>
+   <extends>QWidget</extends>
+   <header>caThermo</header>
+  </customwidget>
+  <customwidget>
+   <class>caByte</class>
+   <extends>QWidget</extends>
+   <header>caByte</header>
+  </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/opi/lasers.bob b/opi/lasers.bob
index fe0e5a152db6dfff9d07b58c0de0db8a7556073c..91773b9ed8fa7d8b08f1d836b000aa2af9066f0d 100644
--- a/opi/lasers.bob
+++ b/opi/lasers.bob
@@ -60,8 +60,8 @@
     <name>Laser</name>
     <x>70</x>
     <y>300</y>
-    <width>530</width>
-    <height>70</height>
+    <width>690</width>
+    <height>110</height>
     <widget type="led" version="2.0.0">
       <name>LED</name>
       <pv_name>daq:l1:state</pv_name>
@@ -102,6 +102,29 @@
       <y>2</y>
       <height>30</height>
     </widget>
+    <widget type="slide_button" version="2.0.0">
+      <name>Slide Button_1</name>
+      <pv_name>daq:l1:switch</pv_name>
+      <x>532</x>
+      <y>2</y>
+    </widget>
+    <widget type="textentry" version="3.0.0">
+      <name>Text Entry</name>
+      <pv_name>daq:l1:scur</pv_name>
+      <x>42</x>
+      <y>34</y>
+      <width>110</width>
+      <height>30</height>
+      <precision>3</precision>
+    </widget>
+    <widget type="textupdate" version="2.0.0">
+      <name>Text Update_2</name>
+      <pv_name>daq:l1:gcur</pv_name>
+      <x>182</x>
+      <y>34</y>
+      <width>130</width>
+      <height>40</height>
+    </widget>
   </widget>
   <widget type="byte_monitor" version="2.0.0">
     <name>Byte Monitor</name>
@@ -111,10 +134,57 @@
     <width>450</width>
     <height>40</height>
   </widget>
-  <widget type="slide_button" version="2.0.0">
-    <name>Slide Button_1</name>
-    <pv_name>daq:l1:switch</pv_name>
-    <x>680</x>
-    <y>330</y>
+  <widget type="group" version="2.0.0">
+    <name>Laser_1</name>
+    <x>70</x>
+    <y>410</y>
+    <width>690</width>
+    <height>70</height>
+    <widget type="led" version="2.0.0">
+      <name>LED_1</name>
+      <pv_name>daq:l2:state</pv_name>
+      <x>232</x>
+      <y>2</y>
+      <width>40</width>
+      <height>32</height>
+      <on_color>
+        <color red="255" green="0" blue="0">
+        </color>
+      </on_color>
+    </widget>
+    <widget type="bool_button" version="2.0.0">
+      <name>Boolean Button_2</name>
+      <pv_name>daq:l2:off</pv_name>
+      <x>382</x>
+      <y>2</y>
+      <width>80</width>
+      <height>32</height>
+      <off_label>Turn Off</off_label>
+      <off_image>Turning off ...</off_image>
+      <show_led>false</show_led>
+    </widget>
+    <widget type="bool_button" version="2.0.0">
+      <name>Boolean Button_3</name>
+      <pv_name>daq:l2:on</pv_name>
+      <x>282</x>
+      <y>2</y>
+      <width>90</width>
+      <height>32</height>
+      <off_label>Turn On</off_label>
+      <show_led>false</show_led>
+    </widget>
+    <widget type="textupdate" version="2.0.0">
+      <name>Text Update_1</name>
+      <pv_name>daq:l2:gserial</pv_name>
+      <x>122</x>
+      <y>2</y>
+      <height>30</height>
+    </widget>
+    <widget type="slide_button" version="2.0.0">
+      <name>Slide Button_2</name>
+      <pv_name>daq:l2:switch</pv_name>
+      <x>532</x>
+      <y>2</y>
+    </widget>
   </widget>
 </display>
diff --git a/setup.sh b/setup.sh
index 03f323c0b7c0b70eab7c536a81f6472f79346a45..48ab445dbc545ba934e98b63a1ac108e1fc5be10 100644
--- a/setup.sh
+++ b/setup.sh
@@ -17,8 +17,8 @@ export LD_LIBRARY_PATH=$EPICS_ROOT/lib:$LD_LIBRARY_PATH
 export PATH=$EPICS_BASE/bin/$EPICS_HOST_ARCH:$PATH
 export LD_LIBRARY_PATH=$EPICS_BASE/lib/$EPICS_HOST_ARCH:$LD_LIBRARY_PATH
 
-export EPICS_CA_AUTO_ADDR_LIST=NO
-export EPICS_CA_ADDR_LIST=10.10.241.0
+export EPICS_CA_AUTO_ADDR_LIST=YES
+#export EPICS_CA_ADDR_LIST=10.10.241.0
 
 # support
 export ASYN=$EPICS_ROOT/synApps/support/asyn