+
+class I2C_Feather_CAN(I2C):
+    """I2C Class for Feather EPD u2if"""
+
+    def __init__(self, scl, sda, *, frequency=100000):
+        index = None
+        if scl.id == 3 and sda.id == 2:
+            index = 1
+        if index is None:
+            raise ValueError("I2C not found on specified pins.")
+        self._index = index
+
+        super().__init__(index, frequency=frequency)
+
+
+class I2C_Feather_EPD(I2C):
+    """I2C Class for Feather EPD u2if"""
+
+    def __init__(self, scl, sda, *, frequency=100000):
+        index = None
+        if scl.id == 3 and sda.id == 2:
+            index = 1
+        if index is None:
+            raise ValueError("I2C not found on specified pins.")
+        self._index = index
+
+        super().__init__(index, frequency=frequency)
+
+
+class I2C_Feather_RFM(I2C):
+    """I2C Class for Feather EPD u2if"""
+
+    def __init__(self, scl, sda, *, frequency=100000):
+        index = None
+        if scl.id == 3 and sda.id == 2:
+            index = 1
+        if index is None:
+            raise ValueError("I2C not found on specified pins.")
+        self._index = index
+
+        super().__init__(index, frequency=frequency)
+
+
+class I2C_QTPY(I2C):
+    """I2C Class for QT Py 2if"""
+
+    def __init__(self, scl, sda, *, frequency=100000):
+        index = None
+        if scl.id == 25 and sda.id == 24:
+            index = 0
+        if scl.id == 23 and sda.id == 22:
+            index = 1
+        if index is None:
+            raise ValueError("I2C not found on specified pins.")
+        self._index = index
+
+        super().__init__(index, frequency=frequency)
+
+
+class I2C_ItsyBitsy(I2C):
+    """I2C Class for ItsyBitsy u2if"""
+
+    def __init__(self, scl, sda, *, frequency=100000):
+        index = None
+        if scl.id == 3 and sda.id == 2:
+            index = 1
+        if index is None:
+            raise ValueError("I2C not found on specified pins.")
+        self._index = index
+
+        super().__init__(index, frequency=frequency)
+
+
+class I2C_MacroPad(I2C):
+    """I2C Class for MacroPad u2if"""
+
+    def __init__(self, scl, sda, *, frequency=100000):
+        index = None
+        if scl.id == 21 and sda.id == 20:
+            index = 0
+        if index is None:
+            raise ValueError("I2C not found on specified pins.")
+        self._index = index
+        super().__init__(index, frequency=frequency)
+
+