diff --git a/voltha/adapters/openolt/openolt.py b/voltha/adapters/openolt/openolt.py
index 5c8768c..995be78 100644
--- a/voltha/adapters/openolt/openolt.py
+++ b/voltha/adapters/openolt/openolt.py
@@ -117,6 +117,7 @@
             self.devices[device.id] = OpenoltDevice(**kwargs)
         except Exception as e:
             log.error('Failed to adopt OpenOLT device', error=e)
+            # TODO set status to ERROR so that is clear something went wrong
             del self.devices[device.id]
             raise
         else:
diff --git a/voltha/adapters/openolt/openolt_device.py b/voltha/adapters/openolt/openolt_device.py
index fc4696a..0fe20a8 100644
--- a/voltha/adapters/openolt/openolt_device.py
+++ b/voltha/adapters/openolt/openolt_device.py
@@ -16,7 +16,8 @@
 import threading
 import binascii
 import grpc
-
+import socket
+import re
 import structlog
 from twisted.internet import reactor
 from scapy.layers.l2 import Ether, Dot1Q
@@ -102,8 +103,11 @@
                                         ip=self.host_and_port)
         self.proxy = registry('core').get_proxy('/')
 
+        self.log.info('openolt-device-init')
+
         # Device already set in the event of reconciliation
         if not is_reconciliation:
+            self.log.info('updating-device')
             # It is a new device
             # Update device
             device.root = True
@@ -115,8 +119,15 @@
         # If logical device does not exist create it
         if not device.parent_id:
             if dpid == None:
-                dpid = '00:00:' + self.ip_hex(self.host_and_port.split(":")[0])
+                uri = self.host_and_port.split(":")[0]
+                try:
+                    socket.inet_pton(socket.AF_INET, uri)
+                    dpid = '00:00:' + self.ip_hex(uri)
+                except socket.error:
+                    # this is not an IP
+                    dpid = self.stringToMacAddr(uri)
 
+            self.log.info('creating-openolt-logical-device', dp_id=dpid)
             # Create logical OF device
             ld = LogicalDevice(
                 root_device_id=self.device_id,
@@ -137,6 +148,8 @@
             ld_init = self.adapter_agent.create_logical_device(ld,
                                                                dpid=dpid)
             self.logical_device_id = ld_init.id
+
+            self.log.info('created-openolt-logical-device', logical_device_id=ld_init.id)
         else:
             # logical device already exists
             self.logical_device_id = device.parent_id
@@ -150,6 +163,20 @@
                                send_event=True, initial='state_null')
         self.go_state_init()
 
+    def stringToMacAddr(self, uri):
+        regex = re.compile('[^a-zA-Z]')
+        uri = regex.sub('', uri)
+
+        l = len(uri)
+        if l > 6:
+            uri = uri[0:6]
+        else:
+            uri = uri + uri[0:6 - l]
+
+        print uri
+
+        return ":".join([hex(ord(x))[-2:] for x in uri])
+
     def do_state_init(self, event):
         # Initialize gRPC
         self.channel = grpc.insecure_channel(self.host_and_port)
