diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4e18077431125c7d5b7f6ce78c9afe3b3d7be802..b0f7a95c25fbefb753b04d80b9c8715032616d20 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -66,6 +66,14 @@ ELSE(UNIX)
   )
 ENDIF(UNIX)
 
+IF (CMAKE_SYSTEM_PROCESSOR MATCHES "(x86)|(X86)|(amd64)|(AMD64)")
+  SET (X86 TRUE)
+  SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64")
+ELSE ()
+  SET (X86 FALSE)
+  SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "i386")
+ENDIF()
+
 IF (UNIX)
   SET(CPACK_PACKAGE_FILE_NAME "iri-${PACKAGE_NAME}-dev-${CPACK_PACKAGE_VERSION}-${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}")
   SET(CPACK_PACKAGE_NAME "iri-${PACKAGE_NAME}-dev")
diff --git a/scripts/debian/postinst b/scripts/debian/postinst
index 8adecc986a10fecd41a8370ef255cc0ec0725f61..921a467d32e0de7e215313017854538a9b229b64 100644
--- a/scripts/debian/postinst
+++ b/scripts/debian/postinst
@@ -2,7 +2,21 @@
 set -e
 case "$1" in
   configure)
-    #echo "I'm a postinst script"
+    echo "Running postinst script"
+    
+    # TEST
+    # echo "pkg name $DPKG_MAINTSCRIPT_PACKAGE"
+    # echo "pkg files: dpkg -L <pkg_name>"
+    # dpkg -L $DPKG_MAINTSCRIPT_PACKAGE
+    # TEST
+    
+    /usr/share/iri/battery_monitor/scripts/unbind_ftdi_udev.sh -s A600eB1Y
+    /usr/share/iri/battery_monitor/scripts/unbind_ftdi_udev.sh -s A600eByq
+    /usr/share/iri/battery_monitor/scripts/unbind_ftdi_udev.sh -s A900WSG1
+    # SERIAL DABO: A600eB1Y
+    # SERIAL TIBI: A600eByq
+    # SERIAL TEO:  A900WSG1
+    /usr/share/iri/battery_monitor/scripts/load_pcspkr.sh
   ;;
   abort-upgrade)
 
@@ -14,4 +28,4 @@ case "$1" in
 
   ;;
 esac
-exit 0
+exit 0
\ No newline at end of file
diff --git a/scripts/debian/postrm b/scripts/debian/postrm
index 3b846efe01b88ec4079d8577af7a257bf88a75b9..8fa7731c6f72c62a866dd0e99e2d361a9dc78d1d 100644
--- a/scripts/debian/postrm
+++ b/scripts/debian/postrm
@@ -2,7 +2,7 @@
 set -e
 case "$1" in
   remove)
-    #echo "I'm a postrm script"
+    # echo "Running postrm script"
   ;;
   purge)
 
diff --git a/scripts/debian/prerm b/scripts/debian/prerm
index d9ff53c269c84677eeddbc2d7a630ca1f6dcc9ba..4c612937d7cd920e3a8235e83fd76de883de5e3a 100644
--- a/scripts/debian/prerm
+++ b/scripts/debian/prerm
@@ -2,7 +2,21 @@
 set -e
 case "$1" in
   remove)
-    #echo "I'm a prerm script"
+    echo "Running prerm script"
+    # TEST
+    # echo "pkg name $DPKG_MAINTSCRIPT_PACKAGE"
+    # echo "pkg files: dpkg -L <pkg_name>"
+    # dpkg -L $DPKG_MAINTSCRIPT_PACKAGE
+    # TEST
+    
+    /usr/share/iri/battery_monitor/scripts/undo_unbind_ftdi_udev.sh -s A600eB1Y
+    /usr/share/iri/battery_monitor/scripts/undo_unbind_ftdi_udev.sh -s A600eByq
+    /usr/share/iri/battery_monitor/scripts/undo_unbind_ftdi_udev.sh -s A900WSG1
+    # SERIAL DABO: A600eB1Y
+    # SERIAL TIBI: A600eByq
+    # SERIAL TEO:  A900WSG1
+    echo "battery_monitor postrm script: You may want to remove pcspkr from /etc/modules. You can do it by running ./scripts/undo_load_pcspkr.sh"
+    #/usr/share/iri/battery_monitor/scripts/undo_load_pcspkr.sh
   ;;
   upgrade)
 
diff --git a/scripts/load_pcspkr.sh b/scripts/load_pcspkr.sh
old mode 100644
new mode 100755
index a441ac41b7fea80b4dabd971ecdb5bbd724bb051..fb4272bf36cdb1f57616f09ee2b4756fd2f2841b
--- a/scripts/load_pcspkr.sh
+++ b/scripts/load_pcspkr.sh
@@ -1,5 +1,7 @@
 #!/bin/sh
 
+echo "--- load_pcspkr.sh ---"
+
 echo "Add pcspkr module to /etc/modules so it is loaded on startup"
 
 LINE='pcspkr'
diff --git a/scripts/unbind_ftdi_udev.sh b/scripts/unbind_ftdi_udev.sh
old mode 100644
new mode 100755
index 5d36c1e2ca22dbdccc6cf9ba87952b92d1518a39..a3d60129fc60ee718d6e7d4e81f29bcaccf07aa3
--- a/scripts/unbind_ftdi_udev.sh
+++ b/scripts/unbind_ftdi_udev.sh
@@ -1,20 +1,56 @@
 #!/bin/sh
 
-VENDOR=${1:-0403}
-PRODUCT=${2:-6001}
-FILE=${3:-99-ftdi.rules}
+echo "--- unbind_ftdi_udev.sh ---"
+
+# VENDOR=${1:-0403}
+# PRODUCT=${2:-6001}
+# SERIAL=${3:-A600eB1Y}
+# FILE=${4:-99-ftdi.rules}
+
+VENDOR="0403"
+PRODUCT="6001"
+SERIAL="A600eB1Y"
+FILE="99-ftdi.rules"
+
+  # SERIAL DABO: A600eB1Y
+  # SERIAL TIBI: A600eByq
+  # SERIAL TEO:  A900WSG1
+
+usage() {
+  echo "Usage: $0 [-v <vendor>] [-p <product>] [-s <serial>] [-f <file> ]"
+  echo " -v  specify vendor  id.    Default 0403"
+  echo " -p  specify product id.    Default 6001"
+  echo " -s  specify serial number. Default A600eB1Y"
+  echo " -f  specify udev file.     Default 99-ftdi.rules"
+  exit 1
+  }
+  
+while getopts ":hv:p:s:f:" arg; do
+  case $arg in
+    v)  VENDOR=$OPTARG;;
+    p) PRODUCT=$OPTARG;;
+    s)  SERIAL=$OPTARG;;
+    f)    FILE=$OPTARG;;
+    h) usage;;
+    *) usage;;
+  esac
+done
+shift $((OPTIND-1))
 
-echo "Add udev rule so ${VENDOR}:${PRODUCT} devices do not load ftdi_sio driver"
 
-LINE0="#The following 2 lines make ${VENDOR}:${PRODUCT} devices not load ftdi_sio driver"
-LINE1="ATTRS{idVendor}==\"${VENDOR}\", ATTRS{idProduct}==\"${PRODUCT}\", MODE:=\"0666\""
-LINE2=$"ATTRS{idVendor}==\"${VENDOR}\", ATTRS{idProduct}==\"${PRODUCT}\", RUN+=\"/bin/sh -c 'echo \$kernel > /sys/bus/usb/drivers/ftdi_sio/unbind'\""
 FILE=/etc/udev/rules.d/$FILE
 
+echo "  Add udev rule so VENDOR:PRODUCT:SERIAL=${VENDOR}:${PRODUCT}:${SERIAL} devices do not load ftdi_sio driver."
+echo "  Adding new lines to udev rule file: ${FILE}"
+
+LINE0="#The following 2 lines make VENDOR:PRODUCT:SERIAL=${VENDOR}:${PRODUCT}:${SERIAL} devices not load ftdi_sio driver"
+LINE1="ATTRS{idVendor}==\"${VENDOR}\", ATTRS{idProduct}==\"${PRODUCT}\", ATTRS{serial}==\"${SERIAL}\", MODE:=\"0666\""
+LINE2="ATTRS{idVendor}==\"${VENDOR}\", ATTRS{idProduct}==\"${PRODUCT}\", ATTRS{serial}==\"${SERIAL}\", RUN+=\"/bin/sh -c 'echo \$kernel > /sys/bus/usb/drivers/ftdi_sio/unbind'\""
+
 sudo touch $FILE
 grep -qF -- "$LINE0" "$FILE" || echo "$LINE0" | sudo tee -a "$FILE" > /dev/null
 grep -qF -- "$LINE1" "$FILE" || echo "$LINE1" | sudo tee -a "$FILE" > /dev/null
 grep -qF -- "$LINE2" "$FILE" || echo "$LINE2" | sudo tee -a "$FILE" > /dev/null
 
 sudo service udev restart
-echo "Need to unplug-plug devices for changes to take effect"
\ No newline at end of file
+echo "  Need to unplug-plug devices for changes to take effect"
\ No newline at end of file
diff --git a/scripts/undo_load_pcspkr.sh b/scripts/undo_load_pcspkr.sh
new file mode 100755
index 0000000000000000000000000000000000000000..8507293d43626ccfed68fbd33e98a66e0151c829
--- /dev/null
+++ b/scripts/undo_load_pcspkr.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+echo "Remove pcspkr module from /etc/modules"
+
+LINE="pcspkr"
+FILE=/etc/modules
+
+
+sudo sed -i "/$LINE/d" $FILE
+sudo rmmod pcspkr
\ No newline at end of file
diff --git a/scripts/undo_unbind_ftdi_udev.sh b/scripts/undo_unbind_ftdi_udev.sh
new file mode 100755
index 0000000000000000000000000000000000000000..5196d080f6f78e4d086d1bc77e505440adb3ac95
--- /dev/null
+++ b/scripts/undo_unbind_ftdi_udev.sh
@@ -0,0 +1,41 @@
+#!/bin/sh
+
+# SERIAL=${3:-A600eB1Y}
+# FILE=${4:-99-ftdi.rules}
+
+SERIAL="A600eB1Y"
+FILE="99-ftdi.rules"
+
+  # SERIAL DABO: A600eB1Y
+  # SERIAL TIBI: A600eByq
+  # SERIAL TEO:  A900WSG1
+
+usage() {
+  echo "Usage: $0 [-v <vendor>] [-p <product>] [-s <serial>] [-f <file> ]"
+  echo " -s  specify serial number. Default A600eB1Y"
+  echo " -f  specify udev file.     Default 99-ftdi.rules"
+  exit 1
+  }
+  
+while getopts ":hv:p:s:f:" arg; do
+  case $arg in
+    s)  SERIAL=$OPTARG;;
+    f)    FILE=$OPTARG;;
+    h) usage;;
+    *) usage;;
+  esac
+done
+shift $((OPTIND-1))
+
+
+FILE=/etc/udev/rules.d/$FILE
+
+echo "Undo addition of udev rule so VENDOR:PRODUCT:SERIAL=${VENDOR}:${PRODUCT}:${SERIAL} devices do not load ftdi_sio driver."
+echo "Removing all lines containing SERIAL=${SERIAL} from file: ${FILE}"
+
+LINE0=${SERIAL}
+
+sudo sed -i "/${LINE0}/d" $FILE
+
+sudo service udev restart
+echo "Need to unplug-plug devices for changes to take effect"
\ No newline at end of file
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index fac59fd17f547c2a36ea343a0c42f03274ec235f..b25620b820467a4e0b02a0df853c4ce8961016df 100755
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -28,4 +28,10 @@ INSTALL(TARGETS battery_monitor
         ARCHIVE DESTINATION lib/iri/${PROJECT_NAME})
 INSTALL(FILES ${headers} DESTINATION include/iri/${PROJECT_NAME})
 INSTALL(FILES ../Findbattery_monitor.cmake DESTINATION ${CMAKE_ROOT}/Modules/)
+INSTALL(FILES  ../scripts/unbind_ftdi_udev.sh 
+               ../scripts/load_pcspkr.sh
+               ../scripts/undo_unbind_ftdi_udev.sh
+               ../scripts/undo_load_pcspkr.sh
+               DESTINATION share/iri/${PROJECT_NAME}/scripts 
+               PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ)
 ADD_SUBDIRECTORY(examples)