diff --git a/APSPU_I2C.py b/APSPU_I2C.py
index 7d3584dea5e1b107bf10cb281de6694f7b0722f8..4362f40887845deaffb5602d17e0188203e2cfa1 100644
--- a/APSPU_I2C.py
+++ b/APSPU_I2C.py
@@ -56,7 +56,8 @@ LP_VOUT_UV_LIMIT = 0x44
 LP_STORE_USER_ALL = 0x15
 LP_ON_OFF_CONFIG = 0x02
 LP_OPERATION = 0x01
-
+LP_WRITE_PROTECT = 0x10
+LP_STORE_DEFAULT_ALL = 0x12
 #
 # Central I2C Devices
 #
diff --git a/I2C_serial_pi.py b/I2C_serial_pi.py
index 6aaa3f5e84e50025927e29e38035072ea98e9328..010041ab1d7d95894213dc9cf797329b2bf97eeb 100644
--- a/I2C_serial_pi.py
+++ b/I2C_serial_pi.py
@@ -42,11 +42,11 @@ class I2C:
             ret_ack = 1
             if SLOW:
                 sleep(0.2)
-        except IOError, err:
+        except IOError:
             ret_ack = 0
             ret_value = 'ffff'
             if DEBUG:
-                print("Reading error")
+                print("Reading IO-error")
         return ret_ack, ret_value
 
     
@@ -60,27 +60,29 @@ class I2C:
                 ret_ack = 1
                 if SLOW:
                     sleep(0.2)
-            except IOError, err:
+            except IOError:
                 ret_ack = 0
                 rd_value.append(0)
                 if DEBUG:
-                    print("Reading error")
+                    print("IO-Reading error")
         for cnt in range(bytes_to_read):
             ret_value += (hex(rd_value[cnt])[2:])
         return ret_ack,ret_value
   
     def write_bytes(self, register, data):
         bus = smbus.SMBus(self.bus_nr)
+        if type(data) is not list:
+            data = [data]
         try:
-            bus.write_i2c_block_data(self.I2C_Address, register, [data])
+            bus.write_i2c_block_data(self.I2C_Address, register, data)
             ret_ack = 1
             if SLOW:
                 sleep(0.3)
-        except IOError, err:
+        except IOError:
             ret_ack = 0
             ret_value = 0
             if DEBUG:
-                print("Write error")
+                print("Write IO-error")
         return ret_ack
 
     def write_register(self, register):
@@ -90,11 +92,11 @@ class I2C:
             ret_ack = 1
             if SLOW:
                 sleep(0.3)
-        except IOError, err:
+        except IOError:
             ret_ack = 0
             ret_value = 0
             if DEBUG:
-                print("Write error")
+                print("Write IO-error")
         return ret_ack
 
     def write_pointer(self, register):
@@ -104,11 +106,11 @@ class I2C:
             ret_ack = 1
             if SLOW:
                 sleep(0.3)
-        except IOError, err:
+        except IOError:
             ret_ack = 0
             ret_value = 0
             if DEBUG:
-                print("Write error")
+                print("Write IO-error")
         return ret_ack
 
     def ack_check(self):
@@ -119,11 +121,11 @@ class I2C:
             ret_ack = 1
             if SLOW:
                 sleep(0.3)
-        except IOError, err:
+        except IOError:
             ret_ack = 0
             ret_value = 0
             if DEBUG:
-                print("No ACK")
+                print("No ACK IO-Error")
         return ret_ack
 
 if __name__ == "__main__":
diff --git a/I2C_serial_pi2.py b/I2C_serial_pi2.py
index 5ae5af3976e9d28807f0eaa4b0f894a72ff1b8ec..4da3bf406cf0a3e554eeb2dc3232ff5b96b915d3 100644
--- a/I2C_serial_pi2.py
+++ b/I2C_serial_pi2.py
@@ -97,7 +97,8 @@ class I2C:
     def write_pointer(self, register):
         bus = pi.i2c_open(self.bus_nr, self.I2C_Address)
         try:
-            pi.i2c_read_device(bus, 1)
+#            pi.i2c_read_device(bus, 1)
+            pi.i2c_read_device(bus, register)
             ret_ack = 1
             if SLOW:
                 sleep(0.3)
@@ -109,6 +110,20 @@ class I2C:
         pi.i2c_close(bus)
         return ret_ack
 
+    def write_register(self, register):
+        bus = pi.i2c_open(self.bus_nr, self.I2C_Address)
+        try:
+            ret_value = pi.i2c_write_device(bus, [register])
+            ret_ack = 1
+            if SLOW:
+                sleep(0.3)
+        except IOError:
+            ret_ack = 0
+            ret_value = 0
+            if DEBUG:
+                print("No ACK")
+        return ret_ack
+
     def ack_check(self):
         bus = smbus.SMBus(self.bus_nr)
         try:
diff --git a/apspu_lib.py b/apspu_lib.py
index 4cb45a8d5f7e0a2d38a0112e5440a46fe04bb973..57e76c93f5c99736a0108de21705b6b45c6c91cf 100644
--- a/apspu_lib.py
+++ b/apspu_lib.py
@@ -25,7 +25,7 @@ from APSPU_I2C import *
 
 
 if os.name == "posix":
-    from I2C_serial_pi2 import *
+    from I2C_serial_pi import *
 else:
     from I2C_serial import *
 
@@ -84,6 +84,7 @@ class ApspuClass:
                       f"set {1.2*VOUT_POLS[pol.name]} read back {ov_out}")
                 exit()
             pol.set_on_off_config()
+            pol.on_off(True)
             pol.write_to_nvm()
         print("Done")
     
@@ -269,6 +270,7 @@ class PolClass:
         #
         ret_ack = False
         if self.status:
+            ret_ack = self.pol_dev.write_bytes(LP_WRITE_PROTECT, [0])
             set_value = int(value * (2**11))
             hex_set_value = hex(set_value)
             wr_value = (hex_set_value[4:6] + hex_set_value[2:4])
@@ -306,7 +308,12 @@ class PolClass:
         #
         # return is always True
         #
-        ret_ack = self.pol_dev.write_bytes(LP_STORE_USER_ALL, 0)
+        ret_ack = self.pol_dev.write_register(0x15) 
+#        command = f"i2cset -y 1 0x{CTR_POLS[self.name]:02X} 0x15 cp" 
+#        print(command)
+#        os.system(command)
+#        os.system(command)
+        sleep(5)
         return True
 
     def read_vin(self):