-from adafruit_blinka import Enum, agnostic
+"""Microcontroller pins"""
 
+from adafruit_blinka import Enum
+from adafruit_blinka.agnostic import board_id, platform
 
 class Pin(Enum):
-    def __init__(self, id):
+    """Reference Pin object"""
+    def __init__(self, pin_id):
         """Identifier for pin, referencing platform-specific pin id"""
-        self.id = id
+        self._id = pin_id
 
     def __repr__(self):
         import board
                 return "microcontroller.pin.{}".format(key)
         return repr(self)
 
+# We intentionally are patching into this namespace so skip the wildcard check.
+# pylint: disable=unused-wildcard-import,wildcard-import
 
-if agnostic.microcontroller == "esp8266":
+if platform == "esp8266":
     from adafruit_blinka.microcontroller.esp8266 import *
-elif agnostic.microcontroller == "stm32":
+elif platform == "stm32":
     from adafruit_blinka.microcontroller.stm32 import *
+elif platform == "linux":
+    if board_id == "raspi_3" or board_id == "raspi_2":
+        from adafruit_blinka.microcontroller.raspi_23 import *
+    elif board_id == "beaglebone_black":
+        from adafruit_blinka.microcontroller.beaglebone_black import *
+    else:
+        raise NotImplementedError("Board not supported:", board_id)
 else:
-    raise NotImplementedError("Microcontroller not supported")
\ No newline at end of file
+    raise NotImplementedError("Platform not supported:", platform)